@@ -51,7 +51,7 @@ export default function TableWrapper() {
className="btn btn-sm dropdown-toggle btn-pink mt-1"
data-bs-toggle="dropdown"
>
-
+
diff --git a/frontend/src/pages/Dashboard/index.tsx b/frontend/src/pages/Dashboard/index.tsx
index cdc145c5..427e7b20 100644
--- a/frontend/src/pages/Dashboard/index.tsx
+++ b/frontend/src/pages/Dashboard/index.tsx
@@ -10,7 +10,7 @@ const Dashboard = () => {
return (
-
+
@@ -127,6 +127,7 @@ const Dashboard = () => {
- use syntax highligting for audit logs json output
- double check output of access field selection on proxy host dialog, after access lists are completed
- proxy host custom locations dialog
+- check permissions in all places
More for api, then implement here:
- Properly implement refresh tokens
diff --git a/frontend/src/pages/Nginx/DeadHosts/Empty.tsx b/frontend/src/pages/Nginx/DeadHosts/Empty.tsx
deleted file mode 100644
index 69f1da48..00000000
--- a/frontend/src/pages/Nginx/DeadHosts/Empty.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { Table as ReactTable } from "@tanstack/react-table";
-import { Button } from "src/components";
-import { T } from "src/locale";
-
-interface Props {
- tableInstance: ReactTable
;
- onNew?: () => void;
- isFiltered?: boolean;
-}
-export default function Empty({ tableInstance, onNew, isFiltered }: Props) {
- return (
-
-
-
- {isFiltered ? (
-
-
-
- ) : (
- <>
-
-
-
-
-
-
-
- >
- )}
-
- |
-
- );
-}
diff --git a/frontend/src/pages/Nginx/DeadHosts/Table.tsx b/frontend/src/pages/Nginx/DeadHosts/Table.tsx
index 481c2604..8af67545 100644
--- a/frontend/src/pages/Nginx/DeadHosts/Table.tsx
+++ b/frontend/src/pages/Nginx/DeadHosts/Table.tsx
@@ -2,10 +2,9 @@ import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-
import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
import { useMemo } from "react";
import type { DeadHost } from "src/api/backend";
-import { CertificateFormatter, DomainsFormatter, GravatarFormatter, StatusFormatter } from "src/components";
+import { CertificateFormatter, DomainsFormatter, EmptyData, GravatarFormatter, StatusFormatter } from "src/components";
import { TableLayout } from "src/components/Table/TableLayout";
import { intl, T } from "src/locale";
-import Empty from "./Empty";
interface Props {
data: DeadHost[];
@@ -67,7 +66,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
-
+
}
+ emptyState={
+
+ }
/>
);
}
diff --git a/frontend/src/pages/Nginx/DeadHosts/TableWrapper.tsx b/frontend/src/pages/Nginx/DeadHosts/TableWrapper.tsx
index 575e7b2b..79e97541 100644
--- a/frontend/src/pages/Nginx/DeadHosts/TableWrapper.tsx
+++ b/frontend/src/pages/Nginx/DeadHosts/TableWrapper.tsx
@@ -5,9 +5,9 @@ import Alert from "react-bootstrap/Alert";
import { deleteDeadHost, toggleDeadHost } from "src/api/backend";
import { Button, LoadingPage } from "src/components";
import { useDeadHosts } from "src/hooks";
-import { intl, T } from "src/locale";
+import { T } from "src/locale";
import { showDeadHostModal, showDeleteConfirmModal } from "src/modals";
-import { showSuccess } from "src/notifications";
+import { showObjectSuccess } from "src/notifications";
import Table from "./Table";
export default function TableWrapper() {
@@ -25,14 +25,14 @@ export default function TableWrapper() {
const handleDelete = async (id: number) => {
await deleteDeadHost(id);
- showSuccess(intl.formatMessage({ id: "notification.host-deleted" }));
+ showObjectSuccess("dead-host", "deleted");
};
const handleDisableToggle = async (id: number, enabled: boolean) => {
await toggleDeadHost(id, enabled);
queryClient.invalidateQueries({ queryKey: ["dead-hosts"] });
queryClient.invalidateQueries({ queryKey: ["dead-host", id] });
- showSuccess(intl.formatMessage({ id: enabled ? "notification.host-enabled" : "notification.host-disabled" }));
+ showObjectSuccess("dead-host", enabled ? "enabled" : "disabled");
};
let filtered = null;
@@ -53,7 +53,7 @@ export default function TableWrapper() {
-
+
{data?.length ? (
@@ -72,7 +72,7 @@ export default function TableWrapper() {
/>
@@ -86,10 +86,10 @@ export default function TableWrapper() {
onEdit={(id: number) => showDeadHostModal(id)}
onDelete={(id: number) =>
showDeleteConfirmModal({
- title: "dead-host.delete.title",
+ title:
,
onConfirm: () => handleDelete(id),
invalidations: [["dead-hosts"], ["dead-host", id]],
- children:
,
+ children:
,
})
}
onDisableToggle={handleDisableToggle}
diff --git a/frontend/src/pages/Nginx/ProxyHosts/Empty.tsx b/frontend/src/pages/Nginx/ProxyHosts/Empty.tsx
deleted file mode 100644
index bafd186a..00000000
--- a/frontend/src/pages/Nginx/ProxyHosts/Empty.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { Table as ReactTable } from "@tanstack/react-table";
-import { Button } from "src/components";
-import { T } from "src/locale";
-
-interface Props {
- tableInstance: ReactTable
;
- onNew?: () => void;
- isFiltered?: boolean;
-}
-export default function Empty({ tableInstance, onNew, isFiltered }: Props) {
- return (
-
-
-
- {isFiltered ? (
-
-
-
- ) : (
- <>
-
-
-
-
-
-
-
- >
- )}
-
- |
-
- );
-}
diff --git a/frontend/src/pages/Nginx/ProxyHosts/Table.tsx b/frontend/src/pages/Nginx/ProxyHosts/Table.tsx
index a386ebbc..d314eb18 100644
--- a/frontend/src/pages/Nginx/ProxyHosts/Table.tsx
+++ b/frontend/src/pages/Nginx/ProxyHosts/Table.tsx
@@ -2,10 +2,16 @@ import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-
import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
import { useMemo } from "react";
import type { ProxyHost } from "src/api/backend";
-import { CertificateFormatter, DomainsFormatter, GravatarFormatter, StatusFormatter } from "src/components";
+import {
+ AccessListFormatter,
+ CertificateFormatter,
+ DomainsFormatter,
+ EmptyData,
+ GravatarFormatter,
+ StatusFormatter,
+} from "src/components";
import { TableLayout } from "src/components/Table/TableLayout";
import { intl, T } from "src/locale";
-import Empty from "./Empty";
interface Props {
data: ProxyHost[];
@@ -53,12 +59,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
return ;
},
}),
- // TODO: formatter for access list
- columnHelper.accessor((row: any) => row.access, {
+ columnHelper.accessor((row: any) => row.accessList, {
id: "accessList",
header: intl.formatMessage({ id: "column.access" }),
cell: (info: any) => {
- return info.getValue();
+ return ;
},
}),
columnHelper.accessor((row: any) => row.enabled, {
@@ -83,7 +88,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
-
+
}
+ emptyState={
+
+ }
/>
);
}
diff --git a/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx b/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx
index 3c326f08..a117a487 100644
--- a/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx
+++ b/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx
@@ -5,9 +5,9 @@ import Alert from "react-bootstrap/Alert";
import { deleteProxyHost, toggleProxyHost } from "src/api/backend";
import { Button, LoadingPage } from "src/components";
import { useProxyHosts } from "src/hooks";
-import { intl, T } from "src/locale";
+import { T } from "src/locale";
import { showDeleteConfirmModal, showProxyHostModal } from "src/modals";
-import { showSuccess } from "src/notifications";
+import { showObjectSuccess } from "src/notifications";
import Table from "./Table";
export default function TableWrapper() {
@@ -25,14 +25,14 @@ export default function TableWrapper() {
const handleDelete = async (id: number) => {
await deleteProxyHost(id);
- showSuccess(intl.formatMessage({ id: "notification.host-deleted" }));
+ showObjectSuccess("proxy-host", "deleted");
};
const handleDisableToggle = async (id: number, enabled: boolean) => {
await toggleProxyHost(id, enabled);
queryClient.invalidateQueries({ queryKey: ["proxy-hosts"] });
queryClient.invalidateQueries({ queryKey: ["proxy-host", id] });
- showSuccess(intl.formatMessage({ id: enabled ? "notification.host-enabled" : "notification.host-disabled" }));
+ showObjectSuccess("proxy-host", enabled ? "enabled" : "disabled");
};
let filtered = null;
@@ -57,7 +57,7 @@ export default function TableWrapper() {
-
+
{data?.length ? (
@@ -76,7 +76,7 @@ export default function TableWrapper() {
/>
diff --git a/frontend/src/pages/Nginx/RedirectionHosts/Empty.tsx b/frontend/src/pages/Nginx/RedirectionHosts/Empty.tsx
deleted file mode 100644
index 405996c6..00000000
--- a/frontend/src/pages/Nginx/RedirectionHosts/Empty.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { Table as ReactTable } from "@tanstack/react-table";
-import { Button } from "src/components";
-import { T } from "src/locale";
-
-interface Props {
- tableInstance: ReactTable
;
- onNew?: () => void;
- isFiltered?: boolean;
-}
-export default function Empty({ tableInstance, onNew, isFiltered }: Props) {
- return (
-
-
-
- {isFiltered ? (
-
-
-
- ) : (
- <>
-
-
-
-
-
-
-
- >
- )}
-
- |
-
- );
-}
diff --git a/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx b/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx
index 1ed5a2ba..d6be4ca1 100644
--- a/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx
+++ b/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx
@@ -2,10 +2,9 @@ import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-
import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
import { useMemo } from "react";
import type { RedirectionHost } from "src/api/backend";
-import { CertificateFormatter, DomainsFormatter, GravatarFormatter, StatusFormatter } from "src/components";
+import { CertificateFormatter, DomainsFormatter, EmptyData, GravatarFormatter, StatusFormatter } from "src/components";
import { TableLayout } from "src/components/Table/TableLayout";
import { intl, T } from "src/locale";
-import Empty from "./Empty";
interface Props {
data: RedirectionHost[];
@@ -88,7 +87,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
-
+
}
+ emptyState={
+
+ }
/>
);
}
diff --git a/frontend/src/pages/Nginx/RedirectionHosts/TableWrapper.tsx b/frontend/src/pages/Nginx/RedirectionHosts/TableWrapper.tsx
index 00679e5b..319bd2bc 100644
--- a/frontend/src/pages/Nginx/RedirectionHosts/TableWrapper.tsx
+++ b/frontend/src/pages/Nginx/RedirectionHosts/TableWrapper.tsx
@@ -5,9 +5,9 @@ import Alert from "react-bootstrap/Alert";
import { deleteRedirectionHost, toggleRedirectionHost } from "src/api/backend";
import { Button, LoadingPage } from "src/components";
import { useRedirectionHosts } from "src/hooks";
-import { intl, T } from "src/locale";
+import { T } from "src/locale";
import { showDeleteConfirmModal, showRedirectionHostModal } from "src/modals";
-import { showSuccess } from "src/notifications";
+import { showObjectSuccess } from "src/notifications";
import Table from "./Table";
export default function TableWrapper() {
@@ -25,14 +25,14 @@ export default function TableWrapper() {
const handleDelete = async (id: number) => {
await deleteRedirectionHost(id);
- showSuccess(intl.formatMessage({ id: "notification.host-deleted" }));
+ showObjectSuccess("redirection-host", "deleted");
};
const handleDisableToggle = async (id: number, enabled: boolean) => {
await toggleRedirectionHost(id, enabled);
queryClient.invalidateQueries({ queryKey: ["redirection-hosts"] });
queryClient.invalidateQueries({ queryKey: ["redirection-host", id] });
- showSuccess(intl.formatMessage({ id: enabled ? "notification.host-enabled" : "notification.host-disabled" }));
+ showObjectSuccess("redirection-host", enabled ? "enabled" : "disabled");
};
let filtered = null;
@@ -56,7 +56,7 @@ export default function TableWrapper() {
-
+
{data?.length ? (
@@ -79,7 +79,7 @@ export default function TableWrapper() {
className="btn-yellow"
onClick={() => showRedirectionHostModal("new")}
>
-
+
@@ -93,10 +93,10 @@ export default function TableWrapper() {
onEdit={(id: number) => showRedirectionHostModal(id)}
onDelete={(id: number) =>
showDeleteConfirmModal({
- title: "redirection-host.delete.title",
+ title: ,
onConfirm: () => handleDelete(id),
invalidations: [["redirection-hosts"], ["redirection-host", id]],
- children: ,
+ children: ,
})
}
onDisableToggle={handleDisableToggle}
diff --git a/frontend/src/pages/Nginx/Streams/Empty.tsx b/frontend/src/pages/Nginx/Streams/Empty.tsx
deleted file mode 100644
index 7af0be75..00000000
--- a/frontend/src/pages/Nginx/Streams/Empty.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { Table as ReactTable } from "@tanstack/react-table";
-import { Button } from "src/components";
-import { T } from "src/locale";
-
-interface Props {
- tableInstance: ReactTable;
- onNew?: () => void;
- isFiltered?: boolean;
-}
-export default function Empty({ tableInstance, onNew, isFiltered }: Props) {
- return (
-
-
-
- {isFiltered ? (
-
-
-
- ) : (
- <>
-
-
-
-
-
-
-
- >
- )}
-
- |
-
- );
-}
diff --git a/frontend/src/pages/Nginx/Streams/Table.tsx b/frontend/src/pages/Nginx/Streams/Table.tsx
index 10536152..38f4c79b 100644
--- a/frontend/src/pages/Nginx/Streams/Table.tsx
+++ b/frontend/src/pages/Nginx/Streams/Table.tsx
@@ -2,10 +2,15 @@ import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-
import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
import { useMemo } from "react";
import type { Stream } from "src/api/backend";
-import { CertificateFormatter, GravatarFormatter, StatusFormatter, ValueWithDateFormatter } from "src/components";
+import {
+ CertificateFormatter,
+ EmptyData,
+ GravatarFormatter,
+ StatusFormatter,
+ ValueWithDateFormatter,
+} from "src/components";
import { TableLayout } from "src/components/Table/TableLayout";
import { intl, T } from "src/locale";
-import Empty from "./Empty";
interface Props {
data: Stream[];
@@ -96,7 +101,11 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
-
+
}
+ emptyState={
+
+ }
/>
);
}
diff --git a/frontend/src/pages/Nginx/Streams/TableWrapper.tsx b/frontend/src/pages/Nginx/Streams/TableWrapper.tsx
index 345b3467..40be5abf 100644
--- a/frontend/src/pages/Nginx/Streams/TableWrapper.tsx
+++ b/frontend/src/pages/Nginx/Streams/TableWrapper.tsx
@@ -5,9 +5,9 @@ import Alert from "react-bootstrap/Alert";
import { deleteStream, toggleStream } from "src/api/backend";
import { Button, LoadingPage } from "src/components";
import { useStreams } from "src/hooks";
-import { intl, T } from "src/locale";
+import { T } from "src/locale";
import { showDeleteConfirmModal, showStreamModal } from "src/modals";
-import { showSuccess } from "src/notifications";
+import { showObjectSuccess } from "src/notifications";
import Table from "./Table";
export default function TableWrapper() {
@@ -26,16 +26,14 @@ export default function TableWrapper() {
const handleDelete = async (id: number) => {
await deleteStream(id);
- showSuccess(intl.formatMessage({ id: "notification.stream-deleted" }));
+ showObjectSuccess("stream", "deleted");
};
const handleDisableToggle = async (id: number, enabled: boolean) => {
await toggleStream(id, enabled);
queryClient.invalidateQueries({ queryKey: ["streams"] });
queryClient.invalidateQueries({ queryKey: ["stream", id] });
- showSuccess(
- intl.formatMessage({ id: enabled ? "notification.stream-enabled" : "notification.stream-disabled" }),
- );
+ showObjectSuccess("stream", enabled ? "enabled" : "disabled");
};
let filtered = null;
@@ -60,7 +58,7 @@ export default function TableWrapper() {
-
+
{data?.length ? (
@@ -79,7 +77,7 @@ export default function TableWrapper() {
/>
@@ -93,10 +91,10 @@ export default function TableWrapper() {
onEdit={(id: number) => showStreamModal(id)}
onDelete={(id: number) =>
showDeleteConfirmModal({
- title: "stream.delete.title",
+ title: ,
onConfirm: () => handleDelete(id),
invalidations: [["streams"], ["stream", id]],
- children: ,
+ children: ,
})
}
onDisableToggle={handleDisableToggle}
diff --git a/frontend/src/pages/Settings/SettingTable.tsx b/frontend/src/pages/Settings/SettingTable.tsx
index e69c0286..1cf921db 100644
--- a/frontend/src/pages/Settings/SettingTable.tsx
+++ b/frontend/src/pages/Settings/SettingTable.tsx
@@ -9,7 +9,7 @@ export default function SettingTable() {
diff --git a/frontend/src/pages/Users/Empty.tsx b/frontend/src/pages/Users/Empty.tsx
deleted file mode 100644
index bb501788..00000000
--- a/frontend/src/pages/Users/Empty.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { Table as ReactTable } from "@tanstack/react-table";
-import { Button } from "src/components";
-import { T } from "src/locale";
-
-interface Props {
- tableInstance: ReactTable;
- onNewUser?: () => void;
- isFiltered?: boolean;
-}
-export default function Empty({ tableInstance, onNewUser, isFiltered }: Props) {
- return (
-
-
-
- {isFiltered ? (
-
-
-
- ) : (
- <>
-
-
-
-
-
-
-
- >
- )}
-
- |
-
- );
-}
diff --git a/frontend/src/pages/Users/Table.tsx b/frontend/src/pages/Users/Table.tsx
index 4e6fd871..57857ed3 100644
--- a/frontend/src/pages/Users/Table.tsx
+++ b/frontend/src/pages/Users/Table.tsx
@@ -4,6 +4,7 @@ import { useMemo } from "react";
import type { User } from "src/api/backend";
import {
EmailFormatter,
+ EmptyData,
EnabledFormatter,
GravatarFormatter,
RolesFormatter,
@@ -11,7 +12,6 @@ import {
} from "src/components";
import { TableLayout } from "src/components/Table/TableLayout";
import { intl, T } from "src/locale";
-import Empty from "./Empty";
interface Props {
data: User[];
@@ -101,7 +101,11 @@ export default function Table({
-
+
-
+
{currentUserId !== info.row.original.id ? (
<>
@@ -189,7 +193,16 @@ export default function Table({
return (
}
+ emptyState={
+
+ }
/>
);
}
diff --git a/frontend/src/pages/Users/TableWrapper.tsx b/frontend/src/pages/Users/TableWrapper.tsx
index c4a6dd0f..b4ed16f3 100644
--- a/frontend/src/pages/Users/TableWrapper.tsx
+++ b/frontend/src/pages/Users/TableWrapper.tsx
@@ -5,9 +5,9 @@ import Alert from "react-bootstrap/Alert";
import { deleteUser, toggleUser } from "src/api/backend";
import { Button, LoadingPage } from "src/components";
import { useUser, useUsers } from "src/hooks";
-import { intl, T } from "src/locale";
+import { T } from "src/locale";
import { showDeleteConfirmModal, showPermissionsModal, showSetPasswordModal, showUserModal } from "src/modals";
-import { showSuccess } from "src/notifications";
+import { showObjectSuccess } from "src/notifications";
import Table from "./Table";
export default function TableWrapper() {
@@ -26,14 +26,14 @@ export default function TableWrapper() {
const handleDelete = async (id: number) => {
await deleteUser(id);
- showSuccess(intl.formatMessage({ id: "notification.user-deleted" }));
+ showObjectSuccess("user", "deleted");
};
const handleDisableToggle = async (id: number, enabled: boolean) => {
await toggleUser(id, enabled);
queryClient.invalidateQueries({ queryKey: ["users"] });
queryClient.invalidateQueries({ queryKey: ["user", id] });
- showSuccess(intl.formatMessage({ id: enabled ? "notification.user-enabled" : "notification.user-disabled" }));
+ showObjectSuccess("user", enabled ? "enabled" : "disabled");
};
let filtered = null;
@@ -58,7 +58,7 @@ export default function TableWrapper() {
-
+
{data?.length ? (
@@ -78,7 +78,7 @@ export default function TableWrapper() {
@@ -95,10 +95,10 @@ export default function TableWrapper() {
onSetPassword={(id: number) => showSetPasswordModal(id)}
onDeleteUser={(id: number) =>
showDeleteConfirmModal({
- title: "user.delete.title",
+ title:
,
onConfirm: () => handleDelete(id),
invalidations: [["users"], ["user", id]],
- children:
,
+ children:
,
})
}
onDisableToggle={handleDisableToggle}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index aac44c2e..1d461f85 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -203,59 +203,59 @@
"@babel/helper-string-parser" "^7.27.1"
"@babel/helper-validator-identifier" "^7.27.1"
-"@biomejs/biome@^2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.2.4.tgz#184e4b83f89bd0d4151682a5aa3840df37748e17"
- integrity sha512-TBHU5bUy/Ok6m8c0y3pZiuO/BZoY/OcGxoLlrfQof5s8ISVwbVBdFINPQZyFfKwil8XibYWb7JMwnT8wT4WVPg==
+"@biomejs/biome@^2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.2.6.tgz#76d8afbdd609a5dbace84bc982ae974a24b70b62"
+ integrity sha512-yKTCNGhek0rL5OEW1jbLeZX8LHaM8yk7+3JRGv08my+gkpmtb5dDE+54r2ZjZx0ediFEn1pYBOJSmOdDP9xtFw==
optionalDependencies:
- "@biomejs/cli-darwin-arm64" "2.2.4"
- "@biomejs/cli-darwin-x64" "2.2.4"
- "@biomejs/cli-linux-arm64" "2.2.4"
- "@biomejs/cli-linux-arm64-musl" "2.2.4"
- "@biomejs/cli-linux-x64" "2.2.4"
- "@biomejs/cli-linux-x64-musl" "2.2.4"
- "@biomejs/cli-win32-arm64" "2.2.4"
- "@biomejs/cli-win32-x64" "2.2.4"
+ "@biomejs/cli-darwin-arm64" "2.2.6"
+ "@biomejs/cli-darwin-x64" "2.2.6"
+ "@biomejs/cli-linux-arm64" "2.2.6"
+ "@biomejs/cli-linux-arm64-musl" "2.2.6"
+ "@biomejs/cli-linux-x64" "2.2.6"
+ "@biomejs/cli-linux-x64-musl" "2.2.6"
+ "@biomejs/cli-win32-arm64" "2.2.6"
+ "@biomejs/cli-win32-x64" "2.2.6"
-"@biomejs/cli-darwin-arm64@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.2.4.tgz#9b50620c93501e370b7e6d5a8445f117f9946a0c"
- integrity sha512-RJe2uiyaloN4hne4d2+qVj3d3gFJFbmrr5PYtkkjei1O9c+BjGXgpUPVbi8Pl8syumhzJjFsSIYkcLt2VlVLMA==
+"@biomejs/cli-darwin-arm64@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.2.6.tgz#b232a7d92c0b28884c1cf99d4348e1a52f95931f"
+ integrity sha512-UZPmn3M45CjTYulgcrFJFZv7YmK3pTxTJDrFYlNElT2FNnkkX4fsxjExTSMeWKQYoZjvekpH5cvrYZZlWu3yfA==
-"@biomejs/cli-darwin-x64@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.2.4.tgz#343620c884fc8141155d114430e80e4eacfddc9e"
- integrity sha512-cFsdB4ePanVWfTnPVaUX+yr8qV8ifxjBKMkZwN7gKb20qXPxd/PmwqUH8mY5wnM9+U0QwM76CxFyBRJhC9tQwg==
+"@biomejs/cli-darwin-x64@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.2.6.tgz#3a2d1582037735f8ed5243aa6d3cc4f4082c5f42"
+ integrity sha512-HOUIquhHVgh/jvxyClpwlpl/oeMqntlteL89YqjuFDiZ091P0vhHccwz+8muu3nTyHWM5FQslt+4Jdcd67+xWQ==
-"@biomejs/cli-linux-arm64-musl@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.2.4.tgz#cabcdadce2bc88b697f4063374224266c6f8b6e5"
- integrity sha512-7TNPkMQEWfjvJDaZRSkDCPT/2r5ESFPKx+TEev+I2BXDGIjfCZk2+b88FOhnJNHtksbOZv8ZWnxrA5gyTYhSsQ==
+"@biomejs/cli-linux-arm64-musl@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.2.6.tgz#2bfe0859c55c840c0648f2b307efccca2527d655"
+ integrity sha512-TjCenQq3N6g1C+5UT3jE1bIiJb5MWQvulpUngTIpFsL4StVAUXucWD0SL9MCW89Tm6awWfeXBbZBAhJwjyFbRQ==
-"@biomejs/cli-linux-arm64@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.2.4.tgz#55620f8f088145e62e1158eb85c568554d0c8673"
- integrity sha512-M/Iz48p4NAzMXOuH+tsn5BvG/Jb07KOMTdSVwJpicmhN309BeEyRyQX+n1XDF0JVSlu28+hiTQ2L4rZPvu7nMw==
+"@biomejs/cli-linux-arm64@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.2.6.tgz#aa1817296d84bda6ea972a54b139d1664580c190"
+ integrity sha512-BpGtuMJGN+o8pQjvYsUKZ+4JEErxdSmcRD/JG3mXoWc6zrcA7OkuyGFN1mDggO0Q1n7qXxo/PcupHk8gzijt5g==
-"@biomejs/cli-linux-x64-musl@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.2.4.tgz#6bfaea72505afdbda66a66c998d2d169a8b55f90"
- integrity sha512-m41nFDS0ksXK2gwXL6W6yZTYPMH0LughqbsxInSKetoH6morVj43szqKx79Iudkp8WRT5SxSh7qVb8KCUiewGg==
+"@biomejs/cli-linux-x64-musl@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.2.6.tgz#b65f9191420e3384e287b21a8b1769795ee2c4c1"
+ integrity sha512-1ZcBux8zVM3JhWN2ZCPaYf0+ogxXG316uaoXJdgoPZcdK/rmRcRY7PqHdAos2ExzvjIdvhQp72UcveI98hgOog==
-"@biomejs/cli-linux-x64@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.2.4.tgz#8c1ed61dcafb8a5939346c714ec122651f57e1db"
- integrity sha512-orr3nnf2Dpb2ssl6aihQtvcKtLySLta4E2UcXdp7+RTa7mfJjBgIsbS0B9GC8gVu0hjOu021aU8b3/I1tn+pVQ==
+"@biomejs/cli-linux-x64@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.2.6.tgz#5c5f07264bed31a436db60577c77ea9f64a62d2b"
+ integrity sha512-1HaM/dpI/1Z68zp8ZdT6EiBq+/O/z97a2AiHMl+VAdv5/ELckFt9EvRb8hDHpk8hUMoz03gXkC7VPXOVtU7faA==
-"@biomejs/cli-win32-arm64@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.2.4.tgz#b2528f6c436e753d6083d7779f0662e08786cedb"
- integrity sha512-NXnfTeKHDFUWfxAefa57DiGmu9VyKi0cDqFpdI+1hJWQjGJhJutHPX0b5m+eXvTKOaf+brU+P0JrQAZMb5yYaQ==
+"@biomejs/cli-win32-arm64@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.2.6.tgz#a47ef2d6bec694df088ba70ffd6e89839c9c2304"
+ integrity sha512-h3A88G8PGM1ryTeZyLlSdfC/gz3e95EJw9BZmA6Po412DRqwqPBa2Y9U+4ZSGUAXCsnSQE00jLV8Pyrh0d+jQw==
-"@biomejs/cli-win32-x64@2.2.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.2.4.tgz#c8e21413120fe073fa49b78fdd987022941ff66f"
- integrity sha512-3Y4V4zVRarVh/B/eSHczR4LYoSVyv3Dfuvm3cWs5w/HScccS0+Wt/lHOcDTRYeHjQmMYVC3rIRWqyN2EI52+zg==
+"@biomejs/cli-win32-x64@2.2.6":
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.2.6.tgz#cec00e860d9f20d820a48db4a6c7ab3b35c83ac6"
+ integrity sha512-yx0CqeOhPjYQ5ZXgPfu8QYkgBhVJyvWe36as7jRuPrKPO5ylVDfwVtPQ+K/mooNTADW0IhxOZm3aPu16dP8yNQ==
"@emotion/babel-plugin@^11.13.5":
version "11.13.5"
@@ -495,18 +495,18 @@
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.10.tgz#a2a1e3812d14525f725d011a73eceb41fef5bc1c"
integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==
-"@formatjs/cli@^6.7.2":
- version "6.7.2"
- resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.7.2.tgz#8d1a3225dee98cadbc5331b1971f1b79dead4253"
- integrity sha512-714/ifbtq7CmOtcLVGjYZp5EX0vKclQt3XZ+4Oiz0lhrHWU1ObFTtX9sLS9dADGta1pgDtS4+A3YpjWMY26Spg==
+"@formatjs/cli@^6.7.4":
+ version "6.7.4"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.7.4.tgz#21fdab4e215763034682abf148b64b4f8d9d4a5c"
+ integrity sha512-k6uqdeZDAjDd7iKKQ8yFYizFpbi5Y9H9NkV+hoIhmxaMSGvWRnRusQJaIQ+2rI14MH6knW6fx7tnO15C+ijDiw==
-"@formatjs/ecma402-abstract@2.3.4":
- version "2.3.4"
- resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.4.tgz#e90c5a846ba2b33d92bc400fdd709da588280fbc"
- integrity sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==
+"@formatjs/ecma402-abstract@2.3.6":
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz#d6ca9d3579054fe1e1a0a0b5e872e0d64922e4e1"
+ integrity sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==
dependencies:
"@formatjs/fast-memoize" "2.2.7"
- "@formatjs/intl-localematcher" "0.6.1"
+ "@formatjs/intl-localematcher" "0.6.2"
decimal.js "^10.4.3"
tslib "^2.8.0"
@@ -517,39 +517,39 @@
dependencies:
tslib "^2.8.0"
-"@formatjs/icu-messageformat-parser@2.11.2":
- version "2.11.2"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.2.tgz#85aea211bea40aa81ee1d44ac7accc3cf5500a73"
- integrity sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==
+"@formatjs/icu-messageformat-parser@2.11.4":
+ version "2.11.4"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz#63bd2cd82d08ae2bef55adeeb86486df68826f32"
+ integrity sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==
dependencies:
- "@formatjs/ecma402-abstract" "2.3.4"
- "@formatjs/icu-skeleton-parser" "1.8.14"
+ "@formatjs/ecma402-abstract" "2.3.6"
+ "@formatjs/icu-skeleton-parser" "1.8.16"
tslib "^2.8.0"
-"@formatjs/icu-skeleton-parser@1.8.14":
- version "1.8.14"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.14.tgz#b9581d00363908efb29817fdffc32b79f41dabe5"
- integrity sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==
+"@formatjs/icu-skeleton-parser@1.8.16":
+ version "1.8.16"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz#13f81f6845c7cf6599623006aacaf7d6b4ad2970"
+ integrity sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==
dependencies:
- "@formatjs/ecma402-abstract" "2.3.4"
+ "@formatjs/ecma402-abstract" "2.3.6"
tslib "^2.8.0"
-"@formatjs/intl-localematcher@0.6.1":
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz#25dc30675320bf65a9d7f73876fc1e4064c0e299"
- integrity sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==
+"@formatjs/intl-localematcher@0.6.2":
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz#e9ebe0b4082d7d48e5b2d753579fb7ece4eaefea"
+ integrity sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==
dependencies:
tslib "^2.8.0"
-"@formatjs/intl@3.1.6":
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-3.1.6.tgz#4c7fec6f082628cfa80871fbe7f9bc2644300e3b"
- integrity sha512-tDkXnA4qpIFcDWac8CyVJq6oW8DR7W44QDUBsfXWIIJD/FYYen0QoH46W7XsVMFfPOVKkvbufjboZrrWbEfmww==
+"@formatjs/intl@3.1.8":
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-3.1.8.tgz#17f4a5721f32cd077ab04949be558f9f767c39f5"
+ integrity sha512-LWXgwI5zTMatvR8w8kCNh/priDTOF/ZssokMBHJ7ZWXFoYLVOYo0EJERD9Eajv+xsfQO1QkuAt77KWQ1OI4mOQ==
dependencies:
- "@formatjs/ecma402-abstract" "2.3.4"
+ "@formatjs/ecma402-abstract" "2.3.6"
"@formatjs/fast-memoize" "2.2.7"
- "@formatjs/icu-messageformat-parser" "2.11.2"
- intl-messageformat "10.7.16"
+ "@formatjs/icu-messageformat-parser" "2.11.4"
+ intl-messageformat "10.7.18"
tslib "^2.8.0"
"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
@@ -716,10 +716,10 @@
uncontrollable "^8.0.4"
warning "^4.0.3"
-"@rolldown/pluginutils@1.0.0-beta.35":
- version "1.0.0-beta.35"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.35.tgz#1a477e7742b154b67519d40e4fc17485de338e7a"
- integrity sha512-slYrCpoxJUqzFDDNlvrOYRazQUNRvWPjXA17dAOISY3rDMxX6k8K4cj2H+hEYMHF81HO3uNd5rHVigAWRM5dSg==
+"@rolldown/pluginutils@1.0.0-beta.38":
+ version "1.0.0-beta.38"
+ resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.38.tgz#95253608c4629eb2a5f3d656009ac9ba031eb292"
+ integrity sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==
"@rollup/rollup-android-arm-eabi@4.50.0":
version "4.50.0"
@@ -853,29 +853,29 @@
resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-3.35.0.tgz#6f35247e41baba2a1b0f4dff048bb1335d6c1075"
integrity sha512-yYXe+gJ56xlZFiXwV9zVoe3FWCGuZ/D7/G4ZIlDtGxSx5CGQK110wrnT29gUj52kEZoxqF7oURTk97GQxELOFQ==
-"@tanstack/query-core@5.89.0":
- version "5.89.0"
- resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.89.0.tgz#67862fa9aa036942b1906bc51385115a2bbec45a"
- integrity sha512-joFV1MuPhSLsKfTzwjmPDrp8ENfZ9N23ymFu07nLfn3JCkSHy0CFgsyhHTJOmWaumC/WiNIKM0EJyduCF/Ih/Q==
+"@tanstack/query-core@5.90.3":
+ version "5.90.3"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.90.3.tgz#461422437d30aad0a7618122c5e7568095d79cfb"
+ integrity sha512-HtPOnCwmx4dd35PfXU8jjkhwYrsHfuqgC8RCJIwWglmhIUIlzPP0ZcEkDAc+UtAWCiLm7T8rxeEfHZlz3hYMCA==
-"@tanstack/query-devtools@5.87.3":
- version "5.87.3"
- resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.87.3.tgz#0cfff30823f837d6b9ead08f8d1b16459203fdb2"
- integrity sha512-LkzxzSr2HS1ALHTgDmJH5eGAVsSQiuwz//VhFW5OqNk0OQ+Fsqba0Tsf+NzWRtXYvpgUqwQr4b2zdFZwxHcGvg==
+"@tanstack/query-devtools@5.90.1":
+ version "5.90.1"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.90.1.tgz#c57a739a5293f4960a4a6b6fb4b7e4a56e6bd932"
+ integrity sha512-GtINOPjPUH0OegJExZ70UahT9ykmAhmtNVcmtdnOZbxLwT7R5OmRztR5Ahe3/Cu7LArEmR6/588tAycuaWb1xQ==
-"@tanstack/react-query-devtools@^5.89.0":
- version "5.89.0"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.89.0.tgz#ca9cc274cbec7c1479ab67335282a06b4566d164"
- integrity sha512-Syc4UjZeIJCkXCRGyQcWwlnv89JNb98MMg/DAkFCV3rwOcknj98+nG3Nm6xLXM6ne9sK6RZeDJMPLKZUh6NUGA==
+"@tanstack/react-query-devtools@^5.90.2":
+ version "5.90.2"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.90.2.tgz#248d6ae89ace7dc2da816fa95cdc2b4f63c9e4d2"
+ integrity sha512-vAXJzZuBXtCQtrY3F/yUNJCV4obT/A/n81kb3+YqLbro5Z2+phdAbceO+deU3ywPw8B42oyJlp4FhO0SoivDFQ==
dependencies:
- "@tanstack/query-devtools" "5.87.3"
+ "@tanstack/query-devtools" "5.90.1"
-"@tanstack/react-query@^5.89.0":
- version "5.89.0"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.89.0.tgz#ae295ced60d1aee555337a572ad4045e2af3d00a"
- integrity sha512-SXbtWSTSRXyBOe80mszPxpEbaN4XPRUp/i0EfQK1uyj3KCk/c8FuPJNIRwzOVe/OU3rzxrYtiNabsAmk1l714A==
+"@tanstack/react-query@^5.90.3":
+ version "5.90.3"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.90.3.tgz#670ed97948c5d4e3c075049f8a01e84d51e0bdc4"
+ integrity sha512-i/LRL6DtuhG6bjGzavIMIVuKKPWx2AnEBIsBfuMm3YoHne0a20nWmsatOCBcVSaT0/8/5YFjNkebHAPLVUSi0Q==
dependencies:
- "@tanstack/query-core" "5.89.0"
+ "@tanstack/query-core" "5.90.3"
"@tanstack/react-table@^8.21.3":
version "8.21.3"
@@ -903,10 +903,10 @@
picocolors "1.1.1"
pretty-format "^27.0.2"
-"@testing-library/jest-dom@^6.8.0":
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.8.0.tgz#697db9424f0d21d8216f1958fa0b1b69b5f43923"
- integrity sha512-WgXcWzVM6idy5JaftTVC8Vs83NKRmGJz4Hqs4oyOuO2J4r/y79vvKZsb+CaGyCSEbUPI6OsewfPd0G1A0/TUZQ==
+"@testing-library/jest-dom@^6.9.1":
+ version "6.9.1"
+ resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz#7613a04e146dd2976d24ddf019730d57a89d56c2"
+ integrity sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==
dependencies:
"@adobe/css-tools" "^4.4.0"
aria-query "^5.0.0"
@@ -1037,10 +1037,10 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7"
integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==
-"@types/react-dom@^19.1.9":
- version "19.1.9"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.1.9.tgz#5ab695fce1e804184767932365ae6569c11b4b4b"
- integrity sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==
+"@types/react-dom@^19.2.2":
+ version "19.2.2"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.2.2.tgz#a4cc874797b7ddc9cb180ef0d5dc23f596fc2332"
+ integrity sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==
"@types/react-table@^7.7.20":
version "7.7.20"
@@ -1061,10 +1061,10 @@
dependencies:
csstype "^3.0.2"
-"@types/react@^19.1.13":
- version "19.1.13"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.13.tgz#fc650ffa680d739a25a530f5d7ebe00cdd771883"
- integrity sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==
+"@types/react@^19.2.2":
+ version "19.2.2"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.2.tgz#ba123a75d4c2a51158697160a4ea2ff70aa6bf36"
+ integrity sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==
dependencies:
csstype "^3.0.2"
@@ -1102,15 +1102,15 @@
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8"
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
-"@vitejs/plugin-react@^5.0.3":
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.0.3.tgz#182ea45406d89e55b4e35c92a4a8c2c8388726c8"
- integrity sha512-PFVHhosKkofGH0Yzrw1BipSedTH68BFF8ZWy1kfUpCtJcouXXY0+racG8sExw7hw0HoX36813ga5o3LTWZ4FUg==
+"@vitejs/plugin-react@^5.0.4":
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.0.4.tgz#d642058e89c5b712655c8cbd13482f5813519602"
+ integrity sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==
dependencies:
"@babel/core" "^7.28.4"
"@babel/plugin-transform-react-jsx-self" "^7.27.1"
"@babel/plugin-transform-react-jsx-source" "^7.27.1"
- "@rolldown/pluginutils" "1.0.0-beta.35"
+ "@rolldown/pluginutils" "1.0.0-beta.38"
"@types/babel__core" "^7.20.5"
react-refresh "^0.17.0"
@@ -1180,11 +1180,6 @@ ansi-regex@^5.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-ansi-regex@^6.0.1:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.0.tgz#2f302e7550431b1b7762705fffb52cf1ffa20447"
- integrity sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==
-
ansi-styles@^5.0.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
@@ -1360,10 +1355,10 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
-country-flag-icons@^1.5.20:
- version "1.5.20"
- resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.5.20.tgz#a373b13f2b2899a2ef85a4b6fb6a80b8f38f9a01"
- integrity sha512-ldchBFYlw2dXXGXO6q/xCYaFiiK/eg5qSctBRDzUTDvHqAdIMOVTj1sp0OWVo7g6h+RURTjlu+5BhtGwIbe9tg==
+country-flag-icons@^1.5.21:
+ version "1.5.21"
+ resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.5.21.tgz#f7502b144c523f5a6ad8d29de780c90a5f9a131e"
+ integrity sha512-0KmU4oeiyAM+F+atzK99ghQDQJKxEY3tiDhnRraVFL4o65rZgrmrx7xKi0b+hxcVpcEpuUbu+KCC6TKTZQTDcA==
css.escape@^1.5.1:
version "1.5.1"
@@ -1604,10 +1599,10 @@ globrex@^0.1.2:
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
-happy-dom@^18.0.1:
- version "18.0.1"
- resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-18.0.1.tgz#8f8a2199462842deb675f54e405af55f3b674540"
- integrity sha512-qn+rKOW7KWpVTtgIUi6RVmTBZJSe2k0Db0vh1f7CWrWclkkc7/Q+FrOfkZIb2eiErLyqu5AXEzE7XthO9JVxRA==
+happy-dom@^20.0.2:
+ version "20.0.2"
+ resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.0.2.tgz#da676a1e3d0742aff8ba4789db90445842538808"
+ integrity sha512-pYOyu624+6HDbY+qkjILpQGnpvZOusItCk+rvF5/V+6NkcgTKnbOldpIy22tBnxoaLtlM9nXgoqAcW29/B7CIw==
dependencies:
"@types/node" "^20.0.0"
"@types/whatwg-mimetype" "^3.0.2"
@@ -1753,14 +1748,14 @@ indent-string@^4.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-intl-messageformat@10.7.16:
- version "10.7.16"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.7.16.tgz#d909f9f9f4ab857fbe681d559b958dd4dd9f665a"
- integrity sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==
+intl-messageformat@10.7.18:
+ version "10.7.18"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.7.18.tgz#51a6f387afbca9b0f881b2ec081566db8c540b0d"
+ integrity sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==
dependencies:
- "@formatjs/ecma402-abstract" "2.3.4"
+ "@formatjs/ecma402-abstract" "2.3.6"
"@formatjs/fast-memoize" "2.2.7"
- "@formatjs/icu-messageformat-parser" "2.11.2"
+ "@formatjs/icu-messageformat-parser" "2.11.4"
tslib "^2.8.0"
invariant@^2.2.4:
@@ -2180,30 +2175,30 @@ react-bootstrap@^2.10.10:
uncontrollable "^7.2.1"
warning "^4.0.3"
-react-dom@^19.1.1:
- version "19.1.1"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.1.1.tgz#2daa9ff7f3ae384aeb30e76d5ee38c046dc89893"
- integrity sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==
+react-dom@^19.2.0:
+ version "19.2.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.0.tgz#00ed1e959c365e9a9d48f8918377465466ec3af8"
+ integrity sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==
dependencies:
- scheduler "^0.26.0"
+ scheduler "^0.27.0"
react-fast-compare@^2.0.1:
version "2.0.4"
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
-react-intl@^7.1.11:
- version "7.1.11"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-7.1.11.tgz#6155602c46621ad9b67dd31750d00908e1e0b516"
- integrity sha512-tnVoRCWvW5Ie2ikYSdPF7z3+880yCe/9xPmitFeRPw3RYDcCfR4m8ZYa4MBq19W4adt9Z+PQA4FaMBCJ7E+HCQ==
+react-intl@^7.1.14:
+ version "7.1.14"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-7.1.14.tgz#5500f76b0bb35694a7bec418b1adf1533dad6752"
+ integrity sha512-VE/0Wi/lHJlBC7APQpCzLUdIt3GB5B0GZrRW8Q+ACbkHI4j+Wwgg9J1TniN6zmLHmPH5gxXcMy+fkSPfw5p1WQ==
dependencies:
- "@formatjs/ecma402-abstract" "2.3.4"
- "@formatjs/icu-messageformat-parser" "2.11.2"
- "@formatjs/intl" "3.1.6"
+ "@formatjs/ecma402-abstract" "2.3.6"
+ "@formatjs/icu-messageformat-parser" "2.11.4"
+ "@formatjs/intl" "3.1.8"
"@types/hoist-non-react-statics" "^3.3.1"
"@types/react" "16 || 17 || 18 || 19"
hoist-non-react-statics "^3.3.2"
- intl-messageformat "10.7.16"
+ intl-messageformat "10.7.18"
tslib "^2.8.0"
react-is@^16.13.1, react-is@^16.3.2, react-is@^16.7.0:
@@ -2226,17 +2221,17 @@ react-refresh@^0.17.0:
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53"
integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==
-react-router-dom@^7.9.1:
- version "7.9.1"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.9.1.tgz#48044923701773da6362f9003ec46f308f293f15"
- integrity sha512-U9WBQssBE9B1vmRjo9qTM7YRzfZ3lUxESIZnsf4VjR/lXYz9MHjvOxHzr/aUm4efpktbVOrF09rL/y4VHa8RMw==
+react-router-dom@^7.9.4:
+ version "7.9.4"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.9.4.tgz#37d35b4b7f730b37434f2b7e95121ef557a6b538"
+ integrity sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==
dependencies:
- react-router "7.9.1"
+ react-router "7.9.4"
-react-router@7.9.1:
- version "7.9.1"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.9.1.tgz#b227410c31f24dd416c939ca5d0f8d5c8a1404d4"
- integrity sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==
+react-router@7.9.4:
+ version "7.9.4"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.9.4.tgz#2c4249e5d0a6bb8b8f6bf0ede8f5077e4ff8024f"
+ integrity sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==
dependencies:
cookie "^1.0.1"
set-cookie-parser "^2.6.0"
@@ -2273,10 +2268,10 @@ react-transition-group@^4.3.0, react-transition-group@^4.4.5:
loose-envify "^1.4.0"
prop-types "^15.6.2"
-react@^19.1.1:
- version "19.1.1"
- resolved "https://registry.yarnpkg.com/react/-/react-19.1.1.tgz#06d9149ec5e083a67f9a1e39ce97b06a03b644af"
- integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==
+react@^19.2.0:
+ version "19.2.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-19.2.0.tgz#d33dd1721698f4376ae57a54098cb47fc75d93a5"
+ integrity sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==
readdirp@^4.0.1:
version "4.1.2"
@@ -2400,10 +2395,10 @@ safe-buffer@^5.1.0:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-sass@^1.93.0:
- version "1.93.0"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.93.0.tgz#8252f61405be295f4755d1ed5df48bf118587aa5"
- integrity sha512-CQi5/AzCwiubU3dSqRDJ93RfOfg/hhpW1l6wCIvolmehfwgCI35R/0QDs1+R+Ygrl8jFawwwIojE2w47/mf94A==
+sass@^1.93.2:
+ version "1.93.2"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.93.2.tgz#e97d225d60f59a3b3dbb6d2ae3c1b955fd1f2cd1"
+ integrity sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==
dependencies:
chokidar "^4.0.0"
immutable "^5.0.2"
@@ -2411,10 +2406,10 @@ sass@^1.93.0:
optionalDependencies:
"@parcel/watcher" "^2.4.1"
-scheduler@^0.26.0:
- version "0.26.0"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337"
- integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==
+scheduler@^0.27.0:
+ version "0.27.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz#0c4ef82d67d1e5c1e359e8fc76d3a87f045fe5bd"
+ integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==
semver@^6.3.1:
version "6.3.1"
@@ -2469,13 +2464,6 @@ stringify-entities@^4.0.0:
character-entities-html4 "^2.0.0"
character-entities-legacy "^3.0.0"
-strip-ansi@^7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
- integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
- dependencies:
- ansi-regex "^6.0.1"
-
strip-indent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
@@ -2583,10 +2571,10 @@ tslib@^2.0.0, tslib@^2.8.0:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
-typescript@5.9.2:
- version "5.9.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6"
- integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==
+typescript@5.9.3:
+ version "5.9.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
+ integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
uncontrollable@^7.2.1:
version "7.2.1"
@@ -2726,17 +2714,16 @@ vite-node@3.2.4:
pathe "^2.0.3"
vite "^5.0.0 || ^6.0.0 || ^7.0.0-0"
-vite-plugin-checker@^0.10.3:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.10.3.tgz#ddc609aebe098b23aea685daba5548bea75adf80"
- integrity sha512-f4sekUcDPF+T+GdbbE8idb1i2YplBAoH+SfRS0e/WRBWb2rYb1Jf5Pimll0Rj+3JgIYWwG2K5LtBPCXxoibkLg==
+vite-plugin-checker@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.11.0.tgz#063ce180c3751b790a6472e19c5d1a352b215070"
+ integrity sha512-iUdO9Pl9UIBRPAragwi3as/BXXTtRu4G12L3CMrjx+WVTd9g/MsqNakreib9M/2YRVkhZYiTEwdH2j4Dm0w7lw==
dependencies:
"@babel/code-frame" "^7.27.1"
chokidar "^4.0.3"
npm-run-path "^6.0.0"
picocolors "^1.1.1"
picomatch "^4.0.3"
- strip-ansi "^7.1.0"
tiny-invariant "^1.3.3"
tinyglobby "^0.2.14"
vscode-uri "^3.1.0"
@@ -2764,10 +2751,10 @@ vite-tsconfig-paths@^5.1.4:
optionalDependencies:
fsevents "~2.3.3"
-vite@^7.1.6:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/vite/-/vite-7.1.6.tgz#336806d29983135677f498a05efb0fd46c5eef2d"
- integrity sha512-SRYIB8t/isTwNn8vMB3MR6E+EQZM/WG1aKmmIUCfDXfVvKfc20ZpamngWHKzAmmu9ppsgxsg4b2I7c90JZudIQ==
+vite@^7.1.10:
+ version "7.1.10"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-7.1.10.tgz#47c9970f3b0fe9057bfbcfeff8cd370edd7bd41b"
+ integrity sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==
dependencies:
esbuild "^0.25.0"
fdir "^6.5.0"