diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index ffa46888..d0ef6f75 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -8,10 +8,11 @@ on: jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 defaults: run: working-directory: ./frontend + name: Build and lint steps: - name: Checkout repository diff --git a/.gitignore b/.gitignore index 5a2c9c1f..ba885016 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ node_modules/ # Environment variables .env .env.* + diff --git a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForcePrototype.java b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForcePrototype.java index 5c0a0a98..6eee1987 100644 --- a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForcePrototype.java +++ b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForcePrototype.java @@ -7,7 +7,6 @@ import edu.uga.devdogs.sampledataparser.records.SConstraints; import edu.uga.devdogs.sampledataparser.records.Section; -import java.sql.Array; import java.util.*; public class BruteForcePrototype { @@ -42,9 +41,6 @@ public static int[][] algorithmDriver(Set inputCourses, Map inputCourses, Map sortedSchedules = new ArrayList<>(); List sortedOverallObjectives = new ArrayList<>(); - + // Makeshift Priority Queue; An array sorted by a variable (in this case, overallObjective). // Before an item is added, you find where it should be placed so that the List is still sorted correctly // Without having to call a special sorting function. @@ -167,8 +163,8 @@ private static void generateValidSchedulesRecursive(Set
sections, List< // Instantiates the set of sections for the next iteration HashSet
nextSections = new HashSet<>(sections); nextSections.add(sectionToAdd); - + generateValidSchedulesRecursive(nextSections, nextCoursesToAdd, validSchedules); } } -} +} \ No newline at end of file diff --git a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForceUtil.java b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForceUtil.java index 79675f4c..c6713237 100644 --- a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForceUtil.java +++ b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/BruteForceUtil.java @@ -2,6 +2,7 @@ import edu.uga.devdogs.sampledataparser.records.*; import edu.uga.devdogs.sampledataparser.records.Class; +import edu.uga.devdogs.bruteforceprototype.schedule.Schedule; import java.time.DayOfWeek; import java.util.ArrayList; @@ -157,8 +158,9 @@ public static DayOfWeek daySwitch(String day) { * * @param inputCourses user inputted courses. * @param validSchedules a set of valid generated schedules + * @throws Exception if {@code courseInSchedule} if true */ - public static void ensureInitialCourses(Set inputCourses, Set validSchedules) { + public static void ensureInitialCourses(Set inputCourses, Set validSchedules) throws Exception { boolean courseInSchedule = false; // for every user inputted course for (Course c : inputCourses) { @@ -167,12 +169,12 @@ public static void ensureInitialCourses(Set inputCourses, Set // for every section in said schedule for (Section sect : s.sections()) { // if the course the user inputted, c, is in the schedule, s - if (c.courseCode == sect.courseCode) { + if (c.courseCode().equals(sect.courseCode())) { courseInSchedule = true; } // if } // for if (!courseInSchedule) { - throw new Exception("Schedule does not contain specified course.") + throw new Exception("Schedule does not contain specified course."); } // if } // for } // for diff --git a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/Schedule.java b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/Schedule.java index f7a09b73..c8499601 100644 --- a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/Schedule.java +++ b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/Schedule.java @@ -65,5 +65,4 @@ public Set
sections() { public EnumMap> days() { return days; } -} - +} \ No newline at end of file diff --git a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/ScheduleUtil.java b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/ScheduleUtil.java index 9a1f9d72..fb130967 100644 --- a/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/ScheduleUtil.java +++ b/algorithm-prototyping/brute-force-prototype/src/main/java/edu/uga/devdogs/bruteforceprototype/schedule/ScheduleUtil.java @@ -5,12 +5,20 @@ import edu.uga.devdogs.sampledataparser.records.Class; import edu.uga.devdogs.sampledataparser.records.HConstraints; +//import edu.uga.devdogs.course_information.service; +//import org.springframework.beans.factory.annotation.Autowired; + import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeSet; +import java.util.EnumMap; import java.util.Set; +import java.time.DayOfWeek; +import java.time.LocalTime; + + /** * Utility class for performing operations and calculations related to a Schedule. @@ -22,6 +30,10 @@ */ public class ScheduleUtil { + // Used for bootstrap getting coords + //@Autowired + //private CourseInformationService courseInformationService; + /** * Validates the given schedule by checking for any time conflicts between classes. * A time conflict occurs when two classes overlap in their scheduled times. @@ -86,7 +98,7 @@ public static double computeAverageProfessorQuality(Schedule schedule) { /** * Checks if schedule or constraints is null and throws an exception if it is. - * + * * @param schedule the schedule to validate * @param constraints the constraints to validate */ @@ -115,14 +127,36 @@ public static double computeMaxDistance(Schedule schedule, Map day : schedule.days().values()) { // Converts the TreeSet to List for direct indexing - // TODO: Replace TreeSet with a sorted List for days in Schedule List dayList = new ArrayList<>(day); // Iterates over consecutive class pairs for (int i = 0; i < dayList.size() - 1; i++) { Class currClass = dayList.get(i); Class nextClass = dayList.get(i + 1); - double distance = distances.get(currClass.buildingName()).get(nextClass.buildingName()); + + double lat1 = 0.0;//courseInformationService.getLatitude(currClass.buildingNumber()); + double lon1 = 0.0; //courseInformationService.getLongitude(currClass.buildingNumber()); + double lon2 = 0.0; //courseInformationService.getLongitude(nextClass.buildingNumber()); + double lat2 = 0.0; //courseInformationService.getLatitude(nextClass.buildingNumber()); + + // distance between latitudes and longitudes + double dLat = Math.toRadians(lat2 - lat1); + double dLon = Math.toRadians(lon2 - lon1); + + // convert to radians + lat1 = Math.toRadians(lat1); + lat2 = Math.toRadians(lat2); + + // apply Haversine formula + double a = Math.pow(Math.sin(dLat / 2), 2) + + Math.pow(Math.sin(dLon / 2), 2) * + Math.cos(lat1) * + Math.cos(lat2); + + // Earth's radius in miles + double rad = 3960; + double c = 2 * Math.asin(Math.sqrt(a)); + double distance = rad * c; if (distance > maxDistance) { maxDistance = distance; @@ -130,7 +164,9 @@ public static double computeMaxDistance(Schedule schedule, Map> days = schedule.days(); + TreeSet classes = days.get(gapDay); + return classes.isEmpty(); + } + + + /** * Computes the overall objective score for the given schedule based on weighted objectives. * This method computes each objective, normalizes their values using min-max normalization, and computes a weighted sum. @@ -185,10 +278,10 @@ public static double computeAverageIdleTime(Schedule schedule) { * @return the overall objective score for the schedule */ public static double computeOverallObjective(Schedule schedule, Map> distances) { - // Checks if the parameters are valid - if (schedule == null || distances == null) { - throw new IllegalArgumentException("Parameters cannot be null"); - } + // Checks if the parameters are valid + if (schedule == null || distances == null) { + throw new IllegalArgumentException("Parameters cannot be null"); + } // The minimum rating on rate my professor is 1.0(if they have ratings). final double professorQualityMinimum = 1.0; @@ -251,7 +344,7 @@ public static double computeOverallObjectiveExtended(Schedule schedule, Map sections) { return output; } -} +} \ No newline at end of file diff --git a/algorithm-prototyping/src/main/java/edu/uga/devdogs/Main.class b/algorithm-prototyping/src/main/java/edu/uga/devdogs/Main.class new file mode 100644 index 00000000..54444e11 Binary files /dev/null and b/algorithm-prototyping/src/main/java/edu/uga/devdogs/Main.class differ diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 016ecdac..67b6ad17 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -15,8 +15,10 @@ "@t3-oss/env-nextjs": "^0.11.1", "@tanstack/react-query": "^5.66.5", "date-fns": "^4.1.0", + "match-sorter": "^8.0.0", "motion": "^12.4.3", "next": "14.2.23", + "pnpm": "^10.6.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.4.0", @@ -33,10 +35,13 @@ "eslint": "^8.57.1", "eslint-config-next": "14.2.13", "postcss": "^8.5.2", - "prettier": "^3.5.1", + "prettier": "3.5.3", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^3.4.17", "typescript": "^5.7.3" + }, + "engines": { + "node": ">=20.0.0" } }, "node_modules/@alloc/quick-lru": { @@ -52,6 +57,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@babel/runtime": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@emnapi/runtime": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", @@ -4626,6 +4643,16 @@ "dev": true, "license": "ISC" }, + "node_modules/match-sorter": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-8.0.0.tgz", + "integrity": "sha512-bGJ6Zb+OhzXe+ptP5d80OLVx7AkqfRbtGEh30vNSfjNwllu+hHI+tcbMIT/fbkx/FKN1PmKuDb65+Oofg+XUxw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -5168,6 +5195,22 @@ "node": ">= 6" } }, + "node_modules/pnpm": { + "version": "10.6.3", + "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-10.6.3.tgz", + "integrity": "sha512-u0XjTVCpp26FipWDcwG/tr1tNa6ixdUglPpJekZ8Q/XEQBA84lEengovicPWBxuqwzWPxorG+3XizrPSc2Bl5g==", + "license": "MIT", + "bin": { + "pnpm": "bin/pnpm.cjs", + "pnpx": "bin/pnpx.cjs" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -5339,9 +5382,9 @@ } }, "node_modules/prettier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.2.tgz", - "integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", "bin": { @@ -5630,6 +5673,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, "node_modules/regexp.prototype.flags": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", @@ -5649,6 +5698,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", + "license": "MIT" + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", diff --git a/frontend/package.json b/frontend/package.json index 14321899..5b8cc3dd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,6 +3,9 @@ "version": "0.1.0", "private": true, "type": "module", + "engines": { + "node": ">=20.0.0" + }, "scripts": { "dev": "next dev", "build": "next build", @@ -20,11 +23,13 @@ "@radix-ui/react-popover": "^1.1.6", "@radix-ui/react-toast": "^1.2.6", "@t3-oss/env-nextjs": "^0.11.1", + "@tailwindcss/forms": "^0.5.10", "@tanstack/react-query": "^5.66.5", "date-fns": "^4.1.0", "match-sorter": "^8.0.0", "motion": "^12.4.3", "next": "14.2.23", + "pnpm": "^10.6.3", "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.4.0", @@ -41,7 +46,7 @@ "eslint": "^8.57.1", "eslint-config-next": "14.2.13", "postcss": "^8.5.2", - "prettier": "^3.5.1", + "prettier": "3.5.3", "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^3.4.17", "typescript": "^5.7.3" diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 324c1f3c..c84a4d48 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -9,22 +9,25 @@ importers: dependencies: "@radix-ui/react-accordion": specifier: ^1.2.3 - version: 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.4(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-dialog": specifier: ^1.1.6 - version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.7(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-popover": specifier: ^1.1.6 - version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.7(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-toast": specifier: ^1.2.6 - version: 1.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.7(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@t3-oss/env-nextjs": specifier: ^0.11.1 - version: 0.11.1(typescript@5.7.3)(zod@3.24.2) + version: 0.11.1(typescript@5.8.3)(zod@3.24.2) + "@tailwindcss/forms": + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@3.4.17) "@tanstack/react-query": specifier: ^5.66.5 - version: 5.66.5(react@18.3.1) + version: 5.72.2(react@18.3.1) date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -33,10 +36,13 @@ importers: version: 8.0.0 motion: specifier: ^12.4.3 - version: 12.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 12.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: 14.2.23 version: 14.2.23(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + pnpm: + specifier: ^10.6.3 + version: 10.8.0 react: specifier: ^18.3.1 version: 18.3.1 @@ -45,7 +51,7 @@ importers: version: 18.3.1(react@18.3.1) react-icons: specifier: ^5.4.0 - version: 5.4.0(react@18.3.1) + version: 5.5.0(react@18.3.1) sharp: specifier: ^0.33.5 version: 0.33.5 @@ -58,40 +64,40 @@ importers: version: 8.56.12 "@types/node": specifier: ^22.13.4 - version: 22.13.4 + version: 22.14.0 "@types/react": specifier: ^18.3.18 - version: 18.3.18 + version: 18.3.20 "@types/react-dom": specifier: ^18.3.5 - version: 18.3.5(@types/react@18.3.18) + version: 18.3.6(@types/react@18.3.20) "@typescript-eslint/eslint-plugin": specifier: ^8.24.1 - version: 8.24.1(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) + version: 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) "@typescript-eslint/parser": specifier: ^8.24.1 - version: 8.24.1(eslint@8.57.1)(typescript@5.7.3) + version: 8.29.1(eslint@8.57.1)(typescript@5.8.3) eslint: specifier: ^8.57.1 version: 8.57.1 eslint-config-next: specifier: 14.2.13 - version: 14.2.13(eslint@8.57.1)(typescript@5.7.3) + version: 14.2.13(eslint@8.57.1)(typescript@5.8.3) postcss: specifier: ^8.5.2 - version: 8.5.2 + version: 8.5.3 prettier: - specifier: ^3.5.1 - version: 3.5.1 + specifier: 3.5.3 + version: 3.5.3 prettier-plugin-tailwindcss: specifier: ^0.6.11 - version: 0.6.11(prettier@3.5.1) + version: 0.6.11(prettier@3.5.3) tailwindcss: specifier: ^3.4.17 version: 3.4.17 typescript: specifier: ^5.7.3 - version: 5.7.3 + version: 5.8.3 packages: "@alloc/quick-lru@5.2.0": @@ -101,23 +107,35 @@ packages: } engines: { node: ">=10" } - "@babel/runtime@7.26.9": + "@babel/runtime@7.27.0": resolution: { - integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==, + integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==, } engines: { node: ">=6.9.0" } - "@emnapi/runtime@1.3.1": + "@emnapi/core@1.4.0": resolution: { - integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==, + integrity: sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==, } - "@eslint-community/eslint-utils@4.4.1": + "@emnapi/runtime@1.4.0": resolution: { - integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==, + integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==, + } + + "@emnapi/wasi-threads@1.0.1": + resolution: + { + integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==, + } + + "@eslint-community/eslint-utils@4.5.1": + resolution: + { + integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: @@ -395,6 +413,12 @@ packages: integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, } + "@napi-rs/wasm-runtime@0.2.8": + resolution: + { + integrity: sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==, + } + "@next/env@14.2.23": resolution: { @@ -523,16 +547,16 @@ packages: } engines: { node: ">=14" } - "@radix-ui/primitive@1.1.1": + "@radix-ui/primitive@1.1.2": resolution: { - integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==, + integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==, } - "@radix-ui/react-accordion@1.2.3": + "@radix-ui/react-accordion@1.2.4": resolution: { - integrity: sha512-RIQ15mrcvqIkDARJeERSuXSry2N8uYnxkdDetpfmalT/+0ntOXLkFOsh9iwlAsCv+qcmhZjbdJogIm6WBa6c4A==, + integrity: sha512-SGCxlSBaMvEzDROzyZjsVNzu9XY5E28B3k8jOENyrz6csOv/pG1eHyYfLJai1n9tRjwG61coXDhfpgtxKxUv5g==, } peerDependencies: "@types/react": "*" @@ -545,10 +569,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-arrow@1.1.2": + "@radix-ui/react-arrow@1.1.3": resolution: { - integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==, + integrity: sha512-2dvVU4jva0qkNZH6HHWuSz5FN5GeU5tymvCgutF8WaXz9WnD1NgUhy73cqzkjkN4Zkn8lfTPv5JIfrC221W+Nw==, } peerDependencies: "@types/react": "*" @@ -561,10 +585,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-collapsible@1.1.3": + "@radix-ui/react-collapsible@1.1.4": resolution: { - integrity: sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw==, + integrity: sha512-u7LCw1EYInQtBNLGjm9nZ89S/4GcvX1UR5XbekEgnQae2Hkpq39ycJ1OhdeN1/JDfVNG91kWaWoest127TaEKQ==, } peerDependencies: "@types/react": "*" @@ -577,10 +601,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-collection@1.1.2": + "@radix-ui/react-collection@1.1.3": resolution: { - integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==, + integrity: sha512-mM2pxoQw5HJ49rkzwOs7Y6J4oYH22wS8BfK2/bBxROlI4xuR0c4jEenQP63LlTlDkO6Buj2Vt+QYAYcOgqtrXA==, } peerDependencies: "@types/react": "*" @@ -593,10 +617,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-compose-refs@1.1.1": + "@radix-ui/react-compose-refs@1.1.2": resolution: { - integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==, + integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==, } peerDependencies: "@types/react": "*" @@ -605,10 +629,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-context@1.1.1": + "@radix-ui/react-context@1.1.2": resolution: { - integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==, + integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==, } peerDependencies: "@types/react": "*" @@ -617,10 +641,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-dialog@1.1.6": + "@radix-ui/react-dialog@1.1.7": resolution: { - integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==, + integrity: sha512-EIdma8C0C/I6kL6sO02avaCRqi3fmWJpxH6mqbVScorW6nNktzKJT/le7VPho3o/7wCsyRg3z0+Q+Obr0Gy/VQ==, } peerDependencies: "@types/react": "*" @@ -633,10 +657,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-direction@1.1.0": + "@radix-ui/react-direction@1.1.1": resolution: { - integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==, + integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==, } peerDependencies: "@types/react": "*" @@ -645,10 +669,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-dismissable-layer@1.1.5": + "@radix-ui/react-dismissable-layer@1.1.6": resolution: { - integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==, + integrity: sha512-7gpgMT2gyKym9Jz2ZhlRXSg2y6cNQIK8d/cqBZ0RBCaps8pFryCWXiUKI+uHGFrhMrbGUP7U6PWgiXzIxoyF3Q==, } peerDependencies: "@types/react": "*" @@ -661,10 +685,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-focus-guards@1.1.1": + "@radix-ui/react-focus-guards@1.1.2": resolution: { - integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==, + integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==, } peerDependencies: "@types/react": "*" @@ -673,10 +697,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-focus-scope@1.1.2": + "@radix-ui/react-focus-scope@1.1.3": resolution: { - integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==, + integrity: sha512-4XaDlq0bPt7oJwR+0k0clCiCO/7lO7NKZTAaJBYxDNQT/vj4ig0/UvctrRscZaFREpRvUTkpKR96ov1e6jptQg==, } peerDependencies: "@types/react": "*" @@ -689,10 +713,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-id@1.1.0": + "@radix-ui/react-id@1.1.1": resolution: { - integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==, + integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==, } peerDependencies: "@types/react": "*" @@ -701,10 +725,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-popover@1.1.6": + "@radix-ui/react-popover@1.1.7": resolution: { - integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==, + integrity: sha512-I38OYWDmJF2kbO74LX8UsFydSHWOJuQ7LxPnTefjxxvdvPLempvAnmsyX9UsBlywcbSGpRH7oMLfkUf+ij4nrw==, } peerDependencies: "@types/react": "*" @@ -717,10 +741,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-popper@1.2.2": + "@radix-ui/react-popper@1.2.3": resolution: { - integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==, + integrity: sha512-iNb9LYUMkne9zIahukgQmHlSBp9XWGeQQ7FvUGNk45ywzOb6kQa+Ca38OphXlWDiKvyneo9S+KSJsLfLt8812A==, } peerDependencies: "@types/react": "*" @@ -733,10 +757,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-portal@1.1.4": + "@radix-ui/react-portal@1.1.5": resolution: { - integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==, + integrity: sha512-ps/67ZqsFm+Mb6lSPJpfhRLrVL2i2fntgCmGMqqth4eaGUf+knAuuRtWVJrNjUhExgmdRqftSgzpf0DF0n6yXA==, } peerDependencies: "@types/react": "*" @@ -749,10 +773,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-presence@1.1.2": + "@radix-ui/react-presence@1.1.3": resolution: { - integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==, + integrity: sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA==, } peerDependencies: "@types/react": "*" @@ -765,10 +789,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-primitive@2.0.2": + "@radix-ui/react-primitive@2.0.3": resolution: { - integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==, + integrity: sha512-Pf/t/GkndH7CQ8wE2hbkXA+WyZ83fhQQn5DDmwDiDo6AwN/fhaH8oqZ0jRjMrO2iaMhDi6P1HRx6AZwyMinY1g==, } peerDependencies: "@types/react": "*" @@ -781,10 +805,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-slot@1.1.2": + "@radix-ui/react-slot@1.2.0": resolution: { - integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==, + integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==, } peerDependencies: "@types/react": "*" @@ -793,10 +817,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-toast@1.2.6": + "@radix-ui/react-toast@1.2.7": resolution: { - integrity: sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==, + integrity: sha512-0IWTbAUKvzdpOaWDMZisXZvScXzF0phaQjWspK8RUMEUxjLbli+886mB/kXTIC3F+t5vQ0n0vYn+dsX8s+WdfA==, } peerDependencies: "@types/react": "*" @@ -809,10 +833,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-use-callback-ref@1.1.0": + "@radix-ui/react-use-callback-ref@1.1.1": resolution: { - integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==, + integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==, } peerDependencies: "@types/react": "*" @@ -821,10 +845,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-use-controllable-state@1.1.0": + "@radix-ui/react-use-controllable-state@1.1.1": resolution: { - integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==, + integrity: sha512-YnEXIy8/ga01Y1PN0VfaNH//MhA91JlEGVBDxDzROqwrAtG5Yr2QGEPz8A/rJA3C7ZAHryOYGaUv8fLSW2H/mg==, } peerDependencies: "@types/react": "*" @@ -833,10 +857,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-use-escape-keydown@1.1.0": + "@radix-ui/react-use-escape-keydown@1.1.1": resolution: { - integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==, + integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==, } peerDependencies: "@types/react": "*" @@ -845,10 +869,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-use-layout-effect@1.1.0": + "@radix-ui/react-use-layout-effect@1.1.1": resolution: { - integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==, + integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==, } peerDependencies: "@types/react": "*" @@ -857,10 +881,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-use-rect@1.1.0": + "@radix-ui/react-use-rect@1.1.1": resolution: { - integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==, + integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==, } peerDependencies: "@types/react": "*" @@ -869,10 +893,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-use-size@1.1.0": + "@radix-ui/react-use-size@1.1.1": resolution: { - integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==, + integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==, } peerDependencies: "@types/react": "*" @@ -881,10 +905,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-visually-hidden@1.1.2": + "@radix-ui/react-visually-hidden@1.1.3": resolution: { - integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==, + integrity: sha512-oXSF3ZQRd5fvomd9hmUCb2EHSZbPp3ZSHAHJJU/DlF9XoFkJBBW8RHU/E8WEH+RbSfJd/QFA0sl8ClJXknBwHQ==, } peerDependencies: "@types/react": "*" @@ -897,10 +921,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/rect@1.1.0": + "@radix-ui/rect@1.1.1": resolution: { - integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==, + integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==, } "@rtsao/scc@1.1.0": @@ -909,10 +933,10 @@ packages: integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==, } - "@rushstack/eslint-patch@1.10.5": + "@rushstack/eslint-patch@1.11.0": resolution: { - integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==, + integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==, } "@swc/counter@0.1.3": @@ -951,30 +975,44 @@ packages: typescript: optional: true - "@tanstack/query-core@5.66.4": + "@tailwindcss/forms@0.5.10": resolution: { - integrity: sha512-skM/gzNX4shPkqmdTCSoHtJAPMTtmIJNS0hE+xwTTUVYwezArCT34NMermABmBVUg5Ls5aiUXEDXfqwR1oVkcA==, + integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==, + } + peerDependencies: + tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" + + "@tanstack/query-core@5.72.2": + resolution: + { + integrity: sha512-fxl9/0yk3mD/FwTmVEf1/H6N5B975H0luT+icKyX566w6uJG0x6o+Yl+I38wJRCaogiMkstByt+seXfDbWDAcA==, } - "@tanstack/react-query@5.66.5": + "@tanstack/react-query@5.72.2": resolution: { - integrity: sha512-D9aABj3/aFeNmifsdllh5O3hPyA8gUnZ1jAV8MjODQ7blirfAyGed9NjAnm8rgEdr1wChyjTT738ij3vY0EREQ==, + integrity: sha512-SVNHzyBUYiis+XiCl+8yiPZmMYei2AKYY94wM/zpvB5l1jxqOo82FQTziSJ4pBi96jtYqvYrTMxWynmbQh3XKw==, } peerDependencies: react: ^18 || ^19 + "@tybys/wasm-util@0.9.0": + resolution: + { + integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==, + } + "@types/eslint@8.56.12": resolution: { integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==, } - "@types/estree@1.0.6": + "@types/estree@1.0.7": resolution: { - integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, + integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==, } "@types/json-schema@7.0.15": @@ -989,10 +1027,10 @@ packages: integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, } - "@types/node@22.13.4": + "@types/node@22.14.0": resolution: { - integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==, + integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==, } "@types/prop-types@15.7.14": @@ -1001,88 +1039,88 @@ packages: integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==, } - "@types/react-dom@18.3.5": + "@types/react-dom@18.3.6": resolution: { - integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==, + integrity: sha512-nf22//wEbKXusP6E9pfOCDwFdHAX4u172eaJI4YkDRQEZiorm6KfYnSC2SWLDMVWUOWPERmJnN0ujeAfTBLvrw==, } peerDependencies: "@types/react": ^18.0.0 - "@types/react@18.3.18": + "@types/react@18.3.20": resolution: { - integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==, + integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==, } - "@typescript-eslint/eslint-plugin@8.24.1": + "@typescript-eslint/eslint-plugin@8.29.1": resolution: { - integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==, + integrity: sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/parser@8.24.1": + "@typescript-eslint/parser@8.29.1": resolution: { - integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==, + integrity: sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/scope-manager@8.24.1": + "@typescript-eslint/scope-manager@8.29.1": resolution: { - integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==, + integrity: sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@typescript-eslint/type-utils@8.24.1": + "@typescript-eslint/type-utils@8.29.1": resolution: { - integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==, + integrity: sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/types@8.24.1": + "@typescript-eslint/types@8.29.1": resolution: { - integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==, + integrity: sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - "@typescript-eslint/typescript-estree@8.24.1": + "@typescript-eslint/typescript-estree@8.29.1": resolution: { - integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==, + integrity: sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/utils@8.24.1": + "@typescript-eslint/utils@8.29.1": resolution: { - integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==, + integrity: sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <5.8.0" + typescript: ">=4.8.4 <5.9.0" - "@typescript-eslint/visitor-keys@8.24.1": + "@typescript-eslint/visitor-keys@8.29.1": resolution: { - integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==, + integrity: sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -1092,6 +1130,126 @@ packages: integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==, } + "@unrs/resolver-binding-darwin-arm64@1.4.1": + resolution: + { + integrity: sha512-8Tv+Bsd0BjGwfEedIyor4inw8atppRxM5BdUnIt+3mAm/QXUm7Dw74CHnXpfZKXkp07EXJGiA8hStqCINAWhdw==, + } + cpu: [arm64] + os: [darwin] + + "@unrs/resolver-binding-darwin-x64@1.4.1": + resolution: + { + integrity: sha512-X8c3PhWziEMKAzZz+YAYWfwawi5AEgzy/hmfizAB4C70gMHLKmInJcp1270yYAOs7z07YVFI220pp50z24Jk3A==, + } + cpu: [x64] + os: [darwin] + + "@unrs/resolver-binding-freebsd-x64@1.4.1": + resolution: + { + integrity: sha512-UUr/nREy1UdtxXQnmLaaTXFGOcGxPwNIzeJdb3KXai3TKtC1UgNOB9s8KOA4TaxOUBR/qVgL5BvBwmUjD5yuVA==, + } + cpu: [x64] + os: [freebsd] + + "@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1": + resolution: + { + integrity: sha512-e3pII53dEeS8inkX6A1ad2UXE0nuoWCqik4kOxaDnls0uJUq0ntdj5d9IYd+bv5TDwf9DSge/xPOvCmRYH+Tsw==, + } + cpu: [arm] + os: [linux] + + "@unrs/resolver-binding-linux-arm-musleabihf@1.4.1": + resolution: + { + integrity: sha512-e/AKKd9gR+HNmVyDEPI/PIz2t0DrA3cyonHNhHVjrkxe8pMCiYiqhtn1+h+yIpHUtUlM6Y1FNIdivFa+r7wrEQ==, + } + cpu: [arm] + os: [linux] + + "@unrs/resolver-binding-linux-arm64-gnu@1.4.1": + resolution: + { + integrity: sha512-vtIu34luF1jRktlHtiwm2mjuE8oJCsFiFr8hT5+tFQdqFKjPhbJXn83LswKsOhy0GxAEevpXDI4xxEwkjuXIPA==, + } + cpu: [arm64] + os: [linux] + + "@unrs/resolver-binding-linux-arm64-musl@1.4.1": + resolution: + { + integrity: sha512-H3PaOuGyhFXiyJd+09uPhGl4gocmhyi1BRzvsP8Lv5AQO3p3/ZY7WjV4t2NkBksm9tMjf3YbOVHyPWi2eWsNYw==, + } + cpu: [arm64] + os: [linux] + + "@unrs/resolver-binding-linux-ppc64-gnu@1.4.1": + resolution: + { + integrity: sha512-4+GmJcaaFntCi1S01YByqp8wLMjV/FyQyHVGm0vedIhL1Vfx7uHkz/sZmKsidRwokBGuxi92GFmSzqT2O8KcNA==, + } + cpu: [ppc64] + os: [linux] + + "@unrs/resolver-binding-linux-s390x-gnu@1.4.1": + resolution: + { + integrity: sha512-6RDQVCmtFYTlhy89D5ixTqo9bTQqFhvNN0Ey1wJs5r+01Dq15gPHRXv2jF2bQATtMrOfYwv+R2ZR9ew1N1N3YQ==, + } + cpu: [s390x] + os: [linux] + + "@unrs/resolver-binding-linux-x64-gnu@1.4.1": + resolution: + { + integrity: sha512-XpU9uzIkD86+19NjCXxlVPISMUrVXsXo5htxtuG+uJ59p5JauSRZsIxQxzzfKzkxEjdvANPM/lS1HFoX6A6QeA==, + } + cpu: [x64] + os: [linux] + + "@unrs/resolver-binding-linux-x64-musl@1.4.1": + resolution: + { + integrity: sha512-3CDjG/spbTKCSHl66QP2ekHSD+H34i7utuDIM5gzoNBcZ1gTO0Op09Wx5cikXnhORRf9+HyDWzm37vU1PLSM1A==, + } + cpu: [x64] + os: [linux] + + "@unrs/resolver-binding-wasm32-wasi@1.4.1": + resolution: + { + integrity: sha512-50tYhvbCTnuzMn7vmP8IV2UKF7ITo1oihygEYq9wW2DUb/Y+QMqBHJUSCABRngATjZ4shOK6f2+s0gQX6ElENQ==, + } + engines: { node: ">=14.0.0" } + cpu: [wasm32] + + "@unrs/resolver-binding-win32-arm64-msvc@1.4.1": + resolution: + { + integrity: sha512-KyJiIne/AqV4IW0wyQO34wSMuJwy3VxVQOfIXIPyQ/Up6y/zi2P/WwXb78gHsLiGRUqCA9LOoCX+6dQZde0g1g==, + } + cpu: [arm64] + os: [win32] + + "@unrs/resolver-binding-win32-ia32-msvc@1.4.1": + resolution: + { + integrity: sha512-y2NUD7pygrBolN2NoXUrwVqBpKPhF8DiSNE5oB5/iFO49r2DpoYqdj5HPb3F42fPBH5qNqj6Zg63+xCEzAD2hw==, + } + cpu: [ia32] + os: [win32] + + "@unrs/resolver-binding-win32-x64-msvc@1.4.1": + resolution: + { + integrity: sha512-hVXaObGI2lGFmrtT77KSbPQ3I+zk9IU500wobjk0+oX59vg/0VqAzABNtt3YSQYgXTC2a/LYxekLfND/wlt0yQ==, + } + cpu: [x64] + os: [win32] + acorn-jsx@5.3.2: resolution: { @@ -1100,10 +1258,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.0: + acorn@8.14.1: resolution: { - integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==, + integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==, } engines: { node: ">=0.4.0" } hasBin: true @@ -1202,10 +1360,10 @@ packages: } engines: { node: ">= 0.4" } - array.prototype.findlastindex@1.2.5: + array.prototype.findlastindex@1.2.6: resolution: { - integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==, + integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==, } engines: { node: ">= 0.4" } @@ -1257,10 +1415,10 @@ packages: } engines: { node: ">= 0.4" } - axe-core@4.10.2: + axe-core@4.10.3: resolution: { - integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==, + integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==, } engines: { node: ">=4" } @@ -1324,10 +1482,10 @@ packages: } engines: { node: ">= 0.4" } - call-bound@1.0.3: + call-bound@1.0.4: resolution: { - integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==, + integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==, } engines: { node: ">= 0.4" } @@ -1345,10 +1503,10 @@ packages: } engines: { node: ">= 6" } - caniuse-lite@1.0.30001700: + caniuse-lite@1.0.30001712: resolution: { - integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==, + integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==, } chalk@4.1.2: @@ -1571,13 +1729,6 @@ packages: integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, } - enhanced-resolve@5.18.1: - resolution: - { - integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==, - } - engines: { node: ">=10.13.0" } - es-abstract@1.23.9: resolution: { @@ -1659,10 +1810,10 @@ packages: integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, } - eslint-import-resolver-typescript@3.8.1: + eslint-import-resolver-typescript@3.10.0: resolution: { - integrity: sha512-qw5TPA12HTmb9CkcuiNrFtwhM1ae2FWysLeRrTbQ+/JKS///gbL3fQ5LRhAZnzkcqkScOvkB5Y5o+xgyQz1VVg==, + integrity: sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==, } engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: @@ -1730,10 +1881,10 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react@7.37.4: + eslint-plugin-react@7.37.5: resolution: { - integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==, + integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==, } engines: { node: ">=4" } peerDependencies: @@ -1829,10 +1980,10 @@ packages: integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, } - fastq@1.19.0: + fastq@1.19.1: resolution: { - integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==, + integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==, } fdir@6.4.3: @@ -1874,10 +2025,10 @@ packages: } engines: { node: ^10.12.0 || >=12.0.0 } - flatted@3.3.2: + flatted@3.3.3: resolution: { - integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==, + integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, } for-each@0.3.5: @@ -1887,17 +2038,17 @@ packages: } engines: { node: ">= 0.4" } - foreground-child@3.3.0: + foreground-child@3.3.1: resolution: { - integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, + integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==, } engines: { node: ">=14" } - framer-motion@12.4.3: + framer-motion@12.6.3: resolution: { - integrity: sha512-rsMeO7w3dKyNG09o3cGwSH49iHU+VgDmfSSfsX+wfkO3zDA6WWkh4sUsMXd155YROjZP+7FTIhDrBYfgZeHjKQ==, + integrity: sha512-2hsqknz23aloK85bzMc9nSR2/JP+fValQ459ZTVElFQ0xgwR2YqNjYSuDZdFBPOwVCt4Q9jgyTt6hg6sVOALzw==, } peerDependencies: "@emotion/is-prop-valid": "*" @@ -1944,10 +2095,10 @@ packages: integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, } - get-intrinsic@1.2.7: + get-intrinsic@1.3.0: resolution: { - integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==, + integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, } engines: { node: ">= 0.4" } @@ -2177,10 +2328,10 @@ packages: } engines: { node: ">= 0.4" } - is-bun-module@1.3.0: + is-bun-module@2.0.0: resolution: { - integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==, + integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==, } is-callable@1.2.7: @@ -2513,6 +2664,13 @@ packages: } engines: { node: ">=8.6" } + mini-svg-data-uri@1.4.4: + resolution: + { + integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==, + } + hasBin: true + minimatch@3.1.2: resolution: { @@ -2539,22 +2697,22 @@ packages: } engines: { node: ">=16 || 14 >=14.17" } - motion-dom@12.0.0: + motion-dom@12.6.3: resolution: { - integrity: sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==, + integrity: sha512-gRY08RjcnzgFYLemUZ1lo/e9RkBxR+6d4BRvoeZDSeArG4XQXERSPapKl3LNQRu22Sndjf1h+iavgY0O4NrYqA==, } - motion-utils@12.0.0: + motion-utils@12.6.3: resolution: { - integrity: sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==, + integrity: sha512-R/b3Ia2VxtTNZ4LTEO5pKYau1OUNHOuUfxuP0WFCTDYdHkeTBR9UtxR1cc8mDmKr8PEhmmfnTKGz3rSMjNRoRg==, } - motion@12.4.3: + motion@12.6.3: resolution: { - integrity: sha512-KeoMpKFEVdofN0v/z1g3tm4cMtk1WAHQ5Pg7M1ElxeRLA8cBSrkmSCJ9q6hLo7spp/n906h2kmeDNvBkysaxcQ==, + integrity: sha512-zw/vqUgv5F5m9fkvOl/eCv2AF1+tkeZl3fu2uIlisIaip8sm5e0CouAl6GkdiRoF+G7s29CjqMdIyPMirwUGHA==, } peerDependencies: "@emotion/is-prop-valid": "*" @@ -2580,10 +2738,10 @@ packages: integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, } - nanoid@3.3.8: + nanoid@3.3.11: resolution: { - integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, + integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==, } engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true @@ -2657,10 +2815,10 @@ packages: } engines: { node: ">= 0.4" } - object.entries@1.1.8: + object.entries@1.1.9: resolution: { - integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==, + integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==, } engines: { node: ">= 0.4" } @@ -2793,13 +2951,21 @@ packages: } engines: { node: ">=0.10.0" } - pirates@4.0.6: + pirates@4.0.7: resolution: { - integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==, } engines: { node: ">= 6" } + pnpm@10.8.0: + resolution: + { + integrity: sha512-DoJxTRtbQ8dGEBk8sgc0iXwdAN6J0OGEIK68WXf6E9eAqcsFc0Yk6B69gcyHbNRkeUhQZBxIuVRDJrViLKKZcQ==, + } + engines: { node: ">=18.12" } + hasBin: true + possible-typed-array-names@1.1.0: resolution: { @@ -2869,10 +3035,10 @@ packages: } engines: { node: ^10 || ^12 || >=14 } - postcss@8.5.2: + postcss@8.5.3: resolution: { - integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==, + integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==, } engines: { node: ^10 || ^12 || >=14 } @@ -2941,10 +3107,10 @@ packages: prettier-plugin-svelte: optional: true - prettier@3.5.1: + prettier@3.5.3: resolution: { - integrity: sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==, + integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==, } engines: { node: ">=14" } hasBin: true @@ -2976,10 +3142,10 @@ packages: peerDependencies: react: ^18.3.1 - react-icons@5.4.0: + react-icons@5.5.0: resolution: { - integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==, + integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==, } peerDependencies: react: "*" @@ -3103,10 +3269,10 @@ packages: } hasBin: true - reusify@1.0.4: + reusify@1.1.0: resolution: { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==, } engines: { iojs: ">=1.0.0", node: ">=0.10.0" } @@ -3256,10 +3422,10 @@ packages: } engines: { node: ">=0.10.0" } - stable-hash@0.0.4: + stable-hash@0.0.5: resolution: { - integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==, + integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==, } streamsearch@1.1.0: @@ -3398,13 +3564,6 @@ packages: engines: { node: ">=14.0.0" } hasBin: true - tapable@2.2.1: - resolution: - { - integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, - } - engines: { node: ">=6" } - text-table@0.2.0: resolution: { @@ -3424,10 +3583,10 @@ packages: integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, } - tinyglobby@0.2.11: + tinyglobby@0.2.12: resolution: { - integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==, + integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==, } engines: { node: ">=12.0.0" } @@ -3438,10 +3597,10 @@ packages: } engines: { node: ">=8.0" } - ts-api-utils@2.0.1: + ts-api-utils@2.1.0: resolution: { - integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==, + integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==, } engines: { node: ">=18.12" } peerDependencies: @@ -3507,10 +3666,10 @@ packages: } engines: { node: ">= 0.4" } - typescript@5.7.3: + typescript@5.8.3: resolution: { - integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==, + integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==, } engines: { node: ">=14.17" } hasBin: true @@ -3522,10 +3681,16 @@ packages: } engines: { node: ">= 0.4" } - undici-types@6.20.0: + undici-types@6.21.0: + resolution: + { + integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==, + } + + unrs-resolver@1.4.1: resolution: { - integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==, + integrity: sha512-MhPB3wBI5BR8TGieTb08XuYlE8oFVEXdSAgat3psdlRyejl8ojQ8iqPcjh094qCZ1r+TnkxzP6BeCd/umfHckQ==, } uri-js@4.4.1: @@ -3587,10 +3752,10 @@ packages: } engines: { node: ">= 0.4" } - which-typed-array@1.1.18: + which-typed-array@1.1.19: resolution: { - integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==, + integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==, } engines: { node: ">= 0.4" } @@ -3629,10 +3794,10 @@ packages: integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, } - yaml@2.7.0: + yaml@2.7.1: resolution: { - integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==, + integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==, } engines: { node: ">= 14" } hasBin: true @@ -3653,16 +3818,27 @@ packages: snapshots: "@alloc/quick-lru@5.2.0": {} - "@babel/runtime@7.26.9": + "@babel/runtime@7.27.0": dependencies: regenerator-runtime: 0.14.1 - "@emnapi/runtime@1.3.1": + "@emnapi/core@1.4.0": + dependencies: + "@emnapi/wasi-threads": 1.0.1 + tslib: 2.8.1 + optional: true + + "@emnapi/runtime@1.4.0": dependencies: tslib: 2.8.1 optional: true - "@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)": + "@emnapi/wasi-threads@1.0.1": + dependencies: + tslib: 2.8.1 + optional: true + + "@eslint-community/eslint-utils@4.5.1(eslint@8.57.1)": dependencies: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 @@ -3780,7 +3956,7 @@ snapshots: "@img/sharp-wasm32@0.33.5": dependencies: - "@emnapi/runtime": 1.3.1 + "@emnapi/runtime": 1.4.0 optional: true "@img/sharp-win32-ia32@0.33.5": @@ -3815,6 +3991,13 @@ snapshots: "@jridgewell/resolve-uri": 3.1.2 "@jridgewell/sourcemap-codec": 1.5.0 + "@napi-rs/wasm-runtime@0.2.8": + dependencies: + "@emnapi/core": 1.4.0 + "@emnapi/runtime": 1.4.0 + "@tybys/wasm-util": 0.9.0 + optional: true + "@next/env@14.2.23": {} "@next/eslint-plugin-next@14.2.13": @@ -3858,297 +4041,297 @@ snapshots: "@nodelib/fs.walk@1.2.8": dependencies: "@nodelib/fs.scandir": 2.1.5 - fastq: 1.19.0 + fastq: 1.19.1 "@nolyfill/is-core-module@1.0.39": {} "@pkgjs/parseargs@0.11.0": optional: true - "@radix-ui/primitive@1.1.1": {} + "@radix-ui/primitive@1.1.2": {} - "@radix-ui/react-accordion@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-accordion@1.2.4(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/primitive": 1.1.1 - "@radix-ui/react-collapsible": 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-collection": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-context": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-direction": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-id": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-collapsible": 1.1.4(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-collection": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-direction": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-arrow@1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) - - "@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": - dependencies: - "@radix-ui/primitive": 1.1.1 - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-context": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-id": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-presence": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) + + "@radix-ui/react-collapsible@1.1.4(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-presence": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-collection@1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-context": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.1.2(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.0(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.20)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-context@1.1.2(@types/react@18.3.20)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 - - "@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": - dependencies: - "@radix-ui/primitive": 1.1.1 - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-context": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-focus-guards": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-focus-scope": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-id": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-portal": 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.1.2(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@types/react": 18.3.20 + + "@radix-ui/react-dialog@1.1.7(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.6(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-focus-guards": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-focus-scope": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-portal": 1.1.5(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.0(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.1.1(@types/react@18.3.20)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.20)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-direction@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-dismissable-layer@1.1.6(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/primitive": 1.1.1 - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-escape-keydown": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-escape-keydown": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-focus-guards@1.1.2(@types/react@18.3.20)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-focus-scope@1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-id@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: - "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 - - "@radix-ui/react-popover@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": - dependencies: - "@radix-ui/primitive": 1.1.1 - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-context": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-focus-guards": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-focus-scope": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-id": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-popper": 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-portal": 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.1.2(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@types/react": 18.3.20 + + "@radix-ui/react-popover@1.1.7(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.6(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-focus-guards": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-focus-scope": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-popper": 1.2.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.5(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.0(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.1.1(@types/react@18.3.20)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1) + react-remove-scroll: 2.6.3(@types/react@18.3.20)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-popper@1.2.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@floating-ui/react-dom": 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-arrow": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-context": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-rect": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-size": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/rect": 1.1.0 + "@radix-ui/react-arrow": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-rect": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-size": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/rect": 1.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-portal@1.1.5(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-presence@1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-primitive@2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-slot": 1.1.2(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-slot": 1.2.0(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-slot@1.2.0(@types/react@18.3.20)(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 - - "@radix-ui/react-toast@1.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": - dependencies: - "@radix-ui/primitive": 1.1.1 - "@radix-ui/react-collection": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-context": 1.1.1(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-portal": 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.18)(react@18.3.1) - "@radix-ui/react-visually-hidden": 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@types/react": 18.3.20 + + "@radix-ui/react-toast@1.2.7(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@radix-ui/primitive": 1.1.2 + "@radix-ui/react-collection": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.6(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.5(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.20)(react@18.3.1) + "@radix-ui/react-visually-hidden": 1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-use-controllable-state@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: - "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: - "@radix-ui/react-use-callback-ref": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-use-rect@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: - "@radix-ui/rect": 1.1.0 + "@radix-ui/rect": 1.1.1 react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)": + "@radix-ui/react-use-size@1.1.1(@types/react@18.3.20)(react@18.3.1)": dependencies: - "@radix-ui/react-use-layout-effect": 1.1.0(@types/react@18.3.18)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.20)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-visually-hidden@1.1.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.0.3(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 - "@types/react-dom": 18.3.5(@types/react@18.3.18) + "@types/react": 18.3.20 + "@types/react-dom": 18.3.6(@types/react@18.3.20) - "@radix-ui/rect@1.1.0": {} + "@radix-ui/rect@1.1.1": {} "@rtsao/scc@1.1.0": {} - "@rushstack/eslint-patch@1.10.5": {} + "@rushstack/eslint-patch@1.11.0": {} "@swc/counter@0.1.3": {} @@ -4157,136 +4340,193 @@ snapshots: "@swc/counter": 0.1.3 tslib: 2.8.1 - "@t3-oss/env-core@0.11.1(typescript@5.7.3)(zod@3.24.2)": + "@t3-oss/env-core@0.11.1(typescript@5.8.3)(zod@3.24.2)": dependencies: zod: 3.24.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.3 - "@t3-oss/env-nextjs@0.11.1(typescript@5.7.3)(zod@3.24.2)": + "@t3-oss/env-nextjs@0.11.1(typescript@5.8.3)(zod@3.24.2)": dependencies: - "@t3-oss/env-core": 0.11.1(typescript@5.7.3)(zod@3.24.2) + "@t3-oss/env-core": 0.11.1(typescript@5.8.3)(zod@3.24.2) zod: 3.24.2 optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.3 + + "@tailwindcss/forms@0.5.10(tailwindcss@3.4.17)": + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 3.4.17 - "@tanstack/query-core@5.66.4": {} + "@tanstack/query-core@5.72.2": {} - "@tanstack/react-query@5.66.5(react@18.3.1)": + "@tanstack/react-query@5.72.2(react@18.3.1)": dependencies: - "@tanstack/query-core": 5.66.4 + "@tanstack/query-core": 5.72.2 react: 18.3.1 + "@tybys/wasm-util@0.9.0": + dependencies: + tslib: 2.8.1 + optional: true + "@types/eslint@8.56.12": dependencies: - "@types/estree": 1.0.6 + "@types/estree": 1.0.7 "@types/json-schema": 7.0.15 - "@types/estree@1.0.6": {} + "@types/estree@1.0.7": {} "@types/json-schema@7.0.15": {} "@types/json5@0.0.29": {} - "@types/node@22.13.4": + "@types/node@22.14.0": dependencies: - undici-types: 6.20.0 + undici-types: 6.21.0 "@types/prop-types@15.7.14": {} - "@types/react-dom@18.3.5(@types/react@18.3.18)": + "@types/react-dom@18.3.6(@types/react@18.3.20)": dependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - "@types/react@18.3.18": + "@types/react@18.3.20": dependencies: "@types/prop-types": 15.7.14 csstype: 3.1.3 - "@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)": + "@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)": dependencies: "@eslint-community/regexpp": 4.12.1 - "@typescript-eslint/parser": 8.24.1(eslint@8.57.1)(typescript@5.7.3) - "@typescript-eslint/scope-manager": 8.24.1 - "@typescript-eslint/type-utils": 8.24.1(eslint@8.57.1)(typescript@5.7.3) - "@typescript-eslint/utils": 8.24.1(eslint@8.57.1)(typescript@5.7.3) - "@typescript-eslint/visitor-keys": 8.24.1 + "@typescript-eslint/parser": 8.29.1(eslint@8.57.1)(typescript@5.8.3) + "@typescript-eslint/scope-manager": 8.29.1 + "@typescript-eslint/type-utils": 8.29.1(eslint@8.57.1)(typescript@5.8.3) + "@typescript-eslint/utils": 8.29.1(eslint@8.57.1)(typescript@5.8.3) + "@typescript-eslint/visitor-keys": 8.29.1 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3)": + "@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3)": dependencies: - "@typescript-eslint/scope-manager": 8.24.1 - "@typescript-eslint/types": 8.24.1 - "@typescript-eslint/typescript-estree": 8.24.1(typescript@5.7.3) - "@typescript-eslint/visitor-keys": 8.24.1 + "@typescript-eslint/scope-manager": 8.29.1 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/typescript-estree": 8.29.1(typescript@5.8.3) + "@typescript-eslint/visitor-keys": 8.29.1 debug: 4.4.0 eslint: 8.57.1 - typescript: 5.7.3 + typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/scope-manager@8.24.1": + "@typescript-eslint/scope-manager@8.29.1": dependencies: - "@typescript-eslint/types": 8.24.1 - "@typescript-eslint/visitor-keys": 8.24.1 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/visitor-keys": 8.29.1 - "@typescript-eslint/type-utils@8.24.1(eslint@8.57.1)(typescript@5.7.3)": + "@typescript-eslint/type-utils@8.29.1(eslint@8.57.1)(typescript@5.8.3)": dependencies: - "@typescript-eslint/typescript-estree": 8.24.1(typescript@5.7.3) - "@typescript-eslint/utils": 8.24.1(eslint@8.57.1)(typescript@5.7.3) + "@typescript-eslint/typescript-estree": 8.29.1(typescript@5.8.3) + "@typescript-eslint/utils": 8.29.1(eslint@8.57.1)(typescript@5.8.3) debug: 4.4.0 eslint: 8.57.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/types@8.24.1": {} + "@typescript-eslint/types@8.29.1": {} - "@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)": + "@typescript-eslint/typescript-estree@8.29.1(typescript@5.8.3)": dependencies: - "@typescript-eslint/types": 8.24.1 - "@typescript-eslint/visitor-keys": 8.24.1 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/visitor-keys": 8.29.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.7.3) - typescript: 5.7.3 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/utils@8.24.1(eslint@8.57.1)(typescript@5.7.3)": + "@typescript-eslint/utils@8.29.1(eslint@8.57.1)(typescript@5.8.3)": dependencies: - "@eslint-community/eslint-utils": 4.4.1(eslint@8.57.1) - "@typescript-eslint/scope-manager": 8.24.1 - "@typescript-eslint/types": 8.24.1 - "@typescript-eslint/typescript-estree": 8.24.1(typescript@5.7.3) + "@eslint-community/eslint-utils": 4.5.1(eslint@8.57.1) + "@typescript-eslint/scope-manager": 8.29.1 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/typescript-estree": 8.29.1(typescript@5.8.3) eslint: 8.57.1 - typescript: 5.7.3 + typescript: 5.8.3 transitivePeerDependencies: - supports-color - "@typescript-eslint/visitor-keys@8.24.1": + "@typescript-eslint/visitor-keys@8.29.1": dependencies: - "@typescript-eslint/types": 8.24.1 + "@typescript-eslint/types": 8.29.1 eslint-visitor-keys: 4.2.0 "@ungap/structured-clone@1.3.0": {} - acorn-jsx@5.3.2(acorn@8.14.0): + "@unrs/resolver-binding-darwin-arm64@1.4.1": + optional: true + + "@unrs/resolver-binding-darwin-x64@1.4.1": + optional: true + + "@unrs/resolver-binding-freebsd-x64@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-arm-musleabihf@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-arm64-gnu@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-arm64-musl@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-ppc64-gnu@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-s390x-gnu@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-x64-gnu@1.4.1": + optional: true + + "@unrs/resolver-binding-linux-x64-musl@1.4.1": + optional: true + + "@unrs/resolver-binding-wasm32-wasi@1.4.1": dependencies: - acorn: 8.14.0 + "@napi-rs/wasm-runtime": 0.2.8 + optional: true - acorn@8.14.0: {} + "@unrs/resolver-binding-win32-arm64-msvc@1.4.1": + optional: true + + "@unrs/resolver-binding-win32-ia32-msvc@1.4.1": + optional: true + + "@unrs/resolver-binding-win32-x64-msvc@1.4.1": + optional: true + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn@8.14.1: {} ajv@6.12.6: dependencies: @@ -4324,7 +4564,7 @@ snapshots: array-buffer-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-array-buffer: 3.0.5 array-includes@3.1.8: @@ -4333,7 +4573,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-string: 1.1.1 array.prototype.findlast@1.2.5: @@ -4345,9 +4585,10 @@ snapshots: es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 - array.prototype.findlastindex@1.2.5: + array.prototype.findlastindex@1.2.6: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 @@ -4383,7 +4624,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 ast-types-flow@0.0.8: {} @@ -4394,7 +4635,7 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axe-core@4.10.2: {} + axe-core@4.10.3: {} axobject-query@4.1.0: {} @@ -4428,19 +4669,19 @@ snapshots: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 - call-bound@1.0.3: + call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 callsites@3.1.0: {} camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001700: {} + caniuse-lite@1.0.30001712: {} chalk@4.1.2: dependencies: @@ -4495,19 +4736,19 @@ snapshots: data-view-buffer@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-offset@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 @@ -4563,18 +4804,13 @@ snapshots: emoji-regex@9.2.2: {} - enhanced-resolve@5.18.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 @@ -4584,7 +4820,7 @@ snapshots: es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -4620,7 +4856,7 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 es-define-property@1.0.1: {} @@ -4629,13 +4865,13 @@ snapshots: es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -4652,7 +4888,7 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -4668,21 +4904,21 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@14.2.13(eslint@8.57.1)(typescript@5.7.3): + eslint-config-next@14.2.13(eslint@8.57.1)(typescript@5.8.3): dependencies: "@next/eslint-plugin-next": 14.2.13 - "@rushstack/eslint-patch": 1.10.5 - "@typescript-eslint/eslint-plugin": 8.24.1(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) - "@typescript-eslint/parser": 8.24.1(eslint@8.57.1)(typescript@5.7.3) + "@rushstack/eslint-patch": 1.11.0 + "@typescript-eslint/eslint-plugin": 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + "@typescript-eslint/parser": 8.29.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.8.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.1)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-react: 7.37.4(eslint@8.57.1) + eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.3 transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x @@ -4696,44 +4932,44 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.8.1(eslint-plugin-import@2.31.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: "@nolyfill/is-core-module": 1.0.39 debug: 4.4.0 - enhanced-resolve: 5.18.1 eslint: 8.57.1 get-tsconfig: 4.10.0 - is-bun-module: 1.3.0 - stable-hash: 0.0.4 - tinyglobby: 0.2.11 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.12 + unrs-resolver: 1.4.1 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.1)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.1(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - "@typescript-eslint/parser": 8.24.1(eslint@8.57.1)(typescript@5.7.3) + "@typescript-eslint/parser": 8.29.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.8.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.1)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1): dependencies: "@rtsao/scc": 1.1.0 array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 + array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.24.1(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.1(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -4745,7 +4981,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - "@typescript-eslint/parser": 8.24.1(eslint@8.57.1)(typescript@5.7.3) + "@typescript-eslint/parser": 8.29.1(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -4757,7 +4993,7 @@ snapshots: array-includes: 3.1.8 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.10.2 + axe-core: 4.10.3 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 @@ -4774,7 +5010,7 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-react@7.37.4(eslint@8.57.1): + eslint-plugin-react@7.37.5(eslint@8.57.1): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -4787,7 +5023,7 @@ snapshots: hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.8 + object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 @@ -4807,7 +5043,7 @@ snapshots: eslint@8.57.1: dependencies: - "@eslint-community/eslint-utils": 4.4.1(eslint@8.57.1) + "@eslint-community/eslint-utils": 4.5.1(eslint@8.57.1) "@eslint-community/regexpp": 4.12.1 "@eslint/eslintrc": 2.1.4 "@eslint/js": 8.57.1 @@ -4850,8 +5086,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 3.4.3 esquery@1.6.0: @@ -4880,9 +5116,9 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.19.0: + fastq@1.19.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 fdir@6.4.3(picomatch@4.0.2): optionalDependencies: @@ -4903,25 +5139,25 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 rimraf: 3.0.2 - flatted@3.3.2: {} + flatted@3.3.3: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 - foreground-child@3.3.0: + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - framer-motion@12.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@12.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 12.0.0 - motion-utils: 12.0.0 + motion-dom: 12.6.3 + motion-utils: 12.6.3 tslib: 2.8.1 optionalDependencies: react: 18.3.1 @@ -4937,7 +5173,7 @@ snapshots: function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 hasown: 2.0.2 @@ -4945,7 +5181,7 @@ snapshots: functions-have-names@1.2.3: {} - get-intrinsic@1.2.7: + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -4967,9 +5203,9 @@ snapshots: get-symbol-description@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-tsconfig@4.10.0: dependencies: @@ -4985,7 +5221,7 @@ snapshots: glob@10.3.10: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.3.1 jackspeak: 2.3.6 minimatch: 9.0.5 minipass: 7.1.2 @@ -4993,7 +5229,7 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.3.0 + foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 @@ -5071,15 +5307,15 @@ snapshots: is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-arrayish@0.3.2: {} is-async-function@2.1.1: dependencies: async-function: 1.0.0 - call-bound: 1.0.3 + call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -5094,10 +5330,10 @@ snapshots: is-boolean-object@1.2.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-bun-module@1.3.0: + is-bun-module@2.0.0: dependencies: semver: 7.7.1 @@ -5109,26 +5345,26 @@ snapshots: is-data-view@1.0.2: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-fullwidth-code-point@3.0.0: {} is-generator-function@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -5141,7 +5377,7 @@ snapshots: is-number-object@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -5150,7 +5386,7 @@ snapshots: is-regex@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -5159,33 +5395,33 @@ snapshots: is-shared-array-buffer@1.0.4: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-string@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-symbol@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 is-weakmap@2.0.2: {} is-weakref@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-weakset@2.0.4: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 isarray@2.0.5: {} @@ -5195,7 +5431,7 @@ snapshots: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 @@ -5270,7 +5506,7 @@ snapshots: match-sorter@8.0.0: dependencies: - "@babel/runtime": 7.26.9 + "@babel/runtime": 7.27.0 remove-accents: 0.5.0 math-intrinsics@1.1.0: {} @@ -5282,6 +5518,8 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mini-svg-data-uri@1.4.4: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -5294,15 +5532,15 @@ snapshots: minipass@7.1.2: {} - motion-dom@12.0.0: + motion-dom@12.6.3: dependencies: - motion-utils: 12.0.0 + motion-utils: 12.6.3 - motion-utils@12.0.0: {} + motion-utils@12.6.3: {} - motion@12.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + motion@12.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - framer-motion: 12.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 12.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 optionalDependencies: react: 18.3.1 @@ -5316,7 +5554,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.8: {} + nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -5325,7 +5563,7 @@ snapshots: "@next/env": 14.2.23 "@swc/helpers": 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001700 + caniuse-lite: 1.0.30001712 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 @@ -5358,15 +5596,16 @@ snapshots: object.assign@4.1.7: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.8: + object.entries@1.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -5386,7 +5625,7 @@ snapshots: object.values@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -5405,7 +5644,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -5444,32 +5683,34 @@ snapshots: pify@2.3.0: {} - pirates@4.0.6: {} + pirates@4.0.7: {} + + pnpm@10.8.0: {} possible-typed-array-names@1.1.0: {} - postcss-import@15.1.0(postcss@8.5.2): + postcss-import@15.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.2 + postcss: 8.5.3 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.5.2): + postcss-js@4.0.1(postcss@8.5.3): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.2 + postcss: 8.5.3 - postcss-load-config@4.0.2(postcss@8.5.2): + postcss-load-config@4.0.2(postcss@8.5.3): dependencies: lilconfig: 3.1.3 - yaml: 2.7.0 + yaml: 2.7.1 optionalDependencies: - postcss: 8.5.2 + postcss: 8.5.3 - postcss-nested@6.2.0(postcss@8.5.2): + postcss-nested@6.2.0(postcss@8.5.3): dependencies: - postcss: 8.5.2 + postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.1.2: @@ -5481,23 +5722,23 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.2: + postcss@8.5.3: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.11(prettier@3.5.1): + prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3): dependencies: - prettier: 3.5.1 + prettier: 3.5.3 - prettier@3.5.1: {} + prettier@3.5.3: {} prop-types@15.8.1: dependencies: @@ -5515,38 +5756,38 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-icons@5.4.0(react@18.3.1): + react-icons@5.5.0(react@18.3.1): dependencies: react: 18.3.1 react-is@16.13.1: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@18.3.20)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.20)(react@18.3.1) tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1): + react-remove-scroll@2.6.3(@types/react@18.3.20)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + react-remove-scroll-bar: 2.3.8(@types/react@18.3.20)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.20)(react@18.3.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@18.3.20)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.20)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.20)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 react@18.3.1: dependencies: @@ -5567,7 +5808,7 @@ snapshots: es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -5600,7 +5841,7 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} + reusify@1.1.0: {} rimraf@3.0.2: dependencies: @@ -5613,8 +5854,8 @@ snapshots: safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 @@ -5625,7 +5866,7 @@ snapshots: safe-regex-test@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 @@ -5642,7 +5883,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -5698,16 +5939,16 @@ snapshots: side-channel-map@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 @@ -5727,7 +5968,7 @@ snapshots: source-map-js@1.2.1: {} - stable-hash@0.0.4: {} + stable-hash@0.0.5: {} streamsearch@1.1.0: {} @@ -5752,12 +5993,12 @@ snapshots: string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 @@ -5773,7 +6014,7 @@ snapshots: string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.23.9 @@ -5783,7 +6024,7 @@ snapshots: string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -5817,7 +6058,7 @@ snapshots: glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 - pirates: 4.0.6 + pirates: 4.0.7 ts-interface-checker: 0.1.13 supports-color@7.2.0: @@ -5842,19 +6083,17 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.2 - postcss-import: 15.1.0(postcss@8.5.2) - postcss-js: 4.0.1(postcss@8.5.2) - postcss-load-config: 4.0.2(postcss@8.5.2) - postcss-nested: 6.2.0(postcss@8.5.2) + postcss: 8.5.3 + postcss-import: 15.1.0(postcss@8.5.3) + postcss-js: 4.0.1(postcss@8.5.3) + postcss-load-config: 4.0.2(postcss@8.5.3) + postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 transitivePeerDependencies: - ts-node - tapable@2.2.1: {} - text-table@0.2.0: {} thenify-all@1.6.0: @@ -5865,7 +6104,7 @@ snapshots: dependencies: any-promise: 1.3.0 - tinyglobby@0.2.11: + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 @@ -5874,9 +6113,9 @@ snapshots: dependencies: is-number: 7.0.0 - ts-api-utils@2.0.1(typescript@5.7.3): + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: - typescript: 5.7.3 + typescript: 5.8.3 ts-interface-checker@0.1.13: {} @@ -5897,7 +6136,7 @@ snapshots: typed-array-buffer@1.0.3: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 @@ -5928,35 +6167,53 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript@5.7.3: {} + typescript@5.8.3: {} unbox-primitive@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.20.0: {} + undici-types@6.21.0: {} + + unrs-resolver@1.4.1: + optionalDependencies: + "@unrs/resolver-binding-darwin-arm64": 1.4.1 + "@unrs/resolver-binding-darwin-x64": 1.4.1 + "@unrs/resolver-binding-freebsd-x64": 1.4.1 + "@unrs/resolver-binding-linux-arm-gnueabihf": 1.4.1 + "@unrs/resolver-binding-linux-arm-musleabihf": 1.4.1 + "@unrs/resolver-binding-linux-arm64-gnu": 1.4.1 + "@unrs/resolver-binding-linux-arm64-musl": 1.4.1 + "@unrs/resolver-binding-linux-ppc64-gnu": 1.4.1 + "@unrs/resolver-binding-linux-s390x-gnu": 1.4.1 + "@unrs/resolver-binding-linux-x64-gnu": 1.4.1 + "@unrs/resolver-binding-linux-x64-musl": 1.4.1 + "@unrs/resolver-binding-wasm32-wasi": 1.4.1 + "@unrs/resolver-binding-win32-arm64-msvc": 1.4.1 + "@unrs/resolver-binding-win32-ia32-msvc": 1.4.1 + "@unrs/resolver-binding-win32-x64-msvc": 1.4.1 uri-js@4.4.1: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): + use-callback-ref@1.3.3(@types/react@18.3.20)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 - use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.20)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.18 + "@types/react": 18.3.20 util-deprecate@1.0.2: {} @@ -5970,7 +6227,7 @@ snapshots: which-builtin-type@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.1.1 @@ -5982,7 +6239,7 @@ snapshots: isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 which-collection@1.0.2: dependencies: @@ -5991,12 +6248,13 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.18: + which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 for-each: 0.3.5 + get-proto: 1.0.1 gopd: 1.2.0 has-tostringtag: 1.0.2 @@ -6020,7 +6278,7 @@ snapshots: wrappy@1.0.2: {} - yaml@2.7.0: {} + yaml@2.7.1: {} yocto-queue@0.1.0: {} diff --git a/frontend/public/images/DevDogsLogo.png b/frontend/public/images/DevDogsLogo.png new file mode 100644 index 00000000..445dfd8a Binary files /dev/null and b/frontend/public/images/DevDogsLogo.png differ diff --git a/frontend/public/images/GoogleDevLogo.png b/frontend/public/images/GoogleDevLogo.png new file mode 100644 index 00000000..9083dfba Binary files /dev/null and b/frontend/public/images/GoogleDevLogo.png differ diff --git a/frontend/public/images/WordmarkMascot.png b/frontend/public/images/WordmarkMascot.png new file mode 100644 index 00000000..bd92a051 Binary files /dev/null and b/frontend/public/images/WordmarkMascot.png differ diff --git a/frontend/public/images/devdogCobranded.png b/frontend/public/images/devdogCobranded.png new file mode 100644 index 00000000..62f6976a Binary files /dev/null and b/frontend/public/images/devdogCobranded.png differ diff --git a/frontend/src/app/course-adding/page.tsx b/frontend/src/app/course-adding/page.tsx deleted file mode 100644 index 8fe6f3b4..00000000 --- a/frontend/src/app/course-adding/page.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { SearchFilter } from "@/components/Filters"; -import { Navbar } from "@/components/Navbar"; -import CourseDisplay from "@/components/courses/CourseDisplay"; -import Link from "next/link"; - -interface Props { - /** - * The current URL search params. - */ - searchParams: Record; -} - -export default function Page({ searchParams }: Props) { - return ( -
- -
- - -
- -
-
-
- ); -} diff --git a/frontend/src/app/create/page.tsx b/frontend/src/app/create/page.tsx new file mode 100644 index 00000000..5927248a --- /dev/null +++ b/frontend/src/app/create/page.tsx @@ -0,0 +1,35 @@ +import Filters from "@/components/Filters"; +import { Navbar } from "@/components/Navbar"; +import CourseDisplay from "@/components/courses/CourseDisplay"; +import { PiSparkleBold } from "react-icons/pi"; +import background from "../../../public/images/background.png"; + +interface Props { + /** + * The current URL search params. + */ + searchParams: Record; +} + +export default function Page({ searchParams }: Props) { + return ( +
+ +
+ + +
+ +
+
+
+ ); +} diff --git a/frontend/src/app/credit-data/page.tsx b/frontend/src/app/credit-data/page.tsx index 41eff3f9..804c2ab8 100644 --- a/frontend/src/app/credit-data/page.tsx +++ b/frontend/src/app/credit-data/page.tsx @@ -1,7 +1,6 @@ // Returning User: -> Past Credit Data // New User: -> Past Credit Data page -> option(Home or Schedule Generaton(\schedules)) import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; import Link from "next/link"; export default function CreditData() { diff --git a/frontend/src/app/generate-schedule/page.tsx b/frontend/src/app/generate-schedule/page.tsx index da616660..a7a04e88 100644 --- a/frontend/src/app/generate-schedule/page.tsx +++ b/frontend/src/app/generate-schedule/page.tsx @@ -1,5 +1,4 @@ import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; import Link from "next/link"; export default function GenerateSchedules() { @@ -19,7 +18,7 @@ export default function GenerateSchedules() {
diff --git a/frontend/src/app/login/page.tsx b/frontend/src/app/login/page.tsx index 1ba2d18b..ded0d33a 100644 --- a/frontend/src/app/login/page.tsx +++ b/frontend/src/app/login/page.tsx @@ -2,7 +2,6 @@ // If new user -> Signup import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; import Link from "next/link"; export default function Login() { diff --git a/frontend/src/app/not-found.tsx b/frontend/src/app/not-found.tsx index 05d2a619..264763e9 100644 --- a/frontend/src/app/not-found.tsx +++ b/frontend/src/app/not-found.tsx @@ -11,7 +11,7 @@ export default function NotFound() { + + + + )} + +
+ {savedPlans + .toSorted((a, b) => (a.pinned !== b.pinned ? (a.pinned ? -1 : 1) : 0)) + .map((plan) => ( + + pinPlan(plan.id)} + onDelete={() => confirmDeletePlan(plan.id)} + /> + + ))} +
+ + {planToDelete && ( + + )} + + ); +} diff --git a/frontend/src/app/questionnaire/page.tsx b/frontend/src/app/questionnaire/page.tsx index c701a370..850ad9d0 100644 --- a/frontend/src/app/questionnaire/page.tsx +++ b/frontend/src/app/questionnaire/page.tsx @@ -1,7 +1,6 @@ // Returning User: -> Past Credit Data // New User: -> Past Credit Data page -> option(Home or Schedule Generaton(\schedules)) import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; import Link from "next/link"; export default function Questionnaire() { diff --git a/frontend/src/app/route-map/page.tsx b/frontend/src/app/route-map/page.tsx index a25227ab..91fb7abb 100644 --- a/frontend/src/app/route-map/page.tsx +++ b/frontend/src/app/route-map/page.tsx @@ -1,7 +1,6 @@ // Returning User: option to return Home or return Schedule View // New User: option to return Home or returen Schdeule View import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; import Link from "next/link"; export default function RouteMap() { diff --git a/frontend/src/app/saved-plans/choose-plan/page.tsx b/frontend/src/app/saved-plans/choose-plan/page.tsx deleted file mode 100644 index ff446e1b..00000000 --- a/frontend/src/app/saved-plans/choose-plan/page.tsx +++ /dev/null @@ -1,375 +0,0 @@ -"use client"; -// Returning User: -> Schedule View (\schedules) -// New User: -> Schedule View (\schedules) - -// make class blocks clickable to access more -import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; -import Link from "next/link"; -import { type WeekSchedule as WeekScheduleType } from "@/types/scheduleTypes"; -import WeekSchedule from "@/components/schedules/WeekSchedule"; -import { useState, useEffect } from "react"; -import SavedPlan from "@/components/saved-plans/SavedPlan"; - -export default function ChoosePlan() { - const savedPlansList = [ - { - href: "/schedules", - text: "Plan 1", - }, - { - href: "/saved-plans", - text: "Plan 2", - }, - ]; - - const weekScheduleData: WeekScheduleType = { - Monday: [ - { - classTitle: "CSCI 3030", - className: "Computing, Ethics, and Society", - description: - "Introduction to social and ethical issues relating to computer science and information technology. Topics include privacy, intellectual property, open-source software, the digital divide, globalization, professional ethics, social justice issues, and current events. Students should have a working knowledge of personal computing.", - locationLong: "Boyd Research and Education Center 100", - locationShort: "Boyd 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "8:00 am", - timeEnd: "8:50 am", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "MW", - otherTimes: ["F", "8:00 am - 8:50 am", "Chemistry 100"], - }, - - { - classTitle: "CSCI 1302", - className: "Software Development", - description: "The course description will be displayed here.", - locationLong: "Conner Hall 100", - locationShort: "Conner 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "All", - timeStart: "10:20 am", - timeEnd: "11:10 am", - timeDifference: null, - credits: 4, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "M", - otherTimes: ["TR", "9:35 am - 10:50 am", "Food Sci 100"], - }, - - { - classTitle: "BIOL 1103", - className: "Topics in Biology", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103L", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "1:30 pm", - timeEnd: "2:20 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - - currentDay: "MWF", - otherTimes: ["", "", ""], - }, - ], - - Tuesday: [ - { - classTitle: "CSCI 1302", - className: "Software Development", - description: "The course description will be displayed here.", - locationLong: "Food Science 100", - locationShort: "Food Sci 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "All", - timeStart: "9:35 am", - timeEnd: "10:50 am", - timeDifference: null, - credits: 4, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "TR", - otherTimes: ["M", "10:20 am - 11:10 am", "Conner 100"], - }, - - { - classTitle: "MUSI 2300", - className: "Music in Athens", - description: - "Explores national and international musical and cultural trends. The course draws from Athens, Georgia’s diverse musical communities and their histories, exploring the rock, hip hop, and indie popular music scenes along with African-American traditions, folk and traditional musics, and the emergent Latin music scene.", - locationLong: "Hugh Hudgson School of Music 100", - locationShort: "Hugh Hudgson 100", - prereq: "", - coreq: "", - professor: "Jane Doe", - semester: "Spring", - timeStart: "12:45 pm", - timeEnd: "2:00 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-lake-herrick", - borderColor: "border-lake-herrick", - currentDay: "TR", - otherTimes: ["", "", ""], - }, - ], - - Wednesday: [ - { - classTitle: "CSCI 3030", - className: "Computing, Ethics, and Society", - description: "The course description will be displayed here.", - locationLong: "Boyd Research and Education Center 100", - locationShort: "Boyd 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "8:00 am", - timeEnd: "8:50 am", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "MW", - otherTimes: ["F", "8:00 am - 8:50 am", "Chemistry 100"], - }, - - { - classTitle: "BIOL 1103", - className: "Topics in Biology", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103L", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "1:30 pm", - timeEnd: "2:20 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - currentDay: "MWF", - otherTimes: ["", "", ""], - }, - ], - - Thursday: [ - { - classTitle: "CSCI 1302", - className: "Software Development", - description: "The course description will be displayed here.", - locationLong: "Food Science 100", - locationShort: "Food Sci 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "9:35 am", - timeEnd: "10:50 am", - timeDifference: null, - credits: 4, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "TR", - otherTimes: ["M", "10:20 am - 11:10 am", "Conner 100"], - }, - - { - classTitle: "MUSI 2300", - className: "Music in Athens", - description: "The course description will be displayed here.", - locationLong: "Hugh Hudgson School of Music 100", - locationShort: "Hugh Hudgson 100", - prereq: "ENGL 1102", - coreq: "", - professor: "Jane Doe", - semester: "Spring", - timeStart: "12:45 pm", - timeEnd: "2:00 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-lake-herrick", - borderColor: "border-lake-herrick", - currentDay: "TR", - otherTimes: ["", "", ""], - }, - - { - classTitle: "BIOL 1103L", - className: "Concepts in Biology Laboratory", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "2:20 pm", - timeEnd: "4:15 pm", - timeDifference: null, - credits: 1, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - currentDay: "R", - otherTimes: ["", "", ""], - }, - ], - - Friday: [ - { - classTitle: "CSCI 3030", - className: "Computing, Ethics, and Society", - description: "The course description will be displayed here.", - locationLong: "Boyd Research and Education Center 100", - locationShort: "Chemistry 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "8:00 am", - timeEnd: "8:50 am", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "F", - otherTimes: ["MW", "8:00 - 8:50 am", "Boyd 100"], - }, - - { - classTitle: "BIOL 1103", - className: "Topics in Biology", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103L", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "1:30 pm", - timeEnd: "2:20 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - currentDay: "MWF", - otherTimes: ["", "", ""], - }, - ], - - // Add more days as needed - }; - - return ( -
- - {/* Options for creating and modifying saved plans */} -
-

