feat: add indeks page and detail
This commit is contained in:
parent
77a0bfd084
commit
23c0f5b168
|
|
@ -0,0 +1,247 @@
|
||||||
|
"use client";
|
||||||
|
import { Card, CardContent } from "@/components/ui/card";
|
||||||
|
import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "@/components/ui/carousel";
|
||||||
|
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
|
import { Textarea } from "@/components/ui/textarea";
|
||||||
|
import Link from "next/link";
|
||||||
|
import { usePathname, useRouter } from "next/navigation";
|
||||||
|
import React, { useState } from "react";
|
||||||
|
|
||||||
|
const dummyImage = [
|
||||||
|
{ id: 1, thumbnail: "/assets/banner-sample.png" },
|
||||||
|
{ id: 2, thumbnail: "https://mediahub.polri.go.id/api/media/categories/view-thumbnail?id=125¤tMilis=1732769540018" },
|
||||||
|
{ id: 3, thumbnail: "https://mediahub.polri.go.id/api/media/categories/view-thumbnail?id=128¤tMilis=1732769540018" },
|
||||||
|
{ id: 4, thumbnail: "https://mediahub.polri.go.id/api/media/categories/view-thumbnail?id=127¤tMilis=1732769540018" },
|
||||||
|
{ id: 5, thumbnail: "https://mediahub.polri.go.id/api/media/categories/view-thumbnail?id=93¤tMilis=1732769540018" },
|
||||||
|
];
|
||||||
|
|
||||||
|
const dummyData = {
|
||||||
|
id: 12312,
|
||||||
|
title: "ahahah",
|
||||||
|
createdBy: "Mabes",
|
||||||
|
createdAt: "21-21-2021",
|
||||||
|
time: "18:23",
|
||||||
|
desc: "sdaasd",
|
||||||
|
htmlDescription:
|
||||||
|
'<p>Polres Kobar - Polres Kotawaringin Barat (Kobar) memberikan bantuan sosial kepada warga yang berada di Daerah Aliran Sungai (DAS) Arut khususnya yang terdampak banjir, Sabtu (30/11/2024) pagi.</p><p>Kapolda Kalteng Irjen Pol Drs. Djoko Poerwanto melalui Kapolres Kobar AKBP Yusfandi Usman, S.I.K., M.I.K., menjelaskan bahwa pihaknya membagikan 200 paket sembako sebagai bentuk kepedulian kepada masyarakat.</p><p>"Saya bersama personel turun langsung membagikan bantuan berupa paket sembako yang diserahkan kepada masyarakat sekaligus monitoring ke lokasi pinggiran sungai yang mulai sebagain terdampak banjir akibat curah hujan tinggi,” ungkap Kapolres.</p><p>Lebih lanjut, orang nomor satu di Polres Kobar ini, mengungkapkan kegiatan tersebut dilakukan dalam rangka tanggap waspada dan antisipasi bencana banjir di wilayah Kabupaten Kobar.</p><p>“Kami minta masyarakat tetap waspada banjir menyikapi cuaca yang berubah-ubah saat ini, tidak menutup kemungkinan bertambahnya volume air sungai, jika diguyur hujan terus menerus,” jelasnya.</p>',
|
||||||
|
};
|
||||||
|
|
||||||
|
const IndeksDetail = () => {
|
||||||
|
const [selectedSize, setSelectedSize] = useState<string>("L");
|
||||||
|
const [selectedTab, setSelectedTab] = useState("video");
|
||||||
|
const router = useRouter();
|
||||||
|
const pathname = usePathname();
|
||||||
|
|
||||||
|
const sizes = [
|
||||||
|
{ label: "XL", value: "3198 x 1798 px" },
|
||||||
|
{ label: "L", value: "2399 x 1349 px" },
|
||||||
|
{ label: "M", value: "1599 x 899 px" },
|
||||||
|
{ label: "S", value: "1066 x 599 px" },
|
||||||
|
{ label: "XS", value: "800 x 450 px" },
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="min-h-screen p-4 md:p-8">
|
||||||
|
{/* Container Utama */}
|
||||||
|
<div className="rounded-md overflow-hidden md:flex">
|
||||||
|
{/* Bagian Kiri */}
|
||||||
|
<div className="md:w-2/3">
|
||||||
|
{/* Gambar Utama */}
|
||||||
|
<div className="relative">
|
||||||
|
<img src="https://mediahub.polri.go.id/api/media/categories/view-thumbnail?id=93¤tMilis=1732769540018" alt="Main" className="w-full" />
|
||||||
|
<div className="absolute top-4 left-4"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Thumbnail */}
|
||||||
|
<div className="p-4 grid grid-cols-4 gap-2">
|
||||||
|
{[1, 2, 3, 4].map((_, index) => (
|
||||||
|
<img
|
||||||
|
key={index}
|
||||||
|
src="https://mediahub.polri.go.id/api/media/categories/view-thumbnail?id=93¤tMilis=1732769540018"
|
||||||
|
alt={`Thumbnail ${index + 1}`}
|
||||||
|
className="w-full h-16 object-cover rounded-md cursor-pointer hover:ring-2 hover:ring-red-600"
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Bagian Kanan */}
|
||||||
|
<div className="md:w-1/3 p-4 bg-gray-300 rounded-lg mx-4">
|
||||||
|
<div className="flex flex-col mb-3 items-center justify-center cursor-pointer">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="2.5em" height="2.5em" viewBox="0 0 24 24">
|
||||||
|
<path fill="black" d="m17 18l-5-2.18L7 18V5h10m0-2H7a2 2 0 0 0-2 2v16l7-3l7 3V5a2 2 0 0 0-2-2" />
|
||||||
|
</svg>
|
||||||
|
<p className="text-base lg:text-lg">Simpan</p>
|
||||||
|
</div>
|
||||||
|
{/* garis */}
|
||||||
|
<div className="border-t border-black my-4"></div>
|
||||||
|
|
||||||
|
<Link href="" className="bg-red-600 text-white text-xs font-bold px-3 py-3 my-3 flex justify-center items-center rounded">
|
||||||
|
OPS MANTAP PRAJA & PILKADA 2024
|
||||||
|
</Link>
|
||||||
|
|
||||||
|
<div className="flex justify-center flex-wrap gap-2 mb-4">
|
||||||
|
<p className="bg-gray-200 text-gray-700 text-xs px-3 py-1 rounded-full cursor-pointer hover:bg-gray-500">poldajabar</p>
|
||||||
|
<p className="bg-gray-200 text-gray-700 text-xs px-3 py-1 rounded-full cursor-pointer hover:bg-gray-500">pilkadamai2024</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="border-t border-black my-4"></div>
|
||||||
|
|
||||||
|
{/* Opsi Ukuran Foto */}
|
||||||
|
<h4 className="flex text-lg justify-center items-center font-semibold my-3">Opsi Ukuran Foto</h4>
|
||||||
|
|
||||||
|
<div className="border-t border-black my-4"></div>
|
||||||
|
|
||||||
|
<div className="space-y-2">
|
||||||
|
{sizes.map((size) => (
|
||||||
|
<label key={size.label} className="flex items-center space-x-2 cursor-pointer">
|
||||||
|
<input type="radio" name="size" value={size.label} checked={selectedSize === size.label} onChange={() => setSelectedSize(size.label)} className="text-red-600 focus:ring-red-600" />
|
||||||
|
<div className="text-sm">
|
||||||
|
{size.label} ---------------------------------------- {size.value}
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Download Semua */}
|
||||||
|
<div className="mt-4">
|
||||||
|
<label className="flex items-center space-x-2 text-sm">
|
||||||
|
<input type="checkbox" className="text-red-600 focus:ring-red-600" />
|
||||||
|
<span>Download Semua File?</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Tombol Download */}
|
||||||
|
<button className="mt-4 bg-red-600 text-white w-full py-2 flex justify-center items-center gap-1 rounded-md text-sm hover:bg-red-700">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
|
||||||
|
<path fill="white" d="m12 16l-5-5l1.4-1.45l2.6 2.6V4h2v8.15l2.6-2.6L17 11zm-6 4q-.825 0-1.412-.587T4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413T18 20z" />
|
||||||
|
</svg>
|
||||||
|
Download
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Footer Informasi */}
|
||||||
|
<div className="p-4 text-sm text-gray-500 flex justify-between items-center border-t mt-4">
|
||||||
|
<p className="items-end">
|
||||||
|
oleh <span className="font-semibold text-black">{dummyData.createdBy}</span> | Diupdate pada {dummyData.createdAt} {dummyData.time} WIB | 👁️ 65
|
||||||
|
</p>
|
||||||
|
<p>Kreator: poppy-PID-poldajabar</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Keterangan */}
|
||||||
|
<div className="md:w-2/3">
|
||||||
|
<h1 className="flex flex-row font-bold text-2xl mx-5 my-8">{dummyData.title}</h1>
|
||||||
|
<div dangerouslySetInnerHTML={{ __html: dummyData.htmlDescription }} />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Comment */}
|
||||||
|
<div className="flex flex-col my-16 gap-5 p-10 bg-gray-300">
|
||||||
|
<p className="flex items-start text-lg">Berikan Komentar</p>
|
||||||
|
<Textarea placeholder="Type your comments here." className="flex items-start justify-center" />
|
||||||
|
<button className="flex items-start bg-[#bb3523] rounded-lg w-fit px-4 py-1">Kirim</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Konten Serupa */}
|
||||||
|
<div className="w-full">
|
||||||
|
<div className="space-x-5 flex flex-col p-4">
|
||||||
|
<div className="flex px-10 flex-col lg:flex-row gap-5 mb-4">
|
||||||
|
<h2 className="flex items-center text-sm lg:text-xl font-bold bg-[#bb3523] px-4 py-1 rounded-lg text-white">
|
||||||
|
<span className="text-black ">Konten </span> Serupa
|
||||||
|
</h2>
|
||||||
|
<Tabs value={selectedTab} onValueChange={setSelectedTab}>
|
||||||
|
<TabsList>
|
||||||
|
<TabsTrigger value="video" className="relative text-sm md:text-xl font-bold text-black dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary">
|
||||||
|
Audio Visual
|
||||||
|
</TabsTrigger>
|
||||||
|
<TabsTrigger value="audio" className="relative text-sm md:text-xl font-bold text-black dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary">
|
||||||
|
Audio
|
||||||
|
</TabsTrigger>
|
||||||
|
<TabsTrigger value="image" className="relative text-sm md:text-xl font-bold text-black dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary">
|
||||||
|
Foto
|
||||||
|
</TabsTrigger>
|
||||||
|
<TabsTrigger value="teks" className="relative text-sm md:text-xl font-bold text-black dark:bg-transparent before:absolute before:top-full before:left-0 before:h-px before:w-full data-[state=active]:before:bg-primary">
|
||||||
|
Teks
|
||||||
|
</TabsTrigger>
|
||||||
|
</TabsList>
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
<div className="px-10">
|
||||||
|
{selectedTab == "video" ? (
|
||||||
|
<Carousel>
|
||||||
|
<CarouselContent>
|
||||||
|
{dummyImage.map((image) => (
|
||||||
|
<CarouselItem key={image.id} className="md:basis-1/2 lg:basis-1/3">
|
||||||
|
<Card>
|
||||||
|
<CardContent className="flex items-center justify-center">
|
||||||
|
<img src={image.thumbnail} className="h-60 object-cover w-full cursor-pointer" />
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</CarouselItem>
|
||||||
|
))}
|
||||||
|
</CarouselContent>
|
||||||
|
<CarouselPrevious />
|
||||||
|
<CarouselNext />
|
||||||
|
</Carousel>
|
||||||
|
) : selectedTab == "audio" ? (
|
||||||
|
<Carousel>
|
||||||
|
<CarouselContent>
|
||||||
|
{dummyImage.map((image) => (
|
||||||
|
<CarouselItem key={image.id} className="md:basis-1/2 lg:basis-1/3">
|
||||||
|
<Card>
|
||||||
|
<CardContent className="flex items-center justify-center">
|
||||||
|
<img src={image.thumbnail} className="h-60 object-cover w-full cursor-pointer" />
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</CarouselItem>
|
||||||
|
))}
|
||||||
|
</CarouselContent>
|
||||||
|
<CarouselPrevious />
|
||||||
|
<CarouselNext />
|
||||||
|
</Carousel>
|
||||||
|
) : selectedTab == "image" ? (
|
||||||
|
<Carousel>
|
||||||
|
<CarouselContent>
|
||||||
|
{dummyImage.map((image) => (
|
||||||
|
<CarouselItem key={image.id} className="md:basis-1/2 lg:basis-1/3">
|
||||||
|
<Card onClick={() => router.push(`${pathname}/image/detail/${image.id}`)}>
|
||||||
|
<CardContent className="flex items-center justify-center">
|
||||||
|
<img src={image.thumbnail} className="h-60 object-cover w-full cursor-pointer" />
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</CarouselItem>
|
||||||
|
))}
|
||||||
|
</CarouselContent>
|
||||||
|
<CarouselPrevious />
|
||||||
|
<CarouselNext />
|
||||||
|
</Carousel>
|
||||||
|
) : (
|
||||||
|
<Carousel>
|
||||||
|
<CarouselContent>
|
||||||
|
{dummyImage.map((image) => (
|
||||||
|
<CarouselItem key={image.id} className="md:basis-1/2 lg:basis-1/3">
|
||||||
|
<Card>
|
||||||
|
<CardContent>
|
||||||
|
<img src={image.thumbnail} className="h-60 object-cover w-full cursor-pointer" />
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</CarouselItem>
|
||||||
|
))}
|
||||||
|
</CarouselContent>
|
||||||
|
<CarouselPrevious />
|
||||||
|
<CarouselNext />
|
||||||
|
</Carousel>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center flex-row justify-center">
|
||||||
|
<Link href="#" className="border text-[#bb3523] text-sm lg:text-md px-4 py-1 border-[#bb3523]">
|
||||||
|
LIHAT SEMUA
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default IndeksDetail;
|
||||||
|
|
@ -0,0 +1,107 @@
|
||||||
|
"use client";
|
||||||
|
|
||||||
|
import Link from "next/link";
|
||||||
|
import { usePathname } from "next/navigation";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
interface ImageCardProps {
|
||||||
|
imageUrl: string;
|
||||||
|
label: string;
|
||||||
|
title: string;
|
||||||
|
date: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ImageCard: React.FC<ImageCardProps> = ({ imageUrl, label, title, date }) => {
|
||||||
|
return (
|
||||||
|
<div className="relative rounded-lg overflow-hidden shadow-md">
|
||||||
|
<img src={imageUrl} alt={title} className="w-full h-full object-cover" />
|
||||||
|
<div className="absolute inset-0 bg-black bg-opacity-30 flex flex-col justify-end p-4 text-white">
|
||||||
|
<span className="bg-red-600 text-xs font-bold px-2 py-1 rounded">{label}</span>
|
||||||
|
<h3 className="text-sm font-semibold mt-2 line-clamp-2">{title}</h3>
|
||||||
|
<span className="text-xs mt-1">{date}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const ImageGallery: React.FC = () => {
|
||||||
|
const pathname = usePathname();
|
||||||
|
|
||||||
|
const images = [
|
||||||
|
{
|
||||||
|
imageUrl: "/assets/banner-sample.png",
|
||||||
|
label: "Giat Pimpinan",
|
||||||
|
title: "Foto Kapolri Dorong Transformasi Polri Presisi",
|
||||||
|
date: "2024-11-12 10:09:20 WIB",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imageUrl: "/assets/hot-topik-1.jpg",
|
||||||
|
label: "Giat Polri",
|
||||||
|
title: "Foto Kapolri Tinjau Pengungsi Gunung",
|
||||||
|
date: "2024-11-19 09:35:27 WIB",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imageUrl: "/assets/hot-topik-2.jpg",
|
||||||
|
label: "Giat Polri",
|
||||||
|
title: "Foto Kapolri dalam Acara Bersama TNI",
|
||||||
|
date: "2024-11-20 15:45:00 WIB",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const imageBottom = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
imageUrl: "/assets/hot-topik-1.jpg",
|
||||||
|
title: "Foto Kakorlantas Polri Tekankan Intervensi",
|
||||||
|
description:
|
||||||
|
"Kepala Korps Lalu Lintas (Kakorlantas) Polri Irjen. Pol. Dr. Drs. Aan Suhanan, M.Si. memimpin apel pagi di NTMC pada Senin (2/12/2024) dan menekankan pentingnya pengelolaan ekstra dalam pengamanan Natal dan Tahun Baru 2024.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
imageUrl: "/assets/hot-topik-1.jpg",
|
||||||
|
title: "Foto Kakorlantas Tinjau Jalur Tol, Jalur Wisata",
|
||||||
|
description: "Kakorlantas Polri Irjen.Pol. Dr. Drs. Aan Suhanan, M.Si. memimpin survei jalur tol dari Cikopo, Purwakarta hingga Kalikangkung, Jawa Tengah, untuk persiapan Operasi Lilin 2024.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
imageUrl: "/assets/hot-topik-2.jpg",
|
||||||
|
title: "Foto Kapolri Pastikan Kesiapan Polri Kawal Pilkada",
|
||||||
|
description: "Kapolri Jenderal Polisi Drs. Listyo Sigit Prabowo, M.Si menegaskan kesiapan Polri dalam mengawal Pilkada Serentak 2024 yang digelar Rabu, 27 November 2024.",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{/* Hero */}
|
||||||
|
<div className="max-w-screen-lg mx-auto px-4 py-8 grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||||
|
<div className="md:col-span-2">
|
||||||
|
<ImageCard {...images[0]} />
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-col gap-4">
|
||||||
|
<ImageCard {...images[1]} />
|
||||||
|
<ImageCard {...images[2]} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/* Bottom */}
|
||||||
|
<div className="w-full">
|
||||||
|
<div className="flex flex-col gap-4">
|
||||||
|
{imageBottom.map((image) => (
|
||||||
|
<div key={image.id} className="flex flex-col md:flex-row items-start p-4 bg-white rounded-lg shadow-md hover:shadow-lg">
|
||||||
|
<div className="w-full md:w-1/3">
|
||||||
|
<img src={image.imageUrl} alt="" className="h-40 md:h-32 object-cover rounded-lg" />
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-col justify-between w-full">
|
||||||
|
<Link href={`${pathname}/detail/${image.id}`} className="text-lg font-semibold text-gray-800">
|
||||||
|
{image.title}
|
||||||
|
</Link>
|
||||||
|
<p className="text-sm text-gray-600 mt-2">{image.description}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default ImageGallery;
|
||||||
|
|
@ -0,0 +1,333 @@
|
||||||
|
"use client";
|
||||||
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
const Jadwal = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{/* Awal Komponen Kiri */}
|
||||||
|
<div className="relative md:py-24 py-16 md:pb-0 pb-0 bg-gray-50 dark:bg-slate-800">
|
||||||
|
<div className="container relative">
|
||||||
|
<DropdownMenu>
|
||||||
|
<DropdownMenuTrigger asChild>
|
||||||
|
<a className="text-black flex flex-row gap-2 items-center mx-3 cursor-pointer">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
|
||||||
|
<path fill="#000" d="M20 3H4a1 1 0 0 0-1 1v2.227l.008.223a3 3 0 0 0 .772 1.795L8 12.886V21a1 1 0 0 0 1.316.949l6-2l.108-.043A1 1 0 0 0 16 19v-6.586l4.121-4.12A3 3 0 0 0 21 6.171V4a1 1 0 0 0-1-1" />
|
||||||
|
</svg>
|
||||||
|
Filter
|
||||||
|
<svg className="flex items-center justify-center" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24">
|
||||||
|
<path fill="currentColor" fill-rule="evenodd" d="m6 7l6 6l6-6l2 2l-8 8l-8-8z" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
</DropdownMenuTrigger>
|
||||||
|
<DropdownMenuContent align="end" className="flex p-0 rounded-md overflow-hidden">
|
||||||
|
<DropdownMenuItem className="flex flex-col items-center justify-between gap-1.5 p-2 border-b text-default-600 focus:bg-default focus:text-primary-foreground rounded-none">
|
||||||
|
<div className="gap-6"> Filter <button className="text-blue-400">Simpan</button></div>
|
||||||
|
<div className="border-t border-black my-4"></div>
|
||||||
|
<div>Region Filter</div>
|
||||||
|
</DropdownMenuItem>
|
||||||
|
</DropdownMenuContent>
|
||||||
|
</DropdownMenu>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="container-fluid relative">
|
||||||
|
<div className="grid grid-cols-1 mt-8">
|
||||||
|
<div className="relative overflow-x-auto block w-3/4 bg-white dark:bg-slate-900">
|
||||||
|
<table className="w-full text-sm text-start">
|
||||||
|
<thead className="text-lg">
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[120px]">Time Table</th>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[200px]">Monday</th>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[200px]">Tuesday</th>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[200px]">Wednesday</th>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[200px]">Thursday</th>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[200px]">Friday</th>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[200px]">Saturday</th>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-6 min-w-[200px]">Sunday</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">06:00</th>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">07:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">08:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">09:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">10:00</th>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">11:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">12:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">13:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">14:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">15:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">16:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">17:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">18:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">19:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">20:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">21:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">22:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">23:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">24:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">01:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">02:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">03:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">04:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<th className="text-center border border-gray-100 dark:border-gray-700 py-5">05:00</th>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="p-3 border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
<td className="border border-gray-100 dark:border-gray-700"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/* Akhir Komponen Kiri */}
|
||||||
|
|
||||||
|
{/* Awal Komponent Kanan */}
|
||||||
|
<div className="w-1/4">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/* Akhir Komponen Kiri */}
|
||||||
|
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Jadwal;
|
||||||
|
|
@ -81,7 +81,7 @@ const KontenTerbaru = () => {
|
||||||
<CarouselContent>
|
<CarouselContent>
|
||||||
{dummyDescription.map((description) => (
|
{dummyDescription.map((description) => (
|
||||||
<CarouselItem key={description.id}>
|
<CarouselItem key={description.id}>
|
||||||
<div className=" grid grid-cols-1 gap-6">
|
<div className="flex flex-row gap-6">
|
||||||
<a href="#" key={description.id} className="flex flex-col sm:flex-row items-center bg-white dark:bg-gray-800 cursor-pointer shadow-md rounded-lg p-4 gap-4 w-full">
|
<a href="#" key={description.id} className="flex flex-col sm:flex-row items-center bg-white dark:bg-gray-800 cursor-pointer shadow-md rounded-lg p-4 gap-4 w-full">
|
||||||
<div className="flex items-center justify-center bg-red-500 text-white rounded-lg w-16 h-16">
|
<div className="flex items-center justify-center bg-red-500 text-white rounded-lg w-16 h-16">
|
||||||
<svg width="32" height="34" viewBox="0 0 32 34" fill="null" xmlns="http://www.w3.org/2000/svg">
|
<svg width="32" height="34" viewBox="0 0 32 34" fill="null" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,8 @@ const Navbar = () => {
|
||||||
</span>
|
</span>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
{/* */}
|
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
<Link href="#" className="text-black font-medium flex flex-row items-center justify-center hover:text-gray-800">
|
<Link href={`${pathname}/schedule`} className="text-black font-medium flex flex-row items-center justify-center hover:text-gray-800">
|
||||||
<span>
|
<span>
|
||||||
<svg className="mr-2" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg className="mr-2" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path
|
<path
|
||||||
|
|
@ -89,7 +88,7 @@ const Navbar = () => {
|
||||||
</span>
|
</span>
|
||||||
Jadwal
|
Jadwal
|
||||||
</Link>
|
</Link>
|
||||||
<Link href="" className="text-black flex flex-row items-center justify-center font-medium hover:text-gray-800">
|
<Link href={`${pathname}/indeks`} className="text-black flex flex-row items-center justify-center font-medium hover:text-gray-800">
|
||||||
<span>
|
<span>
|
||||||
<svg className="mr-2" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg className="mr-2" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path
|
<path
|
||||||
|
|
|
||||||
|
|
@ -65,11 +65,13 @@
|
||||||
"embla-carousel-autoplay": "^8.1.3",
|
"embla-carousel-autoplay": "^8.1.3",
|
||||||
"embla-carousel-react": "^8.1.3",
|
"embla-carousel-react": "^8.1.3",
|
||||||
"emoji-mart": "^5.6.0",
|
"emoji-mart": "^5.6.0",
|
||||||
"framer-motion": "^11.3.31",
|
"framer-motion": "^11.12.0",
|
||||||
"geojson": "^0.5.0",
|
"geojson": "^0.5.0",
|
||||||
"google-map-react": "^2.2.1",
|
"google-map-react": "^2.2.1",
|
||||||
|
"html-react-parser": "^5.1.18",
|
||||||
"input-otp": "^1.2.4",
|
"input-otp": "^1.2.4",
|
||||||
"jotai": "^2.9.3",
|
"jotai": "^2.9.3",
|
||||||
|
"layout-grid": "^2.2.0",
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"lucide-react": "^0.390.0",
|
"lucide-react": "^0.390.0",
|
||||||
"moment": "^2.30.1",
|
"moment": "^2.30.1",
|
||||||
|
|
@ -84,6 +86,7 @@
|
||||||
"react-advanced-news-ticker": "^1.0.1",
|
"react-advanced-news-ticker": "^1.0.1",
|
||||||
"react-apexcharts": "^1.4.1",
|
"react-apexcharts": "^1.4.1",
|
||||||
"react-chartjs-2": "^5.2.0",
|
"react-chartjs-2": "^5.2.0",
|
||||||
|
"react-datepicker": "^7.5.0",
|
||||||
"react-day-picker": "^8.10.1",
|
"react-day-picker": "^8.10.1",
|
||||||
"react-dom": "^18",
|
"react-dom": "^18",
|
||||||
"react-dropzone": "^14.2.3",
|
"react-dropzone": "^14.2.3",
|
||||||
|
|
@ -93,6 +96,7 @@
|
||||||
"react-leaflet": "^4.2.1",
|
"react-leaflet": "^4.2.1",
|
||||||
"react-quill": "^0.0.2",
|
"react-quill": "^0.0.2",
|
||||||
"react-resizable-panels": "^2.0.19",
|
"react-resizable-panels": "^2.0.19",
|
||||||
|
"react-responsive": "^10.0.0",
|
||||||
"react-select": "^5.8.0",
|
"react-select": "^5.8.0",
|
||||||
"react-slick": "^0.30.2",
|
"react-slick": "^0.30.2",
|
||||||
"react-syntax-highlighter": "^15.5.0",
|
"react-syntax-highlighter": "^15.5.0",
|
||||||
|
|
@ -101,7 +105,7 @@
|
||||||
"sharp": "^0.33.4",
|
"sharp": "^0.33.4",
|
||||||
"sonner": "^1.5.0",
|
"sonner": "^1.5.0",
|
||||||
"swiper": "^11.1.4",
|
"swiper": "^11.1.4",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.5.5",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"vaul": "^0.9.1",
|
"vaul": "^0.9.1",
|
||||||
"zod": "^3.23.8"
|
"zod": "^3.23.8"
|
||||||
|
|
@ -614,6 +618,20 @@
|
||||||
"@floating-ui/utils": "^0.2.8"
|
"@floating-ui/utils": "^0.2.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@floating-ui/react": {
|
||||||
|
"version": "0.26.28",
|
||||||
|
"resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz",
|
||||||
|
"integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@floating-ui/react-dom": "^2.1.2",
|
||||||
|
"@floating-ui/utils": "^0.2.8",
|
||||||
|
"tabbable": "^6.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8.0",
|
||||||
|
"react-dom": ">=16.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@floating-ui/react-dom": {
|
"node_modules/@floating-ui/react-dom": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz",
|
||||||
|
|
@ -4416,6 +4434,11 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/css-mediaquery": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz",
|
||||||
|
"integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q=="
|
||||||
|
},
|
||||||
"node_modules/cssesc": {
|
"node_modules/cssesc": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
||||||
|
|
@ -5115,11 +5138,62 @@
|
||||||
"csstype": "^3.0.2"
|
"csstype": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/dom-serializer": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": "^2.3.0",
|
||||||
|
"domhandler": "^5.0.2",
|
||||||
|
"entities": "^4.2.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/domelementtype": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/fb55"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/domhandler": {
|
||||||
|
"version": "5.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
|
||||||
|
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": "^2.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/fb55/domhandler?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/dompurify": {
|
"node_modules/dompurify": {
|
||||||
"version": "3.1.6",
|
"version": "3.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz",
|
||||||
"integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ=="
|
"integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/domutils": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
|
||||||
|
"dependencies": {
|
||||||
|
"dom-serializer": "^2.0.0",
|
||||||
|
"domelementtype": "^2.3.0",
|
||||||
|
"domhandler": "^5.0.3"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/fb55/domutils?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/duplexer": {
|
"node_modules/duplexer": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
|
||||||
|
|
@ -6195,9 +6269,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/framer-motion": {
|
"node_modules/framer-motion": {
|
||||||
"version": "11.11.17",
|
"version": "11.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.11.17.tgz",
|
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.12.0.tgz",
|
||||||
"integrity": "sha512-O8QzvoKiuzI5HSAHbcYuL6xU+ZLXbrH7C8Akaato4JzQbX2ULNeniqC2Vo5eiCtFktX9XsJ+7nUhxcl2E2IjpA==",
|
"integrity": "sha512-gZaZeqFM6pX9kMVti60hYAa75jGpSsGYWAHbBfIkuHN7DkVHVkxSxeNYnrGmHuM0zPkWTzQx10ZT+fDjn7N4SA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tslib": "^2.4.0"
|
"tslib": "^2.4.0"
|
||||||
},
|
},
|
||||||
|
|
@ -7112,12 +7186,41 @@
|
||||||
"react-is": "^16.7.0"
|
"react-is": "^16.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/html-dom-parser": {
|
||||||
|
"version": "5.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.0.10.tgz",
|
||||||
|
"integrity": "sha512-GwArYL3V3V8yU/mLKoFF7HlLBv80BZ2Ey1BzfVNRpAci0cEKhFHI/Qh8o8oyt3qlAMLlK250wsxLdYX4viedvg==",
|
||||||
|
"dependencies": {
|
||||||
|
"domhandler": "5.0.3",
|
||||||
|
"htmlparser2": "9.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/html-escaper": {
|
"node_modules/html-escaper": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
|
||||||
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
|
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"node_modules/html-react-parser": {
|
||||||
|
"version": "5.1.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.1.18.tgz",
|
||||||
|
"integrity": "sha512-65BwC0zzrdeW96jB2FRr5f1ovBhRMpLPJNvwkY5kA8Ay5xdL9t/RH2/uUTM7p+cl5iM88i6dDk4LXtfMnRmaJQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"domhandler": "5.0.3",
|
||||||
|
"html-dom-parser": "5.0.10",
|
||||||
|
"react-property": "2.0.2",
|
||||||
|
"style-to-js": "1.1.16"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": "0.14 || 15 || 16 || 17 || 18",
|
||||||
|
"react": "0.14 || 15 || 16 || 17 || 18"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/html-void-elements": {
|
"node_modules/html-void-elements": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
|
||||||
|
|
@ -7127,6 +7230,29 @@
|
||||||
"url": "https://github.com/sponsors/wooorm"
|
"url": "https://github.com/sponsors/wooorm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/htmlparser2": {
|
||||||
|
"version": "9.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
|
||||||
|
"integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
|
||||||
|
"funding": [
|
||||||
|
"https://github.com/fb55/htmlparser2?sponsor=1",
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/fb55"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"domelementtype": "^2.3.0",
|
||||||
|
"domhandler": "^5.0.3",
|
||||||
|
"domutils": "^3.1.0",
|
||||||
|
"entities": "^4.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/hyphenate-style-name": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw=="
|
||||||
|
},
|
||||||
"node_modules/iconv-lite": {
|
"node_modules/iconv-lite": {
|
||||||
"version": "0.6.3",
|
"version": "0.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
||||||
|
|
@ -7834,6 +7960,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jquery": {
|
||||||
|
"version": "2.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz",
|
||||||
|
"integrity": "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q=="
|
||||||
|
},
|
||||||
"node_modules/js-tokens": {
|
"node_modules/js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
|
|
@ -7992,6 +8123,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
|
||||||
"integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="
|
"integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="
|
||||||
},
|
},
|
||||||
|
"node_modules/layout-grid": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/layout-grid/-/layout-grid-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-1gxDhkPMy2d1yy1pxpdvqRrJIalBb3vuhu5zRMWikjsWawVGGsENKN7vik817qKz59xWNunXRo7qfHJ1y8MKzQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"jquery": "^1.7, ^2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/leaflet": {
|
"node_modules/leaflet": {
|
||||||
"version": "1.9.4",
|
"version": "1.9.4",
|
||||||
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
|
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
|
||||||
|
|
@ -8150,6 +8289,14 @@
|
||||||
"remove-accents": "0.5.0"
|
"remove-accents": "0.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/matchmediaquery": {
|
||||||
|
"version": "0.4.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.4.2.tgz",
|
||||||
|
"integrity": "sha512-wrZpoT50ehYOudhDjt/YvUJc6eUzcdFPdmbizfgvswCKNHD1/OBOHYJpHie+HXpu6bSkEGieFMYk6VuutaiRfA==",
|
||||||
|
"dependencies": {
|
||||||
|
"css-mediaquery": "^0.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/mdast-util-definitions": {
|
"node_modules/mdast-util-definitions": {
|
||||||
"version": "5.1.2",
|
"version": "5.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
|
||||||
|
|
@ -10722,6 +10869,21 @@
|
||||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-datepicker": {
|
||||||
|
"version": "7.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-7.5.0.tgz",
|
||||||
|
"integrity": "sha512-6MzeamV8cWSOcduwePHfGqY40acuGlS1cG//ePHT6bVbLxWyqngaStenfH03n1wbzOibFggF66kWaBTb1SbTtQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@floating-ui/react": "^0.26.23",
|
||||||
|
"clsx": "^2.1.1",
|
||||||
|
"date-fns": "^3.6.0",
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "^16.9.0 || ^17 || ^18",
|
||||||
|
"react-dom": "^16.9.0 || ^17 || ^18"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-day-picker": {
|
"node_modules/react-day-picker": {
|
||||||
"version": "8.10.1",
|
"version": "8.10.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz",
|
||||||
|
|
@ -10819,6 +10981,11 @@
|
||||||
"react-dom": "^18.0.0"
|
"react-dom": "^18.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-property": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug=="
|
||||||
|
},
|
||||||
"node_modules/react-quill": {
|
"node_modules/react-quill": {
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/react-quill/-/react-quill-0.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/react-quill/-/react-quill-0.0.2.tgz",
|
||||||
|
|
@ -10887,6 +11054,23 @@
|
||||||
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
|
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-responsive": {
|
||||||
|
"version": "10.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-10.0.0.tgz",
|
||||||
|
"integrity": "sha512-N6/UiRLGQyGUqrarhBZmrSmHi2FXSD++N5VbSKsBBvWfG0ZV7asvUBluSv5lSzdMyEVjzZ6Y8DL4OHABiztDOg==",
|
||||||
|
"dependencies": {
|
||||||
|
"hyphenate-style-name": "^1.0.0",
|
||||||
|
"matchmediaquery": "^0.4.2",
|
||||||
|
"prop-types": "^15.6.1",
|
||||||
|
"shallow-equal": "^3.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-select": {
|
"node_modules/react-select": {
|
||||||
"version": "5.8.3",
|
"version": "5.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.3.tgz",
|
||||||
|
|
@ -11640,6 +11824,11 @@
|
||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/shallow-equal": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg=="
|
||||||
|
},
|
||||||
"node_modules/sharp": {
|
"node_modules/sharp": {
|
||||||
"version": "0.33.5",
|
"version": "0.33.5",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
|
||||||
|
|
@ -12090,6 +12279,27 @@
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/style-to-js": {
|
||||||
|
"version": "1.1.16",
|
||||||
|
"resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz",
|
||||||
|
"integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==",
|
||||||
|
"dependencies": {
|
||||||
|
"style-to-object": "1.0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/style-to-js/node_modules/inline-style-parser": {
|
||||||
|
"version": "0.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
|
||||||
|
"integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q=="
|
||||||
|
},
|
||||||
|
"node_modules/style-to-js/node_modules/style-to-object": {
|
||||||
|
"version": "1.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz",
|
||||||
|
"integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==",
|
||||||
|
"dependencies": {
|
||||||
|
"inline-style-parser": "0.2.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/style-to-object": {
|
"node_modules/style-to-object": {
|
||||||
"version": "0.4.4",
|
"version": "0.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz",
|
||||||
|
|
@ -12278,6 +12488,11 @@
|
||||||
"node": ">= 4.7.0"
|
"node": ">= 4.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tabbable": {
|
||||||
|
"version": "6.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
|
||||||
|
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
|
||||||
|
},
|
||||||
"node_modules/tailwind-merge": {
|
"node_modules/tailwind-merge": {
|
||||||
"version": "2.5.5",
|
"version": "2.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.5.tgz",
|
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.5.tgz",
|
||||||
|
|
|
||||||
|
|
@ -66,11 +66,13 @@
|
||||||
"embla-carousel-autoplay": "^8.1.3",
|
"embla-carousel-autoplay": "^8.1.3",
|
||||||
"embla-carousel-react": "^8.1.3",
|
"embla-carousel-react": "^8.1.3",
|
||||||
"emoji-mart": "^5.6.0",
|
"emoji-mart": "^5.6.0",
|
||||||
"framer-motion": "^11.3.31",
|
"framer-motion": "^11.12.0",
|
||||||
"geojson": "^0.5.0",
|
"geojson": "^0.5.0",
|
||||||
"google-map-react": "^2.2.1",
|
"google-map-react": "^2.2.1",
|
||||||
|
"html-react-parser": "^5.1.18",
|
||||||
"input-otp": "^1.2.4",
|
"input-otp": "^1.2.4",
|
||||||
"jotai": "^2.9.3",
|
"jotai": "^2.9.3",
|
||||||
|
"layout-grid": "^2.2.0",
|
||||||
"leaflet": "^1.9.4",
|
"leaflet": "^1.9.4",
|
||||||
"lucide-react": "^0.390.0",
|
"lucide-react": "^0.390.0",
|
||||||
"moment": "^2.30.1",
|
"moment": "^2.30.1",
|
||||||
|
|
@ -85,6 +87,7 @@
|
||||||
"react-advanced-news-ticker": "^1.0.1",
|
"react-advanced-news-ticker": "^1.0.1",
|
||||||
"react-apexcharts": "^1.4.1",
|
"react-apexcharts": "^1.4.1",
|
||||||
"react-chartjs-2": "^5.2.0",
|
"react-chartjs-2": "^5.2.0",
|
||||||
|
"react-datepicker": "^7.5.0",
|
||||||
"react-day-picker": "^8.10.1",
|
"react-day-picker": "^8.10.1",
|
||||||
"react-dom": "^18",
|
"react-dom": "^18",
|
||||||
"react-dropzone": "^14.2.3",
|
"react-dropzone": "^14.2.3",
|
||||||
|
|
@ -94,6 +97,7 @@
|
||||||
"react-leaflet": "^4.2.1",
|
"react-leaflet": "^4.2.1",
|
||||||
"react-quill": "^0.0.2",
|
"react-quill": "^0.0.2",
|
||||||
"react-resizable-panels": "^2.0.19",
|
"react-resizable-panels": "^2.0.19",
|
||||||
|
"react-responsive": "^10.0.0",
|
||||||
"react-select": "^5.8.0",
|
"react-select": "^5.8.0",
|
||||||
"react-slick": "^0.30.2",
|
"react-slick": "^0.30.2",
|
||||||
"react-syntax-highlighter": "^15.5.0",
|
"react-syntax-highlighter": "^15.5.0",
|
||||||
|
|
@ -102,7 +106,7 @@
|
||||||
"sharp": "^0.33.4",
|
"sharp": "^0.33.4",
|
||||||
"sonner": "^1.5.0",
|
"sonner": "^1.5.0",
|
||||||
"swiper": "^11.1.4",
|
"swiper": "^11.1.4",
|
||||||
"tailwind-merge": "^2.3.0",
|
"tailwind-merge": "^2.5.5",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"vaul": "^0.9.1",
|
"vaul": "^0.9.1",
|
||||||
"zod": "^3.23.8"
|
"zod": "^3.23.8"
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 984 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
Loading…
Reference in New Issue