diff --git a/package.json b/package.json index 6518303d..c884a4e4 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@tanstack/react-query": "^5.66.0", "@types/luxon": "^3.3.2", "@types/node": "^24.1.0", - "@types/react": "19.1.12", + "@types/react": "19.1.13", "@types/react-dom": "19.1.9", "@vercel/analytics": "^1.5.0", "@vercel/speed-insights": "^1.2.0", @@ -44,16 +44,17 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "eslint": "9.34.0", - "eslint-config-next": "15.5.2", + "eslint": "9.35.0", + "eslint-config-next": "15.5.3", "firebase": "^12.0.0", "form-data": "^4.0.0", "framer-motion": "^12.0.0", + "ics": "^3.8.1", "jwt-decode": "^4.0.0", "lint-staged": "^16.0.0", - "lucide-react": "^0.542.0", + "lucide-react": "^0.544.0", "luxon": "^3.4.2", - "next": "15.5.2", + "next": "15.5.3", "posthog-js": "^1.257.0", "posthog-node": "^5.5.1", "prettier": "^3.3.3", @@ -66,7 +67,7 @@ "react-responsive": "^10.0.1", "sharp": "^0.34.0", "sonner": "^2.0.6", - "swiper": "^11.2.10", + "swiper": "^12.0.0", "tailwind-merge": "^3.3.1", "tailwindcss": "3.4.17", "tailwindcss-animate": "^1.0.7", diff --git a/src/components/Schedule/index.tsx b/src/components/Schedule/index.tsx index 16657a6a..498f497c 100644 --- a/src/components/Schedule/index.tsx +++ b/src/components/Schedule/index.tsx @@ -1,5 +1,6 @@ "use client"; import React, { useMemo, useState, useEffect, useRef } from "react"; +import { createEvents, EventAttributes } from "ics"; import { motion, AnimatePresence, @@ -614,6 +615,53 @@ const Schedule: React.FC = () => { setSelectedEvent(null); }; + // Download .ics handler + const handleDownloadIcs = async () => { + // Combine all currently displayed events (respects filters) + const saturdayEvents = processedEvents.Saturday.events; + const sundayEvents = processedEvents.Sunday.events; + const allEvents: ProcessedEvent[] = [...saturdayEvents, ...sundayEvents]; + + // Map to ICS Event Format + const icsEvents: EventAttributes[] = allEvents.map((event) => ({ + title: event.name, + description: undefined, + location: event.location, + start: [ + event.startTime.getFullYear(), + event.startTime.getMonth() + 1, + event.startTime.getDate(), + event.startTime.getHours(), + event.startTime.getMinutes(), + ], + end: [ + event.endTime.getFullYear(), + event.endTime.getMonth() + 1, + event.endTime.getDate(), + event.endTime.getHours(), + event.endTime.getMinutes(), + ], + })); + + // Use ics package to create the ICS text + createEvents(icsEvents, (error, value) => { + if (error || !value) { + alert("There was a problem exporting the .ics file."); + return; + } + // Download as file + const blob = new Blob([value], { type: "text/calendar" }); + const url = URL.createObjectURL(blob); + const link = document.createElement("a"); + link.href = url; + link.download = `schedule.ics`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(url); + }); + }; + // Toggle category selection const toggleCategory = (category: EventType) => { setSelectedCategories((prev) => { @@ -870,10 +918,11 @@ const Schedule: React.FC = () => { toggleCategory(eventType)} - className={`px-4 py-2 rounded-lg font-medium text-sm border-2 transition-all duration-300 ${isSelected - ? `${colors.bg} ${colors.border} text-white` - : "bg-white/80 border-gray-300 text-gray-700 hover:bg-gray-100" - }`} + className={`px-4 py-2 rounded-lg font-medium text-sm border-2 transition-all duration-300 ${ + isSelected + ? `${colors.bg} ${colors.border} text-white` + : "bg-white/80 border-gray-300 text-gray-700 hover:bg-gray-100" + }`} style={{ fontFamily: "Monomaniac One, monospace" }} initial={{ opacity: 0, scale: 0.8 }} animate={{ opacity: 1, scale: 1 }} @@ -910,8 +959,9 @@ const Schedule: React.FC = () => { src={colors.jellyfishAsset} alt={`${colors.label} Jellyfish`} fill - className={`object-contain transition-all duration-300 ${isSelected ? "" : "grayscale" - } group-hover:scale-110`} + className={`object-contain transition-all duration-300 ${ + isSelected ? "" : "grayscale" + } group-hover:scale-110`} /> @@ -921,10 +971,11 @@ const Schedule: React.FC = () => { style={{ transform: "translateY(-70px) translateX(-5px)" }} > { setActiveDay(day)} - className={`flex-1 py-4 px-6 font-bold transition-all duration-300 ${activeDay === day - ? "bg-[#215172] text-white" - : "bg-[#1a3f5c] text-white/70 hover:text-white hover:bg-[#215172]/80" - }`} + className={`flex-1 py-4 px-6 font-bold transition-all duration-300 ${ + activeDay === day + ? "bg-[#215172] text-white" + : "bg-[#1a3f5c] text-white/70 hover:text-white hover:bg-[#215172]/80" + }`} style={{ fontFamily: "Monomaniac One, monospace" }} whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} @@ -1032,6 +1084,31 @@ const Schedule: React.FC = () => { + {/* Download .ics Button */} +
+ +
+ {/* Event Details Modal */} =12.12.47", "@types/node@>=13.7.0", "@types/node@^24.1.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.3.0.tgz#89b09f45cb9a8ee69466f18ee5864e4c3eb84dec" - integrity sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow== + version "24.5.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.5.1.tgz#dab6917c47113eb4502d27d06e89a407ec0eff95" + integrity sha512-/SQdmUP2xa+1rdx7VwB9yPq8PaKej8TD5cQ+XfKDPWWC+VDJU4rvVVagXqKUzhKjtFoNA8rXDJAkCxQPAe00+Q== dependencies: - undici-types "~7.10.0" + undici-types "~7.12.0" "@types/parse-json@^4.0.0": version "4.0.2" @@ -2875,10 +2882,10 @@ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044" integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== -"@types/react@19.1.12": - version "19.1.12" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.12.tgz#7bfaa76aabbb0b4fe0493c21a3a7a93d33e8937b" - integrity sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w== +"@types/react@19.1.13": + version "19.1.13" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.13.tgz#fc650ffa680d739a25a530f5d7ebe00cdd771883" + integrity sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ== dependencies: csstype "^3.0.2" @@ -3250,9 +3257,9 @@ axios-proxy-builder@^0.1.2: tunnel "^0.0.6" axios@^1.10.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.11.0.tgz#c2ec219e35e414c025b2095e8b8280278478fdb6" - integrity sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA== + version "1.12.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.12.1.tgz#0747b39c5b615f81f93f2c138e6d82a71426937f" + integrity sha512-Kn4kbSXpkFHCGE6rBFNwIv0GQs4AvDT80jlveJDKFxjbTYMUeB4QtsdPCv6H8Cm19Je7IU6VFtRl2zWZI0rudQ== dependencies: follow-redirects "^1.15.6" form-data "^4.0.4" @@ -4027,12 +4034,12 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-next@15.5.2: - version "15.5.2" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-15.5.2.tgz#9629ed1deaa131e8e80cbae20acf631c8595ca3e" - integrity sha512-3hPZghsLupMxxZ2ggjIIrat/bPniM2yRpsVPVM40rp8ZMzKWOJp2CGWn7+EzoV2ddkUr5fxNfHpF+wU1hGt/3g== +eslint-config-next@15.5.3: + version "15.5.3" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-15.5.3.tgz#00ddedd7c7683fb4169cd67c81e09db38a29b487" + integrity sha512-e6j+QhQFOr5pfsc8VJbuTD9xTXJaRvMHYjEeLPA2pFkheNlgPLCkxdvhxhfuM4KGcqSZj2qEnpHisdTVs3BxuQ== dependencies: - "@next/eslint-plugin-next" "15.5.2" + "@next/eslint-plugin-next" "15.5.3" "@rushstack/eslint-patch" "^1.10.3" "@typescript-eslint/eslint-plugin" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" "@typescript-eslint/parser" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" @@ -4170,18 +4177,18 @@ eslint-visitor-keys@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== -eslint@9.34.0: - version "9.34.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.34.0.tgz#0ea1f2c1b5d1671db8f01aa6b8ce722302016f7b" - integrity sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg== +eslint@9.35.0: + version "9.35.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.35.0.tgz#7a89054b7b9ee1dfd1b62035d8ce75547773f47e" + integrity sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg== dependencies: - "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.1" "@eslint/config-array" "^0.21.0" "@eslint/config-helpers" "^0.3.1" "@eslint/core" "^0.15.2" "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.34.0" + "@eslint/js" "9.35.0" "@eslint/plugin-kit" "^0.3.5" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" @@ -4449,9 +4456,9 @@ fraction.js@^4.3.7: integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== framer-motion@^12.0.0: - version "12.23.12" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-12.23.12.tgz#80cf6fd7c111073a0c558e336c85ca36cca80d3d" - integrity sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg== + version "12.23.13" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-12.23.13.tgz#146ffad7710172359b9274c46f75c677068f1092" + integrity sha512-OMF57Xh0fuTXfJQPtCieYGeU9Fam4SxqPLVz78YI7ATRFrfz8SARtqr1+qv56cX45kPFcIEfkUorVfxlOsjcUg== dependencies: motion-dom "^12.23.12" motion-utils "^12.23.6" @@ -4670,6 +4677,15 @@ hyphenate-style-name@^1.0.0: resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== +ics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/ics/-/ics-3.8.1.tgz#4f89d7e05bc45378d9337d748caa1a2756eaebae" + integrity sha512-UqQlfkajfhrS4pUGQfGIJMYz/Jsl/ob3LqcfEhUmLbwumg+ZNkU0/6S734Vsjq3/FYNpEcZVKodLBoe+zBM69g== + dependencies: + nanoid "^3.1.23" + runes2 "^1.1.2" + yup "^1.2.0" + idb@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" @@ -5045,9 +5061,9 @@ keyv@^4.5.4: json-buffer "3.0.1" knip@^5.62.0: - version "5.63.0" - resolved "https://registry.yarnpkg.com/knip/-/knip-5.63.0.tgz#ce8c5e758967e3a05fd38483237d4195ab166d19" - integrity sha512-xIFIi/uvLW0S/AQqwggN6UVRKBOQ1Ya7jBfQzllswZplr2si5C616/5wCcWc/eoi1PLJgPgJQLxqYq1aiYpqwg== + version "5.63.1" + resolved "https://registry.yarnpkg.com/knip/-/knip-5.63.1.tgz#6159af8863b2eb7da4c5823f42f006ac385a007b" + integrity sha512-wSznedUAzcU4o9e0O2WPqDnP7Jttu8cesq/R23eregRY8QYQ9NLJ3aGt9fadJfRzPBoU4tRyutwVQu6chhGDlA== dependencies: "@nodelib/fs.walk" "^1.2.3" fast-glob "^3.3.3" @@ -5060,7 +5076,7 @@ knip@^5.62.0: picomatch "^4.0.1" smol-toml "^1.4.1" strip-json-comments "5.0.2" - zod "^3.22.4" + zod "^3.25.0" zod-validation-error "^3.0.3" language-subtag-registry@^0.3.20: @@ -5205,15 +5221,15 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lucide-react@^0.542.0: - version "0.542.0" - resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.542.0.tgz#3f170afb0c5697e3e21230b6d69ad8a1be6b281a" - integrity sha512-w3hD8/SQB7+lzU2r4VdFyzzOzKnUjTZIF/MQJGSSvni7Llewni4vuViRppfRAa2guOsY5k4jZyxw/i9DQHv+dw== +lucide-react@^0.544.0: + version "0.544.0" + resolved "https://registry.yarnpkg.com/lucide-react/-/lucide-react-0.544.0.tgz#4719953c10fd53a64dd8343bb0ed16ec79f3eeef" + integrity sha512-t5tS44bqd825zAW45UQxpG2CvcC4urOwn2TrwSH8u+MjeE+1NnWl6QqeQ/6NdjMqdOygyiT9p3Ev0p1NJykxjw== luxon@^3.4.2: - version "3.7.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.7.1.tgz#9bd09aa84a56afb00c57ea78a8ec5bd16eb24ec0" - integrity sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg== + version "3.7.2" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.7.2.tgz#d697e48f478553cca187a0f8436aff468e3ba0ba" + integrity sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew== matchmediaquery@^0.4.2: version "0.4.2" @@ -5334,7 +5350,7 @@ nano-spawn@^1.0.2: resolved "https://registry.yarnpkg.com/nano-spawn/-/nano-spawn-1.0.2.tgz#9853795681f0e96ef6f39104c2e4347b6ba79bf6" integrity sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg== -nanoid@^3.3.6, nanoid@^3.3.8: +nanoid@^3.1.23, nanoid@^3.3.6, nanoid@^3.3.8: version "3.3.11" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== @@ -5349,25 +5365,25 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -next@15.5.2: - version "15.5.2" - resolved "https://registry.yarnpkg.com/next/-/next-15.5.2.tgz#5e50102443fb0328a9dfcac2d82465c7bac93693" - integrity sha512-H8Otr7abj1glFhbGnvUt3gz++0AF1+QoCXEBmd/6aKbfdFwrn0LpA836Ed5+00va/7HQSDD+mOoVhn3tNy3e/Q== +next@15.5.3: + version "15.5.3" + resolved "https://registry.yarnpkg.com/next/-/next-15.5.3.tgz#bfa6836eeed2bad28e2fcbdda8f07c871aea78d1" + integrity sha512-r/liNAx16SQj4D+XH/oI1dlpv9tdKJ6cONYPwwcCC46f2NjpaRWY+EKCzULfgQYV6YKXjHBchff2IZBSlZmJNw== dependencies: - "@next/env" "15.5.2" + "@next/env" "15.5.3" "@swc/helpers" "0.5.15" caniuse-lite "^1.0.30001579" postcss "8.4.31" styled-jsx "5.1.6" optionalDependencies: - "@next/swc-darwin-arm64" "15.5.2" - "@next/swc-darwin-x64" "15.5.2" - "@next/swc-linux-arm64-gnu" "15.5.2" - "@next/swc-linux-arm64-musl" "15.5.2" - "@next/swc-linux-x64-gnu" "15.5.2" - "@next/swc-linux-x64-musl" "15.5.2" - "@next/swc-win32-arm64-msvc" "15.5.2" - "@next/swc-win32-x64-msvc" "15.5.2" + "@next/swc-darwin-arm64" "15.5.3" + "@next/swc-darwin-x64" "15.5.3" + "@next/swc-linux-arm64-gnu" "15.5.3" + "@next/swc-linux-arm64-musl" "15.5.3" + "@next/swc-linux-x64-gnu" "15.5.3" + "@next/swc-linux-x64-musl" "15.5.3" + "@next/swc-win32-arm64-msvc" "15.5.3" + "@next/swc-win32-x64-msvc" "15.5.3" sharp "^0.34.3" no-case@^3.0.4: @@ -5696,9 +5712,9 @@ postcss@^8.4.47: source-map-js "^1.2.1" posthog-js@^1.257.0: - version "1.261.0" - resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.261.0.tgz#1e9618b7810db81f6eed94ec251724639d92f95e" - integrity sha512-jyiXqyrCU+VlpbNNVRA6OQYAVut0XZMYNELCZH+XvTd981VqbE4jXn4XCBreo7XCL2gdPgDVxUVOuzNvEuKcmw== + version "1.266.0" + resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.266.0.tgz#da7ad4e98c299e33b11b7de97ce47e9379858e33" + integrity sha512-437KsO9N+pMW6FtilgKYTHel0RCWs2S7PvsNRJf20/f3npChX9i6F8cNCJ6O4Az37scC1kPdTknFY/xEGazVJw== dependencies: "@posthog/core" "1.0.2" core-js "^3.38.1" @@ -5707,16 +5723,16 @@ posthog-js@^1.257.0: web-vitals "^4.2.4" posthog-node@^5.5.1: - version "5.8.1" - resolved "https://registry.yarnpkg.com/posthog-node/-/posthog-node-5.8.1.tgz#463b1f8c5de40f95433838fa0583c5294d93dba6" - integrity sha512-YJYlYnlpItVjHqM9IhvZx8TzK8gnx2nU+0uhiog4RN47NnV0Z0K1AdC4ul+O8VuvS/jHqKCQvL8iAONRA37+0A== + version "5.8.4" + resolved "https://registry.yarnpkg.com/posthog-node/-/posthog-node-5.8.4.tgz#a6486a16d6d9bfd5fb38f792af80fa9ec36f7bd0" + integrity sha512-O0lObQqeIiggNCjc5BQx5PaHqPzXxwKnCJdb+DuNkbDO6Vc442SQ5FDv0WjPd5Ejfwme1uGZmM5/xhHWKegFfQ== dependencies: "@posthog/core" "1.0.2" preact@^10.19.3: - version "10.27.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.27.1.tgz#c391dcad5813b67d9e04655d844d8fdc307d4252" - integrity sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ== + version "10.27.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.27.2.tgz#19b9009c1be801a76a0aaf0fe5ba665985a09312" + integrity sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg== prelude-ls@^1.2.1: version "1.2.1" @@ -5737,6 +5753,11 @@ prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +property-expr@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8" + integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA== + protobufjs@^7.2.5: version "7.5.4" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.5.4.tgz#885d31fe9c4b37f25d1bb600da30b1c5b37d286a" @@ -6045,6 +6066,11 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" +runes2@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/runes2/-/runes2-1.1.4.tgz#aa38d3d7946e147ac4718ed0fb19b22340ae5c66" + integrity sha512-LNPnEDPOOU4ehF71m5JoQyzT2yxwD6ZreFJ7MxZUAoMKNMY1XrAo60H1CUoX5ncSm0rIuKlqn9JZNRrRkNou2g== + safe-array-concat@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" @@ -6479,10 +6505,10 @@ svgo@^3.0.2: csso "^5.0.5" picocolors "^1.0.0" -swiper@^11.2.10: - version "11.2.10" - resolved "https://registry.yarnpkg.com/swiper/-/swiper-11.2.10.tgz#ed0b17286b56f7fe8d4b46ed61e6e0bd8daaccad" - integrity sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ== +swiper@^12.0.0: + version "12.0.1" + resolved "https://registry.yarnpkg.com/swiper/-/swiper-12.0.1.tgz#107c1d9e608360e669290a75ce1777947b3d5f07" + integrity sha512-Fi+gNw/tfc4hsGowQU5tRC/f1HFknkh4Vz8PaDI4JTinLUMTwhZyaovcH/va+iXq98BNUHN5ok0c2lEI82Fsgw== tabbable@^6.0.0: version "6.2.0" @@ -6546,6 +6572,11 @@ third-party-capital@1.0.20: resolved "https://registry.yarnpkg.com/third-party-capital/-/third-party-capital-1.0.20.tgz#e218a929a35bf4d2245da9addb8ab978d2f41685" integrity sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA== +tiny-case@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-case/-/tiny-case-1.0.3.tgz#d980d66bc72b5d5a9ca86fb7c9ffdb9c898ddd03" + integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q== + tinyglobby@^0.2.12: version "0.2.12" resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5" @@ -6561,6 +6592,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== + ts-api-utils@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" @@ -6598,6 +6634,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-fest@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + typed-array-buffer@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" @@ -6658,10 +6699,10 @@ unbox-primitive@^1.1.0: has-symbols "^1.1.0" which-boxed-primitive "^1.1.1" -undici-types@~7.10.0: - version "7.10.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350" - integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag== +undici-types@~7.12.0: + version "7.12.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.12.0.tgz#15c5c7475c2a3ba30659529f5cdb4674b622fafb" + integrity sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" @@ -6906,12 +6947,22 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +yup@^1.2.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/yup/-/yup-1.7.0.tgz#5d2feeccc1725c39bfed6ec677cc0622527dafaf" + integrity sha512-VJce62dBd+JQvoc+fCVq+KZfPHr+hXaxCcVgotfwWvlR0Ja3ffYKaJBT8rptPOSKOGJDCUnW2C2JWpud7aRP6Q== + dependencies: + property-expr "^2.0.5" + tiny-case "^1.0.3" + toposort "^2.0.2" + type-fest "^2.19.0" + zod-validation-error@^3.0.3: version "3.5.3" resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.5.3.tgz#85ba33290200d8db9f043621e284f40dddefb7e5" integrity sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw== -zod@^3.22.4, zod@^3.24.2: +zod@^3.24.2, zod@^3.25.0: version "3.25.76" resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34" integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==