diff --git a/apps/web/package.json b/apps/web/package.json index 28c204a..4780d84 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,7 +12,7 @@ "@heroui/react": "^3.2.6", "@iconify/react": "^6.0.2", "@tanstack/react-query": "^5.104.0", - "framer-motion": "^13.4.0", + "motion": "^12.4.0", "next": "16.3.5", "react": "19.2.8", "react-dom": "19.2.8" diff --git a/apps/web/src/app/_core/components/confirm-dialog.tsx b/apps/web/src/app/_core/components/confirm-dialog.tsx index 5ae25f9..7f51ba2 100644 --- a/apps/web/src/app/_core/components/confirm-dialog.tsx +++ b/apps/web/src/app/_core/components/confirm-dialog.tsx @@ -10,6 +10,7 @@ interface ConfirmDialogProps { title: string; description: string; confirmLabel?: string; + pendingLabel?: string; } export function ConfirmDialog({ @@ -19,10 +20,14 @@ export function ConfirmDialog({ title, description, confirmLabel = "Eliminar", + pendingLabel, }: ConfirmDialogProps) { const [submitting, setSubmitting] = useState(false); const [error, setError] = useState(null); + const activePendingLabel = + pendingLabel ?? (confirmLabel === "Eliminar" ? "Eliminando…" : "Procesando…"); + async function handleConfirm() { setSubmitting(true); setError(null); @@ -61,7 +66,7 @@ export function ConfirmDialog({ disabled={submitting} className="rounded-lg bg-danger px-3.5 py-2 text-sm font-medium text-danger-foreground transition hover:bg-danger-hover focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus disabled:opacity-50" > - {submitting ? "Eliminando…" : confirmLabel} + {submitting ? activePendingLabel : confirmLabel} diff --git a/apps/web/src/app/_core/components/multi-select.tsx b/apps/web/src/app/_core/components/multi-select.tsx index 7d2ec33..e2da849 100644 --- a/apps/web/src/app/_core/components/multi-select.tsx +++ b/apps/web/src/app/_core/components/multi-select.tsx @@ -1,7 +1,7 @@ "use client"; import { Icon } from "@iconify/react"; -import { useEffect, useMemo, useRef, useState } from "react"; +import { useEffect, useId, useMemo, useRef, useState } from "react"; import { iconCloseSquare } from "../icons"; interface Option { @@ -26,21 +26,38 @@ export function MultiSelect({ }: MultiSelectProps) { const [query, setQuery] = useState(""); const [open, setOpen] = useState(false); + const [activeIndex, setActiveIndex] = useState(-1); + const rootRef = useRef(null); + const inputRef = useRef(null); + const listboxRef = useRef(null); + const listboxId = useId(); useEffect(() => { - if (!open) return; + if (!open) { + setActiveIndex(-1); + return; + } + function onPointerDown(e: PointerEvent) { - if (rootRef.current && !rootRef.current.contains(e.target as Node)) setOpen(false); + if (rootRef.current && !rootRef.current.contains(e.target as Node)) { + setOpen(false); + setActiveIndex(-1); + } } - function onKeyDown(e: KeyboardEvent) { - if (e.key === "Escape") setOpen(false); + + function onGlobalKeyDown(e: KeyboardEvent) { + if (e.key === "Escape") { + setOpen(false); + setActiveIndex(-1); + } } + document.addEventListener("pointerdown", onPointerDown); - document.addEventListener("keydown", onKeyDown); + document.addEventListener("keydown", onGlobalKeyDown); return () => { document.removeEventListener("pointerdown", onPointerDown); - document.removeEventListener("keydown", onKeyDown); + document.removeEventListener("keydown", onGlobalKeyDown); }; }, [open]); @@ -54,6 +71,17 @@ export function MultiSelect({ return options.filter((o) => !q || o.label.toLowerCase().includes(q)).slice(0, 50); }, [options, query]); + useEffect(() => { + setActiveIndex(-1); + }, [query]); + + useEffect(() => { + if (activeIndex >= 0 && listboxRef.current) { + const activeElement = listboxRef.current.children[activeIndex] as HTMLElement | undefined; + activeElement?.scrollIntoView({ block: "nearest" }); + } + }, [activeIndex]); + function toggle(id: number) { onChange(selected.includes(id) ? selected.filter((s) => s !== id) : [...selected, id]); } @@ -62,10 +90,49 @@ export function MultiSelect({ onChange(selected.filter((s) => s !== id)); } + function handleInputKeyDown(e: React.KeyboardEvent) { + if (e.key === "ArrowDown") { + e.preventDefault(); + if (!open) { + setOpen(true); + setActiveIndex(results.length > 0 ? 0 : -1); + } else if (results.length > 0) { + setActiveIndex((prev) => (prev < results.length - 1 ? prev + 1 : 0)); + } + } else if (e.key === "ArrowUp") { + e.preventDefault(); + if (!open) { + setOpen(true); + setActiveIndex(results.length > 0 ? results.length - 1 : -1); + } else if (results.length > 0) { + setActiveIndex((prev) => (prev > 0 ? prev - 1 : results.length - 1)); + } + } else if (e.key === "Enter") { + if (open && activeIndex >= 0 && activeIndex < results.length) { + e.preventDefault(); + toggle(results[activeIndex].id); + } + } else if (e.key === "Escape") { + if (open) { + e.preventDefault(); + setOpen(false); + setActiveIndex(-1); + } + } else if (e.key === "Backspace" && query === "" && selected.length > 0) { + remove(selected[selected.length - 1]); + } else if (e.key === "Tab") { + setOpen(false); + setActiveIndex(-1); + } + } + return (
setOpen(true)} + onClick={() => { + inputRef.current?.focus(); + setOpen(true); + }} className={`flex max-h-24 flex-wrap items-center gap-1.5 overflow-y-auto rounded-field border border-border bg-background p-1.5 transition focus-within:border-focus ${open ? "border-focus" : ""}`} > {selectedOptions.map((o) => ( @@ -89,14 +156,22 @@ export function MultiSelect({ ))} setQuery(e.target.value)} onFocus={() => setOpen(true)} + onKeyDown={handleInputKeyDown} placeholder={selectedOptions.length === 0 ? placeholder : ""} role="combobox" aria-expanded={open} - aria-controls="multi-select-listbox" + aria-controls={open ? listboxId : undefined} + aria-autocomplete="list" + aria-activedescendant={ + open && activeIndex >= 0 && results[activeIndex] + ? `${listboxId}-option-${results[activeIndex].id}` + : undefined + } autoComplete="off" className="min-w-24 flex-1 bg-transparent px-1.5 py-1 text-sm text-foreground placeholder-muted outline-none" /> @@ -104,25 +179,35 @@ export function MultiSelect({ {open && (
    {results.length === 0 ? (
  • {emptyMessage}
  • ) : ( - results.map((o) => { + results.map((o, idx) => { const isSelected = selected.includes(o.id); + const isHighlighted = activeIndex === idx; return ( -
  • +
  • setActiveIndex(idx)} + > diff --git a/apps/web/src/app/admin/_components/admin-shell.tsx b/apps/web/src/app/admin/_components/admin-shell.tsx index 3860e6f..4df7d37 100644 --- a/apps/web/src/app/admin/_components/admin-shell.tsx +++ b/apps/web/src/app/admin/_components/admin-shell.tsx @@ -1,7 +1,7 @@ "use client"; import { Icon } from "@iconify/react"; -import { AnimatePresence, motion, useReducedMotion } from "framer-motion"; +import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { useEffect, useState } from "react"; @@ -79,7 +79,7 @@ export function AdminShell({ children }: { children: React.ReactNode }) { }`} >
diff --git a/apps/web/src/app/admin/_components/user-menu.tsx b/apps/web/src/app/admin/_components/user-menu.tsx index 168080e..fd661c5 100644 --- a/apps/web/src/app/admin/_components/user-menu.tsx +++ b/apps/web/src/app/admin/_components/user-menu.tsx @@ -2,7 +2,7 @@ import { Avatar } from "@heroui/react"; import { Icon } from "@iconify/react"; -import { AnimatePresence, motion, useReducedMotion } from "framer-motion"; +import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { useEffect, useRef, useState } from "react"; import { useTheme } from "../../_core/hooks/use-theme"; import { diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index 43e6f87..07835c9 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -14,14 +14,14 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "PDV — Punto de Venta", + description: "Sistema de Punto de Venta y Gestión de Inventario", }; export default function RootLayout({ children }: LayoutProps<"/">) { return ( diff --git a/apps/web/src/app/login/_components/user-login-screen.tsx b/apps/web/src/app/login/_components/user-login-screen.tsx index 86daf3d..2dd43eb 100644 --- a/apps/web/src/app/login/_components/user-login-screen.tsx +++ b/apps/web/src/app/login/_components/user-login-screen.tsx @@ -1,7 +1,7 @@ "use client"; import { Icon } from "@iconify/react"; -import { AnimatePresence, motion, useReducedMotion } from "framer-motion"; +import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import { iconStorefrontFill } from "../../_core/icons"; diff --git a/apps/web/src/app/login/_components/user-picker.tsx b/apps/web/src/app/login/_components/user-picker.tsx index f7740aa..bc5fcec 100644 --- a/apps/web/src/app/login/_components/user-picker.tsx +++ b/apps/web/src/app/login/_components/user-picker.tsx @@ -2,7 +2,7 @@ import { Avatar } from "@heroui/react"; import { Icon } from "@iconify/react"; -import { motion, useReducedMotion } from "framer-motion"; +import { motion, useReducedMotion } from "motion/react"; import { iconIdentificationBadge } from "../../_core/icons"; import type { AuthUser } from "../../_core/types/auth-user"; diff --git a/apps/web/src/app/pos/_components/cash-register-control.tsx b/apps/web/src/app/pos/_components/cash-register-control.tsx index df87095..305212c 100644 --- a/apps/web/src/app/pos/_components/cash-register-control.tsx +++ b/apps/web/src/app/pos/_components/cash-register-control.tsx @@ -1,7 +1,7 @@ "use client"; import { Icon } from "@iconify/react"; -import { AnimatePresence, motion, useReducedMotion } from "framer-motion"; +import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { useEffect, useRef, useState } from "react"; import { iconAddCircle, diff --git a/apps/web/src/app/pos/historial/page.tsx b/apps/web/src/app/pos/historial/page.tsx index 0bad227..99add4d 100644 --- a/apps/web/src/app/pos/historial/page.tsx +++ b/apps/web/src/app/pos/historial/page.tsx @@ -244,6 +244,7 @@ export default function PosHistoryPage() { title="Devolver venta" description={`Se repondrá el stock de la venta #${returning?.id} y se registrará el reembolso. Esta acción no se puede deshacer.`} confirmLabel="Confirmar devolución" + pendingLabel="Devolviendo…" onConfirm={handleReturn} />
diff --git a/package-lock.json b/package-lock.json index 9b2e8bf..823b8bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,7 @@ "@heroui/react": "^3.2.6", "@iconify/react": "^6.0.2", "@tanstack/react-query": "^5.104.0", - "framer-motion": "^13.4.0", + "motion": "^12.4.0", "next": "16.3.5", "react": "19.2.8", "react-dom": "19.2.8" @@ -71,7 +71,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -107,7 +106,6 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.5.tgz", "integrity": "sha512-iTbAwwMijVnQjwjwbvkWn82AyRAbFNSJzt/VawWp1vXRIxVIO9COZ1pPG5Fj88xXgqlG8maVcv58p74vqqy5HA==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@internationalized/date": "^3.12.4", "@react-types/shared": "^3.36.1", @@ -661,7 +659,6 @@ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -978,7 +975,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -995,7 +991,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -1012,7 +1007,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -1029,7 +1023,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -1046,7 +1039,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -1102,8 +1094,7 @@ "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.3.15.tgz", "integrity": "sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==", "devOptional": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@electric-sql/pglite-socket": { "version": "0.0.20", @@ -2773,7 +2764,6 @@ "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.12.4.tgz", "integrity": "sha512-M1dEn4c1U1HsSlaVR8upZtSqvXrTkHDfv18H01uCSJyjVLDxnBR38v/fMxecmlwXKR4i9HeZcmgQAPE6A+aGJQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@swc/helpers": "^0.5.0" } @@ -2890,7 +2880,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2904,7 +2893,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2940,7 +2928,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2954,7 +2941,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2968,7 +2954,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2982,7 +2967,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2996,7 +2980,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3010,7 +2993,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3024,7 +3006,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3203,7 +3184,6 @@ "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-12.0.3.tgz", "integrity": "sha512-Fosz6lHc9OagZNcF0LTrVHyJS8W7mtuNFBOo9RRccGwyeICBd0hiutjAi9zxnzBcP45RkYXeNB+idA/52jZhBQ==", "license": "MIT", - "peer": true, "dependencies": { "@standard-schema/spec": "1.1.0", "file-type": "22.1.0", @@ -3236,7 +3216,6 @@ "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-12.0.3.tgz", "integrity": "sha512-Ouv++gAXOL50S8K8n6AN19QGmw51rnIo6v7y9AqUYoaf0NcZlufTu5XTDeC2RtpMz8oXRr9nykBngRjflcoQKA==", "license": "MIT", - "peer": true, "dependencies": { "fast-safe-stringify": "2.1.1", "iterare": "1.2.1", @@ -3276,7 +3255,6 @@ "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-12.0.3.tgz", "integrity": "sha512-q9ImjCMjbYYgqvRHHro6sAypNwhjspIAHad0RTL2ww5wYd9gwUGWMss7Q+ACCw5Sksu7Q8S/3rjSLhB+W6B6bg==", "license": "MIT", - "peer": true, "dependencies": { "cors": "2.8.6", "express": "5.2.1", @@ -3660,7 +3638,6 @@ "integrity": "sha512-L7y8eYc+AwxGr2PWI4WFt1VG4TiJ66c26BD16mXpYIlXxG0SMigM1+m4aTSlYyBr5BlQsGAlz8uDCoZN4SEMcg==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.5", @@ -3928,7 +3905,6 @@ "resolved": "https://registry.npmjs.org/@prisma/cli-engine/-/cli-engine-0.6.1.tgz", "integrity": "sha512-z9x6WCUzJdnM35tcHPYdw1DVwNYp4uv0T3oCjGZB4MdtXOUoN912oAYA7RYTjSvbulbhq+Z4pNXJ34XgdX8C4g==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@clack/prompts": "1.5.0", "@stricli/core": "1.3.0", @@ -4071,6 +4047,7 @@ "integrity": "sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==", "devOptional": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/oxc-project" } @@ -4082,12 +4059,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4099,12 +4076,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4116,12 +4093,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4133,12 +4110,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4150,12 +4127,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4167,12 +4144,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4184,12 +4161,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4201,12 +4178,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4218,12 +4195,12 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4235,12 +4212,12 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4252,12 +4229,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4269,12 +4246,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4286,12 +4263,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "openharmony" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4303,12 +4280,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4320,12 +4297,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -4336,6 +4313,7 @@ "integrity": "sha512-Z5FS00Q1SJHkB35xATsmWGdQ5WA1/0MV3CDjqyv7GavHv1OfOj145MNfHOlHk7QLes21dKFDHr8EO2zvL+9WGA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.31", "@vitest/spy": "5.0.2", @@ -4552,7 +4530,6 @@ "integrity": "sha512-ddcL4RnAx6L8gRWCnE5T1W35ZlerI7SlaRLidX726iG/K/aA+bkU0ND39y7ljJ2Eyx3zR03TfpNrgXAXc9E3ng==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@distilled.cloud/core": "1.0.0-rc.12" }, @@ -4691,6 +4668,7 @@ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -4701,6 +4679,7 @@ "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "devOptional": true, "license": "MPL-2.0", + "peer": true, "dependencies": { "detect-libc": "^2.0.3" }, @@ -4732,12 +4711,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4753,12 +4732,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4774,12 +4753,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4795,12 +4774,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4816,12 +4795,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4837,12 +4816,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4858,12 +4837,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4879,12 +4858,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4900,12 +4879,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4921,12 +4900,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4942,12 +4921,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -4962,6 +4941,7 @@ "integrity": "sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.6.0" } @@ -4984,7 +4964,8 @@ "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@prisma/composer-cli/node_modules/vite": { "version": "8.3.1", @@ -5071,6 +5052,7 @@ "integrity": "sha512-qpSwIyz0jHQq5qXBTNxFmE6664rJ7O+4TvPFOiOaBSrz8IOHc1koKKSqTM2H6u1UG1+TveuC6vaDHKXFOvb1Kw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@oxc-project/types": "=0.151.0", "@rolldown/pluginutils": "^1.0.0" @@ -5200,6 +5182,7 @@ "integrity": "sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==", "devOptional": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/oxc-project" } @@ -5221,12 +5204,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5238,12 +5221,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5255,12 +5238,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5272,12 +5255,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5289,12 +5272,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5306,12 +5289,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5323,12 +5306,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5340,12 +5323,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5357,12 +5340,12 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5374,12 +5357,12 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5391,12 +5374,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5408,12 +5391,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5425,12 +5408,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "openharmony" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5442,12 +5425,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5459,12 +5442,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": "^20.19.0 || >=22.12.0" } @@ -5475,6 +5458,7 @@ "integrity": "sha512-Z5FS00Q1SJHkB35xATsmWGdQ5WA1/0MV3CDjqyv7GavHv1OfOj145MNfHOlHk7QLes21dKFDHr8EO2zvL+9WGA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.31", "@vitest/spy": "5.0.2", @@ -5691,7 +5675,6 @@ "integrity": "sha512-ddcL4RnAx6L8gRWCnE5T1W35ZlerI7SlaRLidX726iG/K/aA+bkU0ND39y7ljJ2Eyx3zR03TfpNrgXAXc9E3ng==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@distilled.cloud/core": "1.0.0-rc.12" }, @@ -5819,6 +5802,7 @@ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "^1.0.0" } @@ -5829,6 +5813,7 @@ "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "devOptional": true, "license": "MPL-2.0", + "peer": true, "dependencies": { "detect-libc": "^2.0.3" }, @@ -5860,12 +5845,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -5881,12 +5866,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -5902,12 +5887,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -5923,12 +5908,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -5944,12 +5929,12 @@ "cpu": [ "arm" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -5965,12 +5950,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -5986,12 +5971,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6007,12 +5992,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6028,12 +6013,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6049,12 +6034,12 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6070,12 +6055,12 @@ "cpu": [ "x64" ], - "dev": true, "license": "MPL-2.0", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 12.0.0" }, @@ -6090,6 +6075,7 @@ "integrity": "sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.6.0" } @@ -6112,7 +6098,8 @@ "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@prisma/composer/node_modules/vite": { "version": "8.3.1", @@ -6199,6 +6186,7 @@ "integrity": "sha512-qpSwIyz0jHQq5qXBTNxFmE6664rJ7O+4TvPFOiOaBSrz8IOHc1koKKSqTM2H6u1UG1+TveuC6vaDHKXFOvb1Kw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@oxc-project/types": "=0.151.0", "@rolldown/pluginutils": "^1.0.0" @@ -7150,7 +7138,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7167,7 +7154,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7184,7 +7170,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7201,7 +7186,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7218,7 +7202,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7235,7 +7218,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7252,7 +7234,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7269,7 +7250,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7286,7 +7266,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7303,7 +7282,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7320,7 +7298,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7337,7 +7314,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7354,7 +7330,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7371,7 +7346,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7388,7 +7362,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -8000,6 +7973,7 @@ "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/deep-eql": "*", "assertion-error": "^2.0.1" @@ -8020,7 +7994,8 @@ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/estree": { "version": "1.0.9", @@ -8115,7 +8090,6 @@ "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -8126,7 +8100,6 @@ "integrity": "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==", "devOptional": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.3.0" } @@ -8207,7 +8180,6 @@ "integrity": "sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.70.0", "@typescript-eslint/types": "8.70.0", @@ -8758,7 +8730,6 @@ "integrity": "sha512-m1QFg+U+3yPOnP1xSYJ73UIRxLOXdts1JOhiOiyPYqEsALgrXFFINvgUaD6R6iNvaBFAjHllBCbkfx4FuOdpaA==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "@rollup/pluginutils": "^5.1.3", @@ -8796,6 +8767,7 @@ "integrity": "sha512-Ijc7T1nT9efNb5LxvjaBrEqw3f/QwUv5EE0nKqZxgqsaV/FxAAZ8baGylA8X/Z2oS4Lp+K74Jr6dTJsDKxJDeg==", "devOptional": true, "license": "MIT", + "peer": true, "funding": { "url": "https://opencollective.com/vitest" } @@ -8829,7 +8801,6 @@ "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "devOptional": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -9179,6 +9150,7 @@ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" } @@ -9281,7 +9253,6 @@ "integrity": "sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "peerDependencies": { "bare-abort-controller": "*" }, @@ -9487,7 +9458,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.11.23", "caniuse-lite": "^1.0.30001810", @@ -9682,6 +9652,7 @@ "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -9740,7 +9711,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "license": "MIT", - "peer": true, "dependencies": { "readdirp": "^5.0.0" }, @@ -10380,8 +10350,7 @@ "resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-rc.115.tgz", "integrity": "sha512-ogYulZ5ffeOzrJqQrG0XOkDO5lKn2s9KNHhoxJy/6wKUkF0i12dlVXWA9TgsgQ+zV/JzizyG0+XMPepZEQX6vw==", "devOptional": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/electron-to-chromium": { "version": "1.5.432", @@ -10566,7 +10535,8 @@ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/es-object-atoms": { "version": "1.1.2", @@ -10707,7 +10677,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -10808,7 +10777,6 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -10910,7 +10878,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -11404,6 +11371,7 @@ "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=12.0.0" } @@ -11812,29 +11780,6 @@ "node": ">= 0.6" } }, - "node_modules/framer-motion": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-13.4.0.tgz", - "integrity": "sha512-HCpqKM9BTu6UYKtj0u6J1QNxojnnirNcghcSDZ+SkpiL3myxvtsgXPS3ZGEELC2eSma7YiA937rAEXtRyydSXQ==", - "license": "MIT", - "dependencies": { - "motion-dom": "^13.3.0", - "motion-utils": "^13.3.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, "node_modules/fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", @@ -11848,13 +11793,13 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } @@ -12264,7 +12209,6 @@ "integrity": "sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==", "devOptional": true, "license": "MIT", - "peer": true, "engines": { "node": ">=16.9.0" } @@ -13055,7 +12999,6 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "license": "MIT", - "peer": true, "bin": { "jiti": "lib/jiti-cli.mjs" } @@ -13832,19 +13775,72 @@ "node": ">=18.0.0" } }, - "node_modules/motion-dom": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-13.3.0.tgz", - "integrity": "sha512-AmAnB6pHdZ1vHGzWzuzteG6Q3j1lHKeX/lbST6jGlgm0cjvLUgaCk1xhOuPMOy5SgovN6wnnUdwFrkcsus7Ftg==", + "node_modules/motion": { + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.43.0.tgz", + "integrity": "sha512-BQgQbSa9Hn3/mtbib0MK53y6JSANa+YKUKlaYnWzAVDH424RYQ5LVpV3pNiWH00BA2z4ojsSdMzqT7g2FQwjuQ==", "license": "MIT", "dependencies": { - "motion-utils": "^13.3.0" + "framer-motion": "^12.43.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/motion-utils": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-13.3.0.tgz", - "integrity": "sha512-sgSschQp7EseHInIlR7hBbMuvet3RA0bs28KPZAXJcGKGdxHGvh1ogpYDilY3bOMtl73EqPNmp75sAKHYPU5sg==", + "node_modules/motion/node_modules/framer-motion": { + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.43.0.tgz", + "integrity": "sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.43.0", + "motion-utils": "^12.39.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/motion/node_modules/motion-dom": { + "version": "12.43.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.43.0.tgz", + "integrity": "sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.39.0" + } + }, + "node_modules/motion/node_modules/motion-utils": { + "version": "12.39.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.39.0.tgz", + "integrity": "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==", "license": "MIT" }, "node_modules/ms": { @@ -14330,6 +14326,7 @@ "https://opencollective.com/debug" ], "license": "MIT", + "peer": true, "engines": { "node": ">=12.20.0" } @@ -14709,7 +14706,6 @@ "resolved": "https://registry.npmjs.org/pg/-/pg-8.22.0.tgz", "integrity": "sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA==", "license": "MIT", - "peer": true, "dependencies": { "pg-connection-string": "^2.14.0", "pg-pool": "^3.14.0", @@ -14953,7 +14949,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.8.tgz", "integrity": "sha512-WRFq3Wn3WId7LLROfMLdH7xaFr2jR62wU8nLO6rQUOLOxNZUviyJQs1M0iIhLexSFy+L+w0ch66wtoO2jRjG0A==", "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -14999,7 +14994,6 @@ "integrity": "sha512-ZlqkN6FGEAOT/Ce2yz2R8nzNwdC9rnt9LmJHrHDbZC/9+d6KmqpNRd+8aUZhIcbyuHOYzWlpGaaAPKn21zDssw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@manypkg/tools": "^2.1.2", "@prisma/cli-engine": "0.6.1", @@ -15252,7 +15246,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -15262,7 +15255,6 @@ "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.52.1.tgz", "integrity": "sha512-fdZZruC9/x/joCg0mhKGs5aHpwrXLCSZ4GOJmhhYyiE0ffyEsk9MLFt9LCOCF9tn8ErTD+UDQP4oDUSlZkmpCg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@internationalized/date": "^3.12.4", "@internationalized/number": "^3.6.8", @@ -15284,7 +15276,6 @@ "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.21.1.tgz", "integrity": "sha512-J88WflYY0z+EhLX0ce+GjFlQ3ag3ubIgfUTjpKSrBQBu92Xtl4Ub9o118HItUddtbk1Ido0jzyPy94/klZy1hg==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@internationalized/date": "^3.12.4", "@internationalized/string": "^3.2.10", @@ -15316,7 +15307,8 @@ "version": "0.28.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz", "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/react-is": { "version": "16.13.1", @@ -15397,8 +15389,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", @@ -15559,7 +15550,6 @@ "integrity": "sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@oxc-project/types": "=0.146.0", "@rolldown/pluginutils": "^1.0.0" @@ -15646,7 +15636,6 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.1.0" } @@ -16424,8 +16413,7 @@ "version": "4.3.3", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tapable": { "version": "2.3.3", @@ -16514,6 +16502,7 @@ "integrity": "sha512-78U2TlB2CnVenajOFzf3BKSm0J6oz5L0NV7g32LCPccvYc0lbWvys4d3uUUCS2B1N8PAf2+aekR8i1KbC3HO7Q==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" } @@ -16524,6 +16513,7 @@ "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -16776,7 +16766,6 @@ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -16874,7 +16863,6 @@ "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "pathe": "^2.0.3" } @@ -17214,6 +17202,7 @@ "integrity": "sha512-NKUzAelcoCXhXL4dJzKIwXeR8iEVqsA0Lq6Vnd0UXvgaKbzVo4ZTHROF2Jidrv+SgxOQ03fMinnNhzZATxOD3A==", "devOptional": true, "license": "MIT", + "peer": true, "bin": { "why-is-node-running": "cli.js" }, @@ -17335,7 +17324,6 @@ "integrity": "sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==", "devOptional": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -17570,7 +17558,6 @@ "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" }