- Select a plan or create a new one. -

-
- - - - -
-
- - {/* List of saved plans (placeholder list of 2): We can add more when the saving functionality is actually implemented. - Should this be an array? */} -
- - -
-
- ); -} diff --git a/frontend/src/app/saved-plans/page.tsx b/frontend/src/app/saved-plans/page.tsx deleted file mode 100644 index e001393c..00000000 --- a/frontend/src/app/saved-plans/page.tsx +++ /dev/null @@ -1,29 +0,0 @@ -// Returning User: -> Schedule View (\schedules) -// New User: -> Schedule View (\schedules) - -"use client"; -// make class blocks clickable to access more -import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; -import Link from "next/link"; - -export default function SavedPlans() { - return ( -
- -
-
-

- There are currently no saved plans. -

- - - -
-
-
- ); -} diff --git a/frontend/src/app/schedules/page.tsx b/frontend/src/app/schedules/page.tsx deleted file mode 100644 index 1e233c6b..00000000 --- a/frontend/src/app/schedules/page.tsx +++ /dev/null @@ -1,333 +0,0 @@ -// Returning User: -> Saved Plans -// New User: -> Saved Plans - -import { type WeekSchedule as WeekScheduleType } from "@/types/scheduleTypes"; -import WeekSchedule from "@/components/schedules/WeekSchedule"; -import Link from "next/link"; - -export default function SchedulePage() { - const weekScheduleData: WeekScheduleType = { - Monday: [ - { - classTitle: "CSCI 3030", - className: "Computing, Ethics, and Society", - description: - "Introduction to social and ethical issues relating to computer science and information technology. Topics include privacy, intellectual property, open-source software, the digital divide, globalization, professional ethics, social justice issues, and current events. Students should have a working knowledge of personal computing.", - locationLong: "Boyd Research and Education Center 100", - locationShort: "Boyd 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "8:00 am", - timeEnd: "8:50 am", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "MW", - otherTimes: ["F", "8:00 am - 8:50 am", "Chemistry 100"], - }, - - { - classTitle: "CSCI 1302", - className: "Software Development", - description: "The course description will be displayed here.", - locationLong: "Conner Hall 100", - locationShort: "Conner 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "All", - timeStart: "10:20 am", - timeEnd: "11:10 am", - timeDifference: null, - credits: 4, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "M", - otherTimes: ["TR", "9:35 am - 10:50 am", "Food Sci 100"], - }, - - { - classTitle: "BIOL 1103", - className: "Topics in Biology", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103L", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "1:30 pm", - timeEnd: "2:20 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - - currentDay: "MWF", - otherTimes: ["", "", ""], - }, - ], - - Tuesday: [ - { - classTitle: "CSCI 1302", - className: "Software Development", - description: "The course description will be displayed here.", - locationLong: "Food Science 100", - locationShort: "Food Sci 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "All", - timeStart: "9:35 am", - timeEnd: "10:50 am", - timeDifference: null, - credits: 4, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "TR", - otherTimes: ["M", "10:20 am - 11:10 am", "Conner 100"], - }, - - { - classTitle: "MUSI 2300", - className: "Music in Athens", - description: - "Explores national and international musical and cultural trends. The course draws from Athens, Georgia’s diverse musical communities and their histories, exploring the rock, hip hop, and indie popular music scenes along with African-American traditions, folk and traditional musics, and the emergent Latin music scene.", - locationLong: "Hugh Hudgson School of Music 100", - locationShort: "Hugh Hudgson 100", - prereq: "", - coreq: "", - professor: "Jane Doe", - semester: "Spring", - timeStart: "12:45 pm", - timeEnd: "2:00 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-lake-herrick", - borderColor: "border-lake-herrick", - currentDay: "TR", - otherTimes: ["", "", ""], - }, - ], - - Wednesday: [ - { - classTitle: "CSCI 3030", - className: "Computing, Ethics, and Society", - description: "The course description will be displayed here.", - locationLong: "Boyd Research and Education Center 100", - locationShort: "Boyd 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "8:00 am", - timeEnd: "8:50 am", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "MW", - otherTimes: ["F", "8:00 am - 8:50 am", "Chemistry 100"], - }, - - { - classTitle: "BIOL 1103", - className: "Topics in Biology", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103L", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "1:30 pm", - timeEnd: "2:20 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - currentDay: "MWF", - otherTimes: ["", "", ""], - }, - ], - - Thursday: [ - { - classTitle: "CSCI 1302", - className: "Software Development", - description: "The course description will be displayed here.", - locationLong: "Food Science 100", - locationShort: "Food Sci 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "9:35 am", - timeEnd: "10:50 am", - timeDifference: null, - credits: 4, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "TR", - otherTimes: ["M", "10:20 am - 11:10 am", "Conner 100"], - }, - - { - classTitle: "MUSI 2300", - className: "Music in Athens", - description: "The course description will be displayed here.", - locationLong: "Hugh Hudgson School of Music 100", - locationShort: "Hugh Hudgson 100", - prereq: "ENGL 1102", - coreq: "", - professor: "Jane Doe", - semester: "Spring", - timeStart: "12:45 pm", - timeEnd: "2:00 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-lake-herrick", - borderColor: "border-lake-herrick", - currentDay: "TR", - otherTimes: ["", "", ""], - }, - - { - classTitle: "BIOL 1103L", - className: "Concepts in Biology Laboratory", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "2:20 pm", - timeEnd: "4:15 pm", - timeDifference: null, - credits: 1, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - currentDay: "R", - otherTimes: ["", "", ""], - }, - ], - - Friday: [ - { - classTitle: "CSCI 3030", - className: "Computing, Ethics, and Society", - description: "The course description will be displayed here.", - locationLong: "Boyd Research and Education Center 100", - locationShort: "Chemistry 100", - prereq: "ENGL 1102", - coreq: "", - professor: "John Doe", - semester: "Spring", - timeStart: "8:00 am", - timeEnd: "8:50 am", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-bulldog-red", - borderColor: "border-bulldog-red", - currentDay: "F", - otherTimes: ["MW", "8:00 - 8:50 am", "Boyd 100"], - }, - - { - classTitle: "BIOL 1103", - className: "Topics in Biology", - description: "The course description will be displayed here.", - locationLong: "Science Learning Center 100", - locationShort: "SLC 100", - prereq: "", - coreq: "BIOL 1103L", - professor: "Jane Doe", - semester: "Spring/Fall", - timeStart: "1:30 pm", - timeEnd: "2:20 pm", - timeDifference: null, - credits: 3, - crn: 26510, - openSeats: 100, - maxSeats: 100, - waitlist: 0, - bgColor: "bg-dev-dog-blue", - borderColor: "border-dev-dog-blue", - currentDay: "MWF", - otherTimes: ["", "", ""], - }, - ], - - // Add more days as needed - }; - - // Sorts the classes by start time - Object.keys(weekScheduleData).forEach((day) => { - weekScheduleData[day]?.sort((a, b) => { - const timeA = new Date(`1970/01/01 ${a.timeStart}`); // Any date can be used since we're only comparing times - const timeB = new Date(`1970/01/01 ${b.timeStart}`); - return timeA.getTime() - timeB.getTime(); - }); - }); - - return ( -
-
- -
- -
- ); -} diff --git a/frontend/src/app/settings/page.tsx b/frontend/src/app/settings/page.tsx index e72945e8..e0f0e9b5 100644 --- a/frontend/src/app/settings/page.tsx +++ b/frontend/src/app/settings/page.tsx @@ -1,6 +1,4 @@ import { Navbar } from "@/components/Navbar"; -import { Button } from "@/components/ui/Button"; -import Link from "next/link"; export default function PastCredits() { return ( diff --git a/frontend/src/app/signup/page.tsx b/frontend/src/app/signup/page.tsx index 8b9ea290..548e2190 100644 --- a/frontend/src/app/signup/page.tsx +++ b/frontend/src/app/signup/page.tsx @@ -1,7 +1,6 @@ // Fill out signup data // get started -> Home -import { Button } from "@/components/ui/Button"; import { Navbar } from "@/components/Navbar"; import Link from "next/link"; diff --git a/frontend/src/components/Filters.tsx b/frontend/src/components/Filters.tsx index 61dea74f..b880a3ea 100644 --- a/frontend/src/components/Filters.tsx +++ b/frontend/src/components/Filters.tsx @@ -1,222 +1,185 @@ "use client"; -import { useEffect, useState } from "react"; -import { DropdownSearchInput } from "./ui/DropdownSearchInput"; -import { DropdownTagInput } from "./ui/DropdownTagInput"; +import { useMemo, useState } from "react"; +import Combobox from "./ui/Combobox"; -interface props { - text?: string; +function options(items: T[]) { + return items.map((item) => ({ value: item, content: item })); } -//TODO: replace dummy data placeholders with respective items for dropdowns -const termList = [ +const timeOptions = options([ + "8 AM", + "9 AM", + "10 AM", + "11 AM", + "12 PM", + "1 PM", + "2 PM", + "3 PM", + "4 PM", + "5 PM", + "6 PM", + "8 PM", + "9 PM", + "10 PM", +]); + +const termOptions = options([ + `Spring ${new Date().getFullYear()}`, + `Summer ${new Date().getFullYear()}`, `Fall ${new Date().getFullYear()}`, - `Spring ${new Date().getFullYear() + 1}`, - `Summer ${new Date().getFullYear() + 1}`, -]; -const instructionlist = [ - "Lecture", - "Seminar", - "Lab", - "Online", - "Hybrid", - "Workshops", - "Recitations", - "Studio", - "Independent Study", - "Fieldwork", -]; -const campusList = [ +]); + +const campusOptions = options([ "Athens", "Buckhead", "Griffin", "Gwinnett", "Online", "Tifton", -]; -const educationLevelList = ["Undergraduate", "Graduate"]; -let minmHourList: string[]; -let maxmHourList: string[]; -const hours = [ - "1 hour", - "2 hours", - "3 hours", - "4 hours", - "5 hours", - "6 hours", - "7 hours", - "8 hours", - "9 hours", - "10 hours", - "11 hours", - "12 hours", - "13 hours", - "14 hours", - "15 hours", - "16 hours", - "17 hours", - "18 hours", - "19 hours", - "20 hours", - "21 hours", - "22 hours", - "23 hours", - "24 hours", -]; - -export const SearchFilter = ({}: props) => { - const [minmHours, setSelectedMinmHours] = useState(); - const [maxmHours, setSelectedMaxmHours] = useState(); - - // State for filtered dropdown lists - const [minmHourList, setMinmHourList] = useState(hours); - const [maxmHourList, setMaxmHourList] = useState(hours); - - // Update dropdown lists when minmHours changes - useEffect(() => { - if (minmHours !== null) { - setMaxmHourList((prev) => [ - ...hours.slice(Number(minmHours?.split(" ")[0])), - ]); - } else { - setMaxmHourList(hours); - } - }, [minmHours]); - - // Update dropdown lists when maxmHours changes - useEffect(() => { - if (maxmHours !== null) { - setMinmHourList([...hours.slice(0, Number(maxmHours?.split(" ")[0]))]); - } else { - setMinmHourList(hours); - } - }, [maxmHours]); +]); + +export default function Filters() { + const [startTime, setStartTime] = useState( + timeOptions[0]?.value, + ); + + const [endTime, setEndTime] = useState( + timeOptions[timeOptions.length - 1]?.value, + ); + + const startTimeOptions = useMemo( + () => + timeOptions.slice( + 0, + timeOptions.findIndex((time) => time?.value === endTime), + ), + [endTime], + ); + + const endTimeOptions = useMemo( + () => + timeOptions.slice( + timeOptions.findIndex((time) => time?.value === startTime) + 1, + ), + [startTime], + ); + + const [minCreditHours, setMinCreditHours] = useState(12); + const [maxCreditHours, setMaxCreditHours] = useState(18); return ( -
-
- {" "} - {/* Div for Whole Filter Component*/} -

- Filters -

{" "} - {/* h1 For Filter Title */} -
- {" "} - {/* Div for filters*/} -
- {" "} - {/* Div For Column 1*/} -
- {" "} - {/* Course Status Label */} - -
-
- {" "} - {/* Div For Checkboxes */} -
- - -
-
- - -
-
- - -
-
-
-
- {" "} - {/* Div For Column 2 */} -
- {" "} - {/* Div For Labels */} - - - -
-
- {" "} - {/* Div For Dropdowns */} - - - -
-
-
- {" "} - {/* Div For Column 3 in Filters*/} -
- {" "} - {/* Div For Labels */} - - - -
-
- {" "} - {/* Div For Dropdowns */} - - setSelectedMinmHours(value)} - /> - setSelectedMaxmHours(value)} - /> -
-
+
+

+ Filters +

+ +
+ + + + +
+
-
+ + + + + +
+ +
+ + + + +
); -}; +} diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index cd2a6bcf..2599f6cf 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -1,49 +1,77 @@ import { PiInstagramLogoBold, PiLinkedinLogoBold } from "react-icons/pi"; +import Image from "next/image"; export function Footer() { return ( -