@@ -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 897f3a7..7048df5 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, useThemeMode } from "flowbite-react";
+import { FileInput, Label, Modal, ModalBody, ModalHeader, useThemeMode } from "flowbite-react";
import { Spinner } from "../Spinner/Spinner";
import useSWR from "swr";
import { ENDPOINTS } from "#/api/config";
@@ -14,6 +14,7 @@ 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;
@@ -25,6 +26,7 @@ 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,
@@ -186,6 +188,7 @@ export const ProfileEditModal = (props: {
if (avatarModalProps.croppedImage) {
_uploadAvatar();
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [avatarModalProps.croppedImage]);
if (!prefData || !loginData || prefError || loginError) {
@@ -199,8 +202,8 @@ export const ProfileEditModal = (props: {
onClose={() => props.setIsOpen(false)}
size={"7xl"}
>
-
Редактирование профиля
-
+ Редактирование профиля
+
{prefLoading ?
:
@@ -355,13 +358,18 @@ export const ProfileEditModal = (props: {
}
- {/*
+ {
+ setBlockedModalOpen(true);
+ }}
+ >
Блоклист
Список пользователей, которым запрещён доступ к вашей
странице
- */}
+
@@ -387,7 +395,7 @@ export const ProfileEditModal = (props: {
}
-
+
{props.token ?
<>
@@ -431,6 +439,12 @@ 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 59c8bdb..9311edf 100644
--- a/app/components/Profile/Profile.EditPrivacyModal.tsx
+++ b/app/components/Profile/Profile.EditPrivacyModal.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Modal, useThemeMode } from "flowbite-react";
+import { Modal, ModalBody, ModalHeader, 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 128c418..244e689 100644
--- a/app/components/Profile/Profile.EditSocialModal.tsx
+++ b/app/components/Profile/Profile.EditSocialModal.tsx
@@ -1,6 +1,15 @@
"use client";
-import { Button, Modal, Label, TextInput, useThemeMode } from "flowbite-react";
+import {
+ Button,
+ Label,
+ Modal,
+ ModalBody,
+ ModalFooter,
+ ModalHeader,
+ TextInput,
+ useThemeMode,
+} from "flowbite-react";
import { Spinner } from "../Spinner/Spinner";
import { ENDPOINTS } from "#/api/config";
import { useEffect, useState } from "react";
@@ -164,8 +173,8 @@ export const ProfileEditSocialModal = (props: {
onClose={() => props.setIsOpen(false)}
size={"4xl"}
>
-
Соц. сети
-
+ Соц. сети
+
Укажите ссылки на свои социальные сети, чтобы другие пользователи
могли с вами связаться
@@ -177,7 +186,7 @@ export const ProfileEditSocialModal = (props: {
:
-
+ ВКонтакте
-
+ Telegram
-
+ Discord
-
+ Instagram
}
-
-
+
+
_setSocialSetting()}
@@ -253,7 +262,7 @@ export const ProfileEditSocialModal = (props: {
>
Отмена
-
+
);
};
diff --git a/app/components/Profile/Profile.EditStatusModal.tsx b/app/components/Profile/Profile.EditStatusModal.tsx
index d8d870f..13cafbe 100644
--- a/app/components/Profile/Profile.EditStatusModal.tsx
+++ b/app/components/Profile/Profile.EditStatusModal.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Button, Modal, Textarea, useThemeMode } from "flowbite-react";
+import { Button, Modal, ModalBody, ModalFooter, ModalHeader, 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 b579c11..2401f32 100644
--- a/app/components/Profile/Profile.ReleaseHistory.tsx
+++ b/app/components/Profile/Profile.ReleaseHistory.tsx
@@ -1,49 +1,79 @@
-import { Card, Carousel } from "flowbite-react";
-import type {
- FlowbiteCarouselIndicatorsTheme,
- FlowbiteCarouselControlTheme,
- CustomFlowbiteTheme,
-} from "flowbite-react";
-import { ReleaseLink } from "../ReleaseLink/ReleaseLinkUpdate";
+import { Card } from "flowbite-react";
-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",
-};
+import { ReleaseChips } from "../ReleasePoster/Chips";
+import { Poster } from "../ReleasePoster/Poster";
+import Link from "next/link";
-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,
+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" },
};
export const ProfileReleaseHistory = (props: any) => {
return (
Недавно просмотренные
-
-
- {props.history.map((release) => {
- 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}
+
+ )}
+
+
+
+ );
+ })}
);
diff --git a/app/components/Profile/Profile.ReleaseRatings.tsx b/app/components/Profile/Profile.ReleaseRatings.tsx
index 75af80d..108a522 100644
--- a/app/components/Profile/Profile.ReleaseRatings.tsx
+++ b/app/components/Profile/Profile.ReleaseRatings.tsx
@@ -1,16 +1,5 @@
-import {
- Card,
- Carousel,
- RatingStar,
- Rating,
- Modal,
- Button,
-} from "flowbite-react";
-import type {
- FlowbiteCarouselIndicatorsTheme,
- FlowbiteCarouselControlTheme,
-} from "flowbite-react";
-import Image from "next/image";
+import { Button, Card, Modal, ModalHeader, Rating, RatingStar } from "flowbite-react";
+
import { unixToDate, useSWRfetcher } from "#/api/utils";
import Link from "next/link";
import { useCallback, useEffect, useState } from "react";
@@ -19,28 +8,6 @@ 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 (
@@ -51,33 +18,31 @@ export const ProfileReleaseRatings = (props: any) => {
Посмотреть все
-
-
- {props.ratings.map((release) => {
- return (
-
-
-
-
-
{release.title_ru}
-
- = 1} />
- = 2} />
- = 3} />
- = 4} />
- = 5} />
-
-
- {unixToDate(release.voted_at, "full")}
-
-
+
+ {props.ratings.map((release) => {
+ return (
+
+
+
-
- );
- })}
-
+
+
{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
new file mode 100644
index 0000000..e9ae218
--- /dev/null
+++ b/app/components/Profile/Profile.Social.tsx
@@ -0,0 +1,20 @@
+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 2cdaa99..538cd62 100644
--- a/app/components/Profile/Profile.User.tsx
+++ b/app/components/Profile/Profile.User.tsx
@@ -1,145 +1,154 @@
"use client";
-import { Avatar, Card, Button } from "flowbite-react";
-import Link from "next/link";
-import { useRouter } from "next/navigation";
-import { Chip } from "../Chip/Chip";
-export const ProfileUser = (props: {
- isOnline: boolean;
+import { Avatar, Card, useThemeMode } from "flowbite-react";
+import { UserRole } from "./Profile.Role";
+import { UserSocial } from "./Profile.Social";
+import Link from "next/link";
+
+interface ProfileUserProps {
avatar: string;
login: string;
status: string;
- socials: {
- isPrivate: boolean;
- hasSocials: boolean;
- socials: {
- name: string;
- nickname: any;
- icon: string;
- urlPrefix?: string | undefined;
- }[];
- };
- chips: {
- hasChips: boolean;
- isMyProfile: boolean;
- isVerified: boolean;
- isSponsor: boolean;
- isBlocked: boolean;
- roles?: {
- id: number;
- name: string;
- color: string;
- }[];
- };
rating: number;
-}) => {
- const router = useRouter();
+ 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;
+ };
+ 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;
+
return (
-
- {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) => (
-
- ))}
+
+ {(isMyProfile ||
+ isVerified ||
+ isSponsor ||
+ isBlocked ||
+ roles.length > 0) && (
+
+ {isMyProfile && }
+ {isBlocked && }
+ {isVerified && }
+ {isSponsor && }
+ {roles.map((role) => (
+
+ ))}
)}
-
-
-
- {props.login}{" "}
+
+
+
+
+ {login}
0
- ? "border-green-500 text-green-500"
- : "border-red-500 text-red-500"
+ className={`border rounded-md px-2 py-1 min-w-8 text-sm flex items-center justify-center ${
+ rating > 0 ?
+ "border-green-500 text-green-500"
+ : "border-red-500 text-red-500"
}`}
>
- {props.rating}
+ {rating}
-
-
- {props.status}
-
+
+
{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}
-
-
-
- );
- })}
-
- )}
+
+ {!is_social_hidden &&
+ (socials.vk ||
+ socials.tg ||
+ socials.discord ||
+ socials.tt ||
+ socials.inst) && (
+
+ {socials.vk && (
+
+
+
+ )}
+ {socials.tg && (
+
+
+
+ )}
+ {socials.tt && (
+
+
+
+ )}
+ {socials.inst && (
+
+
+
+ )}
+ {socials.discord && (
+
+ )}
+
+ )}
);
};
diff --git a/app/components/Profile/Profile.WatchDynamic.tsx b/app/components/Profile/Profile.WatchDynamic.tsx
index 1abd8e4..4dcdf40 100644
--- a/app/components/Profile/Profile.WatchDynamic.tsx
+++ b/app/components/Profile/Profile.WatchDynamic.tsx
@@ -28,6 +28,7 @@ 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 ae0219e..631ca88 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Info.tsx
@@ -1,4 +1,4 @@
-import { Card, Table } from "flowbite-react";
+import { Card, Table, TableBody, TableCell, TableRow } 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 25f4d24..bbb2a28 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,7 +32,8 @@ 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 6f78499..f63304f 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Rating.tsx
@@ -1,20 +1,26 @@
import {
- Card,
- Rating,
- Flowbite,
Button,
- CustomFlowbiteTheme,
+ Card,
Modal,
+ ModalBody,
+ ModalFooter,
+ ModalHeader,
+ Rating,
+ RatingAdvanced,
+ RatingStar,
+ RatingAdvancedTheme,
} from "flowbite-react";
import { numberDeclension } from "#/api/utils";
import { useState } from "react";
import { ENDPOINTS } from "#/api/config";
-const RatingTheme: CustomFlowbiteTheme = {
- ratingAdvanced: {
- progress: {
- base: "mx-4 h-5 w-3/4 rounded bg-gray-200 dark:bg-gray-700",
- },
+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",
},
};
export const ReleaseInfoRating = (props: {
@@ -39,7 +45,7 @@ export const ReleaseInfoRating = (props: {
-
+
{props.grade.toFixed(2)} из 5
@@ -48,7 +54,7 @@ export const ReleaseInfoRating = (props: {
<>
- {vote ? (
+ {vote ?
<>
ваша оценка: {vote}
@@ -62,8 +68,7 @@ export const ReleaseInfoRating = (props: {
изменить
>
- ) : (
-
оценить
- )}
+ }
>
)}
@@ -80,47 +85,50 @@ export const ReleaseInfoRating = (props: {
{props.votes.total}{" "}
{numberDeclension(props.votes.total, "голос", "голоса", "голосов")}
-
-
- 5
-
-
- 4
-
-
- 3
-
-
- 2
-
-
- 1
-
-
+
+ 5
+
+
+ 4
+
+
+ 3
+
+
+ 2
+
+
+ 1
+
props.setIsOpen(false)}
>
- Оценка
-
+ Оценка
+
@@ -191,7 +199,7 @@ const ReleaseInfoRatingModal = (props: {
onMouseOut={() => setCurElement(0)}
onClick={() => setVote(element)}
>
-
@@ -208,7 +216,7 @@ const ReleaseInfoRatingModal = (props: {
onMouseOut={() => setCurElement(0)}
onClick={() => setVote(element)}
>
-
@@ -216,8 +224,8 @@ const ReleaseInfoRatingModal = (props: {
-
-
+
+
-
+
);
};
diff --git a/app/components/ReleaseInfo/ReleaseInfo.Related.tsx b/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
index 80a5cac..2d4a326 100644
--- a/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
+++ b/app/components/ReleaseInfo/ReleaseInfo.Related.tsx
@@ -1,31 +1,9 @@
"use client";
-import { Card, Carousel, CustomFlowbiteTheme, FlowbiteCarouselControlTheme, FlowbiteCarouselIndicatorsTheme } from "flowbite-react";
+import { Card, Carousel } 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;
@@ -45,7 +23,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 b0fec48..bf2d5e1 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 { useThemeMode } from "flowbite-react";
+import { DropdownItem, ModalHeader, 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 d73a892..6aa170c 100644
--- a/app/components/ReleasePlayer/ReleasePlayerCustom.tsx
+++ b/app/components/ReleasePlayer/ReleasePlayerCustom.tsx
@@ -212,7 +212,8 @@ export const ReleasePlayerCustom = (props: {
}
};
__getInfo();
- }, []);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [props.id, props.token]);
useEffect(() => {
const __getInfo = async () => {
@@ -244,6 +245,7 @@ export const ReleasePlayerCustom = (props: {
if (voiceover.selected) {
__getInfo();
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [voiceover.selected]);
useEffect(() => {
@@ -284,6 +286,7 @@ export const ReleasePlayerCustom = (props: {
if (source.selected) {
__getInfo();
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [source.selected]);
useEffect(() => {
@@ -346,6 +349,7 @@ 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 a8d0514..bdf6deb 100644
--- a/app/components/ReleasePlayer/SourceSelector.tsx
+++ b/app/components/ReleasePlayer/SourceSelector.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Dropdown } from "flowbite-react";
+import { Dropdown, DropdownItem } from "flowbite-react";
import { numberDeclension } from "#/api/utils";
import { useUserPlayerPreferencesStore } from "#/store/player";
@@ -20,7 +20,7 @@ const DropdownTrigger = ({ name }: Source) => {
);
};
-const DropdownItem = ({ name, episodes_count }: Source) => {
+const DropdownItemInternal = ({ 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 6ee2448..81d5127 100644
--- a/app/components/ReleasePlayer/VoiceoverSelector.tsx
+++ b/app/components/ReleasePlayer/VoiceoverSelector.tsx
@@ -1,6 +1,6 @@
"use client";
-import { Dropdown } from "flowbite-react";
+import { Dropdown, DropdownItem } from "flowbite-react";
import { numberDeclension } from "#/api/utils";
import { useUserPlayerPreferencesStore } from "#/store/player";
@@ -16,7 +16,8 @@ interface Voiceover {
const DropdownTrigger = ({ icon, name, pinned }: Voiceover) => {
return (
- {icon &&
}
+ {/* eslint-disable-next-line @next/next/no-img-element */}
+ {icon &&
}
{name}
{pinned && (
@@ -26,7 +27,7 @@ const DropdownTrigger = ({ icon, name, pinned }: Voiceover) => {
);
};
-const DropdownItem = ({
+const DropdownItemInternal = ({
icon,
name,
pinned,
@@ -36,7 +37,8 @@ const DropdownItem = ({
return (
- {icon &&
}
+ {/* eslint-disable-next-line @next/next/no-img-element */}
+ {icon &&
}
{name}
{pinned && (
@@ -80,7 +82,7 @@ export const VoiceoverSelector = (props: {
)}
>
{props.availableVoiceover.map((voiceover: Voiceover) => (
-
{
@@ -94,8 +96,8 @@ export const VoiceoverSelector = (props: {
});
}}
>
-
-
+
+
))}
);
diff --git a/app/components/SettingsModal/SettingsModal.tsx b/app/components/SettingsModal/SettingsModal.tsx
index 3786e80..6bf5db8 100644
--- a/app/components/SettingsModal/SettingsModal.tsx
+++ b/app/components/SettingsModal/SettingsModal.tsx
@@ -4,12 +4,16 @@ import { CURRENT_APP_VERSION } from "#/api/config";
import { useUserStore } from "#/store/auth";
import { usePreferencesStore } from "#/store/preferences";
import {
- Modal,
Button,
- useThemeMode,
- ToggleSwitch,
- HR,
+ ButtonGroup,
Dropdown,
+ DropdownItem,
+ HR,
+ Modal,
+ ModalBody,
+ ModalHeader,
+ ToggleSwitch,
+ useThemeMode,
} from "flowbite-react";
import Link from "next/link";
@@ -54,8 +58,8 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
show={props.isOpen}
onClose={() => props.setIsOpen(false)}
>
-
Настройки
-
+ Настройки
+
@@ -63,20 +67,20 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
Тема
-
+
setMode("light")}
>
Светлая
setMode("dark")}
>
Темная
-
+
@@ -85,15 +89,6 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
preferenceStore.setParams({
skipToCategory: {
@@ -121,7 +116,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
>
{Object.keys(HomeCategory).map((key) => {
return (
-
preferenceStore.setParams({
@@ -133,7 +128,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{HomeCategory[key]}
-
+
);
})}
@@ -152,7 +147,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
>
{Object.keys(BookmarksCategory).map((key) => {
return (
-
preferenceStore.setParams({
@@ -164,7 +159,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{BookmarksCategory[key]}
-
+
);
})}
@@ -182,7 +177,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
{Object.keys(NavbarTitles).map(
(key: "always" | "links" | "selected" | "never") => {
return (
-
@@ -192,7 +187,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{NavbarTitles[key]}
-
+
);
}
)}
@@ -211,7 +206,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
: "Нет"
}
>
-
preferenceStore.setFlags({
showFifthButton: null,
@@ -219,10 +214,10 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
Не показывать
-
+
{Object.keys(FifthButton).map((key) => {
return (
-
preferenceStore.setFlags({
@@ -231,7 +226,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
}
>
{FifthButton[key]}
-
+
);
})}
@@ -246,15 +241,6 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
Показывать список изменений
preferenceStore.setFlags({
showChangelog: !preferenceStore.flags.showChangelog,
@@ -272,15 +258,6 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
preferenceStore.setFlags({
enableAnalytics: !preferenceStore.flags.enableAnalytics,
@@ -303,15 +280,6 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
preferenceStore.setParams({
experimental: {
@@ -340,7 +308,7 @@ export const SettingsModal = (props: { isOpen: boolean; setIsOpen: any }) => {
-
+
);
};
diff --git a/app/pages/About.tsx b/app/pages/About.tsx
index 851641e..7f6ce53 100644
--- a/app/pages/About.tsx
+++ b/app/pages/About.tsx
@@ -15,7 +15,6 @@ 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 ea4ed0b..b53b3fa 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 { Dropdown, Button } from "flowbite-react";
+import { Button, ButtonGroup, Dropdown, DropdownItem } 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 cd0c3b7..a7b2982 100644
--- a/app/pages/CreateCollection.tsx
+++ b/app/pages/CreateCollection.tsx
@@ -5,14 +5,15 @@ import { useEffect, useState, useCallback } from "react";
import { useSearchParams, useRouter } from "next/navigation";
import { ENDPOINTS } from "#/api/config";
import {
- Card,
Button,
+ Card,
Checkbox,
- TextInput,
- Textarea,
FileInput,
Label,
Modal,
+ ModalHeader,
+ Textarea,
+ TextInput,
useThemeMode,
} from "flowbite-react";
import { PosterWithStuff } from "#/components/ReleasePoster/PosterWithStuff";
@@ -33,6 +34,7 @@ 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);
@@ -388,10 +390,9 @@ 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 f79dbf7..f3ba11d 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 } from "flowbite-react";
+import { Button, ButtonGroup } 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 (
<>
@@ -116,61 +69,48 @@ 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 f1ee103..bba699e 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, Modal } from "flowbite-react";
+import { Button, Dropdown, DropdownItem, Modal, ModalBody, ModalFooter, ModalHeader } 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 1b76294..bdba023 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,8 +1,7 @@
const { withPlausibleProxy } = require("next-plausible");
-
-module.exports = withPlausibleProxy({
- customDomain: "https://analytics.wah.su",
-})({
+const withFlowbiteReact = require("flowbite-react/plugin/nextjs");
+/** @type {import('next').NextConfig} */
+const NextConfig = {
reactStrictMode: false,
images: {
unoptimized: true,
@@ -10,68 +9,74 @@ module.exports = withPlausibleProxy({
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 3f175bf..95d906f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,16 +7,18 @@
"": {
"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.10.1",
+ "flowbite-react": "^0.11.7",
"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",
@@ -38,8 +40,6 @@
"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.6",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.6.tgz",
- "integrity": "sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==",
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
+ "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
"license": "MIT",
"dependencies": {
- "@floating-ui/utils": "^0.2.6"
+ "@floating-ui/utils": "^0.2.9"
}
},
"node_modules/@floating-ui/dom": {
@@ -172,18 +172,18 @@
}
},
"node_modules/@floating-ui/react": {
- "version": "0.26.21",
- "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.21.tgz",
- "integrity": "sha512-7P5ncDIiYd6RrwpCDbKyFzvabM014QlzlumtDbK3Bck0UueC+Rp8BLS34qcGBcN1pZCTodl4QNnCVmKv4tSxfQ==",
+ "version": "0.27.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz",
+ "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==",
"license": "MIT",
"dependencies": {
- "@floating-ui/react-dom": "^2.1.1",
- "@floating-ui/utils": "^0.2.6",
+ "@floating-ui/react-dom": "^2.1.2",
+ "@floating-ui/utils": "^0.2.9",
"tabbable": "^6.0.0"
},
"peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
+ "react": ">=17.0.0",
+ "react-dom": ">=17.0.0"
}
},
"node_modules/@floating-ui/react-dom": {
@@ -243,6 +243,12 @@
"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",
@@ -408,15 +414,15 @@
}
},
"node_modules/@napi-rs/wasm-runtime": {
- "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==",
+ "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==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
- "@emnapi/core": "^1.3.1",
- "@emnapi/runtime": "^1.3.1",
+ "@emnapi/core": "^1.4.0",
+ "@emnapi/runtime": "^1.4.0",
"@tybys/wasm-util": "^0.9.0"
}
},
@@ -996,9 +1002,9 @@
"license": "ISC"
},
"node_modules/@unrs/resolver-binding-darwin-arm64": {
- "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==",
+ "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==",
"cpu": [
"arm64"
],
@@ -1010,9 +1016,9 @@
]
},
"node_modules/@unrs/resolver-binding-darwin-x64": {
- "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==",
+ "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==",
"cpu": [
"x64"
],
@@ -1024,9 +1030,9 @@
]
},
"node_modules/@unrs/resolver-binding-freebsd-x64": {
- "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==",
+ "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==",
"cpu": [
"x64"
],
@@ -1038,9 +1044,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
- "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==",
+ "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==",
"cpu": [
"arm"
],
@@ -1052,9 +1058,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
- "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==",
+ "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==",
"cpu": [
"arm"
],
@@ -1066,9 +1072,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
- "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==",
+ "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==",
"cpu": [
"arm64"
],
@@ -1080,9 +1086,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-arm64-musl": {
- "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==",
+ "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==",
"cpu": [
"arm64"
],
@@ -1094,9 +1100,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
- "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==",
+ "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==",
"cpu": [
"ppc64"
],
@@ -1108,9 +1114,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
- "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==",
+ "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==",
"cpu": [
"s390x"
],
@@ -1122,9 +1128,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-x64-gnu": {
- "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==",
+ "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==",
"cpu": [
"x64"
],
@@ -1136,9 +1142,9 @@
]
},
"node_modules/@unrs/resolver-binding-linux-x64-musl": {
- "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==",
+ "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==",
"cpu": [
"x64"
],
@@ -1150,9 +1156,9 @@
]
},
"node_modules/@unrs/resolver-binding-wasm32-wasi": {
- "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==",
+ "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==",
"cpu": [
"wasm32"
],
@@ -1167,9 +1173,9 @@
}
},
"node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
- "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==",
+ "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==",
"cpu": [
"arm64"
],
@@ -1181,9 +1187,9 @@
]
},
"node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
- "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==",
+ "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==",
"cpu": [
"ia32"
],
@@ -1195,9 +1201,9 @@
]
},
"node_modules/@unrs/resolver-binding-win32-x64-msvc": {
- "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==",
+ "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==",
"cpu": [
"x64"
],
@@ -1619,6 +1625,12 @@
"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",
@@ -1749,6 +1761,18 @@
"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",
@@ -1966,9 +1990,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001707",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz",
- "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==",
+ "version": "1.0.30001709",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001709.tgz",
+ "integrity": "sha512-NgL3vUTnDrPCZ3zTahp4fsugQ4dc7EKTSzwQDPEel6DMoMnfH2jhry9n2Zm8onbSR+f/QtKHFOA+iAQu4kbtWA==",
"funding": [
{
"type": "opencollective",
@@ -2012,39 +2036,18 @@
}
},
"node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"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"
+ "readdirp": "^4.0.1"
},
"engines": {
- "node": ">= 8.10.0"
+ "node": ">= 14.16.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": {
@@ -2106,6 +2109,22 @@
"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",
@@ -2138,6 +2157,12 @@
"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",
@@ -2245,9 +2270,9 @@
}
},
"node_modules/debounce": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.1.0.tgz",
- "integrity": "sha512-OkL3+0pPWCqoBc/nhO9u6TIQNTK44fnBnzuVtJAbp13Naxw9R6u21x+8tVTka87AhDZ3htqZ2pSSsZl9fqL2Wg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.2.0.tgz",
+ "integrity": "sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -2260,7 +2285,6 @@
"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"
@@ -2414,9 +2438,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "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==",
+ "version": "1.5.131",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.131.tgz",
+ "integrity": "sha512-fJFRYXVEJgDCiqFOgRGJm8XR97hZ13tw7FXI9k2yC5hgY+nyzC2tMO8baq1cQR7Ur58iCkASx2zrkZPZUnfzPg==",
"dev": true,
"license": "ISC",
"peer": true
@@ -2915,9 +2939,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "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==",
+ "version": "7.37.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
+ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2931,7 +2955,7 @@
"hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.8",
+ "object.entries": "^1.1.9",
"object.fromentries": "^2.0.8",
"object.values": "^1.2.1",
"prop-types": "^15.8.1",
@@ -3049,6 +3073,19 @@
"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",
@@ -3288,34 +3325,146 @@
}
},
"node_modules/flowbite-react": {
- "version": "0.10.2",
- "resolved": "https://registry.npmjs.org/flowbite-react/-/flowbite-react-0.10.2.tgz",
- "integrity": "sha512-qkayK6IFmfH7zuuDnHmS0hJxLtL0KpW4vo4i/VQfZ6ZfaNlUsNLQxCGcmXwbZZtUm2WVw8x71aaDOAxftG9tmg==",
+ "version": "0.11.7",
+ "resolved": "https://registry.npmjs.org/flowbite-react/-/flowbite-react-0.11.7.tgz",
+ "integrity": "sha512-Z8m+ycHEsXPacSAi8P4yYDeff7LvcHNwbGAnL/+Fpiv+6ZWDEAGY/YPKhUofZsZa837JTYrbcbmgjqQ1bpt51g==",
"license": "MIT",
"dependencies": {
- "@floating-ui/core": "1.6.6",
- "@floating-ui/react": "0.26.21",
+ "@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",
"classnames": "2.5.1",
- "debounce": "2.1.0",
- "flowbite": "2.5.1",
- "react-icons": "5.2.1",
- "tailwind-merge": "2.4.0"
+ "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"
},
"peerDependencies": {
- "react": ">=18",
- "react-dom": ">=18",
- "tailwindcss": "^3"
+ "react": "^18 || ^19",
+ "react-dom": "^18 || ^19",
+ "tailwindcss": "^3 || ^4"
}
},
- "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==",
+ "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==",
"license": "MIT",
"dependencies": {
- "@popperjs/core": "^2.9.3",
- "flowbite-datepicker": "^1.3.0",
- "mini-svg-data-uri": "^1.4.3"
+ "@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"
}
},
"node_modules/for-each": {
@@ -3660,6 +3809,15 @@
"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",
@@ -4417,6 +4575,15 @@
"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",
@@ -4670,7 +4837,6 @@
"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": {
@@ -5035,6 +5201,12 @@
"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",
@@ -5315,7 +5487,6 @@
"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"
@@ -5416,15 +5587,6 @@
"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",
@@ -5455,27 +5617,32 @@
}
},
"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/readdirp/node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "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": ">=8.6"
+ "node": ">= 14.18.0"
},
"funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
+ "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==",
+ "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"
+ },
+ "engines": {
+ "node": ">= 4"
}
},
"node_modules/reflect.getprototypeof": {
@@ -5522,6 +5689,15 @@
"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",
@@ -5790,7 +5966,6 @@
"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"
@@ -5984,9 +6159,7 @@
"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"
}
@@ -6458,27 +6631,26 @@
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
"license": "MIT"
},
- "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==",
+ "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==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/dcastil"
}
},
- "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,
+ "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==",
"license": "MIT",
- "engines": {
- "node": ">=12.13.0"
- },
- "peerDependencies": {
- "tailwindcss": "3.x"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/dcastil"
}
},
"node_modules/tailwindcss": {
@@ -6518,6 +6690,66 @@
"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",
@@ -6621,6 +6853,12 @@
"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",
@@ -6796,7 +7034,6 @@
"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": {
@@ -6847,30 +7084,30 @@
}
},
"node_modules/unrs-resolver": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.2.tgz",
- "integrity": "sha512-ZKQBC351Ubw0PY8xWhneIfb6dygTQeUHtCcNGd0QB618zabD/WbFMYdRyJ7xeVT+6G82K5v/oyZO0QSHFtbIuw==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.3.tgz",
+ "integrity": "sha512-PFLAGQzYlyjniXdbmQ3dnGMZJXX5yrl2YS4DLRfR3BhgUsE1zpRIrccp9XMOGRfIHpdFvCn/nr5N1KMVda4x3A==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/JounQin"
},
"optionalDependencies": {
- "@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"
+ "@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"
}
},
"node_modules/update-browserslist-db": {
@@ -7256,9 +7493,9 @@
"license": "ISC"
},
"node_modules/yaml": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
- "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz",
+ "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
diff --git a/package.json b/package.json
index 750aeb8..3b6056f 100644
--- a/package.json
+++ b/package.json
@@ -6,18 +6,20 @@
"dev": "next dev",
"build": "next build",
"start": "next start",
- "lint": "next lint"
+ "lint": "next lint",
+ "postinstall": "flowbite-react patch"
},
"dependencies": {
"apexcharts": "^3.52.0",
"deepmerge-ts": "^7.1.0",
"flowbite": "^2.4.1",
- "flowbite-react": "^0.10.1",
+ "flowbite-react": "^0.11.7",
"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",
@@ -39,8 +41,6 @@
"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 6befeef..1864db8 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,5 +1,9 @@
const { addIconSelectors } = require("@iconify/tailwind");
-import flowbite from "flowbite-react/tailwind";
+const flowbiteReact = require("flowbite-react/plugin/tailwindcss");
+
+flowbiteReact.config = {
+ charts: true,
+}
/** @type {import('tailwindcss').Config} */
module.exports = {
@@ -7,14 +11,11 @@ module.exports = {
"./pages/**/*.{js,ts,jsx,tsx,mdx}",
"./components/**/*.{js,ts,jsx,tsx,mdx}",
"./app/**/*.{js,ts,jsx,tsx,mdx}",
- flowbite.content(),
+ ".flowbite-react\\class-list.json"
],
plugins: [
addIconSelectors(["mdi", "material-symbols", "twemoji", "fa6-brands"]),
- require("tailwind-scrollbar"),
- flowbite.plugin()({
- charts: true,
- }),
+ flowbiteReact
],
darkMode: "selector",
theme: {
@@ -43,4 +44,4 @@ module.exports = {
},
},
},
-};
+};
\ No newline at end of file