diff --git a/app/(root)/page.tsx b/app/(root)/page.tsx
new file mode 100644
index 00000000..5c618e91
--- /dev/null
+++ b/app/(root)/page.tsx
@@ -0,0 +1,7 @@
+import React from "react";
+
+const page = () => {
+ return
ppp
;
+};
+
+export default page;
diff --git a/app/[locale]/audio/filter/page.tsx b/app/[locale]/audio/filter/page.tsx
new file mode 100644
index 00000000..45a8e560
--- /dev/null
+++ b/app/[locale]/audio/filter/page.tsx
@@ -0,0 +1,183 @@
+"use client";
+import React, { useState } from "react";
+import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "@/components/ui/pagination";
+import { Checkbox } from "@/components/ui/checkbox";
+import { Icon } from "@iconify/react/dist/iconify.js";
+
+const dummyDescription = [
+ { id: 1, title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 2, title: "Kapolres Lahat Himbau Cipta Kondisi Cooling System Pasca Pemungutan Suara Pilkada 2024", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 3, title: "17 Ton Pupuk Bersubsidi yang Akan Diselewengkan ke Banyuasin Berhasil Digagalkan", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 4, title: "Kapolda Sumsel Apelkan 1471 Personel Persiapan Pengamanan Pengawalan Tahan Pungut dan Hitung Suara", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 5, title: "Polrestabes Palembang Berhasil Mengungkap Kasus Penganiayaan Berat di Ilir Barat II", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 6, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+];
+
+const categories = [
+ { id: 1, title: "HUT HUMAS KE - 73" },
+ { id: 2, title: "OPERASI ZEBRA 2024" },
+ { id: 3, title: "PON XXI" },
+ { id: 4, title: "OPS LILIN NATARU 2024" },
+ { id: 5, title: "HUT HUMAS KE - 72" },
+ { id: 6, title: "OPS MANTAP PRAJA & PILKADA 2024" },
+ { id: 6, title: "OPS KETUPAT 2024" },
+ { id: 6, title: "OPS PATUH 2024" },
+ { id: 6, title: "HARI JUANG POLRI" },
+ { id: 6, title: "HUT RI KE-79" },
+ { id: 6, title: "HARI BHAYANGKARA KE-78" },
+];
+
+const formatAudio = [
+ { id: 1, title: "WAV" },
+ { id: 2, title: "MP3" },
+];
+
+const FilterPage = () => {
+ return (
+
+ {/* Header */}
+
+
+ {" "}
+ Audio {">"} Semua Audio
+
+
|
+
Terdapat 32499 artikel berisi Audio yang dapat diunduh
+
+ {/* Left */}
+
+ {/* Sidebar Kiri */}
+
+
Filter
+
+ {/* Pencarian */}
+
+
+ Pencarian
+
+
+
+
+ {/* Tahun & Bulan */}
+
+
+ Pilih Tahun & Bulan
+
+
+
+
+ {/* Tanggal */}
+
+
+ Pilih Tanggal
+
+
+
+
+ {/* Kategori */}
+
+
Kategori
+
+ {categories.map((category) => (
+
+
+
+ {category.title}
+
+
+ ))}
+
+
+ {/* Garis */}
+
+ {/* Garis */}
+
+
Format Foto
+
+ {formatAudio.map((format) => (
+
+
+
+ {format.title}
+
+
+ ))}
+
+
+
+
+
+ {/* Konten Kanan */}
+
+
+
Urutkan berdasarkan
+
+ Terbaru
+ Terpopuler
+
+
+ {/* Card */}
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+ 2
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default FilterPage;
diff --git a/app/[locale]/auth/page.tsx b/app/[locale]/auth/page.tsx
index 10b85d33..091105ab 100644
--- a/app/[locale]/auth/page.tsx
+++ b/app/[locale]/auth/page.tsx
@@ -1,8 +1,75 @@
-import React from 'react'
-import { redirect } from 'next/navigation'
-const page = ({ params: { locale } }: { params: { locale: string } }) => {
- redirect(`/${locale}/auth/login`)
- return null
-}
+// import React from 'react'
+// import { redirect } from 'next/navigation'
+// const page = ({ params: { locale } }: { params: { locale: string } }) => {
+// redirect(`/${locale}/auth/login`)
+// return null
+// }
-export default page
\ No newline at end of file
+// export default page
+
+import { Link } from "@/i18n/routing";
+import LoginForm from "@/components/partials/auth/login-form";
+import Image from "next/image";
+import Social from "@/components/partials/auth/social";
+import Copyright from "@/components/partials/auth/copyright";
+import Logo from "@/components/partials/auth/logo";
+const Login = ({ params: { locale } }: { params: { locale: string } }) => {
+ return (
+ <>
+
+
+
+
+
+
+
+
+ Unlock your Project
+ performance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sign in
+
Sign in to your account to start using Dashcode
+
+
+
+
+
+
+
+ Don’t have an account?{" "}
+
+ Sign up
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default Login;
diff --git a/app/[locale]/document/filter/page.tsx b/app/[locale]/document/filter/page.tsx
new file mode 100644
index 00000000..8af5ce0b
--- /dev/null
+++ b/app/[locale]/document/filter/page.tsx
@@ -0,0 +1,189 @@
+"use client";
+import React, { useState } from "react";
+import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "@/components/ui/pagination";
+import { Checkbox } from "@/components/ui/checkbox";
+import { Icon } from "@iconify/react/dist/iconify.js";
+
+const dummyDescription = [
+ { id: 1, title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 2, title: "Kapolres Lahat Himbau Cipta Kondisi Cooling System Pasca Pemungutan Suara Pilkada 2024", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 3, title: "17 Ton Pupuk Bersubsidi yang Akan Diselewengkan ke Banyuasin Berhasil Digagalkan", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 4, title: "Kapolda Sumsel Apelkan 1471 Personel Persiapan Pengamanan Pengawalan Tahan Pungut dan Hitung Suara", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 5, title: "Polrestabes Palembang Berhasil Mengungkap Kasus Penganiayaan Berat di Ilir Barat II", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 6, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 7, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 8, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 9, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 10, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 11, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 12, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 13, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 14, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+];
+
+const categories = [
+ { id: 1, title: "HUT HUMAS KE - 73" },
+ { id: 2, title: "OPERASI ZEBRA 2024" },
+ { id: 3, title: "PON XXI" },
+ { id: 4, title: "OPS LILIN NATARU 2024" },
+ { id: 5, title: "HUT HUMAS KE - 72" },
+ { id: 6, title: "OPS MANTAP PRAJA & PILKADA 2024" },
+ { id: 6, title: "OPS KETUPAT 2024" },
+ { id: 6, title: "OPS PATUH 2024" },
+ { id: 6, title: "HARI JUANG POLRI" },
+ { id: 6, title: "HUT RI KE-79" },
+ { id: 6, title: "HARI BHAYANGKARA KE-78" },
+];
+
+const formatAudio = [
+ { id: 1, title: "DOC" },
+ { id: 2, title: "DOCX" },
+ { id: 3, title: "PDF" },
+ { id: 4, title: "PPT" },
+ { id: 5, title: "PPTX" },
+];
+
+const DocumentPage = () => {
+ return (
+
+ {/* Header */}
+
+
+ {" "}
+ Teks {">"} Semua Teks
+
+
|
+
Terdapat 32499 artikel berisi Teks yang dapat diunduh
+
+ {/* Left */}
+
+ {/* Sidebar Kiri */}
+
+
Filter
+
+ {/* Pencarian */}
+
+
+ Pencarian
+
+
+
+
+ {/* Tahun & Bulan */}
+
+
+ Pilih Tahun & Bulan
+
+
+
+
+ {/* Tanggal */}
+
+
+ Pilih Tanggal
+
+
+
+
+ {/* Kategori */}
+
+
Kategori
+
+ {categories.map((category) => (
+
+
+
+ {category.title}
+
+
+ ))}
+
+
+ {/* Garis */}
+
+ {/* Garis */}
+
+
Format Foto
+
+ {formatAudio.map((format) => (
+
+
+
+ {format.title}
+
+
+ ))}
+
+
+
+
+
+ {/* Konten Kanan */}
+
+
+
Urutkan berdasarkan
+
+ Terbaru
+ Terpopuler
+
+
+
+ {/* Card */}
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+ 2
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default DocumentPage;
diff --git a/app/[locale]/image/detail/[slug]/page.tsx b/app/[locale]/image/detail/[slug]/page.tsx
new file mode 100644
index 00000000..0249618d
--- /dev/null
+++ b/app/[locale]/image/detail/[slug]/page.tsx
@@ -0,0 +1,249 @@
+"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: "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.
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.
\"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.
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.
“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.
",
+
+}
+
+const DetailInfo = () => {
+ const [selectedSize, setSelectedSize] = useState("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 (
+
+ {/* Container Utama */}
+
+ {/* Bagian Kiri */}
+
+ {/* Gambar Utama */}
+
+
+
+
+
+ {/* Thumbnail */}
+
+ {[1, 2, 3, 4].map((_, index) => (
+
+ ))}
+
+
+
+ {/* Bagian Kanan */}
+
+
+ {/* garis */}
+
+
+
+ OPS MANTAP PRAJA & PILKADA 2024
+
+
+
+
poldajabar
+
pilkadamai2024
+
+
+
+
+ {/* Opsi Ukuran Foto */}
+
Opsi Ukuran Foto
+
+
+
+
+ {sizes.map((size) => (
+
+ setSelectedSize(size.label)} className="text-red-600 focus:ring-red-600" />
+
+ {size.label} ---------------------------------------- {size.value}
+
+
+ ))}
+
+
+ {/* Download Semua */}
+
+
+
+ Download Semua File?
+
+
+
+ {/* Tombol Download */}
+
+
+
+
+ Download
+
+
+
+
+ {/* Footer Informasi */}
+
+
+ oleh {dummyData.createdBy} | Diupdate pada {dummyData.createdAt} {dummyData.time} WIB | 👁️ 65
+
+
Kreator: poppy-PID-poldajabar
+
+
+ {/* Keterangan */}
+
+
{dummyData.title}
+
+
+
+
+ {/* Comment */}
+
+
Berikan Komentar
+
+
Kirim
+
+
+ {/* Konten Serupa */}
+
+
+
+
+ Konten Serupa
+
+
+
+
+ Audio Visual
+
+
+ Audio
+
+
+ Foto
+
+
+ Teks
+
+
+
+
+
+ {selectedTab == "video" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : selectedTab == "audio" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : selectedTab == "image" ? (
+
+
+ {dummyImage.map((image) => (
+
+ router.push(`${pathname}/image/detail/${image.id}`)}>
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ )}
+
+
+
+
+ LIHAT SEMUA
+
+
+
+
+ );
+};
+
+export default DetailInfo;
diff --git a/app/[locale]/image/filter/page.tsx b/app/[locale]/image/filter/page.tsx
new file mode 100644
index 00000000..9387cf43
--- /dev/null
+++ b/app/[locale]/image/filter/page.tsx
@@ -0,0 +1,170 @@
+"use client";
+import React, { useState } from "react";
+import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "@/components/ui/pagination";
+import { Card, CardContent } from "@/components/ui/card";
+import { Checkbox } from "@/components/ui/checkbox";
+import { Icon } from "@iconify/react/dist/iconify.js";
+
+const dummyImage = [
+ { id: 1, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 2, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 3, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 4, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 5, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 6, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 7, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 8, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 9, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+];
+
+const categories = [
+ { id: 1, title: "HUT HUMAS KE - 73" },
+ { id: 2, title: "OPERASI ZEBRA 2024" },
+ { id: 3, title: "PON XXI" },
+ { id: 4, title: "OPS LILIN NATARU 2024" },
+ { id: 5, title: "HUT HUMAS KE - 72" },
+ { id: 6, title: "OPS MANTAP PRAJA & PILKADA 2024" },
+ { id: 7, title: "OPS KETUPAT 2024" },
+ { id: 8, title: "OPS PATUH 2024" },
+ { id: 9, title: "HARI JUANG POLRI" },
+ { id: 10, title: "HUT RI KE-79" },
+ { id: 11, title: "HARI BHAYANGKARA KE-78" },
+];
+const formatPicture = [
+ { id: 1, title: "PNG" },
+ { id: 2, title: "JPEG" },
+ { id: 3, title: "JPG" },
+];
+
+const FilterPage = () => {
+ return (
+
+ {/* Header */}
+
+
+ {" "}
+ Foto {">"} Semua Foto
+
+
|
+
Terdapat 32499 artikel berisi Foto yang dapat diunduh
+
+ {/* Left */}
+
+ {/* Sidebar Kiri */}
+
+
Filter
+
+ {/* Pencarian */}
+
+
+ Pencarian
+
+
+
+
+ {/* Tahun & Bulan */}
+
+
+ Tahun & Bulan
+
+
+
+
+ {/* Tanggal */}
+
+
+ Tanggal
+
+
+
+
+ {/* Kategori */}
+
+
Kategori
+
+ {categories.map((category) => (
+
+
+
+ {category.title}
+
+
+ ))}
+
+
+ {/* Garis */}
+
+ {/* Garis */}
+
+
Format Foto
+
+ {formatPicture.map((format) => (
+
+
+
+ {format.title}
+
+
+ ))}
+
+
+
+
+
+ {/* Konten Kanan */}
+
+
+
Urutkan berdasarkan
+
+ Terbaru
+ Terpopuler
+
+
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+ {image.date} {image.time} |
518{" "}
+
+
+ {" "}
+
+ {image.title}
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+ 2
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default FilterPage;
diff --git a/app/[locale]/indeks/detail/[slug]/page.tsx b/app/[locale]/indeks/detail/[slug]/page.tsx
new file mode 100644
index 00000000..893df413
--- /dev/null
+++ b/app/[locale]/indeks/detail/[slug]/page.tsx
@@ -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:
+ '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.
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.
"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.
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.
“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.
',
+};
+
+const IndeksDetail = () => {
+ const [selectedSize, setSelectedSize] = useState("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 (
+
+ {/* Container Utama */}
+
+ {/* Bagian Kiri */}
+
+ {/* Gambar Utama */}
+
+
+
+
+
+ {/* Thumbnail */}
+
+ {[1, 2, 3, 4].map((_, index) => (
+
+ ))}
+
+
+
+ {/* Bagian Kanan */}
+
+
+ {/* garis */}
+
+
+
+ OPS MANTAP PRAJA & PILKADA 2024
+
+
+
+
poldajabar
+
pilkadamai2024
+
+
+
+
+ {/* Opsi Ukuran Foto */}
+
Opsi Ukuran Foto
+
+
+
+
+ {sizes.map((size) => (
+
+ setSelectedSize(size.label)} className="text-red-600 focus:ring-red-600" />
+
+ {size.label} ---------------------------------------- {size.value}
+
+
+ ))}
+
+
+ {/* Download Semua */}
+
+
+
+ Download Semua File?
+
+
+
+ {/* Tombol Download */}
+
+
+
+
+ Download
+
+
+
+
+ {/* Footer Informasi */}
+
+
+ oleh {dummyData.createdBy} | Diupdate pada {dummyData.createdAt} {dummyData.time} WIB | 👁️ 65
+
+
Kreator: poppy-PID-poldajabar
+
+
+ {/* Keterangan */}
+
+
+ {/* Comment */}
+
+
Berikan Komentar
+
+
Kirim
+
+
+ {/* Konten Serupa */}
+
+
+
+
+ Konten Serupa
+
+
+
+
+ Audio Visual
+
+
+ Audio
+
+
+ Foto
+
+
+ Teks
+
+
+
+
+
+ {selectedTab == "video" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : selectedTab == "audio" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : selectedTab == "image" ? (
+
+
+ {dummyImage.map((image) => (
+
+ router.push(`${pathname}/image/detail/${image.id}`)}>
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ )}
+
+
+
+
+ LIHAT SEMUA
+
+
+
+
+ );
+};
+
+export default IndeksDetail;
diff --git a/app/[locale]/indeks/page.tsx b/app/[locale]/indeks/page.tsx
new file mode 100644
index 00000000..3def81d7
--- /dev/null
+++ b/app/[locale]/indeks/page.tsx
@@ -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 = ({ imageUrl, label, title, date }) => {
+ return (
+
+
+
+ {label}
+
{title}
+ {date}
+
+
+ );
+};
+
+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 */}
+
+ {/* Bottom */}
+
+
+ {imageBottom.map((image) => (
+
+
+
+
+
+
+ {image.title}
+
+
{image.description}
+
+
+ ))}
+
+
+ >
+ );
+};
+
+export default ImageGallery;
diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx
index ea2073b5..f07c46e2 100644
--- a/app/[locale]/layout.tsx
+++ b/app/[locale]/layout.tsx
@@ -13,6 +13,8 @@ import { NextIntlClientProvider } from "next-intl";
import { getMessages } from "next-intl/server";
import DirectionProvider from "@/providers/direction-provider";
import AuthProvider from "@/providers/auth.provider";
+import Navbar from "@/components/landing-page/Navbar";
+import Footer from "@/components/landing-page/Footer";
export const metadata: Metadata = {
title: "Dashcode admin Template",
@@ -36,7 +38,9 @@ export default async function RootLayout({
+
{children}
+
diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx
index 640e4178..e8c85818 100644
--- a/app/[locale]/page.tsx
+++ b/app/[locale]/page.tsx
@@ -1,81 +1,26 @@
-import { Link } from '@/i18n/routing';
-import LoginForm from "@/components/partials/auth/login-form";
-import Image from "next/image";
-import Social from "@/components/partials/auth/social";
-import Copyright from "@/components/partials/auth/copyright";
-import Logo from "@/components/partials/auth/logo";
-const Login = ({ params: { locale } }: { params: { locale: string } }) => {
+"use client";
+
+import Navbar from "@/components/landing-page/Navbar";
+import Hero from "@/components/landing-page/Hero";
+import SearchSection from "@/components/landing-page/SearchSection";
+import KontenTerbaru from "@/components/landing-page/KontenTerbaru";
+import KontenTerpopuler from "@/components/landing-page/KontenTerpopuler";
+import KategoriKonten from "@/components/landing-page/KategoriKonten";
+import LiputanWilayah from "@/components/landing-page/LiputanWilayah";
+import Footer from "@/components/landing-page/Footer";
+
+
+const Home = ({ params: { locale } }: { params: { locale: string } }) => {
return (
<>
-
-
-
-
-
-
-
-
- Unlock your Project
-
- performance
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Sign in
-
- Sign in to your account to start using Dashcode
-
-
-
-
-
-
-
-
- Don’t have an account?{" "}
-
- Sign up
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
>
);
};
-export default Login;
+export default Home;
diff --git a/app/[locale]/schedule/page.tsx b/app/[locale]/schedule/page.tsx
new file mode 100644
index 00000000..23b1ecf8
--- /dev/null
+++ b/app/[locale]/schedule/page.tsx
@@ -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 */}
+
+
+
+
+
+
+
+
+
+ Time Table
+ Monday
+ Tuesday
+ Wednesday
+ Thursday
+ Friday
+ Saturday
+ Sunday
+
+
+
+
+ 06:00
+
+
+
+
+
+
+
+
+
+
+ 07:00
+
+
+
+
+
+
+
+
+
+
+ 08:00
+
+
+
+
+
+
+
+
+
+
+ 09:00
+
+
+
+
+
+
+
+
+
+
+ 10:00
+
+
+
+
+
+
+
+
+
+
+ 11:00
+
+
+
+
+
+
+
+
+
+
+ 12:00
+
+
+
+
+
+
+
+
+
+
+ 13:00
+
+
+
+
+
+
+
+
+
+
+ 14:00
+
+
+
+
+
+
+
+
+
+
+ 15:00
+
+
+
+
+
+
+
+
+
+
+ 16:00
+
+
+
+
+
+
+
+
+
+
+ 17:00
+
+
+
+
+
+
+
+
+
+
+ 18:00
+
+
+
+
+
+
+
+
+
+
+ 19:00
+
+
+
+
+
+
+
+
+
+
+ 20:00
+
+
+
+
+
+
+
+
+
+
+ 21:00
+
+
+
+
+
+
+
+
+
+
+ 22:00
+
+
+
+
+
+
+
+
+
+
+ 23:00
+
+
+
+
+
+
+
+
+
+
+ 24:00
+
+
+
+
+
+
+
+
+
+
+ 01:00
+
+
+
+
+
+
+
+
+
+
+ 02:00
+
+
+
+
+
+
+
+
+
+
+ 03:00
+
+
+
+
+
+
+
+
+
+
+ 04:00
+
+
+
+
+
+
+
+
+
+
+ 05:00
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Akhir Komponen Kiri */}
+
+ {/* Awal Komponent Kanan */}
+
+ {/* Akhir Komponen Kiri */}
+
+ >
+ );
+};
+
+export default Jadwal;
diff --git a/app/[locale]/video/filter/page.tsx b/app/[locale]/video/filter/page.tsx
new file mode 100644
index 00000000..eaf36ee5
--- /dev/null
+++ b/app/[locale]/video/filter/page.tsx
@@ -0,0 +1,172 @@
+"use client";
+import React, { useState } from "react";
+import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "@/components/ui/pagination";
+import { Card, CardContent } from "@/components/ui/card";
+import { Checkbox } from "@/components/ui/checkbox";
+import { Icon } from "@iconify/react/dist/iconify.js";
+
+const dummyImage = [
+ { id: 1, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 2, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 3, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 4, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 5, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 6, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 7, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 8, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 9, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+];
+
+const categories = [
+ { id: 1, title: "HUT HUMAS KE - 73" },
+ { id: 2, title: "OPERASI ZEBRA 2024" },
+ { id: 3, title: "PON XXI" },
+ { id: 4, title: "OPS LILIN NATARU 2024" },
+ { id: 5, title: "HUT HUMAS KE - 72" },
+ { id: 6, title: "OPS MANTAP PRAJA & PILKADA 2024" },
+ { id: 6, title: "OPS KETUPAT 2024" },
+ { id: 6, title: "OPS PATUH 2024" },
+ { id: 6, title: "HARI JUANG POLRI" },
+ { id: 6, title: "HUT RI KE-79" },
+ { id: 6, title: "HARI BHAYANGKARA KE-78" },
+];
+const formatPicture = [
+ { id: 1, title: "MK4" },
+ { id: 2, title: "MOV" },
+ { id: 3, title: "MP4" },
+ { id: 3, title: "AVI" },
+ { id: 3, title: "WMV" },
+];
+
+const FilterPage = () => {
+ return (
+
+ {/* Header */}
+
+
+ {" "}
+ Audio Visual {">"} Semua Audio Visual
+
+
|
+
Terdapat 32499 artikel berisi Audio Visual yang dapat diunduh
+
+ {/* Left */}
+
+ {/* Sidebar Kiri */}
+
+
Filter
+
+ {/* Pencarian */}
+
+
+ Pencarian
+
+
+
+
+ {/* Tahun & Bulan */}
+
+
+ Tahun & Bulan
+
+
+
+
+ {/* Tanggal */}
+
+
+ Tanggal
+
+
+
+
+ {/* Kategori */}
+
+
Kategori
+
+ {categories.map((category) => (
+
+
+
+ {category.title}
+
+
+ ))}
+
+
+ {/* Garis */}
+
+ {/* Garis */}
+
+
Format Foto
+
+ {formatPicture.map((format) => (
+
+
+
+ {format.title}
+
+
+ ))}
+
+
+
+
+
+ {/* Konten Kanan */}
+
+
+
Urutkan berdasarkan
+
+ Terbaru
+ Terlama
+
+
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+ {image.date} {image.time} |
518{" "}
+
+
+ {" "}
+
+ {image.title}
+
+
+ ))}
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+ 2
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default FilterPage;
diff --git a/components/landing-page/Footer.tsx b/components/landing-page/Footer.tsx
new file mode 100644
index 00000000..8511749d
--- /dev/null
+++ b/components/landing-page/Footer.tsx
@@ -0,0 +1,53 @@
+import React from "react";
+
+const Footer = () => {
+ return (
+
+ );
+};
+
+export default Footer;
diff --git a/components/landing-page/Hero.tsx b/components/landing-page/Hero.tsx
new file mode 100644
index 00000000..fb3e93b0
--- /dev/null
+++ b/components/landing-page/Hero.tsx
@@ -0,0 +1,89 @@
+import React, { useEffect, useState } from "react";
+
+const images = ["/assets/banner-sample.png", "/assets/img-header-blog.png"];
+
+const Hero: React.FC = () => {
+ return (
+
+ {/* Section Gambar Utama */}
+
+
+
+
+
Liputan Kegiatan
+
Divisi Humas Polri Siap Menuju Zona Integritas
+
+ 15 Maret 2024 14:01 WIB |{" "}
+
+
+ {" "}
+ 633
+
+
+
+
+
+ {/* Section Daftar Artikel */}
+
+
+ {[
+ {
+ label: "OPS MANTAP PRAJA & PILKADA 2024",
+ title: "Doa Bersama Lintas Agama Jelang Pilkada di Papua",
+ time: "26 November 2024 16:33 WIT",
+ views: 13,
+ src: "https://mediahub.polri.go.id/api/media/view?id=113865&operation=thumbnail&isSmall=true¤tMilis=1732784412735",
+ },
+ {
+ label: "OPS MANTAP PRAJA & PILKADA 2024",
+ title: "Potret Pengawalan Distribusi Logistik Pilkada ke Distrik-distrik di Kabupaten Yahukimo",
+ time: "26 November 2024 16:29 WIT",
+ views: 29,
+ src: "https://mediahub.polri.go.id/api/media/view?id=113948&operation=thumbnail&isSmall=true¤tMilis=1732784412735",
+ },
+ {
+ label: "INFOGRAFIS",
+ title: "Dirgahayu ke-62 Seskoal",
+ time: "26 November 2024 16:26 WIB",
+ views: 2,
+ src: "https://mediahub.polri.go.id/api/media/view?id=113624&operation=thumbnail&isSmall=true¤tMilis=1732784412736",
+ },
+ {
+ label: "UNGKAP KASUS",
+ title: "Evakuasi 30 Korban Kecelakaan Maut Truk di Tolikara",
+ time: "26 November 2024 16:25 WIT",
+ views: 26,
+ src: "https://mediahub.polri.go.id/api/media/view?id=113815&operation=thumbnail&isSmall=true¤tMilis=1732784412736",
+ },
+ ].map((item, index) => (
+
+
+ {/* Placeholder Thumbnail */}
+
+
+
+
{item.label}
+
{item.title}
+
+ {item.time} |{" "}
+
+
+ {" "}
+ {item.views}
+
+
+
+ ))}
+
+
+
+ );
+};
+
+export default Hero;
diff --git a/components/landing-page/KategoriKonten.tsx b/components/landing-page/KategoriKonten.tsx
new file mode 100644
index 00000000..d993bc2f
--- /dev/null
+++ b/components/landing-page/KategoriKonten.tsx
@@ -0,0 +1,93 @@
+import Link from "next/link";
+import React from "react";
+
+const KategoriKonten = () => {
+ return (
+
+
+ Kategori Konten
+
+
+
+
+
+
+
PON XXI
+
+
+
+
+
+
OPS LILIN NATARU 2024
+
+
+
+
+
+
HUT HUMAS KE-73
+
+
+
+
+
+
OPS ZEBRA 2024
+
+
+
+
+
+
+
+
OPS MANTAP PRAJA & PILKADA 2024
+
+
+
+
+
+
PENANGANAN KARHUTLA
+
+
+
+
+
+
PERS RILIS
+
+
+
+
+
+
SEPUTAR PRESTASI
+
+
+
+
+
+
+
+
LIPUTAN KEGIATAN
+
+
+
+
+
+
UNGKAP KASUS
+
+
+
+
+
+
GIAT PIMPINAN
+
+
+
+
+
+
INFO GRAFIS
+
+
+
+
+ );
+};
+
+export default KategoriKonten;
diff --git a/components/landing-page/KontenTerbaru.tsx b/components/landing-page/KontenTerbaru.tsx
new file mode 100644
index 00000000..983f9214
--- /dev/null
+++ b/components/landing-page/KontenTerbaru.tsx
@@ -0,0 +1,191 @@
+import React, { useState } from "react";
+import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "@/components/ui/carousel";
+import { Card, CardContent } from "../ui/card";
+import Link from "next/link";
+import { usePathname, useRouter } from "next/navigation";
+import { Icon } from "@iconify/react/dist/iconify.js";
+
+const dummyImage = [
+ { id: 1, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 2, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 3, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 4, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 5, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 6, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 7, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 8, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+ { id: 9, thumbnail: "/assets/banner-sample.png", date: "17 MEI 2024", title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", time: "18.00 WIB" },
+];
+
+const dummyDescription = [
+ { id: 1, title: "Kapolres Batam Berikan pengarahan pagi kepada para anggota dan staf yang terkait", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 2, title: "Kapolres Lahat Himbau Cipta Kondisi Cooling System Pasca Pemungutan Suara Pilkada 2024", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 3, title: "17 Ton Pupuk Bersubsidi yang Akan Diselewengkan ke Banyuasin Berhasil Digagalkan", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 4, title: "Kapolda Sumsel Apelkan 1471 Personel Persiapan Pengamanan Pengawalan Tahan Pungut dan Hitung Suara", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 5, title: "Polrestabes Palembang Berhasil Mengungkap Kasus Penganiayaan Berat di Ilir Barat II", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+ { id: 6, title: "Tahapan Pilkada di Sumsel Berlangsung Kondusif", date: "28 November 2024", time: "11.15 WIB", duration: "00:24:55" },
+];
+
+const KontenTerbaru = () => {
+ const [selectedTab, setSelectedTab] = useState("video");
+ const router = useRouter();
+ const pathname = usePathname();
+
+ return (
+
+
+
+
+ Konten Terbaru
+
+
+
+
+ Audio Visual
+
+
+ Audio
+
+
+ Foto
+
+
+ Teks
+
+
+
+
+
+ {selectedTab == "video" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+ {image.date} {image.time} |
518{" "}
+
+
+ {" "}
+
+ {image.title}
+
+ ))}
+
+
+
+
+ ) : selectedTab == "audio" ? (
+
+
+ {dummyDescription.map((description) => (
+
+
+
+ ))}
+
+
+
+
+ ) : selectedTab == "image" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+ {image.date} {image.time} |
518{" "}
+
+
+ {" "}
+
+ {image.title}
+
+ ))}
+
+
+
+
+ ) : (
+
+
+ {dummyImage.map((description) => (
+
+
+
+ ))}
+
+
+
+
+ )}
+
+
+
+
+ LIHAT SEMUA
+
+
+
+ );
+};
+
+export default KontenTerbaru;
diff --git a/components/landing-page/KontenTerpopuler.tsx b/components/landing-page/KontenTerpopuler.tsx
new file mode 100644
index 00000000..bfb31a1b
--- /dev/null
+++ b/components/landing-page/KontenTerpopuler.tsx
@@ -0,0 +1,119 @@
+import React from "react";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "@/components/ui/carousel";
+import { Card, CardContent } from "../ui/card";
+import Link from "next/link";
+import { 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 KontenTerpopuler = () => {
+ const [selectedTab, setSelectedTab] = useState("video");
+ return (
+
+
+
+
+ Konten Terpopuler
+
+
+
+
+ Audio Visual
+
+
+ Audio
+
+
+ Foto
+
+
+ Teks
+
+
+
+
+
+ {selectedTab == "video" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : selectedTab == "audio" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : selectedTab == "image" ? (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ ) : (
+
+
+ {dummyImage.map((image) => (
+
+
+
+
+
+
+
+ ))}
+
+
+
+
+ )}
+
+
+
+
+ LIHAT SEMUA
+
+
+
+ );
+};
+
+export default KontenTerpopuler;
diff --git a/components/landing-page/LiputanWilayah.tsx b/components/landing-page/LiputanWilayah.tsx
new file mode 100644
index 00000000..c4048e14
--- /dev/null
+++ b/components/landing-page/LiputanWilayah.tsx
@@ -0,0 +1,101 @@
+import React, { useState } from "react";
+import { Button } from "../ui/button";
+
+const LiputanWilayah: React.FC = () => {
+ const [searchTerm, setSearchTerm] = useState("");
+ const [seeAllValue, setSeeAllValue] = useState(false);
+
+ const regions = [
+ { name: "Polda Metro Jaya", logo: "/assets/polda/polda-metro.png" },
+ { name: "Polda Jawa Barat", logo: "/assets/polda/polda-jabar.png" },
+ { name: "Polda Banten", logo: "/assets/polda/polda-banten.png" },
+ { name: "Polda Jawa Tengah", logo: "/assets/polda/polda-jateng.png" },
+ { name: "Polda D.I Yogyakarta", logo: "/assets/polda/polda-diy.png" },
+ { name: "Polda Jawa Timur", logo: "/assets/polda/polda-jatim.png" },
+ { name: "Polda Aceh", logo: "/assets/polda/polda-aceh.png" },
+ { name: "Polda Sumatera Utara", logo: "/assets/polda/polda-sumut.png" },
+ { name: "Polda Sumatera Barat", logo: "/assets/polda/polda-sumbar.png" },
+ { name: "Polda Riau", logo: "/assets/polda/polda-riau.png" },
+ { name: "Polda Kep. Riau", logo: "/assets/polda/polda-kepri.png" },
+ { name: "Polda Jambi", logo: "/assets/polda/polda-jambi.png" },
+ { name: "Polda Sumatera Selatan", logo: "/assets/polda/polda-sumsel.png" },
+ { name: "Polda Kep. Bangka Belitung", logo: "/assets/polda/polda-bangkabelitung.png" },
+ { name: "Polda Bengkulu", logo: "/assets/polda/polda-bengkulu.png" },
+ { name: "Polda Lampung", logo: "/assets/polda/polda-lampung.png" },
+ { name: "Polda Nusa Tenggara Barat", logo: "/assets/polda/polda-ntb.png" },
+ { name: "Polda Nusa Tenggara Timur", logo: "/assets/polda/polda-ntt.png" },
+ { name: "Polda Bali", logo: "/assets/polda/polda-bali.png" },
+ { name: "Polda Kalimantan Barat", logo: "/assets/polda/polda-kalbar.png" },
+ { name: "Polda Kalimantan Tengah", logo: "/assets/polda/polda-kalteng.png" },
+ { name: "Polda Kalimantan Selatan", logo: "/assets/polda/polda-kalsel.png" },
+ { name: "Polda Kalimantan Timur", logo: "/assets/polda/polda-kaltim.png" },
+ { name: "Polda Kalimantan Utara", logo: "/assets/polda/polda-kalut.png" },
+ { name: "Polda Sulawesi Tengah", logo: "/assets/polda/polda-sulteng.png" },
+ { name: "Polda Sulawesi Utara", logo: "/assets/polda/polda-sulut.png" },
+ { name: "Polda Gorontalo", logo: "/assets/polda/polda-gorontalo.png" },
+ { name: "Polda Sulawesi Barat", logo: "/assets/polda/polda-sulbar.png" },
+ { name: "Polda Sulawesi Selatan", logo: "/assets/polda/polda-sulsel.png" },
+ { name: "Polda Sulawesi Tenggara", logo: "/assets/polda/polda-sultenggara.png" },
+ { name: "Polda Maluku Utara", logo: "/assets/polda/polda-malut.png" },
+ { name: "Polda Maluku", logo: "/assets/polda/polda-maluku.png" },
+ { name: "Polda Papua Barat", logo: "/assets/polda/polda-papbar.png" },
+ { name: "Polda Papua", logo: "/assets/polda/polda-papua.png" },
+ { name: "Satuan Kerja POLRI", logo: "/assets/polda/polda-satker.jpeg" },
+ { name: "Internasional", logo: "/assets/polda/internasional.png" },
+ ];
+
+
+ return (
+
+ {/* Header */}
+
+ Liputan Wilayah
+
+
+
+ {/* Pencarian */}
+
+ setSearchTerm(e.target.value)}
+ />
+ Cari Liputan >
+
+
+ {/* Grid Wilayah */}
+
+ {regions.map((region, index) =>
+ !seeAllValue ? (
+ index < 9 ? (
+
+
+
+
+
{region.name}
+
+ ) : (
+ ""
+ )
+ ) : (
+
+
+
+
+
{region.name}
+
+ )
+ )}
+
+
+ setSeeAllValue(!seeAllValue)} className="bg-white hover:bg-[#bb3523] text-[#bb3523] hover:text-white border-2 border-[#bb3523]">
+ Lihat Lebih Banyak
+
+
+
+ );
+};
+
+export default LiputanWilayah;
diff --git a/components/landing-page/Navbar.tsx b/components/landing-page/Navbar.tsx
new file mode 100644
index 00000000..684a7539
--- /dev/null
+++ b/components/landing-page/Navbar.tsx
@@ -0,0 +1,225 @@
+"use client";
+
+import React, { useState } from "react";
+import ThemeSwitcher from "@/components/partials/header/theme-switcher";
+import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
+import Link from "next/link";
+import { FiFile, FiImage, FiMusic, FiYoutube } from "react-icons/fi";
+import { usePathname, useRouter } from "next/navigation";
+
+const Navbar = () => {
+ const [menuOpen, setMenuOpen] = useState(false);
+ const router = useRouter();
+ const pathname = usePathname();
+
+ return (
+
+
+ {/* Logo */}
+
+
+
+
+ {/* Mobile Menu Toggle */}
+
setMenuOpen(!menuOpen)}>
+ {menuOpen ? (
+
+
+
+ ) : (
+
+
+
+ )}
+
+
+ {/* Desktop Navigation */}
+
+
+
+
+
+
+
+ Konten
+
+
+
+
+
+
+ router.push(`${pathname}/video/filter`)} className="flex items-center gap-1.5 p-2 border-b text-default-600 group focus:bg-default focus:text-primary-foreground rounded-none group">
+
+
+ Audio Visual
+
+
+ router.push(`${pathname}/audio/filter`)} className="flex items-center gap-1.5 p-2 border-b text-default-600 group focus:bg-default focus:text-primary-foreground rounded-none group">
+
+
+ Audio
+
+
+ router.push(`${pathname}/image/filter`)} className="flex items-center gap-1.5 p-2 border-b text-default-600 group focus:bg-default focus:text-primary-foreground rounded-none group">
+
+
+ Foto
+
+
+ router.push(`${pathname}/document/filter`)} className="flex items-center gap-1.5 p-2 border-b text-default-600 group focus:bg-default focus:text-primary-foreground rounded-none group">
+
+
+ Teks
+
+
+
+
+
+
+
+
+
+
+ Jadwal
+
+
+
+
+
+
+
+ Indeks
+
+
+
+
Live
+
+
+
+ Indonesia
+ English
+
+
+
+
+ 🔍
+
+
+ Masuk
+ Daftar
+
+
+
+
+ {/* Mobile Menu */}
+ {menuOpen && (
+
+
+
+
+
+
+
+ Konten
+
+
+
+
+
+
+
+
+
+ Audio Visual
+
+
+
+
+
+ Audio
+
+
+
+
+
+ Foto
+
+
+
+
+
+ Teks
+
+
+
+
+
+
+
+
+
+
+ Jadwal
+
+
+
+
+
+
+
+ Indeks
+
+
+
+ Live
+
+
+
+ Indonesia
+ English
+
+
+
+ 🔍
+
+
+ Masuk
+ Daftar
+
+
+ )}
+
+ );
+};
+
+export default Navbar;
diff --git a/components/landing-page/NewsBottom.tsx b/components/landing-page/NewsBottom.tsx
new file mode 100644
index 00000000..ab289ce5
--- /dev/null
+++ b/components/landing-page/NewsBottom.tsx
@@ -0,0 +1,117 @@
+import React, { useEffect, useRef, useState } from "react";
+import NewsTicker from "react-advanced-news-ticker"
+import { CarouselItem } from "../ui/carousel";
+
+
+// Definisikan tipe data untuk carousel item
+interface CarouselItem {
+ id: number;
+ title: string;
+ name?: string;
+ slug: string;
+ fileType?: {
+ id: number;
+ };
+ createdAt: string;
+}
+
+const NewsBottom: React.FC = () => {
+ const [content, setContent] = useState([]);
+ const newsTickerRef = useRef(null);
+
+ useEffect(() => {
+ async function fetchCarouselData() {
+ try {
+ const response = await CarouselItem();
+ setContent(response.data?.data || []);
+ console.log("Carousel data:", response.data?.data);
+ } catch (error) {
+ console.error("Error fetching carousel data:", error);
+ }
+ }
+
+ fetchCarouselData();
+ }, []);
+
+ function formatDateIndonesianWithTime(dateString: string): string {
+ const options: Intl.DateTimeFormatOptions = {
+ year: "numeric",
+ month: "long",
+ day: "numeric",
+ hour: "numeric",
+ minute: "numeric",
+ };
+
+ const formattedDate = new Date(dateString).toLocaleDateString("id-ID", options);
+
+ return formattedDate.replace("pukul", "-");
+ }
+
+ const dummyNews: CarouselItem[] = Array.from({ length: 10 }, (_, index) => ({
+ id: index + 1,
+ title: `Berita ${index + 1}`,
+ name: `Penulis ${index + 1}`,
+ slug: "",
+ createdAt: new Date().toISOString(),
+ }));
+
+ return (
+
+ Breaking News
+
+ {content.length > 0 ? (
+
+ {content.map((item) => (
+
+ ))}
+
+ ) : (
+
Loading...
// Tampilkan pesan "Loading..." saat data belum tersedia.
+ )}
+
+
+ {
+ newsTickerRef.current?.moveDown();
+ }}
+ >
+ ◀
+
+ {
+ newsTickerRef.current?.moveUp();
+ }}
+ >
+ ▶
+
+
+
+ );
+};
+
+export default NewsBottom;
diff --git a/components/landing-page/SearchSection.tsx b/components/landing-page/SearchSection.tsx
new file mode 100644
index 00000000..2f7fa959
--- /dev/null
+++ b/components/landing-page/SearchSection.tsx
@@ -0,0 +1,85 @@
+import React from "react";
+import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu";
+import { FiFile, FiImage, FiMusic, FiYoutube } from "react-icons/fi";
+
+const SearchSection = () => {
+ return (
+
+
+ {/* Heading */}
+
+ Eksplorasi dan Download Liputan Resmi Kami
+
+
+
Liputan resmi yang bersumber dari kegiatan Polri di Mabes dan Polda seluruh Indonesia
+
+ {/* Search Form */}
+
+ {/* Dropdown */}
+
+
+
+
+
+
+
+ Konten
+
+
+
+
+
+
+
+
+
+ Audio Visual
+
+
+
+
+
+ Audio
+
+
+
+
+
+ Foto
+
+
+
+
+
+ Teks
+
+
+
+
+
+
+ {/* Search Input */}
+
+
+ {/* Button */}
+
Cari Liputan >
+
+
+
+ );
+};
+
+export default SearchSection;
diff --git a/components/partials/header/theme-switcher.tsx b/components/partials/header/theme-switcher.tsx
index 65069880..3168ea53 100644
--- a/components/partials/header/theme-switcher.tsx
+++ b/components/partials/header/theme-switcher.tsx
@@ -4,84 +4,69 @@ import * as React from "react";
import { useTheme } from "next-themes";
import { hexToRGB } from "@/lib/utils";
import { Button } from "@/components/ui/button";
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu";
-import { Moon, Sun } from "lucide-react"
+import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu";
+import { Moon, Sun } from "lucide-react";
import { Check } from "lucide-react";
import { cn } from "@/lib/utils";
-import { Icon } from "@/components/ui/icon"
+import { Icon } from "@/components/ui/icon";
const ThemeButton = () => {
- const { theme, setTheme } = useTheme();
- return (
-
-
-
-
-
- Toggle theme
-
-
-
- setTheme("light")}
- className={cn(
- "p-2 font-medium text-sm text-default-600 cursor-pointer mb-[2px] ",
- {
- "bg-default text-default-foreground": theme === "light",
- }
- )}
- >
-
- Light
-
-
- setTheme("dark")}
- className={cn(
- "p-2 font-medium text-sm text-default-600 hover:bg-default hover:text-default-foreground dark:hover:bg-background cursor-pointer mb-[2px]",
- {
- "bg-default text-default-foreground": theme === "dark",
- }
- )}
- >
-
-
- Dark
-
-
- setTheme("system")}
- className={cn(
- "p-2 font-medium text-sm text-default-600 hover:bg-default hover:text-default-foreground dark:hover:bg-background cursor-pointer mb-[2px]",
- {
- "bg-default text-default-foreground": theme === "system",
- }
- )}
- >
-
- system
-
-
-
-
- );
+ const { theme, setTheme } = useTheme();
+ return (
+
+
+
+
+
+ Toggle theme
+
+
+
+ setTheme("light")}
+ className={cn("p-2 font-medium text-sm text-default-600 cursor-pointer mb-[2px] ", {
+ "bg-default text-default-foreground": theme === "light",
+ })}
+ >
+
+ Light
+
+
+ setTheme("dark")}
+ className={cn("p-2 font-medium text-sm text-default-600 hover:bg-default hover:text-default-foreground dark:hover:bg-background cursor-pointer mb-[2px]", {
+ "bg-default text-default-foreground": theme === "dark",
+ })}
+ >
+
+ Dark
+
+
+ setTheme("system")}
+ className={cn("p-2 font-medium text-sm text-default-600 hover:bg-default hover:text-default-foreground dark:hover:bg-background cursor-pointer mb-[2px]", {
+ "bg-default text-default-foreground": theme === "system",
+ })}
+ >
+
+ system
+
+
+
+
+ );
};
export default ThemeButton;
diff --git a/package-lock.json b/package-lock.json
index 2775a971..2e65b8ef 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -20,7 +20,7 @@
"@fullcalendar/react": "^6.1.15",
"@fullcalendar/timegrid": "^6.1.15",
"@hookform/resolvers": "^3.9.0",
- "@iconify/react": "^5.0.1",
+ "@iconify/react": "^5.0.2",
"@radix-ui/react-accordion": "^1.1.2",
"@radix-ui/react-alert-dialog": "^1.0.5",
"@radix-ui/react-aspect-ratio": "^1.0.3",
@@ -71,13 +71,15 @@
"embla-carousel-autoplay": "^8.1.3",
"embla-carousel-react": "^8.1.3",
"emoji-mart": "^5.6.0",
- "framer-motion": "^11.3.31",
+ "framer-motion": "^11.12.0",
"geojson": "^0.5.0",
"google-map-react": "^2.2.1",
+ "html-react-parser": "^5.1.18",
"input-otp": "^1.2.4",
"jodit-react": "^4.1.2",
"jotai": "^2.9.3",
"js-cookie": "^3.0.5",
+ "layout-grid": "^2.2.0",
"leaflet": "^1.9.4",
"lucide-react": "^0.390.0",
"moment": "^2.30.1",
@@ -90,18 +92,23 @@
"qs": "^6.13.1",
"quill": "^2.0.2",
"react": "^18",
+ "react-advanced-news-ticker": "^1.0.1",
"react-apexcharts": "^1.4.1",
"react-chartjs-2": "^5.2.0",
+ "react-datepicker": "^7.5.0",
"react-day-picker": "^8.10.1",
"react-dom": "^18",
"react-dropzone": "^14.2.3",
"react-geocode": "^0.2.3",
"react-hook-form": "^7.52.1",
"react-hot-toast": "^2.4.1",
+ "react-icons": "^5.3.0",
"react-leaflet": "^4.2.1",
"react-quill": "^0.0.2",
"react-resizable-panels": "^2.0.19",
+ "react-responsive": "^10.0.0",
"react-select": "^5.8.0",
+ "react-slick": "^0.30.2",
"react-syntax-highlighter": "^15.5.0",
"react-time-picker": "^7.0.0",
"recharts": "^2.12.7",
@@ -111,7 +118,7 @@
"sweetalert2": "^11.10.5",
"sweetalert2-react-content": "^5.0.7",
"swiper": "^11.1.4",
- "tailwind-merge": "^2.3.0",
+ "tailwind-merge": "^2.5.5",
"tailwindcss-animate": "^1.0.7",
"use-places-autocomplete": "^4.0.1",
"vaul": "^0.9.1",
@@ -627,6 +634,20 @@
"@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": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz",
@@ -639,6 +660,11 @@
"react-dom": ">=16.8.0"
}
},
+ "node_modules/@floating-ui/react/node_modules/tabbable": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
+ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
+ },
"node_modules/@floating-ui/utils": {
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz",
@@ -1082,126 +1108,6 @@
"glob": "10.3.10"
}
},
- "node_modules/@next/swc-darwin-arm64": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
- "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
- "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
- "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
- "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
- "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
- "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
- "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
- "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/@next/swc-win32-x64-msvc": {
"version": "14.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
@@ -3971,6 +3877,11 @@
"node": ">=6"
}
},
+ "node_modules/classnames": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
+ },
"node_modules/cleave.js": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/cleave.js/-/cleave.js-1.6.0.tgz",
@@ -4142,6 +4053,11 @@
"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": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -4859,11 +4775,62 @@
"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": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz",
"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": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
@@ -4938,6 +4905,11 @@
"node": ">=10.13.0"
}
},
+ "node_modules/enquire.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz",
+ "integrity": "sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw=="
+ },
"node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
@@ -5970,10 +5942,12 @@
}
},
"node_modules/framer-motion": {
- "version": "11.11.17",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.11.17.tgz",
- "integrity": "sha512-O8QzvoKiuzI5HSAHbcYuL6xU+ZLXbrH7C8Akaato4JzQbX2ULNeniqC2Vo5eiCtFktX9XsJ+7nUhxcl2E2IjpA==",
+ "version": "11.13.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.13.1.tgz",
+ "integrity": "sha512-F40tpGTHByhn9h3zdBQPcEro+pSLtzARcocbNqAyfBI+u9S+KZuHH/7O9+z+GEkoF3eqFxfvVw0eBDytohwqmQ==",
"dependencies": {
+ "motion-dom": "^11.13.0",
+ "motion-utils": "^11.13.0",
"tslib": "^2.4.0"
},
"peerDependencies": {
@@ -6884,12 +6858,41 @@
"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": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"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": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
@@ -6899,6 +6902,29 @@
"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": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
@@ -7633,6 +7659,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-cookie": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
@@ -7691,6 +7722,14 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
+ "node_modules/json2mq": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
+ "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
+ "dependencies": {
+ "string-convert": "^0.2.0"
+ }
+ },
"node_modules/json5": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
@@ -7796,6 +7835,14 @@
"resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
"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": {
"version": "1.9.4",
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
@@ -7862,6 +7909,11 @@
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
},
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
@@ -7970,6 +8022,14 @@
"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": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
@@ -9483,6 +9543,16 @@
"node": "*"
}
},
+ "node_modules/motion-dom": {
+ "version": "11.13.0",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-11.13.0.tgz",
+ "integrity": "sha512-Oc1MLGJQ6nrvXccXA89lXtOqFyBmvHtaDcTRGT66o8Czl7nuA8BeHAd9MQV1pQKX0d2RHFBFaw5g3k23hQJt0w=="
+ },
+ "node_modules/motion-utils": {
+ "version": "11.13.0",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-11.13.0.tgz",
+ "integrity": "sha512-lq6TzXkH5c/ysJQBxgLXgM01qwBH1b4goTPh57VvZWJbVJZF/0SB31UWEn4EIqbVPf3au88n2rvK17SpDTja1A=="
+ },
"node_modules/mri": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -10588,6 +10658,28 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-advanced-news-ticker": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/react-advanced-news-ticker/-/react-advanced-news-ticker-1.0.1.tgz",
+ "integrity": "sha512-gWFW9jovuA5472Rkt13+SHnblWu9OyZ2seFC/xMgf5OthPCyVnt6gSlX3NTq4QCEEhUlVJzsm+xY+G+VKg85ag==",
+ "dependencies": {
+ "prop-types": "^15.7.2",
+ "react": "^16.13.1"
+ }
+ },
+ "node_modules/react-advanced-news-ticker/node_modules/react": {
+ "version": "16.14.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
+ "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "prop-types": "^15.6.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/react-apexcharts": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.6.0.tgz",
@@ -10632,6 +10724,21 @@
}
}
},
+ "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": {
"version": "8.10.1",
"resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz",
@@ -10741,6 +10848,14 @@
"react-dom": ">=16"
}
},
+ "node_modules/react-icons": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.4.0.tgz",
+ "integrity": "sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==",
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -10759,6 +10874,11 @@
"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": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/react-quill/-/react-quill-0.0.2.tgz",
@@ -10827,6 +10947,23 @@
"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": {
"version": "5.8.3",
"resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.3.tgz",
@@ -10847,6 +10984,22 @@
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/react-slick": {
+ "version": "0.30.2",
+ "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.30.2.tgz",
+ "integrity": "sha512-XvQJi7mRHuiU3b9irsqS9SGIgftIfdV5/tNcURTb5LdIokRA5kIIx3l4rlq2XYHfxcSntXapoRg/GxaVOM1yfg==",
+ "dependencies": {
+ "classnames": "^2.2.5",
+ "enquire.js": "^2.1.6",
+ "json2mq": "^0.2.0",
+ "lodash.debounce": "^4.0.8",
+ "resize-observer-polyfill": "^1.5.0"
+ },
+ "peerDependencies": {
+ "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/react-smooth": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz",
@@ -11334,6 +11487,11 @@
"resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
"integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A=="
},
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+ },
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -11589,6 +11747,11 @@
"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": {
"version": "0.33.5",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
@@ -11795,6 +11958,11 @@
"node": ">=10.0.0"
}
},
+ "node_modules/string-convert": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz",
+ "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A=="
+ },
"node_modules/string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
@@ -12043,6 +12211,27 @@
"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": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz",
diff --git a/package.json b/package.json
index 2a6c72b1..b155a324 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
"@fullcalendar/react": "^6.1.15",
"@fullcalendar/timegrid": "^6.1.15",
"@hookform/resolvers": "^3.9.0",
- "@iconify/react": "^5.0.1",
+ "@iconify/react": "^5.0.2",
"@radix-ui/react-accordion": "^1.1.2",
"@radix-ui/react-alert-dialog": "^1.0.5",
"@radix-ui/react-aspect-ratio": "^1.0.3",
@@ -72,13 +72,15 @@
"embla-carousel-autoplay": "^8.1.3",
"embla-carousel-react": "^8.1.3",
"emoji-mart": "^5.6.0",
- "framer-motion": "^11.3.31",
+ "framer-motion": "^11.12.0",
"geojson": "^0.5.0",
"google-map-react": "^2.2.1",
+ "html-react-parser": "^5.1.18",
"input-otp": "^1.2.4",
"jodit-react": "^4.1.2",
"jotai": "^2.9.3",
"js-cookie": "^3.0.5",
+ "layout-grid": "^2.2.0",
"leaflet": "^1.9.4",
"lucide-react": "^0.390.0",
"moment": "^2.30.1",
@@ -91,18 +93,23 @@
"qs": "^6.13.1",
"quill": "^2.0.2",
"react": "^18",
+ "react-advanced-news-ticker": "^1.0.1",
"react-apexcharts": "^1.4.1",
"react-chartjs-2": "^5.2.0",
+ "react-datepicker": "^7.5.0",
"react-day-picker": "^8.10.1",
"react-dom": "^18",
"react-dropzone": "^14.2.3",
"react-geocode": "^0.2.3",
"react-hook-form": "^7.52.1",
"react-hot-toast": "^2.4.1",
+ "react-icons": "^5.3.0",
"react-leaflet": "^4.2.1",
"react-quill": "^0.0.2",
"react-resizable-panels": "^2.0.19",
+ "react-responsive": "^10.0.0",
"react-select": "^5.8.0",
+ "react-slick": "^0.30.2",
"react-syntax-highlighter": "^15.5.0",
"react-time-picker": "^7.0.0",
"recharts": "^2.12.7",
@@ -112,7 +119,7 @@
"sweetalert2": "^11.10.5",
"sweetalert2-react-content": "^5.0.7",
"swiper": "^11.1.4",
- "tailwind-merge": "^2.3.0",
+ "tailwind-merge": "^2.5.5",
"tailwindcss-animate": "^1.0.7",
"use-places-autocomplete": "^4.0.1",
"vaul": "^0.9.1",
diff --git a/public/assets/audio-black.svg b/public/assets/audio-black.svg
new file mode 100644
index 00000000..e06c3a4e
--- /dev/null
+++ b/public/assets/audio-black.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/assets/audio-icon.png b/public/assets/audio-icon.png
new file mode 100644
index 00000000..7dda4912
Binary files /dev/null and b/public/assets/audio-icon.png differ
diff --git a/public/assets/banner-sample.png b/public/assets/banner-sample.png
new file mode 100644
index 00000000..7cb9957f
Binary files /dev/null and b/public/assets/banner-sample.png differ
diff --git a/public/assets/blog-icon.svg b/public/assets/blog-icon.svg
new file mode 100644
index 00000000..1965020e
--- /dev/null
+++ b/public/assets/blog-icon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/assets/document.svg b/public/assets/document.svg
new file mode 100644
index 00000000..beffc5a3
--- /dev/null
+++ b/public/assets/document.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/assets/facebook.svg b/public/assets/facebook.svg
new file mode 100644
index 00000000..d4b05b9f
--- /dev/null
+++ b/public/assets/facebook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets/hot-topik-1.jpg b/public/assets/hot-topik-1.jpg
new file mode 100644
index 00000000..f132c7e4
Binary files /dev/null and b/public/assets/hot-topik-1.jpg differ
diff --git a/public/assets/hot-topik-2.jpg b/public/assets/hot-topik-2.jpg
new file mode 100644
index 00000000..dc08566d
Binary files /dev/null and b/public/assets/hot-topik-2.jpg differ
diff --git a/public/assets/image-icon.png b/public/assets/image-icon.png
new file mode 100644
index 00000000..f96bbf0d
Binary files /dev/null and b/public/assets/image-icon.png differ
diff --git a/public/assets/img-header-blog.png b/public/assets/img-header-blog.png
new file mode 100644
index 00000000..5031955b
Binary files /dev/null and b/public/assets/img-header-blog.png differ
diff --git a/public/assets/instagram.svg b/public/assets/instagram.svg
new file mode 100644
index 00000000..adbe9c31
--- /dev/null
+++ b/public/assets/instagram.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets/media-icon.svg b/public/assets/media-icon.svg
new file mode 100644
index 00000000..b3408458
--- /dev/null
+++ b/public/assets/media-icon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/assets/mediahub-logo.gif b/public/assets/mediahub-logo.gif
new file mode 100644
index 00000000..cbfd8ad3
Binary files /dev/null and b/public/assets/mediahub-logo.gif differ
diff --git a/public/assets/polda/internasional.png b/public/assets/polda/internasional.png
new file mode 100644
index 00000000..9637ada0
Binary files /dev/null and b/public/assets/polda/internasional.png differ
diff --git a/public/assets/polda/polda-aceh.png b/public/assets/polda/polda-aceh.png
new file mode 100644
index 00000000..b6a8c17b
Binary files /dev/null and b/public/assets/polda/polda-aceh.png differ
diff --git a/public/assets/polda/polda-bali.png b/public/assets/polda/polda-bali.png
new file mode 100644
index 00000000..bb03bf77
Binary files /dev/null and b/public/assets/polda/polda-bali.png differ
diff --git a/public/assets/polda/polda-bangkabelitung.png b/public/assets/polda/polda-bangkabelitung.png
new file mode 100644
index 00000000..fe6de95c
Binary files /dev/null and b/public/assets/polda/polda-bangkabelitung.png differ
diff --git a/public/assets/polda/polda-banten.png b/public/assets/polda/polda-banten.png
new file mode 100644
index 00000000..da59f3d7
Binary files /dev/null and b/public/assets/polda/polda-banten.png differ
diff --git a/public/assets/polda/polda-bengkulu.png b/public/assets/polda/polda-bengkulu.png
new file mode 100644
index 00000000..74d1c510
Binary files /dev/null and b/public/assets/polda/polda-bengkulu.png differ
diff --git a/public/assets/polda/polda-diy.png b/public/assets/polda/polda-diy.png
new file mode 100644
index 00000000..6957c18f
Binary files /dev/null and b/public/assets/polda/polda-diy.png differ
diff --git a/public/assets/polda/polda-gorontalo.png b/public/assets/polda/polda-gorontalo.png
new file mode 100644
index 00000000..8b3fe29e
Binary files /dev/null and b/public/assets/polda/polda-gorontalo.png differ
diff --git a/public/assets/polda/polda-jabar.png b/public/assets/polda/polda-jabar.png
new file mode 100644
index 00000000..5d4345c7
Binary files /dev/null and b/public/assets/polda/polda-jabar.png differ
diff --git a/public/assets/polda/polda-jambi.png b/public/assets/polda/polda-jambi.png
new file mode 100644
index 00000000..447ff436
Binary files /dev/null and b/public/assets/polda/polda-jambi.png differ
diff --git a/public/assets/polda/polda-jateng.png b/public/assets/polda/polda-jateng.png
new file mode 100644
index 00000000..0cf70cbe
Binary files /dev/null and b/public/assets/polda/polda-jateng.png differ
diff --git a/public/assets/polda/polda-jatim.png b/public/assets/polda/polda-jatim.png
new file mode 100644
index 00000000..4ff768ea
Binary files /dev/null and b/public/assets/polda/polda-jatim.png differ
diff --git a/public/assets/polda/polda-kalbar.png b/public/assets/polda/polda-kalbar.png
new file mode 100644
index 00000000..0ae2f184
Binary files /dev/null and b/public/assets/polda/polda-kalbar.png differ
diff --git a/public/assets/polda/polda-kalsel.png b/public/assets/polda/polda-kalsel.png
new file mode 100644
index 00000000..f5d5cc7a
Binary files /dev/null and b/public/assets/polda/polda-kalsel.png differ
diff --git a/public/assets/polda/polda-kalteng.png b/public/assets/polda/polda-kalteng.png
new file mode 100644
index 00000000..875c173f
Binary files /dev/null and b/public/assets/polda/polda-kalteng.png differ
diff --git a/public/assets/polda/polda-kaltim.png b/public/assets/polda/polda-kaltim.png
new file mode 100644
index 00000000..d5415301
Binary files /dev/null and b/public/assets/polda/polda-kaltim.png differ
diff --git a/public/assets/polda/polda-kalut.png b/public/assets/polda/polda-kalut.png
new file mode 100644
index 00000000..e773598b
Binary files /dev/null and b/public/assets/polda/polda-kalut.png differ
diff --git a/public/assets/polda/polda-kepri.png b/public/assets/polda/polda-kepri.png
new file mode 100644
index 00000000..417bfd0a
Binary files /dev/null and b/public/assets/polda/polda-kepri.png differ
diff --git a/public/assets/polda/polda-lampung.png b/public/assets/polda/polda-lampung.png
new file mode 100644
index 00000000..27fb0431
Binary files /dev/null and b/public/assets/polda/polda-lampung.png differ
diff --git a/public/assets/polda/polda-maluku.png b/public/assets/polda/polda-maluku.png
new file mode 100644
index 00000000..48ecaac3
Binary files /dev/null and b/public/assets/polda/polda-maluku.png differ
diff --git a/public/assets/polda/polda-malut.png b/public/assets/polda/polda-malut.png
new file mode 100644
index 00000000..9b38f4b6
Binary files /dev/null and b/public/assets/polda/polda-malut.png differ
diff --git a/public/assets/polda/polda-metro.png b/public/assets/polda/polda-metro.png
new file mode 100644
index 00000000..c4f7513b
Binary files /dev/null and b/public/assets/polda/polda-metro.png differ
diff --git a/public/assets/polda/polda-ntb.png b/public/assets/polda/polda-ntb.png
new file mode 100644
index 00000000..61ad0d8d
Binary files /dev/null and b/public/assets/polda/polda-ntb.png differ
diff --git a/public/assets/polda/polda-ntt.png b/public/assets/polda/polda-ntt.png
new file mode 100644
index 00000000..f90ed894
Binary files /dev/null and b/public/assets/polda/polda-ntt.png differ
diff --git a/public/assets/polda/polda-papbar.png b/public/assets/polda/polda-papbar.png
new file mode 100644
index 00000000..ccf1adad
Binary files /dev/null and b/public/assets/polda/polda-papbar.png differ
diff --git a/public/assets/polda/polda-papua.png b/public/assets/polda/polda-papua.png
new file mode 100644
index 00000000..82bbc670
Binary files /dev/null and b/public/assets/polda/polda-papua.png differ
diff --git a/public/assets/polda/polda-riau.png b/public/assets/polda/polda-riau.png
new file mode 100644
index 00000000..dc63b94f
Binary files /dev/null and b/public/assets/polda/polda-riau.png differ
diff --git a/public/assets/polda/polda-satker.jpeg b/public/assets/polda/polda-satker.jpeg
new file mode 100644
index 00000000..ca5d444e
Binary files /dev/null and b/public/assets/polda/polda-satker.jpeg differ
diff --git a/public/assets/polda/polda-sulbar.png b/public/assets/polda/polda-sulbar.png
new file mode 100644
index 00000000..52f624fa
Binary files /dev/null and b/public/assets/polda/polda-sulbar.png differ
diff --git a/public/assets/polda/polda-sulsel.png b/public/assets/polda/polda-sulsel.png
new file mode 100644
index 00000000..3bcb3065
Binary files /dev/null and b/public/assets/polda/polda-sulsel.png differ
diff --git a/public/assets/polda/polda-sulteng.png b/public/assets/polda/polda-sulteng.png
new file mode 100644
index 00000000..a22b7cc0
Binary files /dev/null and b/public/assets/polda/polda-sulteng.png differ
diff --git a/public/assets/polda/polda-sultenggara.png b/public/assets/polda/polda-sultenggara.png
new file mode 100644
index 00000000..a8f96543
Binary files /dev/null and b/public/assets/polda/polda-sultenggara.png differ
diff --git a/public/assets/polda/polda-sulut.png b/public/assets/polda/polda-sulut.png
new file mode 100644
index 00000000..799c3f33
Binary files /dev/null and b/public/assets/polda/polda-sulut.png differ
diff --git a/public/assets/polda/polda-sumbar.png b/public/assets/polda/polda-sumbar.png
new file mode 100644
index 00000000..787096ed
Binary files /dev/null and b/public/assets/polda/polda-sumbar.png differ
diff --git a/public/assets/polda/polda-sumsel.png b/public/assets/polda/polda-sumsel.png
new file mode 100644
index 00000000..5c4d9bda
Binary files /dev/null and b/public/assets/polda/polda-sumsel.png differ
diff --git a/public/assets/polda/polda-sumut.png b/public/assets/polda/polda-sumut.png
new file mode 100644
index 00000000..e1b939b2
Binary files /dev/null and b/public/assets/polda/polda-sumut.png differ
diff --git a/public/assets/polriTv.png b/public/assets/polriTv.png
new file mode 100644
index 00000000..dace6ca8
Binary files /dev/null and b/public/assets/polriTv.png differ
diff --git a/public/assets/schedule-icon.svg b/public/assets/schedule-icon.svg
new file mode 100644
index 00000000..74661ad9
--- /dev/null
+++ b/public/assets/schedule-icon.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/public/assets/text-icon.png b/public/assets/text-icon.png
new file mode 100644
index 00000000..ca30dc4b
Binary files /dev/null and b/public/assets/text-icon.png differ
diff --git a/public/assets/tiktok.svg b/public/assets/tiktok.svg
new file mode 100644
index 00000000..50d5332a
--- /dev/null
+++ b/public/assets/tiktok.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets/twitter.svg b/public/assets/twitter.svg
new file mode 100644
index 00000000..a2dae043
--- /dev/null
+++ b/public/assets/twitter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets/video-icon.png b/public/assets/video-icon.png
new file mode 100644
index 00000000..60318e03
Binary files /dev/null and b/public/assets/video-icon.png differ
diff --git a/public/assets/wave.svg b/public/assets/wave.svg
new file mode 100644
index 00000000..12957cdc
--- /dev/null
+++ b/public/assets/wave.svg
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/assets/youtube.svg b/public/assets/youtube.svg
new file mode 100644
index 00000000..aeb05e56
--- /dev/null
+++ b/public/assets/youtube.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/tailwind.config.ts b/tailwind.config.ts
index bd479e4a..f062d78d 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -106,6 +106,7 @@ const config = {
foreground: "hsl(var(--card-foreground))",
},
},
+
borderRadius: {
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
diff --git a/tsconfig.json b/tsconfig.json
index e7ff90fd..56fa23fa 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -21,6 +21,6 @@
"@/*": ["./*"]
}
},
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "components/landing-page/NewsBottom.tsx", "components/landing-page/NavBottom.js"],
"exclude": ["node_modules"]
}