Implement code changes to enhance functionality and improve performance

This commit is contained in:
THIS ONE IS A LITTLE BIT TRICKY KRUB 2025-04-11 17:25:39 +07:00
parent 987d4f4fcc
commit e37364e3dc
5 changed files with 336 additions and 319 deletions

View File

@ -1,38 +1,32 @@
"use client";
import { useState, useRef } from "react";
import { Button } from "@/components/ui/button";
import { Card, CardContent } from "@/components/ui/card";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { AnalyticsPanel } from "@/components/map/analytics-panel";
import MapWithSearch from "@/components/map/map-with-search";
import { TopNavigation } from "@/components/navigation/top-navigation";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Slider } from "@/components/ui/slider";
import { Switch } from "@/components/ui/switch";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import {
MapPin,
Home,
BarChart2,
Filter,
MessageCircle,
X,
Plus,
Minus,
Droplets,
Wind,
Sun,
LineChart,
Send,
Newspaper,
Building,
BedDouble,
Bath,
BedDouble,
Building,
Droplets,
Filter,
Home,
MapPin,
MessageCircle,
Send,
Star,
Clock,
RefreshCw,
Sun,
Wind,
X,
} from "lucide-react";
import Link from "next/link";
import { TopNavigation } from "@/components/navigation/top-navigation";
import MapWithSearch from "@/components/map/map-with-search";
import { AnalyticsPanel } from "@/components/map/analytics-panel";
import { useRef, useState } from "react";
import Draggable from "react-draggable";
export default function MapsPage() {
const [showFilters, setShowFilters] = useState(false);
@ -46,6 +40,7 @@ export default function MapsPage() {
const [messages, setMessages] = useState([
{ role: "assistant", content: "Hi! How can I help you today?" },
]);
const nodeRef = useRef<HTMLDivElement>(null);
const handleSendMessage = () => {
if (message.trim()) {
@ -75,7 +70,7 @@ export default function MapsPage() {
<div className="relative h-screen w-full overflow-hidden bg-gray-100 dark:bg-gray-900">
<div>
<div className="absolute inset-0 flex items-center justify-center">
{/* <MapWithSearch /> */}
<MapWithSearch />
</div>
{/* Sample Property Markers */}
@ -291,7 +286,14 @@ export default function MapsPage() {
)}
{/* Analytics Panel */}
{showAnalytics && <AnalyticsPanel setShowAnalytics={setShowAnalytics}/>}
{showAnalytics && (
<Draggable nodeRef={nodeRef as React.RefObject<HTMLElement>}>
<div ref={nodeRef}>
<AnalyticsPanel setShowAnalytics={setShowAnalytics} />
</div>
</Draggable>
)}
{/* Filters Panel */}
{showFilters && (

View File

@ -1,6 +1,7 @@
@import "tailwindcss";
@plugin 'tailwindcss-animate';
@plugin 'tailwind-scrollbar-hide';
@custom-variant dark (&:is(.dark *));

View File

@ -1,34 +1,26 @@
import { useModelState } from "@/store/model-store";
import {
BarChart2,
RefreshCw,
X,
LineChart,
Droplets,
Wind,
Newspaper,
Clock,
MessageCircle,
Droplets,
LineChart,
Link,
ChevronsUpDown,
MessageCircle,
Newspaper,
RefreshCw,
Wind,
X,
} from "lucide-react";
import { useShallow } from "zustand/react/shallow";
import { Badge } from "../ui/badge";
import { Button } from "../ui/button";
import { Card, CardContent } from "../ui/card";
import { useModelState } from "@/store/model-store";
import { useShallow } from "zustand/react/shallow";
import {
Collapsible,
CollapsibleContent,
CollapsibleTrigger,
} from "@/components/ui/collapsible";
import { useState } from "react";
export function AnalyticsPanel({
setShowAnalytics,
}: {
setShowAnalytics: (show: boolean) => void;
}) {
const [isOpen, setIsOpen] = useState(true);
const { selectedModel, setSelectedModel } = useModelState(
useShallow((state) => ({
selectedModel: state.selectedModel,
@ -37,184 +29,167 @@ export function AnalyticsPanel({
}))
);
return (
<Collapsible
open={isOpen}
onOpenChange={setIsOpen}
className="w-[350px] space-y-2"
>
<div className="flex items-center justify-between space-x-4 px-4">
<h4 className="text-sm font-semibold">
@peduarte starred 3 repositories
</h4>
<CollapsibleTrigger asChild>
<Button variant="ghost" size="sm" className="w-9 p-0">
<ChevronsUpDown className="h-4 w-4" />
<span className="sr-only">Toggle</span>
</Button>
</CollapsibleTrigger>
</div>
<CollapsibleContent>
<div className="absolute top-20 right-4 w-96 max-h-[800px] bg-gray-800 overflow-y-auto z-20 map-overlay">
<div className="map-overlay-header">
<div className="flex items-center gap-2">
<BarChart2 className="h-5 w-5 text-primary" />
<span className="font-medium">Analytics</span>
</div>
<div className="flex items-center gap-1">
<Button
variant="ghost"
size="sm"
className="h-8 w-8 flex items-center justify-center"
onClick={() => setSelectedModel(selectedModel)}
>
<RefreshCw className="h-4 w-4" />
</Button>
<Button
variant="ghost"
size="icon"
className="h-8 w-8"
onClick={() => setShowAnalytics(false)}
>
<X className="h-4 w-4" />
</Button>
</div>
<div className="absolute top-20 right-4 w-96 max-h-[800px] bg-background p-5 rounded-md overflow-y-auto z-20 map-overlay overflow-hidden scrollbar-hide cursor-grab">
<div className="map-overlay-header flex w-full">
<div className="flex justify-between w-full items-center gap-2">
<div className="flex items-center gap-2">
<BarChart2 className="h-5 w-5 text-primary" />
<span className="font-medium">Analytics</span>
</div>
<div className="map-overlay-content">
<div className="flex items-center justify-between mb-4">
<p className="text-sm text-muted-foreground">
Information in radius will be analyzed
</p>
<Badge variant="outline" className="text-xs">
Using: {selectedModel}
</Badge>
</div>
<Card className="mb-4">
<CardContent className="p-4">
<div className="flex items-center gap-2 mb-2">
<LineChart className="h-4 w-4 text-primary" />
<span className="font-medium">Area Price History</span>
</div>
<h3 className="text-2xl font-bold mb-1">10,000,000 Baht</h3>
<p className="text-xs text-muted-foreground mb-3">
Overall Price History of this area
</p>
<div className="h-20 w-full relative">
{/* Simple line chart simulation */}
<div className="absolute bottom-0 left-0 w-full h-px bg-border"></div>
<div className="absolute bottom-0 left-0 h-full flex items-end">
<div className="w-1/6 h-8 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-6 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-7 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-10 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-12 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-16 border-b-2 border-r-2 border-primary rounded-br"></div>
</div>
</div>
</CardContent>
</Card>
<Card className="mb-4">
<CardContent className="p-4">
<div className="flex items-center gap-2 mb-2">
<LineChart className="h-4 w-4 text-primary" />
<span className="font-medium">Price Prediction</span>
</div>
<h3 className="text-2xl font-bold mb-1">15,000,000 Baht</h3>
<p className="text-xs text-muted-foreground mb-3">
The estimated price based on various factors.
</p>
<div className="h-20 w-full relative">
{/* Simple line chart simulation */}
<div className="absolute bottom-0 left-0 w-full h-px bg-border"></div>
<div className="absolute bottom-0 left-0 h-full flex items-end">
<div className="w-1/6 h-4 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-6 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-8 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-10 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-14 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-18 border-b-2 border-r-2 border-green-500 rounded-br"></div>
</div>
</div>
</CardContent>
</Card>
<div className="grid grid-cols-2 gap-2 mb-4">
<Card>
<CardContent className="p-3">
<div className="flex flex-col items-center">
<Droplets className="h-5 w-5 text-blue-500 mb-1" />
<span className="text-sm font-medium">Flood Factor</span>
<Badge className="mt-1 bg-amber-500">Moderate</Badge>
</div>
</CardContent>
</Card>
<Card>
<CardContent className="p-3">
<div className="flex flex-col items-center">
<Wind className="h-5 w-5 text-purple-500 mb-1" />
<span className="text-sm font-medium">Air Factor</span>
<Badge className="mt-1 bg-destructive">Bad</Badge>
</div>
</CardContent>
</Card>
</div>
{/* Local News Section */}
<div className="mb-4">
<h4 className="font-medium text-sm mb-2 flex items-center">
<Newspaper className="h-4 w-4 mr-1 text-primary" />
Local News
</h4>
<div className="space-y-2">
<Card>
<CardContent className="p-3">
<h5 className="text-sm font-medium">
New BTS Extension Planned
</h5>
<p className="text-xs text-muted-foreground">
The BTS Skytrain will be extended to cover more areas in
Sukhumvit by 2025.
</p>
<div className="flex items-center text-xs text-muted-foreground mt-1">
<Clock className="h-3 w-3 mr-1" />
<span>2 days ago</span>
</div>
</CardContent>
</Card>
<Card>
<CardContent className="p-3">
<h5 className="text-sm font-medium">
Property Tax Changes
</h5>
<p className="text-xs text-muted-foreground">
New property tax regulations will take effect next month
affecting luxury condominiums.
</p>
<div className="flex items-center text-xs text-muted-foreground mt-1">
<Clock className="h-3 w-3 mr-1" />
<span>1 week ago</span>
</div>
</CardContent>
</Card>
</div>
</div>
<div className="flex gap-2">
<Button variant="outline" className="w-full gap-2">
<MessageCircle className="h-4 w-4" />
Chat With AI
</Button>
<Link href="/price-prediction" className="flex-1">
<Button className="w-full">Full Analysis</Button>
</Link>
</div>
<div className="flex items-center gap-1">
<Button
variant="ghost"
size="sm"
className="h-8 w-8 flex items-center justify-center"
onClick={() => setSelectedModel(selectedModel)}
>
<RefreshCw className="h-4 w-4" />
</Button>
<Button
variant="ghost"
size="icon"
className="h-8 w-8"
onClick={() => setShowAnalytics(false)}
>
<X className="h-4 w-4" />
</Button>
</div>
</div>
</CollapsibleContent>
</Collapsible>
</div>
<div className="map-overlay-content">
<div className="flex items-center justify-between">
<p className="text-sm text-muted-foreground">
Information in radius will be analyzed
</p>
</div>
<div className="mt-2 mb-2">
<Badge variant="outline" className="text-xs">
Using: {selectedModel}
</Badge>
</div>
<Card className="mb-4">
<CardContent className="p-4">
<div className="flex items-center gap-2 mb-2">
<LineChart className="h-4 w-4 text-primary" />
<span className="font-medium">Area Price History</span>
</div>
<h3 className="text-2xl font-bold mb-1">10,000,000 Baht</h3>
<p className="text-xs text-muted-foreground mb-3">
Overall Price History of this area
</p>
<div className="h-20 w-full relative">
{/* Simple line chart simulation */}
<div className="absolute bottom-0 left-0 w-full h-px bg-border"></div>
<div className="absolute bottom-0 left-0 h-full flex items-end">
<div className="w-1/6 h-8 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-6 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-7 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-10 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-12 border-b-2 border-r-2 border-primary rounded-br"></div>
<div className="w-1/6 h-16 border-b-2 border-r-2 border-primary rounded-br"></div>
</div>
</div>
</CardContent>
</Card>
<Card className="mb-4">
<CardContent className="p-4">
<div className="flex items-center gap-2 mb-2">
<LineChart className="h-4 w-4 text-primary" />
<span className="font-medium">Price Prediction</span>
</div>
<h3 className="text-2xl font-bold mb-1">15,000,000 Baht</h3>
<p className="text-xs text-muted-foreground mb-3">
The estimated price based on various factors.
</p>
<div className="h-20 w-full relative">
{/* Simple line chart simulation */}
<div className="absolute bottom-0 left-0 w-full h-px bg-border"></div>
<div className="absolute bottom-0 left-0 h-full flex items-end">
<div className="w-1/6 h-4 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-6 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-8 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-10 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-14 border-b-2 border-r-2 border-green-500 rounded-br"></div>
<div className="w-1/6 h-18 border-b-2 border-r-2 border-green-500 rounded-br"></div>
</div>
</div>
</CardContent>
</Card>
<div className="grid grid-cols-2 gap-2 mb-4">
<Card>
<CardContent className="p-3">
<div className="flex flex-col items-center">
<Droplets className="h-5 w-5 text-blue-500 mb-1" />
<span className="text-sm font-medium">Flood Factor</span>
<Badge className="mt-1 bg-amber-500">Moderate</Badge>
</div>
</CardContent>
</Card>
<Card>
<CardContent className="p-3">
<div className="flex flex-col items-center">
<Wind className="h-5 w-5 text-purple-500 mb-1" />
<span className="text-sm font-medium">Air Factor</span>
<Badge className="mt-1 bg-destructive">Bad</Badge>
</div>
</CardContent>
</Card>
</div>
{/* Local News Section */}
<div className="mb-4">
<h4 className="font-medium text-sm mb-2 flex items-center">
<Newspaper className="h-4 w-4 mr-1 text-primary" />
Local News
</h4>
<div className="space-y-2">
<Card>
<CardContent className="p-3">
<h5 className="text-sm font-medium">
New BTS Extension Planned
</h5>
<p className="text-xs text-muted-foreground">
The BTS Skytrain will be extended to cover more areas in
Sukhumvit by 2025.
</p>
<div className="flex items-center text-xs text-muted-foreground mt-1">
<Clock className="h-3 w-3 mr-1" />
<span>2 days ago</span>
</div>
</CardContent>
</Card>
<Card>
<CardContent className="p-3">
<h5 className="text-sm font-medium">Property Tax Changes</h5>
<p className="text-xs text-muted-foreground">
New property tax regulations will take effect next month
affecting luxury condominiums.
</p>
<div className="flex items-center text-xs text-muted-foreground mt-1">
<Clock className="h-3 w-3 mr-1" />
<span>1 week ago</span>
</div>
</CardContent>
</Card>
</div>
</div>
<div className="flex gap-2">
<Button variant="outline" className="w-full gap-2">
<MessageCircle className="h-4 w-4" />
Chat With AI
</Button>
<Link href="/price-prediction" className="flex-1">
<Button className="w-full">Full Analysis</Button>
</Link>
</div>
</div>
</div>
);
}

View File

@ -54,12 +54,13 @@
"react": "19.0.0",
"react-day-picker": "8.10.1",
"react-dom": "19.0.0",
"react-draggable": "^4.4.6",
"react-hook-form": "^7.54.1",
"react-resizable-panels": "^2.1.7",
"recharts": "^2.15.2",
"sonner": "^1.7.1",
"tailwind-merge": "^3.2.0",
"tailwindcss": "^4.1.3",
"tailwind-scrollbar-hide": "^2.0.0",
"tailwindcss-animate": "^1.0.7",
"vaul": "^0.9.6",
"zod": "^3.24.1",
@ -101,7 +102,7 @@
"@types/react-dom": "19.0.4",
"eslint": "^9",
"eslint-config-next": "15.2.1",
"tailwindcss": "^4",
"tailwindcss": "^4.1.3",
"typescript": "^5"
},
"pnpm": {

View File

@ -1,5 +1,9 @@
lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
overrides:
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
@ -140,6 +144,9 @@ dependencies:
react-dom:
specifier: 19.0.0
version: 19.0.0(react@19.0.0)
react-draggable:
specifier: ^4.4.6
version: 4.4.6(react-dom@19.0.0)(react@19.0.0)
react-hook-form:
specifier: ^7.54.1
version: 7.54.1(react@19.0.0)
@ -155,9 +162,9 @@ dependencies:
tailwind-merge:
specifier: ^3.2.0
version: 3.2.0
tailwindcss:
specifier: ^4.1.3
version: 4.1.3
tailwind-scrollbar-hide:
specifier: ^2.0.0
version: 2.0.0(tailwindcss@4.1.3)
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@4.1.3)
@ -187,6 +194,9 @@ devDependencies:
eslint-config-next:
specifier: 15.2.1
version: 15.2.1(eslint@9.0.0)(typescript@5.0.2)
tailwindcss:
specifier: ^4.1.3
version: 4.1.3
typescript:
specifier: ^5
version: 5.0.2
@ -654,8 +664,8 @@ packages:
/@radix-ui/react-accordion@1.2.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-RIQ15mrcvqIkDARJeERSuXSry2N8uYnxkdDetpfmalT/+0ntOXLkFOsh9iwlAsCv+qcmhZjbdJogIm6WBa6c4A==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -682,8 +692,8 @@ packages:
/@radix-ui/react-alert-dialog@1.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-p4XnPqgej8sZAAReCAKgz1REYZEBLR8hU9Pg27wFnCWIMc8g1ccCs0FjBcy05V15VTu8pAePw/VDYeOm/uZ6yQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -707,8 +717,8 @@ packages:
/@radix-ui/react-arrow@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -727,8 +737,8 @@ packages:
/@radix-ui/react-aspect-ratio@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-TaJxYoCpxJ7vfEkv2PTNox/6zzmpKXT6ewvCuf2tTOIVN45/Jahhlld29Yw4pciOXS2Xq91/rSGEdmEnUWZCqA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -747,8 +757,8 @@ packages:
/@radix-ui/react-avatar@1.1.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-Paen00T4P8L8gd9bNsRMw7Cbaz85oxiv+hzomsRZgFm2byltPFDtfcoqlWJ8GyZlIBWgLssJlzLCnKU0G0302g==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -770,8 +780,8 @@ packages:
/@radix-ui/react-checkbox@1.1.4(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-wP0CPAHq+P5I4INKe3hJrIa1WoNqqrejzW+zoU0rOvo1b9gDEJJFl2rYfO1PYJUQCc2H1WZxIJmyv9BS8i5fLw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -797,8 +807,8 @@ packages:
/@radix-ui/react-collapsible@1.1.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-jFSerheto1X03MUC0g6R7LedNW9EEGWdg9W1+MlpkMLwGkgkbUXLPBH/KIuWKXUoeYRVY11llqbTBDzuLg7qrw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -824,8 +834,8 @@ packages:
/@radix-ui/react-collection@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -847,7 +857,7 @@ packages:
/@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -860,8 +870,8 @@ packages:
/@radix-ui/react-context-menu@2.2.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-aUP99QZ3VU84NPsHeaFt4cQUNgJqFsLLOt/RbbWXszZ6MP0DpDyjkFZORr4RpAEx3sUBk+Kc8h13yGtC5Qw8dg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -885,7 +895,7 @@ packages:
/@radix-ui/react-context@1.1.1(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -898,8 +908,8 @@ packages:
/@radix-ui/react-dialog@1.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -931,7 +941,7 @@ packages:
/@radix-ui/react-direction@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -944,8 +954,8 @@ packages:
/@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -968,8 +978,8 @@ packages:
/@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -994,7 +1004,7 @@ packages:
/@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1007,8 +1017,8 @@ packages:
/@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1029,8 +1039,8 @@ packages:
/@radix-ui/react-hover-card@1.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-E4ozl35jq0VRlrdc4dhHrNSV0JqBb4Jy73WAhBEK7JoYnQ83ED5r0Rb/XdVKw89ReAJN38N492BAPBZQ57VmqQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1057,7 +1067,7 @@ packages:
/@radix-ui/react-id@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1071,8 +1081,8 @@ packages:
/@radix-ui/react-label@2.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1091,8 +1101,8 @@ packages:
/@radix-ui/react-menu@2.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1128,8 +1138,8 @@ packages:
/@radix-ui/react-menubar@1.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-FHq7+3DlXwh/7FOM4i0G4bC4vPjiq89VEEvNF4VMLchGnaUuUbE5uKXMUCjdKaOghEEMeiKa5XCa2Pk4kteWmg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1157,8 +1167,8 @@ packages:
/@radix-ui/react-navigation-menu@1.2.5(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-myMHHQUZ3ZLTi8W381/Vu43Ia0NqakkQZ2vzynMmTUtQQ9kNkjzhOwkZC9TAM5R07OZUVIQyHC06f/9JZJpvvA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1190,8 +1200,8 @@ packages:
/@radix-ui/react-popover@1.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1224,8 +1234,8 @@ packages:
/@radix-ui/react-popper@1.2.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1253,8 +1263,8 @@ packages:
/@radix-ui/react-portal@1.1.4(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1274,8 +1284,8 @@ packages:
/@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1295,8 +1305,8 @@ packages:
/@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1315,8 +1325,8 @@ packages:
/@radix-ui/react-progress@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-u1IgJFQ4zNAUTjGdDL5dcl/U8ntOR6jsnhxKb5RKp5Ozwl88xKR9EqRZOe/Mk8tnx0x5tNUe2F+MzsyjqMg0MA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1336,8 +1346,8 @@ packages:
/@radix-ui/react-radio-group@1.2.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-xtCsqt8Rp09FK50ItqEqTJ7Sxanz8EM8dnkVIhJrc/wkMMomSmXHvYbhv3E7Zx4oXh98aaLt9W679SUYXg4IDA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1365,8 +1375,8 @@ packages:
/@radix-ui/react-roving-focus@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1393,8 +1403,8 @@ packages:
/@radix-ui/react-scroll-area@1.2.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-l7+NNBfBYYJa9tNqVcP2AGvxdE3lmE6kFTBXdvHgUaZuy+4wGCL1Cl2AfaR7RKyimj7lZURGLwFO59k4eBnDJQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1421,8 +1431,8 @@ packages:
/@radix-ui/react-select@2.1.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1461,8 +1471,8 @@ packages:
/@radix-ui/react-separator@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1481,8 +1491,8 @@ packages:
/@radix-ui/react-slider@1.2.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-nNrLAWLjGESnhqBqcCNW4w2nn7LxudyMzeB6VgdyAnFLC6kfQgnAjSL2v6UkQTnDctJBlxrmxfplWS4iYjdUTw==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1511,7 +1521,7 @@ packages:
/@radix-ui/react-slot@1.1.2(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1525,8 +1535,8 @@ packages:
/@radix-ui/react-switch@1.1.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1551,8 +1561,8 @@ packages:
/@radix-ui/react-tabs@1.1.3(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1578,8 +1588,8 @@ packages:
/@radix-ui/react-toast@1.2.6(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1609,8 +1619,8 @@ packages:
/@radix-ui/react-toggle-group@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-JBm6s6aVG/nwuY5eadhU2zDi/IwYS0sDM5ZWb4nymv/hn3hZdkw+gENn0LP4iY1yCd7+bgJaCwueMYJIU3vk4A==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1635,8 +1645,8 @@ packages:
/@radix-ui/react-toggle@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-lntKchNWx3aCHuWKiDY+8WudiegQvBpDRAYL8dKLRvKEH8VOpl0XX6SSU/bUBqIRJbcTy4+MW06Wv8vgp10rzQ==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1657,8 +1667,8 @@ packages:
/@radix-ui/react-tooltip@1.1.8(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -1688,7 +1698,7 @@ packages:
/@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1701,7 +1711,7 @@ packages:
/@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1715,7 +1725,7 @@ packages:
/@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1729,7 +1739,7 @@ packages:
/@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1742,7 +1752,7 @@ packages:
/@radix-ui/react-use-previous@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1755,7 +1765,7 @@ packages:
/@radix-ui/react-use-rect@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1769,7 +1779,7 @@ packages:
/@radix-ui/react-use-size@1.1.0(@types/react@19.0.10)(react@19.0.0):
resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -1783,8 +1793,8 @@ packages:
/@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@19.0.4)(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==}
peerDependencies:
'@types/react': '*'
'@types/react-dom': '*'
'@types/react': 19.0.10
'@types/react-dom': 19.0.4
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
@ -2022,7 +2032,7 @@ packages:
/@types/react-dom@19.0.4(@types/react@19.0.10):
resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==}
peerDependencies:
'@types/react': ^19.0.0
'@types/react': 19.0.10
dependencies:
'@types/react': 19.0.10
dev: false
@ -2548,6 +2558,11 @@ packages:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
dev: false
/clsx@1.2.1:
resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
engines: {node: '>=6'}
dev: false
/clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
@ -2581,6 +2596,7 @@ packages:
/color-string@1.9.1:
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
requiresBuild: true
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
@ -2590,6 +2606,7 @@ packages:
/color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
requiresBuild: true
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
@ -3574,6 +3591,7 @@ packages:
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
requiresBuild: true
dev: false
optional: true
@ -4297,6 +4315,18 @@ packages:
scheduler: 0.25.0
dev: false
/react-draggable@4.4.6(react-dom@19.0.0)(react@19.0.0):
resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==}
peerDependencies:
react: '>= 16.3.0'
react-dom: '>= 16.3.0'
dependencies:
clsx: 1.2.1
prop-types: 15.8.1
react: 19.0.0
react-dom: 19.0.0(react@19.0.0)
dev: false
/react-hook-form@7.54.1(react@19.0.0):
resolution: {integrity: sha512-PUNzFwQeQ5oHiiTUO7GO/EJXGEtuun2Y1A59rLnZBBj+vNEOWt/3ERTiG1/zt7dVeJEM+4vDX/7XQ/qanuvPMg==}
engines: {node: '>=18.0.0'}
@ -4317,7 +4347,7 @@ packages:
resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
engines: {node: '>=10'}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
peerDependenciesMeta:
'@types/react':
@ -4333,7 +4363,7 @@ packages:
resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==}
engines: {node: '>=10'}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -4375,7 +4405,7 @@ packages:
resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
engines: {node: '>=10'}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -4658,6 +4688,7 @@ packages:
/simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
requiresBuild: true
dependencies:
is-arrayish: 0.3.2
dev: false
@ -4804,6 +4835,14 @@ packages:
resolution: {integrity: sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==}
dev: false
/tailwind-scrollbar-hide@2.0.0(tailwindcss@4.1.3):
resolution: {integrity: sha512-lqiIutHliEiODwBRHy4G2+Tcayo2U7+3+4frBmoMETD72qtah+XhOk5XcPzC1nJvXhXUdfl2ajlMhUc2qC6CIg==}
peerDependencies:
tailwindcss: '>=3.0.0 || >= 4.0.0 || >= 4.0.0-beta.8 || >= 4.0.0-alpha.20'
dependencies:
tailwindcss: 4.1.3
dev: false
/tailwindcss-animate@1.0.7(tailwindcss@4.1.3):
resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
peerDependencies:
@ -4818,7 +4857,6 @@ packages:
/tailwindcss@4.1.3:
resolution: {integrity: sha512-2Q+rw9vy1WFXu5cIxlvsabCwhU2qUwodGq03ODhLJ0jW4ek5BUtoCsnLB0qG+m8AHgEsSJcJGDSDe06FXlP74g==}
dev: false
/tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
@ -4983,7 +5021,7 @@ packages:
resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
engines: {node: '>=10'}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -4998,7 +5036,7 @@ packages:
resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
engines: {node: '>=10'}
peerDependencies:
'@types/react': '*'
'@types/react': 19.0.10
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
@ -5122,7 +5160,7 @@ packages:
resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==}
engines: {node: '>=12.20.0'}
peerDependencies:
'@types/react': '>=18.0.0'
'@types/react': 19.0.10
immer: '>=9.0.6'
react: '>=18.0.0'
use-sync-external-store: '>=1.2.0'