diff --git a/apps/desktop2/package.json b/apps/desktop2/package.json index 1e029141..e8939aed 100644 --- a/apps/desktop2/package.json +++ b/apps/desktop2/package.json @@ -45,15 +45,15 @@ "@lume/tsconfig": "workspace:^", "@lume/types": "workspace:^", "@tanstack/router-devtools": "^1.26.7", - "@tanstack/router-vite-plugin": "^1.26.6", + "@tanstack/router-vite-plugin": "^1.26.8", "@types/react": "^18.2.74", - "@types/react-dom": "^18.2.23", + "@types/react-dom": "^18.2.24", "@vitejs/plugin-react-swc": "^3.6.0", "autoprefixer": "^10.4.19", "postcss": "^8.4.38", "tailwindcss": "^3.4.3", "typescript": "^5.4.3", - "vite": "^5.2.7", + "vite": "^5.2.8", "vite-plugin-top-level-await": "^1.4.1", "vite-tsconfig-paths": "^4.3.2" } diff --git a/apps/desktop2/public/anime.jpg b/apps/desktop2/public/anime.jpg new file mode 100644 index 00000000..f7f8eeab Binary files /dev/null and b/apps/desktop2/public/anime.jpg differ diff --git a/apps/desktop2/public/art.jpg b/apps/desktop2/public/art.jpg new file mode 100644 index 00000000..efc36ab3 Binary files /dev/null and b/apps/desktop2/public/art.jpg differ diff --git a/apps/desktop2/public/gaming.jpg b/apps/desktop2/public/gaming.jpg new file mode 100644 index 00000000..de58aeeb Binary files /dev/null and b/apps/desktop2/public/gaming.jpg differ diff --git a/apps/desktop2/public/movie.jpg b/apps/desktop2/public/movie.jpg new file mode 100644 index 00000000..bcb36809 Binary files /dev/null and b/apps/desktop2/public/movie.jpg differ diff --git a/apps/desktop2/public/music.jpg b/apps/desktop2/public/music.jpg new file mode 100644 index 00000000..1c533c15 Binary files /dev/null and b/apps/desktop2/public/music.jpg differ diff --git a/apps/desktop2/public/nsfw.jpg b/apps/desktop2/public/nsfw.jpg new file mode 100644 index 00000000..f9e183d2 Binary files /dev/null and b/apps/desktop2/public/nsfw.jpg differ diff --git a/apps/desktop2/public/photography.jpg b/apps/desktop2/public/photography.jpg new file mode 100644 index 00000000..6f117830 Binary files /dev/null and b/apps/desktop2/public/photography.jpg differ diff --git a/apps/desktop2/public/technology.jpg b/apps/desktop2/public/technology.jpg new file mode 100644 index 00000000..cfd733f0 Binary files /dev/null and b/apps/desktop2/public/technology.jpg differ diff --git a/apps/desktop2/src/app.tsx b/apps/desktop2/src/app.tsx index 064f008f..c95194c6 100644 --- a/apps/desktop2/src/app.tsx +++ b/apps/desktop2/src/app.tsx @@ -28,7 +28,7 @@ const persister = createSyncStoragePersister({ const ark = new Ark(); const platformName = await platform(); -const osLocale = (await locale()).slice(0, 2); +const osLocale = await locale(); // Set up a Router instance const router = createRouter({ @@ -37,6 +37,8 @@ const router = createRouter({ platform: platformName, locale: osLocale, settings: null, + accounts: null, + interests: null, ark, queryClient, }, diff --git a/apps/desktop2/src/routes/$account.home.tsx b/apps/desktop2/src/routes/$account.home.tsx index e6e4b243..94a2c569 100644 --- a/apps/desktop2/src/routes/$account.home.tsx +++ b/apps/desktop2/src/routes/$account.home.tsx @@ -19,7 +19,7 @@ const DEFAULT_COLUMNS: LumeColumn[] = [ ]; function Screen() { - const search = Route.useSearch(); + const { account } = Route.useParams(); const vlistRef = useRef(null); const [columns, setColumns] = useState(DEFAULT_COLUMNS); @@ -139,8 +139,7 @@ function Screen() { ))} diff --git a/apps/desktop2/src/routes/$account.tsx b/apps/desktop2/src/routes/$account.tsx index da362ce1..683b8676 100644 --- a/apps/desktop2/src/routes/$account.tsx +++ b/apps/desktop2/src/routes/$account.tsx @@ -5,6 +5,16 @@ import { Accounts } from "@/components/accounts"; export const Route = createFileRoute("/$account")({ component: App, + beforeLoad: async ({ params, context }) => { + const ark = context.ark; + const settings = await ark.get_settings(params.account); + const interests = await ark.get_interest(params.account); + + return { + settings, + interests, + }; + }, }); function App() { diff --git a/apps/desktop2/src/routes/__root.tsx b/apps/desktop2/src/routes/__root.tsx index ec91d210..cddc3210 100644 --- a/apps/desktop2/src/routes/__root.tsx +++ b/apps/desktop2/src/routes/__root.tsx @@ -7,7 +7,7 @@ import { import { type Ark } from "@lume/ark"; import { type QueryClient } from "@tanstack/react-query"; import { type Platform } from "@tauri-apps/plugin-os"; -import { Settings } from "@lume/types"; +import { Account, Interests, Settings } from "@lume/types"; interface RouterContext { ark: Ark; @@ -15,6 +15,8 @@ interface RouterContext { platform: Platform; locale: string; settings: Settings; + interests: Interests; + accounts: Account[]; } export const Route = createRootRouteWithContext()({ diff --git a/apps/desktop2/src/routes/editor/index.tsx b/apps/desktop2/src/routes/editor/index.tsx index 4c96956e..955cae6c 100644 --- a/apps/desktop2/src/routes/editor/index.tsx +++ b/apps/desktop2/src/routes/editor/index.tsx @@ -221,12 +221,7 @@ function Screen() {
- {reply_to && !quote ? ( -
-

Reply to:

- -
- ) : null} + {reply_to && !quote ? : null}
} - placeholder={t("editor.placeholder")} + placeholder={ + reply_to ? "Type your reply..." : t("editor.placeholder") + } className="focus:outline-none" /> {target && filters.length > 0 && ( diff --git a/apps/desktop2/src/routes/events/$eventId.lazy.tsx b/apps/desktop2/src/routes/events/$eventId.lazy.tsx index a35c2718..55b72e58 100644 --- a/apps/desktop2/src/routes/events/$eventId.lazy.tsx +++ b/apps/desktop2/src/routes/events/$eventId.lazy.tsx @@ -2,9 +2,9 @@ import { useEvent } from "@lume/ark"; import { LoaderIcon } from "@lume/icons"; import { Box, Container, Note, User } from "@lume/ui"; import { createLazyFileRoute } from "@tanstack/react-router"; -import { WindowVirtualizer } from "virtua"; import { ReplyList } from "./-components/replyList"; -import { Event } from "@lume/types"; +import { WindowVirtualizer } from "virtua"; +import { type Event } from "@lume/types"; export const Route = createLazyFileRoute("/events/$eventId")({ component: Event, @@ -29,14 +29,14 @@ function Event() { } return ( - - - + + + {data ? : null} - - - + + + ); } diff --git a/apps/desktop2/src/routes/foryou.lazy.tsx b/apps/desktop2/src/routes/foryou.tsx similarity index 50% rename from apps/desktop2/src/routes/foryou.lazy.tsx rename to apps/desktop2/src/routes/foryou.tsx index 8d2b5207..7f249ab2 100644 --- a/apps/desktop2/src/routes/foryou.lazy.tsx +++ b/apps/desktop2/src/routes/foryou.tsx @@ -1,30 +1,60 @@ import { RepostNote } from "@/components/repost"; import { Suggest } from "@/components/suggest"; import { TextNote } from "@/components/text"; -import { useEvents } from "@lume/ark"; import { LoaderIcon, ArrowRightCircleIcon, InfoIcon } from "@lume/icons"; import { Event, Kind } from "@lume/types"; import { Column } from "@lume/ui"; -import { createLazyFileRoute } from "@tanstack/react-router"; +import { useInfiniteQuery } from "@tanstack/react-query"; +import { createFileRoute, redirect } from "@tanstack/react-router"; import { useTranslation } from "react-i18next"; import { Virtualizer } from "virtua"; -export const Route = createLazyFileRoute("/foryou")({ +export const Route = createFileRoute("/foryou")({ + beforeLoad: async ({ search, context }) => { + const ark = context.ark; + // @ts-ignore, useless !!! + const interests = await ark.get_interest(search.account); + + if (!interests) { + throw redirect({ + to: "/interests", + replace: false, + search, + }); + } + + return { + interests, + }; + }, component: Screen, }); export function Screen() { // @ts-ignore, just work!!! const { id, name, account } = Route.useSearch(); + const { ark, interests } = Route.useRouteContext(); const { t } = useTranslation(); - const { - data, - hasNextPage, - isLoading, - isRefetching, - isFetchingNextPage, - fetchNextPage, - } = useEvents("local", account); + const { data, isLoading, isFetchingNextPage, hasNextPage, fetchNextPage } = + useInfiniteQuery({ + queryKey: ["foryou", account], + initialPageParam: 0, + queryFn: async ({ pageParam }: { pageParam: number }) => { + const events = await ark.get_events_from_interests( + interests.hashtags, + 20, + pageParam, + true, + ); + return events; + }, + getNextPageParam: (lastPage) => { + const lastEvent = lastPage?.at(-1); + return lastEvent ? lastEvent.created_at - 1 : null; + }, + select: (data) => data?.pages.flatMap((page) => page), + refetchOnWindowFocus: false, + }); const renderItem = (event: Event) => { if (!event) return; @@ -40,17 +70,23 @@ export function Screen() { - {isLoading || isRefetching ? ( + {isLoading ? (
- +
) : !data.length ? ( -
-
+
+
-

{t("emptyFeedTitle")}

-

{t("emptyFeedSubtitle")}

+

+ {t("global.emptyFeedTitle")} +

+

+ {t("global.emptyFeedSubtitle")} +

@@ -60,12 +96,13 @@ export function Screen() { {data.map((item) => renderItem(item))} )} -
- {hasNextPage ? ( + + {data?.length && hasNextPage ? ( +
- ) : null} -
+
+ ) : null} ); diff --git a/apps/desktop2/src/routes/global.lazy.tsx b/apps/desktop2/src/routes/global.lazy.tsx index 221d5cc7..46ce1108 100644 --- a/apps/desktop2/src/routes/global.lazy.tsx +++ b/apps/desktop2/src/routes/global.lazy.tsx @@ -1,10 +1,10 @@ import { RepostNote } from "@/components/repost"; import { Suggest } from "@/components/suggest"; import { TextNote } from "@/components/text"; -import { useEvents } from "@lume/ark"; import { LoaderIcon, ArrowRightCircleIcon, InfoIcon } from "@lume/icons"; import { Event, Kind } from "@lume/types"; import { Column } from "@lume/ui"; +import { useInfiniteQuery } from "@tanstack/react-query"; import { createLazyFileRoute } from "@tanstack/react-router"; import { useTranslation } from "react-i18next"; import { Virtualizer } from "virtua"; @@ -16,15 +16,23 @@ export const Route = createLazyFileRoute("/global")({ export function Screen() { // @ts-ignore, just work!!! const { id, name, account } = Route.useSearch(); + const { ark } = Route.useRouteContext(); const { t } = useTranslation(); - const { - data, - hasNextPage, - isLoading, - isRefetching, - isFetchingNextPage, - fetchNextPage, - } = useEvents("global", account); + const { data, isLoading, isFetchingNextPage, hasNextPage, fetchNextPage } = + useInfiniteQuery({ + queryKey: ["global", account], + initialPageParam: 0, + queryFn: async ({ pageParam }: { pageParam: number }) => { + const events = await ark.get_events(20, pageParam, undefined, true); + return events; + }, + getNextPageParam: (lastPage) => { + const lastEvent = lastPage?.at(-1); + return lastEvent ? lastEvent.created_at - 1 : null; + }, + select: (data) => data?.pages.flatMap((page) => page), + refetchOnWindowFocus: false, + }); const renderItem = (event: Event) => { if (!event) return; @@ -40,17 +48,23 @@ export function Screen() { - {isLoading || isRefetching ? ( + {isLoading ? (
- +
) : !data.length ? ( -
-
+
+
-

{t("emptyFeedTitle")}

-

{t("emptyFeedSubtitle")}

+

+ {t("global.emptyFeedTitle")} +

+

+ {t("global.emptyFeedSubtitle")} +

@@ -60,12 +74,13 @@ export function Screen() { {data.map((item) => renderItem(item))} )} -
- {hasNextPage ? ( + + {data?.length && hasNextPage ? ( +
- ) : null} -
+
+ ) : null} ); diff --git a/apps/desktop2/src/routes/index.tsx b/apps/desktop2/src/routes/index.tsx index 3a975983..b2f13fcb 100644 --- a/apps/desktop2/src/routes/index.tsx +++ b/apps/desktop2/src/routes/index.tsx @@ -5,7 +5,7 @@ import { createFileRoute, redirect, useNavigate } from "@tanstack/react-router"; import { useState } from "react"; export const Route = createFileRoute("/")({ - beforeLoad: async ({ search, context }) => { + beforeLoad: async ({ context }) => { const ark = context.ark; const accounts = await ark.get_all_accounts(); @@ -18,15 +18,8 @@ export const Route = createFileRoute("/")({ }); // Only 1 account, skip account selection screen case 1: - // @ts-ignore, totally fine !!! - if (search.manually) return; - const account = accounts[0].npub; const loadedAccount = await ark.load_selected_account(account); - const settings = await ark.get_settings(account); - - // Update settings - context.settings = settings; if (loadedAccount) { throw redirect({ @@ -37,7 +30,7 @@ export const Route = createFileRoute("/")({ } // Account selection default: - return; + return { accounts }; } }, component: Screen, @@ -51,11 +44,12 @@ function Screen() { const select = async (npub: string) => { setLoading(true); - const loadAccount = await context.ark.load_selected_account(npub); - context.settings = await context.ark.get_settings(npub); + + const ark = context.ark; + const loadAccount = await ark.load_selected_account(npub); if (loadAccount) { - navigate({ + return navigate({ to: "/$account/home", params: { account: npub }, replace: true, @@ -83,7 +77,7 @@ function Screen() {
) : ( <> - {context.ark.accounts.map((account) => ( + {context.accounts.map((account) => ( +
+
+
+ {TOPICS.map((topic) => ( +
+
+
+ {topic.title} +

{topic.title}

+
+ +
+
+ {topic.content.map((hashtag) => ( + + ))} +
+
+ ))} +
+
+ + + ); +} diff --git a/apps/desktop2/src/routes/newsfeed.lazy.tsx b/apps/desktop2/src/routes/newsfeed.lazy.tsx index 53eb3043..7aba3594 100644 --- a/apps/desktop2/src/routes/newsfeed.lazy.tsx +++ b/apps/desktop2/src/routes/newsfeed.lazy.tsx @@ -23,13 +23,12 @@ export function Screen() { queryKey: ["local", account], initialPageParam: 0, queryFn: async ({ pageParam }: { pageParam: number }) => { - const events = await ark.get_events("local", 20, pageParam, true); + const events = await ark.get_events(20, pageParam); return events; }, getNextPageParam: (lastPage) => { const lastEvent = lastPage?.at(-1); - if (!lastEvent) return; - return lastEvent.created_at - 1; + return lastEvent ? lastEvent.created_at - 1 : null; }, select: (data) => data?.pages.flatMap((page) => page), refetchOnWindowFocus: false, diff --git a/apps/desktop2/src/routes/nwc.lazy.tsx b/apps/desktop2/src/routes/nwc.lazy.tsx index 9c84f15a..e924d934 100644 --- a/apps/desktop2/src/routes/nwc.lazy.tsx +++ b/apps/desktop2/src/routes/nwc.lazy.tsx @@ -1,4 +1,4 @@ -import { ArrowRightIcon, ZapIcon } from "@lume/icons"; +import { ZapIcon } from "@lume/icons"; import { Container } from "@lume/ui"; import { createLazyFileRoute } from "@tanstack/react-router"; import { useState } from "react"; @@ -15,14 +15,11 @@ function Screen() { const save = async () => { const nwc = await ark.set_nwc(uri); - - if (nwc) { - setIsDone(true); - } + setIsDone(nwc); }; return ( - +
{!isDone ? ( <> @@ -44,17 +41,15 @@ function Screen() { value={uri} onChange={(e) => setUri(e.target.value)} placeholder="nostrconnect://" - className="h-24 w-full resize-none rounded-lg border-transparent bg-white placeholder:text-neutral-600 focus:border-blue-500 focus:ring focus:ring-blue-100 dark:bg-black dark:focus:ring-blue-900" + className="h-24 w-full rounded-lg border-neutral-300 bg-transparent px-3 placeholder:text-neutral-500 focus:border-blue-500 focus:ring focus:ring-blue-200 dark:border-neutral-700 dark:placeholder:text-neutral-400 dark:focus:ring-blue-800" />
diff --git a/apps/desktop2/src/routes/users/$pubkey.lazy.tsx b/apps/desktop2/src/routes/users/$pubkey.lazy.tsx index 628b7b10..ebefdace 100644 --- a/apps/desktop2/src/routes/users/$pubkey.lazy.tsx +++ b/apps/desktop2/src/routes/users/$pubkey.lazy.tsx @@ -1,6 +1,6 @@ import { createLazyFileRoute } from "@tanstack/react-router"; import { WindowVirtualizer } from "virtua"; -import { User } from "@lume/ui"; +import { Box, Container, User } from "@lume/ui"; import { EventList } from "./-components/eventList"; export const Route = createLazyFileRoute("/users/$pubkey")({ @@ -11,36 +11,33 @@ function Screen() { const { pubkey } = Route.useParams(); return ( - -
-
-
-
-
- - - -
- -
-
- - -
- -
- + + + + + + +
+ +
+
+ +
- - -
-

Notes

- + +
+
+ + +
+
+

Latest notes

+
-
-
- + + + ); } diff --git a/apps/web/package.json b/apps/web/package.json index 520b41b9..b5549192 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -13,7 +13,7 @@ "@astrojs/check": "^0.5.10", "@astrojs/tailwind": "^5.1.0", "@fontsource/geist-mono": "^5.0.2", - "astro": "^4.5.14", + "astro": "^4.5.15", "astro-seo-meta": "^4.1.0", "astro-seo-schema": "^4.0.0", "schema-dts": "^1.1.2", diff --git a/package.json b/package.json index 0f6ace5b..e259654b 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "tauri": "tauri" }, "devDependencies": { - "@biomejs/biome": "^1.6.3", - "@tauri-apps/cli": "2.0.0-beta.9", + "@biomejs/biome": "^1.6.4", + "@tauri-apps/cli": "2.0.0-beta.12", "turbo": "^1.13.2" }, "packageManager": "pnpm@8.9.0", @@ -20,7 +20,7 @@ "node": ">=18" }, "dependencies": { - "@tauri-apps/api": "2.0.0-beta.5", + "@tauri-apps/api": "2.0.0-beta.7", "@tauri-apps/plugin-autostart": "2.0.0-beta.2", "@tauri-apps/plugin-clipboard-manager": "2.1.0-beta.0", "@tauri-apps/plugin-dialog": "2.0.0-beta.2", @@ -30,7 +30,6 @@ "@tauri-apps/plugin-os": "2.0.0-beta.2", "@tauri-apps/plugin-process": "2.0.0-beta.2", "@tauri-apps/plugin-shell": "2.0.0-beta.2", - "@tauri-apps/plugin-sql": "2.0.0-beta.2", "@tauri-apps/plugin-updater": "2.0.0-beta.2", "@tauri-apps/plugin-upload": "2.0.0-beta.2" } diff --git a/packages/ark/src/ark.ts b/packages/ark/src/ark.ts index adbd627b..b392bcdf 100644 --- a/packages/ark/src/ark.ts +++ b/packages/ark/src/ark.ts @@ -4,6 +4,7 @@ import type { Contact, Event, EventWithReplies, + Interests, Keys, Metadata, Settings, @@ -14,10 +15,10 @@ import { readFile } from "@tauri-apps/plugin-fs"; import { generateContentTags } from "@lume/utils"; export class Ark { - public accounts: Account[]; + public windows: WebviewWindow[]; constructor() { - this.accounts = []; + this.windows = []; } public async get_all_accounts() { @@ -29,8 +30,6 @@ export class Ark { for (const item of cmd) { accounts.push({ npub: item.replace(".npub", "") }); } - - this.accounts = accounts; return accounts; } } catch { @@ -127,21 +126,24 @@ export class Ark { } public async get_events( - type: "local" | "global", limit: number, asOf?: number, - dedup?: boolean, + contacts?: string[], + global?: boolean, ) { try { let until: string = undefined; if (asOf && asOf > 0) until = asOf.toString(); + const dedup = true; const seenIds = new Set(); const dedupQueue = new Set(); - const nostrEvents: Event[] = await invoke(`get_${type}_events`, { + const nostrEvents: Event[] = await invoke("get_events", { limit, until, + contacts, + global, }); if (dedup) { @@ -156,7 +158,6 @@ export class Ark { dedupQueue.add(event.id); break; } - seenIds.add(tag); } } @@ -173,6 +174,51 @@ export class Ark { } } + public async get_events_from_interests( + hashtags: string[], + limit: number, + asOf?: number, + global?: boolean, + ) { + let until: string = undefined; + if (asOf && asOf > 0) until = asOf.toString(); + + const dedup = true; + const seenIds = new Set(); + const dedupQueue = new Set(); + + const nostrEvents: Event[] = await invoke("get_events_from_interests", { + hashtags, + limit, + until, + global, + }); + + if (dedup) { + for (const event of nostrEvents) { + const tags = event.tags + .filter((el) => el[0] === "e") + ?.map((item) => item[1]); + + if (tags.length) { + for (const tag of tags) { + if (seenIds.has(tag)) { + dedupQueue.add(event.id); + break; + } + seenIds.add(tag); + } + } + } + + return nostrEvents + .filter((event) => !dedupQueue.has(event.id)) + .sort((a, b) => b.created_at - a.created_at); + } + + return nostrEvents.sort((a, b) => b.created_at - a.created_at); + } + public async publish(content: string, reply_to?: string, quote?: boolean) { try { const g = await generateContentTags(content); @@ -548,89 +594,159 @@ export class Ark { } } + public async get_interest(id: string) { + try { + const cmd: string = await invoke("get_interest", { id }); + if (!cmd) return null; + if (!cmd.length) return null; + + const interests: Interests = JSON.parse(cmd); + return interests; + } catch { + return null; + } + } + + public async set_interest( + words: string[], + users: string[], + hashtags: string[], + ) { + try { + const interests: Interests = { + words: words ?? [], + users: users ?? [], + hashtags: hashtags ?? [], + }; + const cmd: string = await invoke("set_interest", { + content: JSON.stringify(interests), + }); + return cmd; + } catch { + return null; + } + } + public open_thread(id: string) { - return new WebviewWindow(`event-${id}`, { - title: "Thread", - url: `/events/${id}`, - minWidth: 500, - width: 500, - height: 800, - hiddenTitle: true, - titleBarStyle: "overlay", - center: false, - }); + try { + const window = new WebviewWindow(`event-${id}`, { + title: "Thread", + url: `/events/${id}`, + minWidth: 500, + minHeight: 800, + width: 500, + height: 800, + hiddenTitle: true, + titleBarStyle: "overlay", + center: false, + }); + + this.windows.push(window); + } catch (e) { + throw new Error(String(e)); + } } public open_profile(pubkey: string) { - return new WebviewWindow(`user-${pubkey}`, { - title: "Profile", - url: `/users/${pubkey}`, - minWidth: 500, - width: 500, - height: 800, - hiddenTitle: true, - titleBarStyle: "overlay", - }); + try { + const window = new WebviewWindow(`user-${pubkey}`, { + title: "Profile", + url: `/users/${pubkey}`, + minWidth: 500, + minHeight: 800, + width: 500, + height: 800, + hiddenTitle: true, + titleBarStyle: "overlay", + }); + + this.windows.push(window); + } catch (e) { + throw new Error(String(e)); + } } public open_editor(reply_to?: string, quote: boolean = false) { - let url: string; + try { + let url: string; - if (reply_to) { - url = `/editor?reply_to=${reply_to}"e=${quote}`; - } else { - url = "/editor"; + if (reply_to) { + url = `/editor?reply_to=${reply_to}"e=${quote}`; + } else { + url = "/editor"; + } + + const window = new WebviewWindow(`editor-${reply_to ? reply_to : 0}`, { + title: "Editor", + url, + minWidth: 500, + minHeight: 400, + width: 600, + height: 400, + hiddenTitle: true, + titleBarStyle: "overlay", + }); + + this.windows.push(window); + } catch (e) { + throw new Error(String(e)); } - - return new WebviewWindow("editor", { - title: "Editor", - url, - minWidth: 500, - minHeight: 400, - width: 600, - height: 400, - hiddenTitle: true, - titleBarStyle: "overlay", - fileDropEnabled: true, - }); } public open_nwc() { - return new WebviewWindow("nwc", { - title: "Nostr Wallet Connect", - url: "/nwc", - minWidth: 400, - width: 400, - height: 600, - hiddenTitle: true, - titleBarStyle: "overlay", - fileDropEnabled: true, - }); + try { + const window = new WebviewWindow("nwc", { + title: "Nostr Wallet Connect", + url: "/nwc", + minWidth: 400, + minHeight: 600, + width: 400, + height: 600, + hiddenTitle: true, + titleBarStyle: "overlay", + }); + + this.windows.push(window); + } catch (e) { + throw new Error(String(e)); + } } public open_zap(id: string, pubkey: string, account: string) { - return new WebviewWindow(`zap-${id}`, { - title: "Nostr Wallet Connect", - url: `/zap/${id}?pubkey=${pubkey}&account=${account}`, - minWidth: 400, - width: 400, - height: 500, - hiddenTitle: true, - titleBarStyle: "overlay", - fileDropEnabled: true, - }); + try { + const window = new WebviewWindow(`zap-${id}`, { + title: "Zap", + url: `/zap/${id}?pubkey=${pubkey}&account=${account}`, + minWidth: 400, + minHeight: 500, + width: 400, + height: 500, + hiddenTitle: true, + titleBarStyle: "overlay", + }); + + this.windows.push(window); + } catch (e) { + throw new Error(String(e)); + } } public open_settings() { - return new WebviewWindow("settings", { - title: "Settings", - url: "/settings", - minWidth: 600, - width: 800, - height: 500, - hiddenTitle: true, - titleBarStyle: "overlay", - fileDropEnabled: true, - }); + try { + const window = new WebviewWindow("settings", { + title: "Settings", + url: "/settings", + minWidth: 600, + minHeight: 500, + width: 800, + height: 500, + hiddenTitle: true, + titleBarStyle: "overlay", + }); + + this.windows.push(window); + } catch (e) { + throw new Error(String(e)); + } } } diff --git a/packages/ui/src/column/content.tsx b/packages/ui/src/column/content.tsx index 3c079945..4570043f 100644 --- a/packages/ui/src/column/content.tsx +++ b/packages/ui/src/column/content.tsx @@ -9,7 +9,12 @@ export function ColumnContent({ className?: string; }) { return ( -
+
{children}
); diff --git a/packages/ui/src/note/user.tsx b/packages/ui/src/note/user.tsx index c1c16663..dff99ab8 100644 --- a/packages/ui/src/note/user.tsx +++ b/packages/ui/src/note/user.tsx @@ -34,6 +34,7 @@ export function NoteUser({ className }: { className?: string }) {
diff --git a/packages/utils/package.json b/packages/utils/package.json index bf640afd..c369f19f 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -22,7 +22,7 @@ "@lume/tsconfig": "workspace:^", "@lume/types": "workspace:^", "@types/react": "^18.2.74", - "@types/react-dom": "^18.2.23", + "@types/react-dom": "^18.2.24", "tailwind-merge": "^2.2.2", "typescript": "^5.4.3" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f622e213..8e8e90b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@tauri-apps/api': - specifier: 2.0.0-beta.5 - version: 2.0.0-beta.5 + specifier: 2.0.0-beta.7 + version: 2.0.0-beta.7 '@tauri-apps/plugin-autostart': specifier: 2.0.0-beta.2 version: 2.0.0-beta.2 @@ -38,9 +38,6 @@ importers: '@tauri-apps/plugin-shell': specifier: 2.0.0-beta.2 version: 2.0.0-beta.2 - '@tauri-apps/plugin-sql': - specifier: 2.0.0-beta.2 - version: 2.0.0-beta.2 '@tauri-apps/plugin-updater': specifier: 2.0.0-beta.2 version: 2.0.0-beta.2 @@ -49,11 +46,11 @@ importers: version: 2.0.0-beta.2 devDependencies: '@biomejs/biome': - specifier: ^1.6.3 - version: 1.6.3 + specifier: ^1.6.4 + version: 1.6.4 '@tauri-apps/cli': - specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9 + specifier: 2.0.0-beta.12 + version: 2.0.0-beta.12 turbo: specifier: ^1.13.2 version: 1.13.2 @@ -74,22 +71,22 @@ importers: version: link:../../packages/utils '@radix-ui/react-checkbox': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-collapsible': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.0.6(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.7(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-switch': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@tanstack/query-sync-storage-persister': specifier: ^5.28.13 version: 5.28.13 @@ -164,17 +161,17 @@ importers: specifier: ^1.26.7 version: 1.26.7(csstype@3.1.3)(react-dom@18.2.0)(react@18.2.0) '@tanstack/router-vite-plugin': - specifier: ^1.26.6 - version: 1.26.6(vite@5.2.7) + specifier: ^1.26.8 + version: 1.26.8(vite@5.2.8) '@types/react': specifier: ^18.2.74 version: 18.2.74 '@types/react-dom': - specifier: ^18.2.23 - version: 18.2.23 + specifier: ^18.2.24 + version: 18.2.24 '@vitejs/plugin-react-swc': specifier: ^3.6.0 - version: 3.6.0(vite@5.2.7) + version: 3.6.0(vite@5.2.8) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -188,14 +185,14 @@ importers: specifier: ^5.4.3 version: 5.4.3 vite: - specifier: ^5.2.7 - version: 5.2.7 + specifier: ^5.2.8 + version: 5.2.8 vite-plugin-top-level-await: specifier: ^1.4.1 - version: 1.4.1(vite@5.2.7) + version: 1.4.1(vite@5.2.8) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.3)(vite@5.2.7) + version: 4.3.2(typescript@5.4.3)(vite@5.2.8) apps/web: dependencies: @@ -204,19 +201,19 @@ importers: version: 0.5.10(typescript@5.4.3) '@astrojs/tailwind': specifier: ^5.1.0 - version: 5.1.0(astro@4.5.14)(tailwindcss@3.4.3) + version: 5.1.0(astro@4.5.15)(tailwindcss@3.4.3) '@fontsource/geist-mono': specifier: ^5.0.2 version: 5.0.2 astro: - specifier: ^4.5.14 - version: 4.5.14(typescript@5.4.3) + specifier: ^4.5.15 + version: 4.5.15(typescript@5.4.3) astro-seo-meta: specifier: ^4.1.0 - version: 4.1.0(astro@4.5.14) + version: 4.1.0(astro@4.5.15) astro-seo-schema: specifier: ^4.0.0 - version: 4.0.0(astro@4.5.14)(schema-dts@1.1.2) + version: 4.0.0(astro@4.5.15)(schema-dts@1.1.2) schema-dts: specifier: ^1.1.2 version: 1.1.2(typescript@5.4.3) @@ -247,19 +244,19 @@ importers: version: 1.0.4(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-collapsible': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.0.6(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-hover-card': specifier: ^1.0.7 version: 1.0.7(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.7(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': specifier: ^1.0.7 version: 1.0.7(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) @@ -398,19 +395,19 @@ importers: version: 1.0.4(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-collapsible': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: ^1.0.5 - version: 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': specifier: ^2.0.6 - version: 2.0.6(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-hover-card': specifier: ^1.0.7 version: 1.0.7(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': specifier: ^1.0.7 - version: 1.0.7(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.7(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': specifier: ^1.0.7 version: 1.0.7(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) @@ -543,8 +540,8 @@ importers: specifier: ^18.2.74 version: 18.2.74 '@types/react-dom': - specifier: ^18.2.23 - version: 18.2.23 + specifier: ^18.2.24 + version: 18.2.24 tailwind-merge: specifier: ^2.2.2 version: 2.2.2 @@ -637,7 +634,7 @@ packages: remark-parse: 11.0.0 remark-rehype: 11.1.0 remark-smartypants: 2.1.0 - shiki: 1.2.3 + shiki: 1.2.4 unified: 11.0.4 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -654,13 +651,13 @@ packages: prismjs: 1.29.0 dev: false - /@astrojs/tailwind@5.1.0(astro@4.5.14)(tailwindcss@3.4.3): + /@astrojs/tailwind@5.1.0(astro@4.5.15)(tailwindcss@3.4.3): resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==} peerDependencies: astro: ^3.0.0 || ^4.0.0 tailwindcss: ^3.0.24 dependencies: - astro: 4.5.14(typescript@5.4.3) + astro: 4.5.15(typescript@5.4.3) autoprefixer: 10.4.19(postcss@8.4.38) postcss: 8.4.38 postcss-load-config: 4.0.2(postcss@8.4.38) @@ -691,21 +688,21 @@ packages: '@babel/highlight': 7.24.2 picocolors: 1.0.0 - /@babel/compat-data@7.24.1: - resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} + /@babel/compat-data@7.24.4: + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.24.3: - resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} + /@babel/core@7.24.4: + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 + '@babel/generator': 7.24.4 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) - '@babel/helpers': 7.24.1 - '@babel/parser': 7.24.1 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 @@ -717,8 +714,8 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.24.1: - resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + /@babel/generator@7.24.4: + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.0 @@ -736,25 +733,25 @@ packages: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.24.1 + '@babel/compat-data': 7.24.4 '@babel/helper-validator-option': 7.23.5 browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} + /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 @@ -790,13 +787,13 @@ packages: dependencies: '@babel/types': 7.24.0 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.24.3 '@babel/helper-simple-access': 7.22.5 @@ -814,13 +811,13 @@ packages: resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -857,8 +854,8 @@ packages: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - /@babel/helpers@7.24.1: - resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} + /@babel/helpers@7.24.4: + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 @@ -876,80 +873,80 @@ packages: js-tokens: 4.0.0 picocolors: 1.0.0 - /@babel/parser@7.24.1: - resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.24.0 - /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.3): + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 - /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.3): + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.3): + /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.3): + /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.24.3 '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) '@babel/types': 7.24.0 - /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.3): - resolution: {integrity: sha512-liYSESjX2fZ7JyBFkYG78nfvHlMKE6IpNdTVnxmlYUR+j5ZLsitFbaAE+eJSK2zPPkNWNw4mXL51rQ8WrvdK0w==} + /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.3 + '@babel/core': 7.24.4 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) '@babel/helper-plugin-utils': 7.24.0 - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) dev: true - /@babel/runtime@7.24.1: - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + /@babel/runtime@7.24.4: + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -959,7 +956,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.1 + '@babel/parser': 7.24.4 '@babel/types': 7.24.0 /@babel/traverse@7.24.1: @@ -967,12 +964,12 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.1 + '@babel/generator': 7.24.4 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.1 + '@babel/parser': 7.24.4 '@babel/types': 7.24.0 debug: 4.3.4 globals: 11.12.0 @@ -987,88 +984,88 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - /@biomejs/biome@1.6.3: - resolution: {integrity: sha512-Xnp/TIpIcTnRA4LwerJuoGYQJEqwXtn5AL0U0OPXll/QGbAKmcUAfizU880xTwZRD4f53iceqODLDaD3wxYlIw==} - engines: {node: '>=14.*'} + /@biomejs/biome@1.6.4: + resolution: {integrity: sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA==} + engines: {node: '>=14.21.3'} hasBin: true requiresBuild: true optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.6.3 - '@biomejs/cli-darwin-x64': 1.6.3 - '@biomejs/cli-linux-arm64': 1.6.3 - '@biomejs/cli-linux-arm64-musl': 1.6.3 - '@biomejs/cli-linux-x64': 1.6.3 - '@biomejs/cli-linux-x64-musl': 1.6.3 - '@biomejs/cli-win32-arm64': 1.6.3 - '@biomejs/cli-win32-x64': 1.6.3 + '@biomejs/cli-darwin-arm64': 1.6.4 + '@biomejs/cli-darwin-x64': 1.6.4 + '@biomejs/cli-linux-arm64': 1.6.4 + '@biomejs/cli-linux-arm64-musl': 1.6.4 + '@biomejs/cli-linux-x64': 1.6.4 + '@biomejs/cli-linux-x64-musl': 1.6.4 + '@biomejs/cli-win32-arm64': 1.6.4 + '@biomejs/cli-win32-x64': 1.6.4 dev: true - /@biomejs/cli-darwin-arm64@1.6.3: - resolution: {integrity: sha512-0E8PGu3/8HSkBJdtjno+niJE1ANS/12D7sPK65vw5lTBYmmaYwJdfclDp6XO0IAX7uVd3/YtXlsEua0SVrNt3Q==} - engines: {node: '>=14.*'} + /@biomejs/cli-darwin-arm64@1.6.4: + resolution: {integrity: sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@biomejs/cli-darwin-x64@1.6.3: - resolution: {integrity: sha512-UWu0We/aIRtWXgJKe6ygWt2xR0yXs64BwWqtZbfxBojRn3jgW8UdFAkV5yiUOX3TQlsV6BZH1EQaUAVsccUeeA==} - engines: {node: '>=14.*'} + /@biomejs/cli-darwin-x64@1.6.4: + resolution: {integrity: sha512-uo1zgM7jvzcoDpF6dbGizejDLCqNpUIRkCj/oEK0PB0NUw8re/cn1EnxuOLZqDpn+8G75COLQTOx8UQIBBN/Kg==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@biomejs/cli-linux-arm64-musl@1.6.3: - resolution: {integrity: sha512-AntGCSfLN1nPcQj4VOk3X2JgnDw07DaPC8BuBmRcsRmn+7GPSWLllVN5awIKlRPZEbGJtSnLkTiDc5Bxw8OiuA==} - engines: {node: '>=14.*'} + /@biomejs/cli-linux-arm64-musl@1.6.4: + resolution: {integrity: sha512-Hp8Jwt6rjj0wCcYAEN6/cfwrrPLLlGOXZ56Lei4Pt4jy39+UuPeAVFPeclrrCfxyL1wQ2xPrhd/saTHSL6DoJg==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@biomejs/cli-linux-arm64@1.6.3: - resolution: {integrity: sha512-wFVkQw38kOssfnkbpSh6ums5TaElw3RAt5i/VZwHmgR2nQgE0fHXLO7HwIE9VBkOEdbiIFq+2PxvFIHuJF3z3Q==} - engines: {node: '>=14.*'} + /@biomejs/cli-linux-arm64@1.6.4: + resolution: {integrity: sha512-wAOieaMNIpLrxGc2/xNvM//CIZg7ueWy3V5A4T7gDZ3OL/Go27EKE59a+vMKsBCYmTt7jFl4yHz0TUkUbodA/w==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@biomejs/cli-linux-x64-musl@1.6.3: - resolution: {integrity: sha512-GelAvGsUwbxfFpKLG+7+dvDmbrfkGqn08sL8CMQrGnhjE1krAqHWiXQsjfmi0UMFdMsk7hbc4oSAP+1+mrXcHQ==} - engines: {node: '>=14.*'} + /@biomejs/cli-linux-x64-musl@1.6.4: + resolution: {integrity: sha512-wqi0hr8KAx5kBO0B+m5u8QqiYFFBJOSJVSuRqTeGWW+GYLVUtXNidykNqf1JsW6jJDpbkSp2xHKE/bTlVaG2Kg==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@biomejs/cli-linux-x64@1.6.3: - resolution: {integrity: sha512-vyn8TQaTZg617hjqFitwGmb1St5XXvq6I3vmxU/QFalM74BryMSvYCrYWb2Yw/TkykdEwZTMGYp+SWHRb04fTg==} - engines: {node: '>=14.*'} + /@biomejs/cli-linux-x64@1.6.4: + resolution: {integrity: sha512-qTWhuIw+/ePvOkjE9Zxf5OqSCYxtAvcTJtVmZT8YQnmY2I62JKNV2m7tf6O5ViKZUOP0mOQ6NgqHKcHH1eT8jw==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@biomejs/cli-win32-arm64@1.6.3: - resolution: {integrity: sha512-Gx8N2Tixke6pAI1BniteCVZgUUmaFEDYosdWxoaCus15BZI/7RcBxhsRM0ZL/lC66StSQ8vHl8JBrrld1k570Q==} - engines: {node: '>=14.*'} + /@biomejs/cli-win32-arm64@1.6.4: + resolution: {integrity: sha512-Wp3FiEeF6v6C5qMfLkHwf4YsoNHr/n0efvoC8jCKO/kX05OXaVExj+1uVQ1eGT7Pvx0XVm/TLprRO0vq/V6UzA==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@biomejs/cli-win32-x64@1.6.3: - resolution: {integrity: sha512-meungPJw64SqoR7LXY1wG7GC4+4wgpyThdFUMGXa6PCe0BLFOIOcZ9VMj9PstuczMPdgmt/BUMPsj25dK1VO8A==} - engines: {node: '>=14.*'} + /@biomejs/cli-win32-x64@1.6.4: + resolution: {integrity: sha512-mz183Di5hTSGP7KjNWEhivcP1wnHLGmOxEROvoFsIxMYtDhzJDad4k5gI/1JbmA0xe4n52vsgqo09tBhrMT/Zg==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] requiresBuild: true @@ -1653,7 +1650,7 @@ packages: /@radix-ui/primitive@1.0.1: resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 dev: false /@radix-ui/react-accordion@1.1.2(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): @@ -1669,15 +1666,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 @@ -1697,19 +1694,19 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -1722,10 +1719,10 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1743,9 +1740,9 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 @@ -1753,7 +1750,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} peerDependencies: '@types/react': '*' @@ -1766,22 +1763,22 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: '@types/react': '*' @@ -1794,22 +1791,22 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -1822,13 +1819,13 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1842,7 +1839,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@types/react': 18.2.74 react: 18.2.0 dev: false @@ -1856,12 +1853,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@types/react': 18.2.74 react: 18.2.0 dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: '@types/react': '*' @@ -1874,21 +1871,21 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 aria-hidden: 1.2.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -1904,12 +1901,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@types/react': 18.2.74 react: 18.2.0 dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -1922,19 +1919,19 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -1947,16 +1944,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -1970,12 +1967,12 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@types/react': 18.2.74 react: 18.2.0 dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -1988,12 +1985,12 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2011,15 +2008,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 @@ -2035,13 +2032,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -2054,32 +2051,32 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 aria-hidden: 1.2.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.74)(react@18.2.0) dev: false - /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' @@ -2092,29 +2089,29 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 aria-hidden: 1.2.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.74)(react@18.2.0) dev: false - /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -2127,24 +2124,24 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/rect': 1.0.1 '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -2157,15 +2154,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -2178,16 +2175,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -2200,15 +2197,15 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -2221,18 +2218,18 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2246,13 +2243,13 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 dev: false - /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -2265,16 +2262,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 - '@types/react-dom': 18.2.23 + '@types/react-dom': 18.2.24 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2292,16 +2289,16 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) @@ -2319,7 +2316,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@types/react': 18.2.74 react: 18.2.0 dev: false @@ -2333,7 +2330,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 @@ -2348,7 +2345,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 @@ -2363,7 +2360,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@types/react': 18.2.74 react: 18.2.0 dev: false @@ -2377,7 +2374,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@types/react': 18.2.74 react: 18.2.0 dev: false @@ -2391,7 +2388,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/rect': 1.0.1 '@types/react': 18.2.74 react: 18.2.0 @@ -2406,7 +2403,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 @@ -2425,8 +2422,8 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.23)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.74 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2435,7 +2432,7 @@ packages: /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 dev: false /@rollup/plugin-virtual@3.0.2: @@ -2448,106 +2445,106 @@ packages: optional: true dev: true - /@rollup/rollup-android-arm-eabi@4.13.2: - resolution: {integrity: sha512-3XFIDKWMFZrMnao1mJhnOT1h2g0169Os848NhhmGweEcfJ4rCi+3yMCOLG4zA61rbJdkcrM/DjVZm9Hg5p5w7g==} + /@rollup/rollup-android-arm-eabi@4.14.0: + resolution: {integrity: sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.13.2: - resolution: {integrity: sha512-GdxxXbAuM7Y/YQM9/TwwP+L0omeE/lJAR1J+olu36c3LqqZEBdsIWeQ91KBe6nxwOnb06Xh7JS2U5ooWU5/LgQ==} + /@rollup/rollup-android-arm64@4.14.0: + resolution: {integrity: sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.13.2: - resolution: {integrity: sha512-mCMlpzlBgOTdaFs83I4XRr8wNPveJiJX1RLfv4hggyIVhfB5mJfN4P8Z6yKh+oE4Luz+qq1P3kVdWrCKcMYrrA==} + /@rollup/rollup-darwin-arm64@4.14.0: + resolution: {integrity: sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.13.2: - resolution: {integrity: sha512-yUoEvnH0FBef/NbB1u6d3HNGyruAKnN74LrPAfDQL3O32e3k3OSfLrPgSJmgb3PJrBZWfPyt6m4ZhAFa2nZp2A==} + /@rollup/rollup-darwin-x64@4.14.0: + resolution: {integrity: sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.13.2: - resolution: {integrity: sha512-GYbLs5ErswU/Xs7aGXqzc3RrdEjKdmoCrgzhJWyFL0r5fL3qd1NPcDKDowDnmcoSiGJeU68/Vy+OMUluRxPiLQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.14.0: + resolution: {integrity: sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.13.2: - resolution: {integrity: sha512-L1+D8/wqGnKQIlh4Zre9i4R4b4noxzH5DDciyahX4oOz62CphY7WDWqJoQ66zNR4oScLNOqQJfNSIAe/6TPUmQ==} + /@rollup/rollup-linux-arm64-gnu@4.14.0: + resolution: {integrity: sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.13.2: - resolution: {integrity: sha512-tK5eoKFkXdz6vjfkSTCupUzCo40xueTOiOO6PeEIadlNBkadH1wNOH8ILCPIl8by/Gmb5AGAeQOFeLev7iZDOA==} + /@rollup/rollup-linux-arm64-musl@4.14.0: + resolution: {integrity: sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.13.2: - resolution: {integrity: sha512-zvXvAUGGEYi6tYhcDmb9wlOckVbuD+7z3mzInCSTACJ4DQrdSLPNUeDIcAQW39M3q6PDquqLWu7pnO39uSMRzQ==} + /@rollup/rollup-linux-powerpc64le-gnu@4.14.0: + resolution: {integrity: sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA==} cpu: [ppc64le] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.13.2: - resolution: {integrity: sha512-C3GSKvMtdudHCN5HdmAMSRYR2kkhgdOfye4w0xzyii7lebVr4riCgmM6lRiSCnJn2w1Xz7ZZzHKuLrjx5620kw==} + /@rollup/rollup-linux-riscv64-gnu@4.14.0: + resolution: {integrity: sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-s390x-gnu@4.13.2: - resolution: {integrity: sha512-l4U0KDFwzD36j7HdfJ5/TveEQ1fUTjFFQP5qIt9gBqBgu1G8/kCaq5Ok05kd5TG9F8Lltf3MoYsUMw3rNlJ0Yg==} + /@rollup/rollup-linux-s390x-gnu@4.14.0: + resolution: {integrity: sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA==} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.13.2: - resolution: {integrity: sha512-xXMLUAMzrtsvh3cZ448vbXqlUa7ZL8z0MwHp63K2IIID2+DeP5iWIT6g1SN7hg1VxPzqx0xZdiDM9l4n9LRU1A==} + /@rollup/rollup-linux-x64-gnu@4.14.0: + resolution: {integrity: sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.13.2: - resolution: {integrity: sha512-M/JYAWickafUijWPai4ehrjzVPKRCyDb1SLuO+ZyPfoXgeCEAlgPkNXewFZx0zcnoIe3ay4UjXIMdXQXOZXWqA==} + /@rollup/rollup-linux-x64-musl@4.14.0: + resolution: {integrity: sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.13.2: - resolution: {integrity: sha512-2YWwoVg9KRkIKaXSh0mz3NmfurpmYoBBTAXA9qt7VXk0Xy12PoOP40EFuau+ajgALbbhi4uTj3tSG3tVseCjuA==} + /@rollup/rollup-win32-arm64-msvc@4.14.0: + resolution: {integrity: sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.13.2: - resolution: {integrity: sha512-2FSsE9aQ6OWD20E498NYKEQLneShWes0NGMPQwxWOdws35qQXH+FplabOSP5zEe1pVjurSDOGEVCE2agFwSEsw==} + /@rollup/rollup-win32-ia32-msvc@4.14.0: + resolution: {integrity: sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.13.2: - resolution: {integrity: sha512-7h7J2nokcdPePdKykd8wtc8QqqkqxIrUz7MHj6aNr8waBRU//NLDVnNjQnqQO6fqtjrtCdftpbTuOKAyrAQETQ==} + /@rollup/rollup-win32-x64-msvc@4.14.0: + resolution: {integrity: sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag==} cpu: [x64] os: [win32] requiresBuild: true @@ -2576,8 +2573,8 @@ packages: '@scure/base': 1.1.1 dev: false - /@shikijs/core@1.2.3: - resolution: {integrity: sha512-SM+aiQVaEK2P53dEcsvhq9+LJPr0rzwezHbMQhHaSrPN4OlOB4vp1qTdhVEKfMg6atdq8s9ZotWW/CSCzWftwg==} + /@shikijs/core@1.2.4: + resolution: {integrity: sha512-ClaUWpt8oTzjcF0MM1P81AeWyzc1sNSJlAjMG80CbwqbFqXSNz+NpQVUC0icobt3sZn43Sn27M4pHD/Jmp3zHw==} dev: false /@swc/core-darwin-arm64@1.4.11: @@ -2817,16 +2814,16 @@ packages: zod: 3.22.4 dev: true - /@tanstack/router-vite-plugin@1.26.6(vite@5.2.7): - resolution: {integrity: sha512-V7d4zKXSIxBDQCUEuwniIQac4QbbiWYPzIga7TQPNlgJTlcosQnSM9nArFz1khMr0gnkdEeDpmYk1T+yBXBdag==} + /@tanstack/router-vite-plugin@1.26.8(vite@5.2.8): + resolution: {integrity: sha512-aoai3HGpKBEE58CjrX83/8Jzt6PUPobTpiD0tLSZ9VGGKMqkxQAXDBJycLTMpzKGBpkcZurNOh+DZP2qZd47ww==} engines: {node: '>=12'} dependencies: - '@babel/core': 7.24.3 - '@babel/generator': 7.24.1 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) - '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.3) + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) '@babel/template': 7.24.0 '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 @@ -2835,7 +2832,7 @@ packages: '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 - '@vitejs/plugin-react': 4.2.1(vite@5.2.7) + '@vitejs/plugin-react': 4.2.1(vite@5.2.8) zod: 3.22.4 transitivePeerDependencies: - supports-color @@ -2850,18 +2847,18 @@ packages: engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/api@2.0.0-beta.5: - resolution: {integrity: sha512-lKRdV3adcNN8N+XLrnhGgWFrHsb7/I1VgweLjqTdOpEU7PKZcKvn1j3WOQGNNGSTD/RPSYBaGuXeE0Nk8eW3jw==} - engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - dev: false - /@tauri-apps/api@2.0.0-beta.6: resolution: {integrity: sha512-ay3kAXYQoqC3rX4Vr3y6uGwrBhRPM7UQqZ9wr1VYzN6lkcMIcu7+UBvytmcfXDlVctqFoMQJafn6+dK/Oqh8+Q==} engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} dev: false - /@tauri-apps/cli-darwin-arm64@2.0.0-beta.9: - resolution: {integrity: sha512-7OthLcko0Z2FUpP6fqJQhjaVKmxgXW6tWOi+X67HDjP1Iixquhh/vP5JqdSi7gYK8bphcegPp9UETuAgHx7MtA==} + /@tauri-apps/api@2.0.0-beta.7: + resolution: {integrity: sha512-cM7SJQP4DBkLLMOdybLFYUURWn/tng2FEdAnXlu42f3NhFxKL4KVeeQTkuwlgC7ePwwwvDSqiXGiF+dKOadY7w==} + engines: {node: '>= 18', npm: '>= 6.6.0', yarn: '>= 1.19.1'} + dev: false + + /@tauri-apps/cli-darwin-arm64@2.0.0-beta.12: + resolution: {integrity: sha512-+Ksrxc4QQE1R62OreCybM8PNnF090qhf+ZeRZTZ9JxOujz4Tq/RiE1vC5nRlDu+Cd3pL63fZ2TsANj2PnpN+qw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -2869,8 +2866,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-darwin-x64@2.0.0-beta.9: - resolution: {integrity: sha512-Pwf6GBGZuV9y7PEtaLQlzS3x91hFPkA0Ro8vaUxTirYkFiJFTgoigXDHjMsjfjy+E/8oAAHr7Z0zeA6ijR5t1w==} + /@tauri-apps/cli-darwin-x64@2.0.0-beta.12: + resolution: {integrity: sha512-KEkcJp7jfWMEiRFTJ3/yJhy8EFwgJPNGnNYjKTD5CAba9wMexxs23U7YLAWdSNrbSgPAox0pBqXaSj6p2HH0Wg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -2878,8 +2875,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.9: - resolution: {integrity: sha512-daAXSac82vbYlwxbRT0DwFr4gP4v1XnHEwA72EeKRiKGw7GeHwzqoY/URVolBGY7sIBwwL+0qc1hqPde9dsm1g==} + /@tauri-apps/cli-linux-arm-gnueabihf@2.0.0-beta.12: + resolution: {integrity: sha512-EUDen1XNF/WfG5hjTZ6P/8IcpYPFm2Ox/FwlBPlePKZJrc+/3IveME/oyC3wrloscodV41yL2ise4SZuJtNAHA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] @@ -2887,8 +2884,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.9: - resolution: {integrity: sha512-qHyACvFWIAbcl1C7cq64ciIXxaLOnZAgGXIEE48JLc5VeXkpYUF5sNLPjafidY/CxYoFoE453lh3dLc3DjNhuw==} + /@tauri-apps/cli-linux-arm64-gnu@2.0.0-beta.12: + resolution: {integrity: sha512-VUhCBB6kaQmi7MyXTRccqemmz7s5n15Z718OIW1n6wI68oh0IsvC9KsrbDfgOLZVG6RXzmtzyXwnaIFQAgl+Cg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2896,8 +2893,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.9: - resolution: {integrity: sha512-DkrkxGKlQ1Sonvo4ltv6XqNxNuNxDyxfdZdvx3CEecKomMyFV6xTxp0/IcqF9fIRPL2Gp2PaPBWOuj+K8v95vw==} + /@tauri-apps/cli-linux-arm64-musl@2.0.0-beta.12: + resolution: {integrity: sha512-eus/fGCQZPcvwEa2HH2TJh1Xb2FeeVrnxL6lQseLPkgD7Wcu5mWz07AlLCMDOreUobb5vyOmm0L7d1HMIPrvEQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -2905,8 +2902,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.9: - resolution: {integrity: sha512-pY0DOrWAwSkIkhw7UdRK0VNVFLwP+yltqCoQ+Zji5Vwk/x98mBo0L2bF3nSOLhYPAaW41v3AIOIZY1sBYWSq/w==} + /@tauri-apps/cli-linux-x64-gnu@2.0.0-beta.12: + resolution: {integrity: sha512-C4SkDnjuhFSdSgsK8KNRj2b/oe/j1vrvI8+ZxUj+/o1jK71A2eiCN8pJlyMZYCN8wZUksGazxaFz62g0jceAEg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2914,8 +2911,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.9: - resolution: {integrity: sha512-GYQy1bKWbrRyr4X2epbltq82k4Vhr9TzNFky/fflOyDXlMP36IqBOjQ6PEzvKTajNglciIdTPQfdoUKX4+PA/Q==} + /@tauri-apps/cli-linux-x64-musl@2.0.0-beta.12: + resolution: {integrity: sha512-V8NlJ8wgNcMfKTGOubgfjRyyJVQsZxpOZkGjdfn/YK0UNdOC6iLuqxIki47hbnoJMqvuxa37lr7Z1JVawOMUyw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -2923,8 +2920,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.9: - resolution: {integrity: sha512-0DTM06N/x57+vV/itT3l/34ZHjXIxPc315OWHE9MmY+vE37t/QFp9FNZDN/VdveZ1ZgmEn3rSQNchqcMaMdD3w==} + /@tauri-apps/cli-win32-arm64-msvc@2.0.0-beta.12: + resolution: {integrity: sha512-dIsE5U4JRoVImW0PX9K82/dMjwugqc3DmgKbFKLYXgTFmSNaTNdojI/5VOPmbOIMJ8BNGDF8sjS80I0PZuEqvw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -2932,8 +2929,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.9: - resolution: {integrity: sha512-HxrSAVjYRjPGm97lf18BvuoirgrE5uyvpALvGO98m8ZO9Y9CHklEadYi19nCVlr5d4mmP2GUbxCCx1Mc8XRAuA==} + /@tauri-apps/cli-win32-ia32-msvc@2.0.0-beta.12: + resolution: {integrity: sha512-vTNrGzVV/LclD+4u+IOOwl1Ia2CqwZYK6AmMLp0ROLzbSn/9ROJJYe47V5VAZrnMjThEdb9fRL0FPYPk9yDaNA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -2941,8 +2938,8 @@ packages: dev: true optional: true - /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.9: - resolution: {integrity: sha512-abdCoiMjit9sSXziRCEf9VdEFbqqbEqg3ySOQmNAQTCsenr33iWjIoCMv/ThORtXKJ209yGyXlxBZY7Muxfi3A==} + /@tauri-apps/cli-win32-x64-msvc@2.0.0-beta.12: + resolution: {integrity: sha512-Z/++lJ1FraoN1ZaNxYuCynNm7SyEGC+yd/adYQvhaQyudZa5HW/8eFkLx8FRcIQkEkSqLBkHf9VpwjnTDBVlwQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2950,21 +2947,21 @@ packages: dev: true optional: true - /@tauri-apps/cli@2.0.0-beta.9: - resolution: {integrity: sha512-QYBuCAAdV10tGOTMWGLbt6d+2+Tq8K9bb4oiinChUV/JmCNe9SaTlG6VW1cCJDf+/F0AuGOTgjyBNw8DOiTrow==} + /@tauri-apps/cli@2.0.0-beta.12: + resolution: {integrity: sha512-MFh4Z093O+PXWI6KFR8E2zIOgpJ4zL8waDhFXVQgBpqiD4ieiqywjmbmNIWkVqYBGAia7ZI0juxpkZSyXT4f1A==} engines: {node: '>= 10'} hasBin: true optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.9 - '@tauri-apps/cli-darwin-x64': 2.0.0-beta.9 - '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.9 - '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.9 - '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.9 - '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.9 - '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.9 - '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.9 - '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.9 - '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.9 + '@tauri-apps/cli-darwin-arm64': 2.0.0-beta.12 + '@tauri-apps/cli-darwin-x64': 2.0.0-beta.12 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.0.0-beta.12 + '@tauri-apps/cli-linux-arm64-gnu': 2.0.0-beta.12 + '@tauri-apps/cli-linux-arm64-musl': 2.0.0-beta.12 + '@tauri-apps/cli-linux-x64-gnu': 2.0.0-beta.12 + '@tauri-apps/cli-linux-x64-musl': 2.0.0-beta.12 + '@tauri-apps/cli-win32-arm64-msvc': 2.0.0-beta.12 + '@tauri-apps/cli-win32-ia32-msvc': 2.0.0-beta.12 + '@tauri-apps/cli-win32-x64-msvc': 2.0.0-beta.12 dev: true /@tauri-apps/plugin-autostart@2.0.0-beta.2: @@ -3021,12 +3018,6 @@ packages: '@tauri-apps/api': 2.0.0-beta.4 dev: false - /@tauri-apps/plugin-sql@2.0.0-beta.2: - resolution: {integrity: sha512-gNX/4VjGl0TD4Ct58ar4bLF82iRp2L5sS79FmtzKlXYj7tVbkxenIi+mGIBz3Ut1JQP5WNL4/5wq74bkDlBggA==} - dependencies: - '@tauri-apps/api': 2.0.0-beta.4 - dev: false - /@tauri-apps/plugin-updater@2.0.0-beta.2: resolution: {integrity: sha512-T8EkAXawbyV/6/Lcf1VVIWhtGuals63zKn+udYNqlC8CRM5iYQ+8bM8Nmy2E+pIzkkx93d1t6/8geFitLZPmKw==} dependencies: @@ -3042,7 +3033,7 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.1 + '@babel/parser': 7.24.4 '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 @@ -3056,7 +3047,7 @@ packages: /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.1 + '@babel/parser': 7.24.4 '@babel/types': 7.24.0 /@types/babel__traverse@7.20.5: @@ -3112,8 +3103,8 @@ packages: /@types/prop-types@15.7.12: resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - /@types/react-dom@18.2.23: - resolution: {integrity: sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A==} + /@types/react-dom@18.2.24: + resolution: {integrity: sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==} dependencies: '@types/react': 18.2.74 @@ -3135,29 +3126,29 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: false - /@vitejs/plugin-react-swc@3.6.0(vite@5.2.7): + /@vitejs/plugin-react-swc@3.6.0(vite@5.2.8): resolution: {integrity: sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==} peerDependencies: vite: ^4 || ^5 dependencies: '@swc/core': 1.4.11 - vite: 5.2.7 + vite: 5.2.8 transitivePeerDependencies: - '@swc/helpers' dev: true - /@vitejs/plugin-react@4.2.1(vite@5.2.7): + /@vitejs/plugin-react@4.2.1(vite@5.2.8): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 dependencies: - '@babel/core': 7.24.3 - '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.3) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.3) + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.2.7 + vite: 5.2.8 transitivePeerDependencies: - supports-color dev: true @@ -3320,26 +3311,26 @@ packages: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} dev: false - /astro-seo-meta@4.1.0(astro@4.5.14): + /astro-seo-meta@4.1.0(astro@4.5.15): resolution: {integrity: sha512-v5qULt/c2hp9u6JtRyZeWTeb6YC82XDMzVcEf7XlRSuvs3C6KUQxeIOp5j+uOIek42CZHcyhbWzQF+FoRbQlfg==} peerDependencies: astro: ^4.0.0 dependencies: - astro: 4.5.14(typescript@5.4.3) + astro: 4.5.15(typescript@5.4.3) dev: false - /astro-seo-schema@4.0.0(astro@4.5.14)(schema-dts@1.1.2): + /astro-seo-schema@4.0.0(astro@4.5.15)(schema-dts@1.1.2): resolution: {integrity: sha512-ZcpxuQWSlyOVru+sN5LwUHqfrQpOEyv6Ksxq6WBNhycEHE0AEgGdiHkfhAmQbVqT4HXM8bmZOZlYlwwsYkfPAw==} peerDependencies: astro: ^4.0.0 schema-dts: ^1.1.0 dependencies: - astro: 4.5.14(typescript@5.4.3) + astro: 4.5.15(typescript@5.4.3) schema-dts: 1.1.2(typescript@5.4.3) dev: false - /astro@4.5.14(typescript@5.4.3): - resolution: {integrity: sha512-OXQ9Wbcn5e2eEPrNKJjGXeCWnKamNGyvSwORL0B8BB1fp3OO/EYo/RfeQGTR9kxGNxEpokoPZL9JNgFHoVK+wA==} + /astro@4.5.15(typescript@5.4.3): + resolution: {integrity: sha512-d2+yMv4ZlWwWFzfbpXIULMniNmdPlbwGrQScacEni0WLeo4k7ETO51/bHN/i/fXwxL9IGfasdEFkk2baYXDRog==} engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true dependencies: @@ -3347,10 +3338,10 @@ packages: '@astrojs/internal-helpers': 0.4.0 '@astrojs/markdown-remark': 5.0.0 '@astrojs/telemetry': 3.0.4 - '@babel/core': 7.24.3 - '@babel/generator': 7.24.1 - '@babel/parser': 7.24.1 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) '@babel/traverse': 7.24.1 '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 @@ -3393,14 +3384,14 @@ packages: rehype: 13.0.1 resolve: 1.22.8 semver: 7.6.0 - shiki: 1.2.3 + shiki: 1.2.4 string-width: 7.1.0 strip-ansi: 7.1.0 tsconfck: 3.0.3(typescript@5.4.3) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.2.7 - vitefu: 0.2.5(vite@5.2.7) + vite: 5.2.8 + vitefu: 0.2.5(vite@5.2.8) which-pm: 2.1.1 yargs-parser: 21.1.1 zod: 3.22.4 @@ -3459,12 +3450,11 @@ packages: dev: false optional: true - /bare-fs@2.2.2: - resolution: {integrity: sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA==} + /bare-fs@2.2.3: + resolution: {integrity: sha512-amG72llr9pstfXOBOHve1WjiuKKAMnebcmMbPWDZ7BCevAoJLpugjuAPRsDINEyjT0a6tbaVx3DctkXIRbLuJw==} requiresBuild: true dependencies: bare-events: 2.2.2 - bare-os: 2.2.1 bare-path: 2.1.0 streamx: 2.16.1 dev: false @@ -3555,7 +3545,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001605 - electron-to-chromium: 1.4.724 + electron-to-chromium: 1.4.726 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) @@ -3797,7 +3787,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 dev: true /dayjs@1.11.10: @@ -3905,8 +3895,8 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - /electron-to-chromium@1.4.724: - resolution: {integrity: sha512-RTRvkmRkGhNBPPpdrgtDKvmOEYTrPlXDfc0J/Nfq5s29tEahAwhiX4mmhNzj6febWMleulxVYPh7QwCSL/EldA==} + /electron-to-chromium@1.4.726: + resolution: {integrity: sha512-xtjfBXn53RORwkbyKvDfTajtnTp0OJoPOIBzXvkNbb7+YYvCHJflba3L7Txyx/6Fov3ov2bGPr/n5MTixmPhdQ==} /emmet@2.4.7: resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} @@ -4361,7 +4351,7 @@ packages: '@types/unist': 3.0.2 devlop: 1.1.0 hastscript: 8.0.0 - property-information: 6.4.1 + property-information: 6.5.0 vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 @@ -4397,8 +4387,8 @@ packages: zwitch: 2.0.4 dev: false - /hast-util-to-html@9.0.0: - resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} + /hast-util-to-html@9.0.1: + resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -4408,9 +4398,9 @@ packages: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.1.0 - property-information: 6.4.1 + property-information: 6.5.0 space-separated-tokens: 2.0.2 - stringify-entities: 4.0.3 + stringify-entities: 4.0.4 zwitch: 2.0.4 dev: false @@ -4420,7 +4410,7 @@ packages: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 6.4.1 + property-information: 6.5.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -4447,7 +4437,7 @@ packages: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 6.4.1 + property-information: 6.5.0 space-separated-tokens: 2.0.2 dev: false @@ -4481,13 +4471,13 @@ packages: /i18next-resources-to-backend@1.2.0: resolution: {integrity: sha512-8f1l03s+QxDmCfpSXCh9V+AFcxAwIp0UaroWuyOx+hmmv8484GcELHs+lnu54FrNij8cDBEXvEwhzZoXsKcVpg==} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 dev: false /i18next@23.10.1: resolution: {integrity: sha512-NDiIzFbcs3O9PXpfhkjyf7WdqFn5Vq6mhzhtkXzj51aOcNuPNcTwuYNuXCpHsanZGHlHKL35G7huoFeVic1hng==} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 dev: false /ieee754@1.2.1: @@ -5697,8 +5687,8 @@ packages: sisteransi: 1.0.5 dev: false - /property-information@6.4.1: - resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + /property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} dev: false /pump@3.0.0: @@ -5829,7 +5819,7 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 html-parse-stringify: 3.0.1 i18next: 23.10.1 react: 18.2.0 @@ -5947,7 +5937,7 @@ packages: resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.0 + hast-util-to-html: 9.0.1 unified: 11.0.4 dev: false @@ -6079,28 +6069,28 @@ packages: resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} dev: false - /rollup@4.13.2: - resolution: {integrity: sha512-MIlLgsdMprDBXC+4hsPgzWUasLO9CE4zOkj/u6j+Z6j5A4zRY+CtiXAdJyPtgCsc42g658Aeh1DlrdVEJhsL2g==} + /rollup@4.14.0: + resolution: {integrity: sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.2 - '@rollup/rollup-android-arm64': 4.13.2 - '@rollup/rollup-darwin-arm64': 4.13.2 - '@rollup/rollup-darwin-x64': 4.13.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.2 - '@rollup/rollup-linux-arm64-gnu': 4.13.2 - '@rollup/rollup-linux-arm64-musl': 4.13.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.13.2 - '@rollup/rollup-linux-riscv64-gnu': 4.13.2 - '@rollup/rollup-linux-s390x-gnu': 4.13.2 - '@rollup/rollup-linux-x64-gnu': 4.13.2 - '@rollup/rollup-linux-x64-musl': 4.13.2 - '@rollup/rollup-win32-arm64-msvc': 4.13.2 - '@rollup/rollup-win32-ia32-msvc': 4.13.2 - '@rollup/rollup-win32-x64-msvc': 4.13.2 + '@rollup/rollup-android-arm-eabi': 4.14.0 + '@rollup/rollup-android-arm64': 4.14.0 + '@rollup/rollup-darwin-arm64': 4.14.0 + '@rollup/rollup-darwin-x64': 4.14.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.14.0 + '@rollup/rollup-linux-arm64-gnu': 4.14.0 + '@rollup/rollup-linux-arm64-musl': 4.14.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.14.0 + '@rollup/rollup-linux-riscv64-gnu': 4.14.0 + '@rollup/rollup-linux-s390x-gnu': 4.14.0 + '@rollup/rollup-linux-x64-gnu': 4.14.0 + '@rollup/rollup-linux-x64-musl': 4.14.0 + '@rollup/rollup-win32-arm64-msvc': 4.14.0 + '@rollup/rollup-win32-ia32-msvc': 4.14.0 + '@rollup/rollup-win32-x64-msvc': 4.14.0 fsevents: 2.3.3 /run-parallel@1.2.0: @@ -6177,10 +6167,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shiki@1.2.3: - resolution: {integrity: sha512-+v7lO5cJMeV2N2ySK4l+51YX3wTh5I49SLjAOs1ch1DbUfeEytU1Ac9KaZPoZJCVBGycDZ09OBQN5nbcPFc5FQ==} + /shiki@1.2.4: + resolution: {integrity: sha512-Q9n9jKiOjJCRPztA9POn3/uZXNySHDNKAsPNpmtHDcFyi6ZQhx5vQKZW3Nhrwn8TWW3RudSRk66zqY603EZDeg==} dependencies: - '@shikijs/core': 1.2.3 + '@shikijs/core': 1.2.4 dev: false /signal-exit@3.0.7: @@ -6359,8 +6349,8 @@ packages: safe-buffer: 5.2.1 dev: false - /stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + /stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 @@ -6435,7 +6425,7 @@ packages: /tailwind-merge@2.2.2: resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==} dependencies: - '@babel/runtime': 7.24.1 + '@babel/runtime': 7.24.4 dev: true /tailwind-scrollbar@3.1.0(tailwindcss@3.4.3): @@ -6495,7 +6485,7 @@ packages: pump: 3.0.0 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 2.2.2 + bare-fs: 2.2.3 bare-path: 2.1.0 dev: false optional: true @@ -6972,7 +6962,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /vite-plugin-top-level-await@1.4.1(vite@5.2.7): + /vite-plugin-top-level-await@1.4.1(vite@5.2.8): resolution: {integrity: sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==} peerDependencies: vite: '>=2.8' @@ -6980,13 +6970,13 @@ packages: '@rollup/plugin-virtual': 3.0.2 '@swc/core': 1.4.11 uuid: 9.0.1 - vite: 5.2.7 + vite: 5.2.8 transitivePeerDependencies: - '@swc/helpers' - rollup dev: true - /vite-tsconfig-paths@4.3.2(typescript@5.4.3)(vite@5.2.7): + /vite-tsconfig-paths@4.3.2(typescript@5.4.3)(vite@5.2.8): resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} peerDependencies: vite: '*' @@ -6997,14 +6987,14 @@ packages: debug: 4.3.4 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.3) - vite: 5.2.7 + vite: 5.2.8 transitivePeerDependencies: - supports-color - typescript dev: true - /vite@5.2.7: - resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} + /vite@5.2.8: + resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -7033,11 +7023,11 @@ packages: dependencies: esbuild: 0.20.2 postcss: 8.4.38 - rollup: 4.13.2 + rollup: 4.14.0 optionalDependencies: fsevents: 2.3.3 - /vitefu@0.2.5(vite@5.2.7): + /vitefu@0.2.5(vite@5.2.8): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -7045,7 +7035,7 @@ packages: vite: optional: true dependencies: - vite: 5.2.7 + vite: 5.2.8 dev: false /void-elements@3.1.0: diff --git a/src-tauri/capabilities/main.json b/src-tauri/capabilities/main.json index 9a3e5be1..f58ed5f5 100644 --- a/src-tauri/capabilities/main.json +++ b/src-tauri/capabilities/main.json @@ -6,12 +6,12 @@ "windows": [ "main", "splash", - "editor", "settings", "nwc", "zap-*", "event-*", "user-*", + "editor-*", "column-*" ], "permissions": [ diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json index dc0d3678..8eb4bc0e 100644 --- a/src-tauri/gen/schemas/capabilities.json +++ b/src-tauri/gen/schemas/capabilities.json @@ -1 +1 @@ -{"desktop-capability":{"identifier":"desktop-capability","description":"Capability for the desktop","local":true,"windows":["main","splash","editor","settings","nwc","zap-*","event-*","user-*","column-*"],"permissions":["path:default","event:default","window:default","app:default","resources:default","menu:default","tray:default","notification:allow-is-permission-granted","notification:allow-request-permission","notification:default","os:allow-locale","os:allow-platform","updater:allow-check","updater:default","window:allow-start-dragging","window:allow-create","window:allow-close","store:allow-get","clipboard-manager:allow-write","clipboard-manager:allow-read","webview:allow-create-webview-window","webview:allow-create-webview","webview:allow-set-webview-size","webview:allow-set-webview-position","webview:allow-webview-close","dialog:allow-open","fs:allow-read-file","shell:allow-open",{"identifier":"http:default","allow":[{"url":"http://**/"},{"url":"https://**/"}]},{"identifier":"fs:allow-read-text-file","allow":[{"path":"$RESOURCE/locales/*"}]}],"platforms":["linux","macOS","windows"]}} \ No newline at end of file +{"desktop-capability":{"identifier":"desktop-capability","description":"Capability for the desktop","local":true,"windows":["main","splash","settings","nwc","zap-*","event-*","user-*","editor-*","column-*"],"permissions":["path:default","event:default","window:default","app:default","resources:default","menu:default","tray:default","notification:allow-is-permission-granted","notification:allow-request-permission","notification:default","os:allow-locale","os:allow-platform","updater:allow-check","updater:default","window:allow-start-dragging","window:allow-create","window:allow-close","store:allow-get","clipboard-manager:allow-write","clipboard-manager:allow-read","webview:allow-create-webview-window","webview:allow-create-webview","webview:allow-set-webview-size","webview:allow-set-webview-position","webview:allow-webview-close","dialog:allow-open","fs:allow-read-file","shell:allow-open",{"identifier":"http:default","allow":[{"url":"http://**/"},{"url":"https://**/"}]},{"identifier":"fs:allow-read-text-file","allow":[{"path":"$RESOURCE/locales/*"}]}],"platforms":["linux","macOS","windows"]}} \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index fd3a9e34..ce5b4b48 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -126,8 +126,8 @@ fn main() { nostr::metadata::zap_event, nostr::event::get_event, nostr::event::get_events_from, - nostr::event::get_local_events, - nostr::event::get_global_events, + nostr::event::get_events, + nostr::event::get_events_from_interests, nostr::event::get_event_thread, nostr::event::publish, nostr::event::repost, diff --git a/src-tauri/src/nostr/event.rs b/src-tauri/src/nostr/event.rs index 0679b1cb..5898694d 100644 --- a/src-tauri/src/nostr/event.rs +++ b/src-tauri/src/nostr/event.rs @@ -72,66 +72,120 @@ pub async fn get_events_from( } #[tauri::command] -pub async fn get_local_events( +pub async fn get_events( limit: usize, until: Option<&str>, + contacts: Option>, + global: Option, state: State<'_, Nostr>, ) -> Result, String> { let client = &state.client; - let f_until = match until { + let as_of = match until { Some(until) => Timestamp::from_str(until).unwrap(), None => Timestamp::now(), }; - - let contact_list = client - .get_contact_list_public_keys(Some(Duration::from_secs(10))) - .await; - - if let Ok(authors) = contact_list { - if authors.len() == 0 { - return Err("Get text event failed".into()); + let authors = match contacts { + Some(val) => { + let c: Vec = val + .into_iter() + .map(|key| PublicKey::from_str(key).unwrap()) + .collect(); + Some(c) } - - let filter = Filter::new() + None => match global { + Some(val) => match val { + true => None, + false => { + match client + .get_contact_list_public_keys(Some(Duration::from_secs(10))) + .await + { + Ok(val) => Some(val), + Err(_) => None, + } + } + }, + None => { + match client + .get_contact_list_public_keys(Some(Duration::from_secs(10))) + .await + { + Ok(val) => Some(val), + Err(_) => None, + } + } + }, + }; + let filter = match authors { + Some(val) => Filter::new() .kinds(vec![Kind::TextNote, Kind::Repost]) - .authors(authors) + .authors(val) .limit(limit) - .until(f_until); + .until(as_of), + None => Filter::new() + .kinds(vec![Kind::TextNote, Kind::Repost]) + .limit(limit) + .until(as_of), + }; - if let Ok(events) = client - .get_events_of(vec![filter], Some(Duration::from_secs(10))) - .await - { - Ok(events) - } else { - Err("Get text event failed".into()) - } + if let Ok(events) = client + .get_events_of(vec![filter], Some(Duration::from_secs(15))) + .await + { + println!("total events: {}", events.len()); + Ok(events) } else { - Err("Get contact list failed".into()) + Err("Get text event failed".into()) } } #[tauri::command] -pub async fn get_global_events( +pub async fn get_events_from_interests( + hashtags: Vec<&str>, limit: usize, until: Option<&str>, + global: Option, state: State<'_, Nostr>, ) -> Result, String> { let client = &state.client; - let f_until = match until { + let as_of = match until { Some(until) => Timestamp::from_str(until).unwrap(), None => Timestamp::now(), }; - - let filter = Filter::new() - .kinds(vec![Kind::TextNote, Kind::Repost]) - .limit(limit) - .until(f_until); + let authors = match global { + Some(val) => match val { + true => None, + false => { + match client + .get_contact_list_public_keys(Some(Duration::from_secs(10))) + .await + { + Ok(val) => Some(val), + Err(_) => None, + } + } + }, + None => None, + }; + let filter = match authors { + Some(val) => Filter::new() + .kinds(vec![Kind::TextNote, Kind::Repost]) + .authors(val) + .limit(limit) + .until(as_of) + .hashtags(hashtags), + None => Filter::new() + .kinds(vec![Kind::TextNote, Kind::Repost]) + .limit(limit) + .until(as_of) + .hashtags(hashtags), + }; if let Ok(events) = client - .get_events_of(vec![filter], Some(Duration::from_secs(10))) + .get_events_of(vec![filter], Some(Duration::from_secs(15))) .await { + println!("total events: {}", events.len()); Ok(events) } else { Err("Get text event failed".into()) diff --git a/src-tauri/src/tray.rs b/src-tauri/src/tray.rs index 76b54647..0dfbfc3e 100644 --- a/src-tauri/src/tray.rs +++ b/src-tauri/src/tray.rs @@ -44,14 +44,24 @@ pub fn create_tray(app: &tauri::AppHandle) -> tauri::Result<()> { } } "editor" => { - let _ = WebviewWindowBuilder::new(app, "editor", WebviewUrl::App(PathBuf::from("editor"))) - .title("Editor") - .min_inner_size(500., 400.) - .inner_size(600., 400.) - .hidden_title(true) - .title_bar_style(TitleBarStyle::Overlay) - .build() - .unwrap(); + if let Some(window) = app.get_window("editor-0") { + if window.is_visible().unwrap_or_default() { + let _ = window.set_focus(); + } else { + let _ = window.show(); + let _ = window.set_focus(); + }; + } else { + let _ = + WebviewWindowBuilder::new(app, "editor-0", WebviewUrl::App(PathBuf::from("editor"))) + .title("Editor") + .min_inner_size(500., 400.) + .inner_size(600., 400.) + .hidden_title(true) + .title_bar_style(TitleBarStyle::Overlay) + .build() + .unwrap(); + } } "about" => { app.shell().open("https://lume.nu", None).unwrap();