@@ -173,8 +173,8 @@ export const ProfileEditLoginModal = (props: {
}
>
}
-
-
+
+
{_loginData.is_change_available && (
Отмена
-
+
);
};
diff --git a/app/components/Profile/Profile.EditModal.tsx b/app/components/Profile/Profile.EditModal.tsx
index 7048df5..897f3a7 100644
--- a/app/components/Profile/Profile.EditModal.tsx
+++ b/app/components/Profile/Profile.EditModal.tsx
@@ -1,6 +1,6 @@
"use client";
-import { FileInput, Label, Modal, ModalBody, ModalHeader, useThemeMode } from "flowbite-react";
+import { FileInput, Label, Modal, useThemeMode } from "flowbite-react";
import { Spinner } from "../Spinner/Spinner";
import useSWR from "swr";
import { ENDPOINTS } from "#/api/config";
@@ -14,7 +14,6 @@ import { useSWRConfig } from "swr";
import { useUserStore } from "#/store/auth";
import { ProfileEditLoginModal } from "./Profile.EditLoginModal";
import { toast } from "react-toastify";
-import { ProfileBlockedUsersModal } from "./Profile.BlockedUsersModal";
export const ProfileEditModal = (props: {
isOpen: boolean;
@@ -26,7 +25,6 @@ export const ProfileEditModal = (props: {
const [statusModalOpen, setStatusModalOpen] = useState(false);
const [socialModalOpen, setSocialModalOpen] = useState(false);
const [loginModalOpen, setLoginModalOpen] = useState(false);
- const [blockedModalOpen, setBlockedModalOpen] = useState(false);
const [privacyModalSetting, setPrivacyModalSetting] = useState("none");
const [privacySettings, setPrivacySettings] = useState({
privacy_stats: 9,
@@ -188,7 +186,6 @@ export const ProfileEditModal = (props: {
if (avatarModalProps.croppedImage) {
_uploadAvatar();
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
}, [avatarModalProps.croppedImage]);
if (!prefData || !loginData || prefError || loginError) {
@@ -202,8 +199,8 @@ export const ProfileEditModal = (props: {
onClose={() => props.setIsOpen(false)}
size={"7xl"}
>
-
Редактирование профиля
-
+ Редактирование профиля
+
{prefLoading ?
:
@@ -358,18 +355,13 @@ export const ProfileEditModal = (props: {
}
-
{
- setBlockedModalOpen(true);
- }}
- >
+ {/*
Блоклист
Список пользователей, которым запрещён доступ к вашей
странице
-
+ */}
@@ -395,7 +387,7 @@ export const ProfileEditModal = (props: {
}
-
+
{props.token ?
<>
@@ -439,12 +431,6 @@ export const ProfileEditModal = (props: {
setLogin={setLogin}
profile_id={props.profile_id}
/>
-
>
: ""}
>
diff --git a/app/components/Profile/Profile.EditPrivacyModal.tsx b/app/components/Profile/Profile.EditPrivacyModal.tsx
index 9311edf..59c8bdb 100644
--- a/app/components/Profile/Profile.EditPrivacyModal.tsx
+++ b/app/components/Profile/Profile.EditPrivacyModal.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Modal, ModalBody, ModalHeader, useThemeMode } from "flowbite-react";
+import { Modal, useThemeMode } from "flowbite-react";
import { ENDPOINTS } from "#/api/config";
import { useState } from "react";
import { toast } from "react-toastify";
@@ -98,8 +98,8 @@ export const ProfileEditPrivacyModal = (props: {
onClose={() => props.setIsOpen(false)}
size={"4xl"}
>
-
{setting_text[props.setting]}
-
+ {setting_text[props.setting]}
+
{props.setting != "none" ?
<>
@@ -202,7 +202,7 @@ export const ProfileEditPrivacyModal = (props: {
>
: ""}
-
+
);
};
diff --git a/app/components/Profile/Profile.EditSocialModal.tsx b/app/components/Profile/Profile.EditSocialModal.tsx
index 244e689..128c418 100644
--- a/app/components/Profile/Profile.EditSocialModal.tsx
+++ b/app/components/Profile/Profile.EditSocialModal.tsx
@@ -1,15 +1,6 @@
"use client";
-import {
- Button,
- Label,
- Modal,
- ModalBody,
- ModalFooter,
- ModalHeader,
- TextInput,
- useThemeMode,
-} from "flowbite-react";
+import { Button, Modal, Label, TextInput, useThemeMode } from "flowbite-react";
import { Spinner } from "../Spinner/Spinner";
import { ENDPOINTS } from "#/api/config";
import { useEffect, useState } from "react";
@@ -173,8 +164,8 @@ export const ProfileEditSocialModal = (props: {
onClose={() => props.setIsOpen(false)}
size={"4xl"}
>
-
Соц. сети
-
+ Соц. сети
+
Укажите ссылки на свои социальные сети, чтобы другие пользователи
могли с вами связаться
@@ -186,7 +177,7 @@ export const ProfileEditSocialModal = (props: {
:
- ВКонтакте
+
- Telegram
+
- Discord
+
- Instagram
+
}
-
-
+
+
_setSocialSetting()}
@@ -262,7 +253,7 @@ export const ProfileEditSocialModal = (props: {
>
Отмена
-
+
);
};
diff --git a/app/components/Profile/Profile.EditStatusModal.tsx b/app/components/Profile/Profile.EditStatusModal.tsx
index 13cafbe..d8d870f 100644
--- a/app/components/Profile/Profile.EditStatusModal.tsx
+++ b/app/components/Profile/Profile.EditStatusModal.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Button, Modal, ModalBody, ModalFooter, ModalHeader, Textarea, useThemeMode } from "flowbite-react";
+import { Button, Modal, Textarea, useThemeMode } from "flowbite-react";
import { ENDPOINTS } from "#/api/config";
import { useEffect, useState } from "react";
import { useSWRConfig } from "swr";
@@ -96,8 +96,8 @@ export const ProfileEditStatusModal = (props: {
onClose={() => props.setIsOpen(false)}
size={"4xl"}
>
- Изменить статус
-
+ Изменить статус
+
-
+
+
_setStatusSetting()}
@@ -123,7 +123,7 @@ export const ProfileEditStatusModal = (props: {
props.setIsOpen(false)}>
Отмена
-
+
);
};
diff --git a/app/components/Profile/Profile.ReleaseHistory.tsx b/app/components/Profile/Profile.ReleaseHistory.tsx
index 2401f32..b579c11 100644
--- a/app/components/Profile/Profile.ReleaseHistory.tsx
+++ b/app/components/Profile/Profile.ReleaseHistory.tsx
@@ -1,79 +1,49 @@
-import { Card } from "flowbite-react";
+import { Card, Carousel } from "flowbite-react";
+import type {
+ FlowbiteCarouselIndicatorsTheme,
+ FlowbiteCarouselControlTheme,
+ CustomFlowbiteTheme,
+} from "flowbite-react";
+import { ReleaseLink } from "../ReleaseLink/ReleaseLinkUpdate";
-import { ReleaseChips } from "../ReleasePoster/Chips";
-import { Poster } from "../ReleasePoster/Poster";
-import Link from "next/link";
+const CarouselIndicatorsTheme: FlowbiteCarouselIndicatorsTheme = {
+ active: {
+ off: "bg-gray-400/50 hover:bg-gray-200",
+ on: "bg-gray-200",
+ },
+ base: "h-3 w-3 rounded-full max-w-[300px]",
+ wrapper: "absolute bottom-5 left-1/2 flex -translate-x-1/2 space-x-3",
+};
-const profile_lists = {
- // 0: "Не смотрю",
- 1: { name: "Смотрю", bg_color: "bg-green-500" },
- 2: { name: "В планах", bg_color: "bg-purple-500" },
- 3: { name: "Просмотрено", bg_color: "bg-blue-500" },
- 4: { name: "Отложено", bg_color: "bg-yellow-500" },
- 5: { name: "Брошено", bg_color: "bg-red-500" },
+const CarouselControlsTheme: FlowbiteCarouselControlTheme = {
+ base: "inline-flex h-8 w-8 items-center justify-center rounded-full group-focus:outline-none group-focus:ring-4 bg-gray-400/30 group-hover:bg-gray-400/60 group-focus:ring-gray-400/70 sm:h-10 sm:w-10",
+ icon: "h-5 w-5 text-gray-400 sm:h-6 sm:w-6",
+};
+
+const CarouselTheme: CustomFlowbiteTheme["carousel"] = {
+ root: {
+ base: "relative h-full w-full max-w-[375px]",
+ },
+ indicators: CarouselIndicatorsTheme,
+ control: CarouselControlsTheme,
};
export const ProfileReleaseHistory = (props: any) => {
return (
Недавно просмотренные
-
- {props.history.map((release) => {
- const genres = [];
- const grade = release.grade ? Number(release.grade.toFixed(1)) : null;
- const profile_list_status = release.profile_list_status || null;
- let user_list = null;
- if (profile_list_status != null || profile_list_status != 0) {
- user_list = profile_lists[profile_list_status];
- }
- if (release.genres) {
- const genres_array = release.genres.split(",");
- genres_array.forEach((genre) => {
- genres.push(genre.trim());
- });
- }
- return (
-
-
-
-
-
-
- {genres.length > 0 &&
- genres.map((genre: string, index: number) => {
- return (
-
- {index > 0 && ", "}
- {genre}
-
- );
- })}
-
- {release.title_ru && (
-
- {release.title_ru}
-
- )}
- {release.title_original && (
-
- {release.title_original}
-
- )}
-
-
-
- );
- })}
+
+
+ {props.history.map((release) => {
+ return (
+
+ );
+ })}
+
);
diff --git a/app/components/Profile/Profile.ReleaseRatings.tsx b/app/components/Profile/Profile.ReleaseRatings.tsx
index 108a522..75af80d 100644
--- a/app/components/Profile/Profile.ReleaseRatings.tsx
+++ b/app/components/Profile/Profile.ReleaseRatings.tsx
@@ -1,5 +1,16 @@
-import { Button, Card, Modal, ModalHeader, Rating, RatingStar } from "flowbite-react";
-
+import {
+ Card,
+ Carousel,
+ RatingStar,
+ Rating,
+ Modal,
+ Button,
+} from "flowbite-react";
+import type {
+ FlowbiteCarouselIndicatorsTheme,
+ FlowbiteCarouselControlTheme,
+} from "flowbite-react";
+import Image from "next/image";
import { unixToDate, useSWRfetcher } from "#/api/utils";
import Link from "next/link";
import { useCallback, useEffect, useState } from "react";
@@ -8,6 +19,28 @@ import useSWRInfinite from "swr/infinite";
import { Spinner } from "../Spinner/Spinner";
import { Poster } from "../ReleasePoster/Poster";
+const CarouselIndicatorsTheme: FlowbiteCarouselIndicatorsTheme = {
+ active: {
+ off: "bg-gray-300/50 hover:bg-gray-400 dark:bg-gray-400/50 dark:hover:bg-gray-200",
+ on: "bg-gray-600 dark:bg-gray-200",
+ },
+ base: "h-3 w-3 rounded-full",
+ wrapper: "absolute bottom-5 left-1/2 flex -translate-x-1/2 space-x-3",
+};
+
+const CarouselControlsTheme: FlowbiteCarouselControlTheme = {
+ base: "inline-flex h-8 w-8 items-center justify-center rounded-full bg-gray-600/30 group-hover:bg-gray-600/50 group-focus:outline-none group-focus:ring-4 group-focus:ring-gray-600 dark:bg-gray-400/30 dark:group-hover:bg-gray-400/60 dark:group-focus:ring-gray-400/70 sm:h-10 sm:w-10",
+ icon: "h-5 w-5 text-gray-600 dark:text-gray-400 sm:h-6 sm:w-6",
+};
+
+const CarouselTheme = {
+ root: {
+ base: "relative h-full w-full max-w-[700px]",
+ },
+ indicators: CarouselIndicatorsTheme,
+ control: CarouselControlsTheme,
+};
+
export const ProfileReleaseRatings = (props: any) => {
const [modal, setModal] = useState(false);
return (
@@ -18,31 +51,33 @@ export const ProfileReleaseRatings = (props: any) => {
Посмотреть все
-
- {props.ratings.map((release) => {
- return (
-
-
-
-
+
+
+ {props.ratings.map((release) => {
+ return (
+
+
+
+
+
{release.title_ru}
+
+ = 1} />
+ = 2} />
+ = 3} />
+ = 4} />
+ = 5} />
+
+
+ {unixToDate(release.voted_at, "full")}
+
+
-
-
{release.title_ru}
-
- = 1} />
- = 2} />
- = 3} />
- = 4} />
- = 5} />
-
-
- {unixToDate(release.voted_at, "full")}
-
-
-
-
- );
- })}
+
+ );
+ })}
+
props.setIsOpen(false)}
size={"4xl"}
>
- Оценки
+ Оценки
{
- return (
-
- );
-};
diff --git a/app/components/Profile/Profile.Social.tsx b/app/components/Profile/Profile.Social.tsx
deleted file mode 100644
index e9ae218..0000000
--- a/app/components/Profile/Profile.Social.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-interface UserSocialProps {
- icon: string;
- url?: string;
- nickname: string;
- color: string;
-}
-
-export const UserSocial = ({ nickname, icon, color }: UserSocialProps) => {
- return (
-
- );
-};
diff --git a/app/components/Profile/Profile.User.tsx b/app/components/Profile/Profile.User.tsx
index 538cd62..2cdaa99 100644
--- a/app/components/Profile/Profile.User.tsx
+++ b/app/components/Profile/Profile.User.tsx
@@ -1,154 +1,145 @@
"use client";
-
-import { Avatar, Card, useThemeMode } from "flowbite-react";
-import { UserRole } from "./Profile.Role";
-import { UserSocial } from "./Profile.Social";
+import { Avatar, Card, Button } from "flowbite-react";
import Link from "next/link";
+import { useRouter } from "next/navigation";
+import { Chip } from "../Chip/Chip";
-interface ProfileUserProps {
+export const ProfileUser = (props: {
+ isOnline: boolean;
avatar: string;
login: string;
status: string;
- rating: number;
- roles: {
- id: number;
- name: string;
- color: string;
- }[];
- isMyProfile: boolean;
- isSponsor: boolean;
- isBlocked: boolean;
- isVerified: boolean;
- isOnline: boolean;
socials: {
- vk: string;
- tg: string;
- tt: string;
- inst: string;
- discord: string;
+ isPrivate: boolean;
+ hasSocials: boolean;
+ socials: {
+ name: string;
+ nickname: any;
+ icon: string;
+ urlPrefix?: string | undefined;
+ }[];
};
- is_social_hidden: boolean;
-}
-
-export const ProfileUser = ({
- avatar,
- login,
- status,
- rating,
- roles,
- isMyProfile,
- isVerified,
- isOnline,
- isSponsor,
- isBlocked,
- socials,
- is_social_hidden,
-}: ProfileUserProps) => {
- const theme = useThemeMode().mode;
-
+ chips: {
+ hasChips: boolean;
+ isMyProfile: boolean;
+ isVerified: boolean;
+ isSponsor: boolean;
+ isBlocked: boolean;
+ roles?: {
+ id: number;
+ name: string;
+ color: string;
+ }[];
+ };
+ rating: number;
+}) => {
+ const router = useRouter();
return (
-
- {(isMyProfile ||
- isVerified ||
- isSponsor ||
- isBlocked ||
- roles.length > 0) && (
-
- {isMyProfile &&
}
- {isBlocked &&
}
- {isVerified &&
}
- {isSponsor &&
}
- {roles.map((role) => (
-
- ))}
+
+ {props.chips.hasChips && (
+
+ {props.chips.isMyProfile && (
+
+ )}
+ {props.chips.isVerified && (
+
+ )}
+ {props.chips.isSponsor && (
+
+ )}
+ {props.chips.isBlocked && (
+
+ )}
+ {props.chips.roles &&
+ props.chips.roles.length > 0 &&
+ props.chips.roles.map((role: any) => (
+
+ ))}
)}
-
-
-
-
- {login}
+
+
+
+ {props.login}{" "}
0 ?
- "border-green-500 text-green-500"
- : "border-red-500 text-red-500"
+ className={`border rounded-md px-2 py-1 text-sm ${
+ props.rating > 0
+ ? "border-green-500 text-green-500"
+ : "border-red-500 text-red-500"
}`}
>
- {rating}
+ {props.rating}
-
-
{status}
-
-
- {!is_social_hidden &&
- (socials.vk ||
- socials.tg ||
- socials.discord ||
- socials.tt ||
- socials.inst) && (
-
- {socials.vk && (
-
-
-
- )}
- {socials.tg && (
-
-
-
- )}
- {socials.tt && (
-
-
-
- )}
- {socials.inst && (
-
-
-
- )}
- {socials.discord && (
-
- )}
- )}
+
+ {props.status}
+
+
+
+ {props.socials.hasSocials && !props.socials.isPrivate && (
+
+ {props.socials.socials
+ .filter((social: any) => {
+ if (social.nickname == "") {
+ return false;
+ }
+ return true;
+ })
+ .map((social: any) => {
+ if (social.name == "discord" && social.nickname != "")
+ return (
+
{
+ window.navigator.clipboard.writeText(social.nickname);
+ alert("Скопировано!");
+ }}
+ >
+
+
+ {social.nickname}
+
+
+ );
+ return (
+
+
+
+
+ {social.nickname}
+
+
+
+ );
+ })}
+
+ )}
);
};
diff --git a/app/components/Profile/Profile.WatchDynamic.tsx b/app/components/Profile/Profile.WatchDynamic.tsx
index 4dcdf40..1abd8e4 100644
--- a/app/components/Profile/Profile.WatchDynamic.tsx
+++ b/app/components/Profile/Profile.WatchDynamic.tsx
@@ -28,7 +28,6 @@ export const ProfileWatchDynamic = (props: { watchDynamic: Array
}) => {
},
tooltip: {
enabled: true,
- theme:"dark",
x: {
show: false,
},
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Info.tsx b/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
index 631ca88..ae0219e 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
@@ -1,4 +1,4 @@
-import { Card, Table, TableBody, TableCell, TableRow } from "flowbite-react";
+import { Card, Table } from "flowbite-react";
import { ReleaseInfoSearchLink } from "#/components/ReleaseInfo/ReleaseInfo.SearchLink";
import { unixToDate, minutesToTime } from "#/api/utils";
const weekDay = [
@@ -30,9 +30,9 @@ export const ReleaseInfoInfo = (props: {
return (
-
-
-
+
+
+
{props.country ?
props.country.toLowerCase() == "япония" ?
@@ -40,45 +40,45 @@ export const ReleaseInfoInfo = (props: {
:
}
-
-
+
+
{props.country && props.country}
{(props.aired_on_date != 0 || props.year) && ", "}
{props.season && props.season != 0 ?
`${YearSeason[props.season]} `
: ""}
{props.year && `${props.year} г.`}
-
-
-
-
+
+
+
+
-
-
+
+
{props.episodes.released ? props.episodes.released : "?"}
{"/"}
{props.episodes.total ? props.episodes.total + " эп. " : "? эп. "}
{props.duration != 0 &&
`по ${minutesToTime(props.duration, "daysHours")}`}
-
-
-
-
+
+
+
+
-
-
+
+
{props.category}
{", "}
{props.broadcast == 0 ?
props.status.toLowerCase()
: `выходит ${weekDay[props.broadcast]}`}
-
-
-
-
+
+
+
+
-
-
+
+
{props.studio && (
<>
{"Студия: "}
@@ -117,13 +117,13 @@ export const ReleaseInfoInfo = (props: {
/>
>
)}
-
-
-
-
+
+
+
+
-
-
+
+
{props.genres &&
props.genres.split(", ").map((genre: string, index: number) => {
return (
@@ -133,14 +133,14 @@ export const ReleaseInfoInfo = (props: {
);
})}
-
-
+
+
{props.status.toLowerCase() == "анонс" && (
-
-
+
+
-
-
+
+
{props.aired_on_date != 0 ?
unixToDate(props.aired_on_date, "full")
: props.year ?
@@ -151,10 +151,10 @@ export const ReleaseInfoInfo = (props: {
{props.year && `${props.year} г.`}
>
: "Скоро"}
-
-
+
+
)}
-
+
);
diff --git a/app/components/ReleaseInfo/ReleaseInfo.LicensedPlatforms.tsx b/app/components/ReleaseInfo/ReleaseInfo.LicensedPlatforms.tsx
index bbb2a28..25f4d24 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.LicensedPlatforms.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.LicensedPlatforms.tsx
@@ -14,7 +14,7 @@ export const ReleaseInfoStreaming = (props: { release_id: number }) => {
setData(await response.json());
};
_getData();
- }, [props.release_id]);
+ }, []);
return (
<>
@@ -32,8 +32,7 @@ export const ReleaseInfoStreaming = (props: { release_id: number }) => {
key={`platform_${item.id}`}
className="flex items-center gap-2 px-4 py-2 transition-colors bg-gray-100 rounded-lg hover:bg-gray-300 dark:bg-gray-700 dark:hover:bg-gray-600 "
>
- {/* eslint-disable-next-line @next/next/no-img-element */}
-
+
{item.name}
);
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx b/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
index f63304f..6f78499 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
@@ -1,26 +1,20 @@
import {
- Button,
Card,
- Modal,
- ModalBody,
- ModalFooter,
- ModalHeader,
Rating,
- RatingAdvanced,
- RatingStar,
- RatingAdvancedTheme,
+ Flowbite,
+ Button,
+ CustomFlowbiteTheme,
+ Modal,
} from "flowbite-react";
import { numberDeclension } from "#/api/utils";
import { useState } from "react";
import { ENDPOINTS } from "#/api/config";
-const CustomRatingTheme: RatingAdvancedTheme = {
- base: "flex items-center",
- label: "text-sm font-medium text-cyan-600 dark:text-cyan-500",
- progress: {
- base: "mx-4 h-5 w-3/4 rounded bg-gray-200 dark:bg-gray-700",
- fill: "h-5 rounded bg-yellow-400",
- label: "text-sm font-medium text-cyan-600 dark:text-cyan-500",
+const RatingTheme: CustomFlowbiteTheme = {
+ ratingAdvanced: {
+ progress: {
+ base: "mx-4 h-5 w-3/4 rounded bg-gray-200 dark:bg-gray-700",
+ },
},
};
export const ReleaseInfoRating = (props: {
@@ -45,7 +39,7 @@ export const ReleaseInfoRating = (props: {
-
+
{props.grade.toFixed(2)} из 5
@@ -54,7 +48,7 @@ export const ReleaseInfoRating = (props: {
<>
- {vote ?
+ {vote ? (
<>
ваша оценка: {vote}
@@ -68,7 +62,8 @@ export const ReleaseInfoRating = (props: {
изменить
>
- :
оценить
- }
+ )}
>
)}
@@ -85,50 +80,47 @@ export const ReleaseInfoRating = (props: {
{props.votes.total}{" "}
{numberDeclension(props.votes.total, "голос", "голоса", "голосов")}
-
- 5
-
-
- 4
-
-
- 3
-
-
- 2
-
-
- 1
-
+
+
+ 5
+
+
+ 4
+
+
+ 3
+
+
+ 2
+
+
+ 1
+
+
props.setIsOpen(false)}
>
- Оценка
-
+ Оценка
+
@@ -199,7 +191,7 @@ const ReleaseInfoRatingModal = (props: {
onMouseOut={() => setCurElement(0)}
onClick={() => setVote(element)}
>
-
@@ -216,7 +208,7 @@ const ReleaseInfoRatingModal = (props: {
onMouseOut={() => setCurElement(0)}
onClick={() => setVote(element)}
>
-
@@ -224,8 +216,8 @@ const ReleaseInfoRatingModal = (props: {
-
-
+
+
-
+
);
};
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Related.tsx b/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
index 2d4a326..80a5cac 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
@@ -1,9 +1,31 @@
"use client";
-import { Card, Carousel } from "flowbite-react";
+import { Card, Carousel, CustomFlowbiteTheme, FlowbiteCarouselControlTheme, FlowbiteCarouselIndicatorsTheme } from "flowbite-react";
import { ReleaseLink } from "#/components/ReleaseLink/ReleaseLinkUpdate";
import Link from "next/link";
+const CarouselIndicatorsTheme: FlowbiteCarouselIndicatorsTheme = {
+ active: {
+ off: "bg-gray-400/50 hover:bg-gray-200",
+ on: "bg-gray-200",
+ },
+ base: "h-3 w-3 rounded-full max-w-[300px]",
+ wrapper: "absolute bottom-5 left-1/2 flex -translate-x-1/2 space-x-3",
+};
+
+const CarouselControlsTheme: FlowbiteCarouselControlTheme = {
+ base: "inline-flex h-8 w-8 items-center justify-center rounded-full group-focus:outline-none group-focus:ring-4 bg-gray-400/30 group-hover:bg-gray-400/60 group-focus:ring-gray-400/70 sm:h-10 sm:w-10",
+ icon: "h-5 w-5 text-gray-400 sm:h-6 sm:w-6",
+};
+
+const CarouselTheme: CustomFlowbiteTheme["carousel"] = {
+ root: {
+ base: "relative h-full w-full max-w-[300px]",
+ },
+ indicators: CarouselIndicatorsTheme,
+ control: CarouselControlsTheme,
+};
+
export const ReleaseInfoRelated = (props: {
release_id: number;
related: any;
@@ -23,7 +45,7 @@ export const ReleaseInfoRelated = (props: {
)}
-
+
{props.related_releases
.filter((release: any) => {
if (release.id == props.release_id) {
diff --git a/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx b/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx
index bf2d5e1..b0fec48 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.UserList.tsx
@@ -5,7 +5,7 @@ import useSWRInfinite from "swr/infinite";
import { useCallback, useEffect, useState } from "react";
import { tryCatchAPI, useSWRfetcher } from "#/api/utils";
import { toast } from "react-toastify";
-import { DropdownItem, ModalHeader, useThemeMode } from "flowbite-react";
+import { useThemeMode } from "flowbite-react";
const lists = [
{ list: 0, name: "Не смотрю" },
@@ -174,12 +174,12 @@ export const ReleaseInfoUserList = (props: {
disabled={listEventDisabled}
>
{lists.map((list) => (
- _addToList(list.list)}
>
{list.name}
-
+
))}
props.setIsOpen(false)}
>
- Выбор коллекции
+ Выбор коллекции
{
theme={DropdownTheme}
>
{voiceoverInfo.map((voiceover: any) => (
-
setSelectedVoiceoverAndSaveAsPreferred(voiceover)
}
>
{voiceover.name}
-
+
))}
{
theme={DropdownTheme}
>
{sourcesInfo.map((source: any) => (
- setSelectedPlayerAndSaveAsPreferred(source)}
>
{source.name}
-
+
))}
diff --git a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx
index 6aa170c..d73a892 100644
--- a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx
+++ b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx
@@ -212,8 +212,7 @@ export const ReleasePlayerCustom = (props: {
}
};
__getInfo();
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [props.id, props.token]);
+ }, []);
useEffect(() => {
const __getInfo = async () => {
@@ -245,7 +244,6 @@ export const ReleasePlayerCustom = (props: {
if (voiceover.selected) {
__getInfo();
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
}, [voiceover.selected]);
useEffect(() => {
@@ -286,7 +284,6 @@ export const ReleasePlayerCustom = (props: {
if (source.selected) {
__getInfo();
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
}, [source.selected]);
useEffect(() => {
@@ -349,7 +346,6 @@ export const ReleasePlayerCustom = (props: {
setPlayerError(null);
__getInfo();
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
}, [episode.selected]);
return (
diff --git a/app/components/ReleasePlayer/SourceSelector.tsx b/app/components/ReleasePlayer/SourceSelector.tsx
index bdf6deb..a8d0514 100644
--- a/app/components/ReleasePlayer/SourceSelector.tsx
+++ b/app/components/ReleasePlayer/SourceSelector.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Dropdown, DropdownItem } from "flowbite-react";
+import { Dropdown } from "flowbite-react";
import { numberDeclension } from "#/api/utils";
import { useUserPlayerPreferencesStore } from "#/store/player";
@@ -20,7 +20,7 @@ const DropdownTrigger = ({ name }: Source) => {
);
};
-const DropdownItemInternal = ({ name, episodes_count }: Source) => {
+const DropdownItem = ({ name, episodes_count }: Source) => {
return (
@@ -55,7 +55,7 @@ export const SourceSelector = (props: {
)}
>
{props.availableSource.map((source: Source) => (
-
{
playerPreferenceStore.setPreferredPlayer(
@@ -68,8 +68,8 @@ export const SourceSelector = (props: {
});
}}
>
-
-
+
+
))}
);
diff --git a/app/components/ReleasePlayer/VoiceoverSelector.tsx b/app/components/ReleasePlayer/VoiceoverSelector.tsx
index 81d5127..6ee2448 100644
--- a/app/components/ReleasePlayer/VoiceoverSelector.tsx
+++ b/app/components/ReleasePlayer/VoiceoverSelector.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Dropdown, DropdownItem } from "flowbite-react";
+import { Dropdown } from "flowbite-react";
import { numberDeclension } from "#/api/utils";
import { useUserPlayerPreferencesStore } from "#/store/player";
@@ -16,8 +16,7 @@ interface Voiceover {
const DropdownTrigger = ({ icon, name, pinned }: Voiceover) => {
return (
- {/* eslint-disable-next-line @next/next/no-img-element */}
- {icon &&
}
+ {icon &&
}
{name}
{pinned && (
@@ -27,7 +26,7 @@ const DropdownTrigger = ({ icon, name, pinned }: Voiceover) => {
);
};
-const DropdownItemInternal = ({
+const DropdownItem = ({
icon,
name,
pinned,
@@ -37,8 +36,7 @@ const DropdownItemInternal = ({
return (
- {/* eslint-disable-next-line @next/next/no-img-element */}
- {icon &&
}
+ {icon &&
}
{name}
{pinned && (
@@ -82,7 +80,7 @@ export const VoiceoverSelector = (props: {
)}
>
{props.availableVoiceover.map((voiceover: Voiceover) => (
-
{
@@ -96,8 +94,8 @@ export const VoiceoverSelector = (props: {
});
}}
>
-
-
+
+
))}
);
diff --git a/app/components/SettingsModal/SettingsModal.tsx b/app/components/SettingsModal/SettingsModal.tsx
index 6bf5db8..3786e80 100644
--- a/app/components/SettingsModal/SettingsModal.tsx
+++ b/app/components/SettingsModal/SettingsModal.tsx
@@ -4,16 +4,12 @@ import { CURRENT_APP_VERSION } from "#/api/config";
import { useUserStore } from "#/store/auth";
import { usePreferencesStore } from "#/store/preferences";
import {
- Button,
- ButtonGroup,
- Dropdown,
- DropdownItem,
- HR,
Modal,
- ModalBody,
- ModalHeader,
- ToggleSwitch,
+ Button,
useThemeMode,
+ ToggleSwitch,
+ HR,
+ Dropdown,
} from "flowbite-react";
import Link from "next/link";
@@ -58,8 +54,8 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
show={props.isOpen}
onClose={() => props.setIsOpen(false)}
>
-
Настройки
-
+ Настройки
+
@@ -67,20 +63,20 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
Тема
-
+
setMode("light")}
>
Светлая
setMode("dark")}
>
Темная
-
+
@@ -89,6 +85,15 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
preferenceStore.setParams({
skipToCategory: {
@@ -116,7 +121,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
>
{Object.keys(HomeCategory).map((key) => {
return (
-
preferenceStore.setParams({
@@ -128,7 +133,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{HomeCategory[key]}
-
+
);
})}
@@ -147,7 +152,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
>
{Object.keys(BookmarksCategory).map((key) => {
return (
-
preferenceStore.setParams({
@@ -159,7 +164,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{BookmarksCategory[key]}
-
+
);
})}
@@ -177,7 +182,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
{Object.keys(NavbarTitles).map(
(key: "always" | "links" | "selected" | "never") => {
return (
-
@@ -187,7 +192,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{NavbarTitles[key]}
-
+
);
}
)}
@@ -206,7 +211,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
: "Нет"
}
>
-
preferenceStore.setFlags({
showFifthButton: null,
@@ -214,10 +219,10 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
Не показывать
-
+
{Object.keys(FifthButton).map((key) => {
return (
-
preferenceStore.setFlags({
@@ -226,7 +231,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{FifthButton[key]}
-
+
);
})}
@@ -241,6 +246,15 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
Показывать список изменений
preferenceStore.setFlags({
showChangelog: !preferenceStore.flags.showChangelog,
@@ -258,6 +272,15 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
preferenceStore.setFlags({
enableAnalytics: !preferenceStore.flags.enableAnalytics,
@@ -280,6 +303,15 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
preferenceStore.setParams({
experimental: {
@@ -308,7 +340,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
-
+
);
};
diff --git a/app/pages/About.tsx b/app/pages/About.tsx
index 7f6ce53..851641e 100644
--- a/app/pages/About.tsx
+++ b/app/pages/About.tsx
@@ -15,6 +15,7 @@ import {
AccordionPanel,
AccordionTitle,
} from "flowbite-react";
+import { version } from "node:os";
import Link from "next/link";
export const AboutPage = () => {
diff --git a/app/pages/BookmarksCategory.tsx b/app/pages/BookmarksCategory.tsx
index b53b3fa..ea4ed0b 100644
--- a/app/pages/BookmarksCategory.tsx
+++ b/app/pages/BookmarksCategory.tsx
@@ -5,7 +5,7 @@ import { Spinner } from "#/components/Spinner/Spinner";
import { useState, useEffect } from "react";
import { useScrollPosition } from "#/hooks/useScrollPosition";
import { useUserStore } from "../store/auth";
-import { Button, ButtonGroup, Dropdown, DropdownItem } from "flowbite-react";
+import { Dropdown, Button } from "flowbite-react";
import { sort } from "./common";
import { ENDPOINTS } from "#/api/config";
import { BookmarksList, useSWRfetcher } from "#/api/utils";
@@ -151,7 +151,7 @@ export function BookmarksCategoryPage(props: any) {
: ""}
-
+
{props.SectionTitleMapping["abandoned"]}
-
+
@@ -237,7 +237,7 @@ export function BookmarksCategoryPage(props: any) {
theme={DropdownTheme}
>
{sort.values.map((item, index) => (
- setSelectedSort(index)}>
+ setSelectedSort(index)}>
{item.name}
-
+
))}
diff --git a/app/pages/CreateCollection.tsx b/app/pages/CreateCollection.tsx
index a7b2982..cd0c3b7 100644
--- a/app/pages/CreateCollection.tsx
+++ b/app/pages/CreateCollection.tsx
@@ -5,15 +5,14 @@ import { useEffect, useState, useCallback } from "react";
import { useSearchParams, useRouter } from "next/navigation";
import { ENDPOINTS } from "#/api/config";
import {
- Button,
Card,
+ Button,
Checkbox,
+ TextInput,
+ Textarea,
FileInput,
Label,
Modal,
- ModalHeader,
- Textarea,
- TextInput,
useThemeMode,
} from "flowbite-react";
import { PosterWithStuff } from "#/components/ReleasePoster/PosterWithStuff";
@@ -34,7 +33,6 @@ export const CreateCollectionPage = () => {
if (userStore.state === "finished" && !userStore.token) {
router.push("/login?redirect=/collections/create");
}
- // eslint-disable-next-line react-hooks/exhaustive-deps
}, [userStore]);
const [edit, setEdit] = useState(false);
@@ -390,9 +388,10 @@ export const CreateCollectionPage = () => {
-
- Название (минимум 10, максимум 60 символов)
-
+
{
{stringLength.title}/60
-
- Описание (максимум 1000 символов)
-
+
props.setIsOpen(false)}
size={"7xl"}
>
- Изменить релизы в коллекции
+ Изменить релизы в коллекции
{sort.values.map((item, index) => (
- setSelectedSort(index)}>
+ setSelectedSort(index)}>
{item.name}
-
+
))}
diff --git a/app/pages/IndexCategory.tsx b/app/pages/IndexCategory.tsx
index f3ba11d..f79dbf7 100644
--- a/app/pages/IndexCategory.tsx
+++ b/app/pages/IndexCategory.tsx
@@ -5,7 +5,7 @@ import { useState, useEffect } from "react";
import { useScrollPosition } from "#/hooks/useScrollPosition";
import { useUserStore } from "../store/auth";
import { _FetchHomePageReleases } from "#/api/utils";
-import { Button, ButtonGroup } from "flowbite-react";
+import { Button } from "flowbite-react";
import { useRouter } from "next/navigation";
export function IndexCategoryPage(props) {
@@ -53,13 +53,13 @@ export function IndexCategoryPage(props) {
return (
<>
-
+
router.push("/home/last")}>{props.SectionTitleMapping["last"]}
router.push("/home/finished")}>{props.SectionTitleMapping["finished"]}
router.push("/home/ongoing")}>{props.SectionTitleMapping["ongoing"]}
router.push("/home/announce")}>{props.SectionTitleMapping["announce"]}
router.push("/home/films")}>{props.SectionTitleMapping["films"]}
-
+
{content && content.length > 0 ? (
{
);
}
+ const hasSocials =
+ user.vk_page != "" ||
+ user.tg_page != "" ||
+ user.tt_page != "" ||
+ user.inst_page != "" ||
+ user.discord_page != "" ||
+ false;
+ const socials = [
+ {
+ name: "vk",
+ nickname: user.vk_page,
+ icon: "fa6-brands--vk",
+ urlPrefix: "https://vk.com/",
+ },
+ {
+ name: "telegram",
+ nickname: user.tg_page,
+ icon: "fa6-brands--telegram",
+ urlPrefix: "https://t.me/",
+ },
+ {
+ name: "discord",
+ nickname: user.discord_page,
+ icon: "fa6-brands--discord",
+ },
+ {
+ name: "tiktok",
+ nickname: user.tt_page,
+ icon: "fa6-brands--tiktok",
+ urlPrefix: "https://tiktok.com/@",
+ },
+ {
+ name: "instagram",
+ nickname: user.inst_page,
+ icon: "fa6-brands--instagram",
+ urlPrefix: "https://instagram.com/",
+ },
+ ];
+
+ const hasChips =
+ user.is_verified ||
+ user.is_blocked ||
+ (user.roles && user.roles.length > 0) ||
+ isMyProfile;
+ const isPrivacy =
+ user.is_stats_hidden || user.is_counts_hidden || user.is_social_hidden;
+
return (
<>
@@ -69,48 +116,61 @@ export const ProfilePage = (props: any) => {
ban_expires={user.ban_expires}
/>
-
+
+ {!user.is_counts_hidden && (
+
+ )}
+ {!user.is_stats_hidden && (
+
+ {user.votes && user.votes.length > 0 && (
+
+ )}
+ {user.history && user.history.length > 0 && (
+
+ )}
+
+ )}
+
+
{authUser.token && (
{
edit_setIsOpen={setIsOpen}
/>
)}
- {!user.is_counts_hidden && (
-
- )}
- {!user.is_stats_hidden && (
-
- {user.votes && user.votes.length > 0 && (
-
- )}
-
- )}
-
-
{!user.is_stats_hidden && (
<>
{
profile_id={user.id}
/>
-
+
{user.votes && user.votes.length > 0 && (
{
profile_id={user.id}
/>
)}
+ {user.history && user.history.length > 0 && (
+
+ )}
- {user.history && user.history.length > 0 && (
-
- )}
>
)}
diff --git a/app/pages/Search.tsx b/app/pages/Search.tsx
index bba699e..f1ee103 100644
--- a/app/pages/Search.tsx
+++ b/app/pages/Search.tsx
@@ -8,7 +8,7 @@ import { useScrollPosition } from "#/hooks/useScrollPosition";
import { useRouter } from "next/navigation";
import { useSearchParams } from "next/navigation";
import { useUserStore } from "../store/auth";
-import { Button, Dropdown, DropdownItem, Modal, ModalBody, ModalFooter, ModalHeader } from "flowbite-react";
+import { Button, Dropdown, Modal } from "flowbite-react";
import { CollectionsSection } from "#/components/CollectionsSection/CollectionsSection";
import { UserSection } from "#/components/UserSection/UserSection";
import { useSWRfetcher } from "#/api/utils";
@@ -360,8 +360,8 @@ const FiltersModal = (props: {
return (
_cancel()}>
- Фильтры
-
+ Фильтры
+
Искать в
@@ -376,12 +376,12 @@ const FiltersModal = (props: {
return <>>;
} else {
return (
-
setWhere(item)}
key={`where--${item}`}
>
{WhereMapping[item]}
-
+
);
}
})}
@@ -395,12 +395,12 @@ const FiltersModal = (props: {
{Object.keys(ListsMapping).map((item) => {
return (
- setList(item)}
key={`list--${item}`}
>
{ListsMapping[item].name}
-
+
);
})}
@@ -414,20 +414,20 @@ const FiltersModal = (props: {
{Object.keys(TagMapping).map((item) => {
return (
- setSearchBy(item)}
key={`tag--${item}`}
>
{TagMapping[item].name}
-
+
);
})}
: ""}
-
-
+
+
_cancel()}>
Отменить
@@ -436,7 +436,7 @@ const FiltersModal = (props: {
Применить
-
+
);
};
diff --git a/next.config.js b/next.config.js
index bdba023..1b76294 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,7 +1,8 @@
const { withPlausibleProxy } = require("next-plausible");
-const withFlowbiteReact = require("flowbite-react/plugin/nextjs");
-/** @type {import('next').NextConfig} */
-const NextConfig = {
+
+module.exports = withPlausibleProxy({
+ customDomain: "https://analytics.wah.su",
+})({
reactStrictMode: false,
images: {
unoptimized: true,
@@ -9,74 +10,68 @@ const NextConfig = {
async headers() {
return [
{
- source: "/bookmarks/:slug*",
+ source: '/bookmarks/:slug*',
headers: [
{
- key: "Cache-Control",
- value: "s-maxage=2592000, stale-while-revalidate=86400",
+ key: 'Cache-Control',
+ value: 's-maxage=2592000, stale-while-revalidate=86400',
},
],
},
{
- source: "/collection/:slug*",
+ source: '/collection/:slug*',
headers: [
{
- key: "Cache-Control",
- value: "s-maxage=2592000, stale-while-revalidate=86400",
+ key: 'Cache-Control',
+ value: 's-maxage=2592000, stale-while-revalidate=86400',
},
],
},
{
- source: "/home/:slug*",
+ source: '/home/:slug*',
headers: [
{
- key: "Cache-Control",
- value: "s-maxage=2592000, stale-while-revalidate=86400",
+ key: 'Cache-Control',
+ value: 's-maxage=2592000, stale-while-revalidate=86400',
},
],
},
{
- source: "/profile/:slug*",
+ source: '/profile/:slug*',
headers: [
{
- key: "Cache-Control",
- value: "s-maxage=2592000, stale-while-revalidate=86400",
+ key: 'Cache-Control',
+ value: 's-maxage=2592000, stale-while-revalidate=86400',
},
],
},
{
- source: "/release/:slug*",
+ source: '/release/:slug*',
headers: [
{
- key: "Cache-Control",
- value: "s-maxage=2592000, stale-while-revalidate=86400",
+ key: 'Cache-Control',
+ value: 's-maxage=2592000, stale-while-revalidate=86400',
},
],
},
{
- source: "/related/:slug*",
+ source: '/related/:slug*',
headers: [
{
- key: "Cache-Control",
- value: "s-maxage=2592000, stale-while-revalidate=86400",
+ key: 'Cache-Control',
+ value: 's-maxage=2592000, stale-while-revalidate=86400',
},
],
},
{
- source: "/search",
+ source: '/search',
headers: [
{
- key: "Cache-Control",
- value: "s-maxage=2592000, stale-while-revalidate=86400",
+ key: 'Cache-Control',
+ value: 's-maxage=2592000, stale-while-revalidate=86400',
},
],
},
];
},
-};
-
-const config = withPlausibleProxy({
- customDomain: "https://analytics.wah.su",
-})(withFlowbiteReact(NextConfig));
-
-module.exports = config;
+});
diff --git a/package-lock.json b/package-lock.json
index 95d906f..3f175bf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,18 +7,16 @@
"": {
"name": "new",
"version": "0.1.0",
- "hasInstallScript": true,
"dependencies": {
"apexcharts": "^3.52.0",
"deepmerge-ts": "^7.1.0",
"flowbite": "^2.4.1",
- "flowbite-react": "^0.11.7",
+ "flowbite-react": "^0.10.1",
"hls-video-element": "^1.5.0",
"markdown-to-jsx": "^7.4.7",
"media-chrome": "^4.8.0",
"next": "^14.2.26",
"next-plausible": "^3.12.1",
- "prettier": "^3.5.3",
"react": "^18",
"react-cropper": "^2.3.3",
"react-dom": "^18",
@@ -40,6 +38,8 @@
"eslint": "^8",
"eslint-config-next": "14.2.5",
"postcss": "^8",
+ "prettier": "^3.5.3",
+ "tailwind-scrollbar": "^3.1.0",
"tailwindcss": "^3.4.1"
}
},
@@ -153,12 +153,12 @@
}
},
"node_modules/@floating-ui/core": {
- "version": "1.6.9",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
- "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.6.tgz",
+ "integrity": "sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==",
"license": "MIT",
"dependencies": {
- "@floating-ui/utils": "^0.2.9"
+ "@floating-ui/utils": "^0.2.6"
}
},
"node_modules/@floating-ui/dom": {
@@ -172,18 +172,18 @@
}
},
"node_modules/@floating-ui/react": {
- "version": "0.27.3",
- "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz",
- "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==",
+ "version": "0.26.21",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.21.tgz",
+ "integrity": "sha512-7P5ncDIiYd6RrwpCDbKyFzvabM014QlzlumtDbK3Bck0UueC+Rp8BLS34qcGBcN1pZCTodl4QNnCVmKv4tSxfQ==",
"license": "MIT",
"dependencies": {
- "@floating-ui/react-dom": "^2.1.2",
- "@floating-ui/utils": "^0.2.9",
+ "@floating-ui/react-dom": "^2.1.1",
+ "@floating-ui/utils": "^0.2.6",
"tabbable": "^6.0.0"
},
"peerDependencies": {
- "react": ">=17.0.0",
- "react-dom": ">=17.0.0"
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
}
},
"node_modules/@floating-ui/react-dom": {
@@ -243,12 +243,6 @@
"dev": true,
"license": "BSD-3-Clause"
},
- "node_modules/@iarna/toml": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
- "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
- "license": "ISC"
- },
"node_modules/@iconify-json/fa6-brands": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@iconify-json/fa6-brands/-/fa6-brands-1.2.5.tgz",
@@ -414,15 +408,15 @@
}
},
"node_modules/@napi-rs/wasm-runtime": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.8.tgz",
- "integrity": "sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==",
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz",
+ "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
- "@emnapi/core": "^1.4.0",
- "@emnapi/runtime": "^1.4.0",
+ "@emnapi/core": "^1.3.1",
+ "@emnapi/runtime": "^1.3.1",
"@tybys/wasm-util": "^0.9.0"
}
},
@@ -1002,9 +996,9 @@
"license": "ISC"
},
"node_modules/@unrs/resolver-binding-darwin-arm64": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.3.3.tgz",
- "integrity": "sha512-EpRILdWr3/xDa/7MoyfO7JuBIJqpBMphtu4+80BK1bRfFcniVT74h3Z7q1+WOc92FuIAYatB1vn9TJR67sORGw==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.3.2.tgz",
+ "integrity": "sha512-ddnlXgRi0Fog5+7U5Q1qY62wl95Q1lB4tXQX1UIA9YHmRCHN2twaQW0/4tDVGCvTVEU3xEayU7VemEr7GcBYUw==",
"cpu": [
"arm64"
],
@@ -1016,9 +1010,9 @@
]
},
"node_modules/@unrs/resolver-binding-darwin-x64": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.3.3.tgz",
- "integrity": "sha512-ntj/g7lPyqwinMJWZ+DKHBse8HhVxswGTmNgFKJtdgGub3M3zp5BSZ3bvMP+kBT6dnYJLSVlDqdwOq1P8i0+/g==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.3.2.tgz",
+ "integrity": "sha512-tnl9xoEeg503jis+LW5cuq4hyLGQyqaoBL8VdPSqcewo/FL1C8POHbzl+AL25TidWYJD+R6bGUTE381kA1sT9w==",
"cpu": [
"x64"
],
@@ -1030,9 +1024,9 @@
]
},
"node_modules/@unrs/resolver-binding-freebsd-x64": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.3.3.tgz",
- "integrity": "sha512-l6BT8f2CU821EW7U8hSUK8XPq4bmyTlt9Mn4ERrfjJNoCw0/JoHAh9amZZtV3cwC3bwwIat+GUnrcHTG9+qixw==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.3.2.tgz",
+ "integrity": "sha512-zyPn9LFCCjhKPeCtECZaiMUgkYN/VpLb4a9Xv7QriJmTaQxsuDtXqOHifrzUXIhorJTyS+5MOKDuNL0X9I4EHA==",
"cpu": [
"x64"
],
@@ -1044,9 +1038,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.3.3.tgz",
- "integrity": "sha512-8ScEc5a4y7oE2BonRvzJ+2GSkBaYWyh0/Ko4Q25e/ix6ANpJNhwEPZvCR6GVRmsQAYMIfQvYLdM6YEN+qRjnAQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.3.2.tgz",
+ "integrity": "sha512-UWx56Wh59Ro69fe+Wfvld4E1n9KG0e3zeouWLn8eSasyi/yVH/7ZW3CLTVFQ81oMKSpXwr5u6RpzttDXZKiO4g==",
"cpu": [
"arm"
],
@@ -1058,9 +1052,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.3.3.tgz",
- "integrity": "sha512-8qQ6l1VTzLNd3xb2IEXISOKwMGXDCzY/UNy/7SovFW2Sp0K3YbL7Ao7R18v6SQkLqQlhhqSBIFRk+u6+qu5R5A==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.3.2.tgz",
+ "integrity": "sha512-VYGQXsOEJtfaoY2fOm8Z9ii5idFaHFYlrq3yMFZPaFKo8ufOXYm8hnfru7qetbM9MX116iWaPC0ZX5sK+1Dr+g==",
"cpu": [
"arm"
],
@@ -1072,9 +1066,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.3.3.tgz",
- "integrity": "sha512-v81R2wjqcWXJlQY23byqYHt9221h4anQ6wwN64oMD/WAE+FmxPHFZee5bhRkNVtzqO/q7wki33VFWlhiADwUeQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.3.2.tgz",
+ "integrity": "sha512-3zP420zxJfYPD1rGp2/OTIBxF8E3+/6VqCG+DEO6kkDgBiloa7Y8pw1o7N9BfgAC+VC8FPZsFXhV2lpx+lLRMQ==",
"cpu": [
"arm64"
],
@@ -1086,9 +1080,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm64-musl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.3.3.tgz",
- "integrity": "sha512-cAOx/j0u5coMg4oct/BwMzvWJdVciVauUvsd+GQB/1FZYKQZmqPy0EjJzJGbVzFc6gbnfEcSqvQE6gvbGf2N8Q==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.3.2.tgz",
+ "integrity": "sha512-ZWjSleUgr88H4Kei7yT4PlPqySTuWN1OYDDcdbmMCtLWFly3ed+rkrcCb3gvqXdDbYrGOtzv3g2qPEN+WWNv5Q==",
"cpu": [
"arm64"
],
@@ -1100,9 +1094,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.3.3.tgz",
- "integrity": "sha512-mq2blqwErgDJD4gtFDlTX/HZ7lNP8YCHYFij2gkXPtMzrXxPW1hOtxL6xg4NWxvnj4bppppb0W3s/buvM55yfg==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.3.2.tgz",
+ "integrity": "sha512-p+5OvYJ2UOlpjes3WfBlxyvQok2u26hLyPxLFHkYlfzhZW0juhvBf/tvewz1LDFe30M7zL9cF4OOO5dcvtk+cw==",
"cpu": [
"ppc64"
],
@@ -1114,9 +1108,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.3.3.tgz",
- "integrity": "sha512-u0VRzfFYysarYHnztj2k2xr+eu9rmgoTUUgCCIT37Nr+j0A05Xk2c3RY8Mh5+DhCl2aYibihnaAEJHeR0UOFIQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.3.2.tgz",
+ "integrity": "sha512-yweY7I6SqNn3kvj6vE4PQRo7j8Oz6+NiUhmgciBNAUOuI3Jq0bnW29hbHJdxZRSN1kYkQnSkbbA1tT8VnK816w==",
"cpu": [
"s390x"
],
@@ -1128,9 +1122,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-x64-gnu": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.3.3.tgz",
- "integrity": "sha512-OrVo5ZsG29kBF0Ug95a2KidS16PqAMmQNozM6InbquOfW/udouk063e25JVLqIBhHLB2WyBnixOQ19tmeC/hIg==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.3.2.tgz",
+ "integrity": "sha512-fNIvtzJcGN9hzWTIayrTSk2+KHQrqKbbY+I88xMVMOFV9t4AXha4veJdKaIuuks+2JNr6GuuNdsL7+exywZ32w==",
"cpu": [
"x64"
],
@@ -1142,9 +1136,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-x64-musl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.3.3.tgz",
- "integrity": "sha512-PYnmrwZ4HMp9SkrOhqPghY/aoL+Rtd4CQbr93GlrRTjK6kDzfMfgz3UH3jt6elrQAfupa1qyr1uXzeVmoEAxUA==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.3.2.tgz",
+ "integrity": "sha512-OaFEw8WAjiwBGxutQgkWhoAGB5BQqZJ8Gjt/mW+m6DWNjimcxU22uWCuEtfw1CIwLlKPOzsgH0429fWmZcTGkg==",
"cpu": [
"x64"
],
@@ -1156,9 +1150,9 @@
]
},
"node_modules/@unrs/resolver-binding-wasm32-wasi": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.3.3.tgz",
- "integrity": "sha512-81AnQY6fShmktQw4hWDUIilsKSdvr/acdJ5azAreu2IWNlaJOKphJSsUVWE+yCk6kBMoQyG9ZHCb/krb5K0PEA==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.3.2.tgz",
+ "integrity": "sha512-u+sumtO7M0AGQ9bNQrF4BHNpUyxo23FM/yXZfmVAicTQ+mXtG06O7pm5zQUw3Mr4jRs2I84uh4O0hd8bdouuvQ==",
"cpu": [
"wasm32"
],
@@ -1173,9 +1167,9 @@
}
},
"node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.3.3.tgz",
- "integrity": "sha512-X/42BMNw7cW6xrB9syuP5RusRnWGoq+IqvJO8IDpp/BZg64J1uuIW6qA/1Cl13Y4LyLXbJVYbYNSKwR/FiHEng==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.3.2.tgz",
+ "integrity": "sha512-ZAJKy95vmDIHsRFuPNqPQRON8r2mSMf3p9DoX+OMOhvu2c8OXGg8MvhGRf3PNg45ozRrPdXDnngURKgaFfpGoQ==",
"cpu": [
"arm64"
],
@@ -1187,9 +1181,9 @@
]
},
"node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.3.3.tgz",
- "integrity": "sha512-EGNnNGQxMU5aTN7js3ETYvuw882zcO+dsVjs+DwO2j/fRVKth87C8e2GzxW1L3+iWAXMyJhvFBKRavk9Og1Z6A==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.3.2.tgz",
+ "integrity": "sha512-nQG4YFAS2BLoKVQFK/FrWJvFATI5DQUWQrcPcsWG9Ve5BLLHZuPOrJ2SpAJwLXQrRv6XHSFAYGI8wQpBg/CiFA==",
"cpu": [
"ia32"
],
@@ -1201,9 +1195,9 @@
]
},
"node_modules/@unrs/resolver-binding-win32-x64-msvc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.3.3.tgz",
- "integrity": "sha512-GraLbYqOJcmW1qY3osB+2YIiD62nVf2/bVLHZmrb4t/YSUwE03l7TwcDJl08T/Tm3SVhepX8RQkpzWbag/Sb4w==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.3.2.tgz",
+ "integrity": "sha512-XBWpUP0mHya6yGBwNefhyEa6V7HgYKCxEAY4qhTm/PcAQyBPNmjj97VZJOJkVdUsyuuii7xmq0pXWX/c2aToHQ==",
"cpu": [
"x64"
],
@@ -1625,12 +1619,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array-timsort": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz",
- "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==",
- "license": "MIT"
- },
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -1761,18 +1749,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ast-types": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz",
- "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/ast-types-flow": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
@@ -1990,9 +1966,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001709",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001709.tgz",
- "integrity": "sha512-NgL3vUTnDrPCZ3zTahp4fsugQ4dc7EKTSzwQDPEel6DMoMnfH2jhry9n2Zm8onbSR+f/QtKHFOA+iAQu4kbtWA==",
+ "version": "1.0.30001707",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz",
+ "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==",
"funding": [
{
"type": "opencollective",
@@ -2036,18 +2012,39 @@
}
},
"node_modules/chokidar": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
- "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"license": "MIT",
"dependencies": {
- "readdirp": "^4.0.1"
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
},
"engines": {
- "node": ">= 14.16.0"
+ "node": ">= 8.10.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/chrome-trace-event": {
@@ -2109,22 +2106,6 @@
"node": ">= 6"
}
},
- "node_modules/comment-json": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz",
- "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==",
- "license": "MIT",
- "dependencies": {
- "array-timsort": "^1.0.3",
- "core-util-is": "^1.0.3",
- "esprima": "^4.0.1",
- "has-own-prop": "^2.0.0",
- "repeat-string": "^1.6.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2157,12 +2138,6 @@
"webpack": "^5.1.0"
}
},
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "license": "MIT"
- },
"node_modules/cropperjs": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.6.2.tgz",
@@ -2270,9 +2245,9 @@
}
},
"node_modules/debounce": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.2.0.tgz",
- "integrity": "sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.1.0.tgz",
+ "integrity": "sha512-OkL3+0pPWCqoBc/nhO9u6TIQNTK44fnBnzuVtJAbp13Naxw9R6u21x+8tVTka87AhDZ3htqZ2pSSsZl9fqL2Wg==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -2285,6 +2260,7 @@
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
@@ -2438,9 +2414,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.131",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.131.tgz",
- "integrity": "sha512-fJFRYXVEJgDCiqFOgRGJm8XR97hZ13tw7FXI9k2yC5hgY+nyzC2tMO8baq1cQR7Ur58iCkASx2zrkZPZUnfzPg==",
+ "version": "1.5.128",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.128.tgz",
+ "integrity": "sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==",
"dev": true,
"license": "ISC",
"peer": true
@@ -2939,9 +2915,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.37.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
- "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
+ "version": "7.37.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz",
+ "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2955,7 +2931,7 @@
"hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.9",
+ "object.entries": "^1.1.8",
"object.fromentries": "^2.0.8",
"object.values": "^1.2.1",
"prop-types": "^15.8.1",
@@ -3073,19 +3049,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "license": "BSD-2-Clause",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/esquery": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
@@ -3325,146 +3288,34 @@
}
},
"node_modules/flowbite-react": {
- "version": "0.11.7",
- "resolved": "https://registry.npmjs.org/flowbite-react/-/flowbite-react-0.11.7.tgz",
- "integrity": "sha512-Z8m+ycHEsXPacSAi8P4yYDeff7LvcHNwbGAnL/+Fpiv+6ZWDEAGY/YPKhUofZsZa837JTYrbcbmgjqQ1bpt51g==",
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/flowbite-react/-/flowbite-react-0.10.2.tgz",
+ "integrity": "sha512-qkayK6IFmfH7zuuDnHmS0hJxLtL0KpW4vo4i/VQfZ6ZfaNlUsNLQxCGcmXwbZZtUm2WVw8x71aaDOAxftG9tmg==",
"license": "MIT",
"dependencies": {
- "@floating-ui/core": "1.6.9",
- "@floating-ui/react": "0.27.3",
- "@iarna/toml": "2.2.5",
- "@typescript-eslint/typescript-estree": "8.26.0",
- "chokidar": "4.0.3",
+ "@floating-ui/core": "1.6.6",
+ "@floating-ui/react": "0.26.21",
"classnames": "2.5.1",
- "comment-json": "4.2.5",
- "debounce": "2.2.0",
- "deepmerge-ts": "7.1.4",
- "klona": "2.0.6",
- "package-manager-detector": "0.2.9",
- "recast": "0.23.11",
- "tailwind-merge-v2": "npm:tailwind-merge@2.6.0",
- "tailwind-merge-v3": "npm:tailwind-merge@3.0.1"
- },
- "bin": {
- "flowbite-react": "dist/cli/bin.js"
+ "debounce": "2.1.0",
+ "flowbite": "2.5.1",
+ "react-icons": "5.2.1",
+ "tailwind-merge": "2.4.0"
},
"peerDependencies": {
- "react": "^18 || ^19",
- "react-dom": "^18 || ^19",
- "tailwindcss": "^3 || ^4"
+ "react": ">=18",
+ "react-dom": ">=18",
+ "tailwindcss": "^3"
}
},
- "node_modules/flowbite-react/node_modules/@typescript-eslint/types": {
- "version": "8.26.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.0.tgz",
- "integrity": "sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==",
- "license": "MIT",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/flowbite-react/node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.26.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.0.tgz",
- "integrity": "sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==",
+ "node_modules/flowbite-react/node_modules/flowbite": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-2.5.1.tgz",
+ "integrity": "sha512-7jP1jy9c3QP7y+KU9lc8ueMkTyUdMDvRP+lteSWgY5TigSZjf9K1kqZxmqjhbx2gBnFQxMl1GAjVThCa8cEpKA==",
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.26.0",
- "@typescript-eslint/visitor-keys": "8.26.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.3.2",
- "is-glob": "^4.0.3",
- "minimatch": "^9.0.4",
- "semver": "^7.6.0",
- "ts-api-utils": "^2.0.1"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4 <5.9.0"
- }
- },
- "node_modules/flowbite-react/node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.26.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.0.tgz",
- "integrity": "sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==",
- "license": "MIT",
- "dependencies": {
- "@typescript-eslint/types": "8.26.0",
- "eslint-visitor-keys": "^4.2.0"
- },
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/flowbite-react/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/flowbite-react/node_modules/deepmerge-ts": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.4.tgz",
- "integrity": "sha512-fxqo6nHGQ9zOVgI4KXqtWXJR/yCLtC7aXIVq+6jc8tHPFUxlFmuUcm2kC4vztQ+LJxQ3gER/XAWearGYQ8niGA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/flowbite-react/node_modules/eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
- "license": "Apache-2.0",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/flowbite-react/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/flowbite-react/node_modules/ts-api-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
- "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
- "license": "MIT",
- "engines": {
- "node": ">=18.12"
- },
- "peerDependencies": {
- "typescript": ">=4.8.4"
+ "@popperjs/core": "^2.9.3",
+ "flowbite-datepicker": "^1.3.0",
+ "mini-svg-data-uri": "^1.4.3"
}
},
"node_modules/for-each": {
@@ -3809,15 +3660,6 @@
"node": ">=8"
}
},
- "node_modules/has-own-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz",
- "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/has-property-descriptors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
@@ -4575,15 +4417,6 @@
"json-buffer": "3.0.1"
}
},
- "node_modules/klona": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
- "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/language-subtag-registry": {
"version": "0.3.23",
"resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
@@ -4837,6 +4670,7 @@
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
"license": "MIT"
},
"node_modules/mz": {
@@ -5201,12 +5035,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/package-manager-detector": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz",
- "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==",
- "license": "MIT"
- },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -5487,6 +5315,7 @@
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
+ "dev": true,
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
@@ -5587,6 +5416,15 @@
"react": "^18.3.1"
}
},
+ "node_modules/react-icons": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz",
+ "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -5617,32 +5455,27 @@
}
},
"node_modules/readdirp": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
- "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
- "license": "MIT",
- "engines": {
- "node": ">= 14.18.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/recast": {
- "version": "0.23.11",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz",
- "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"license": "MIT",
"dependencies": {
- "ast-types": "^0.16.1",
- "esprima": "~4.0.0",
- "source-map": "~0.6.1",
- "tiny-invariant": "^1.3.3",
- "tslib": "^2.0.1"
+ "picomatch": "^2.2.1"
},
"engines": {
- "node": ">= 4"
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/reflect.getprototypeof": {
@@ -5689,15 +5522,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
@@ -5966,6 +5790,7 @@
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -6159,7 +5984,9 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
"license": "BSD-3-Clause",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6631,26 +6458,27 @@
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
"license": "MIT"
},
- "node_modules/tailwind-merge-v2": {
- "name": "tailwind-merge",
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz",
- "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==",
+ "node_modules/tailwind-merge": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz",
+ "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/dcastil"
}
},
- "node_modules/tailwind-merge-v3": {
- "name": "tailwind-merge",
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.0.1.tgz",
- "integrity": "sha512-AvzE8FmSoXC7nC+oU5GlQJbip2UO7tmOhOfQyOmPhrStOGXHU08j8mZEHZ4BmCqY5dWTCo4ClWkNyRNx1wpT0g==",
+ "node_modules/tailwind-scrollbar": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz",
+ "integrity": "sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg==",
+ "dev": true,
"license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/dcastil"
+ "engines": {
+ "node": ">=12.13.0"
+ },
+ "peerDependencies": {
+ "tailwindcss": "3.x"
}
},
"node_modules/tailwindcss": {
@@ -6690,66 +6518,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/tailwindcss/node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/tailwindcss/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/tailwindcss/node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
"node_modules/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
@@ -6853,12 +6621,6 @@
"node": ">=0.8"
}
},
- "node_modules/tiny-invariant": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
- "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
- "license": "MIT"
- },
"node_modules/tinyglobby": {
"version": "0.2.12",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
@@ -7034,6 +6796,7 @@
"version": "5.8.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
+ "dev": true,
"license": "Apache-2.0",
"peer": true,
"bin": {
@@ -7084,30 +6847,30 @@
}
},
"node_modules/unrs-resolver": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.3.tgz",
- "integrity": "sha512-PFLAGQzYlyjniXdbmQ3dnGMZJXX5yrl2YS4DLRfR3BhgUsE1zpRIrccp9XMOGRfIHpdFvCn/nr5N1KMVda4x3A==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.2.tgz",
+ "integrity": "sha512-ZKQBC351Ubw0PY8xWhneIfb6dygTQeUHtCcNGd0QB618zabD/WbFMYdRyJ7xeVT+6G82K5v/oyZO0QSHFtbIuw==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/JounQin"
},
"optionalDependencies": {
- "@unrs/resolver-binding-darwin-arm64": "1.3.3",
- "@unrs/resolver-binding-darwin-x64": "1.3.3",
- "@unrs/resolver-binding-freebsd-x64": "1.3.3",
- "@unrs/resolver-binding-linux-arm-gnueabihf": "1.3.3",
- "@unrs/resolver-binding-linux-arm-musleabihf": "1.3.3",
- "@unrs/resolver-binding-linux-arm64-gnu": "1.3.3",
- "@unrs/resolver-binding-linux-arm64-musl": "1.3.3",
- "@unrs/resolver-binding-linux-ppc64-gnu": "1.3.3",
- "@unrs/resolver-binding-linux-s390x-gnu": "1.3.3",
- "@unrs/resolver-binding-linux-x64-gnu": "1.3.3",
- "@unrs/resolver-binding-linux-x64-musl": "1.3.3",
- "@unrs/resolver-binding-wasm32-wasi": "1.3.3",
- "@unrs/resolver-binding-win32-arm64-msvc": "1.3.3",
- "@unrs/resolver-binding-win32-ia32-msvc": "1.3.3",
- "@unrs/resolver-binding-win32-x64-msvc": "1.3.3"
+ "@unrs/resolver-binding-darwin-arm64": "1.3.2",
+ "@unrs/resolver-binding-darwin-x64": "1.3.2",
+ "@unrs/resolver-binding-freebsd-x64": "1.3.2",
+ "@unrs/resolver-binding-linux-arm-gnueabihf": "1.3.2",
+ "@unrs/resolver-binding-linux-arm-musleabihf": "1.3.2",
+ "@unrs/resolver-binding-linux-arm64-gnu": "1.3.2",
+ "@unrs/resolver-binding-linux-arm64-musl": "1.3.2",
+ "@unrs/resolver-binding-linux-ppc64-gnu": "1.3.2",
+ "@unrs/resolver-binding-linux-s390x-gnu": "1.3.2",
+ "@unrs/resolver-binding-linux-x64-gnu": "1.3.2",
+ "@unrs/resolver-binding-linux-x64-musl": "1.3.2",
+ "@unrs/resolver-binding-wasm32-wasi": "1.3.2",
+ "@unrs/resolver-binding-win32-arm64-msvc": "1.3.2",
+ "@unrs/resolver-binding-win32-ia32-msvc": "1.3.2",
+ "@unrs/resolver-binding-win32-x64-msvc": "1.3.2"
}
},
"node_modules/update-browserslist-db": {
@@ -7493,9 +7256,9 @@
"license": "ISC"
},
"node_modules/yaml": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz",
- "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
+ "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
diff --git a/package.json b/package.json
index 3b6056f..750aeb8 100644
--- a/package.json
+++ b/package.json
@@ -6,20 +6,18 @@
"dev": "next dev",
"build": "next build",
"start": "next start",
- "lint": "next lint",
- "postinstall": "flowbite-react patch"
+ "lint": "next lint"
},
"dependencies": {
"apexcharts": "^3.52.0",
"deepmerge-ts": "^7.1.0",
"flowbite": "^2.4.1",
- "flowbite-react": "^0.11.7",
+ "flowbite-react": "^0.10.1",
"hls-video-element": "^1.5.0",
"markdown-to-jsx": "^7.4.7",
"media-chrome": "^4.8.0",
"next": "^14.2.26",
"next-plausible": "^3.12.1",
- "prettier": "^3.5.3",
"react": "^18",
"react-cropper": "^2.3.3",
"react-dom": "^18",
@@ -41,6 +39,8 @@
"eslint": "^8",
"eslint-config-next": "14.2.5",
"postcss": "^8",
+ "prettier": "^3.5.3",
+ "tailwind-scrollbar": "^3.1.0",
"tailwindcss": "^3.4.1"
}
}
diff --git a/tailwind.config.js b/tailwind.config.js
index 1864db8..6befeef 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,9 +1,5 @@
const { addIconSelectors } = require("@iconify/tailwind");
-const flowbiteReact = require("flowbite-react/plugin/tailwindcss");
-
-flowbiteReact.config = {
- charts: true,
-}
+import flowbite from "flowbite-react/tailwind";
/** @type {import('tailwindcss').Config} */
module.exports = {
@@ -11,11 +7,14 @@ module.exports = {
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
- ".flowbite-react\\class-list.json"
+ flowbite.content(),
],
plugins: [
addIconSelectors(["mdi", "material-symbols", "twemoji", "fa6-brands"]),
- flowbiteReact
+ require("tailwind-scrollbar"),
+ flowbite.plugin()({
+ charts: true,
+ }),
],
darkMode: "selector",
theme: {
@@ -44,4 +43,4 @@ module.exports = {
},
},
},
-};
\ No newline at end of file
+};