aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcodeTorso <[email protected]>2024-08-12 04:36:54 +0530
committercodeTorso <[email protected]>2024-08-12 04:36:54 +0530
commit28f8149c342ecbbff278521127903f66fc545d67 (patch)
tree77655e10def6c64f640540d93267c0e3712628a4
parentwhy is this novel shit broke (diff)
downloadsupermemory-28f8149c342ecbbff278521127903f66fc545d67.tar.xz
supermemory-28f8149c342ecbbff278521127903f66fc545d67.zip
alert when deleting space
-rw-r--r--apps/web/app/(dash)/(memories)/content.tsx118
-rw-r--r--apps/web/app/(dash)/layout.tsx2
-rw-r--r--apps/web/app/(dash)/menu.tsx14
-rw-r--r--package.json9
-rw-r--r--packages/ui/shadcn/alert-dialog.tsx141
-rw-r--r--packages/ui/shadcn/button.tsx2
-rw-r--r--pnpm-lock.yaml103
7 files changed, 239 insertions, 150 deletions
diff --git a/apps/web/app/(dash)/(memories)/content.tsx b/apps/web/app/(dash)/(memories)/content.tsx
index 6e2659cb..5d81e823 100644
--- a/apps/web/app/(dash)/(memories)/content.tsx
+++ b/apps/web/app/(dash)/(memories)/content.tsx
@@ -1,7 +1,7 @@
"use client";
import { Content, StoredSpace } from "@repo/db/schema";
-import { MemoriesIcon, NextIcon, SearchIcon, UrlIcon } from "@repo/ui/icons";
+import { MemoriesIcon, NextIcon, UrlIcon } from "@repo/ui/icons";
import {
ArrowLeftIcon,
MenuIcon,
@@ -37,20 +37,22 @@ import { toast } from "sonner";
import { Input } from "@repo/ui/shadcn/input";
import { motion } from "framer-motion";
import { useSearchParams } from "next/navigation";
+import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "@repo/ui/shadcn/alert-dialog";
+
+type TMemoriesPage = {
+ memoriesAndSpaces: { memories: Content[]; spaces: StoredSpace[] };
+ title?: string;
+ currentSpace?: StoredSpace;
+ usersWithAccess?: string[];
+};
export function MemoriesPage({
memoriesAndSpaces,
title = "Your Memories",
currentSpace,
usersWithAccess,
-}: {
- memoriesAndSpaces: { memories: Content[]; spaces: StoredSpace[] };
- title?: string;
- currentSpace?: StoredSpace;
- usersWithAccess?: string[];
-}) {
+}: TMemoriesPage) {
const searchParams = useSearchParams();
-
const tab = searchParams.get("tab");
const initialFilter = useMemo(() => {
@@ -64,7 +66,6 @@ export function MemoriesPage({
const [filter, setFilter] = useState(initialFilter);
const [spaces, setSpaces] = useState<StoredSpace[]>(memoriesAndSpaces.spaces);
- // to delete a space
const handleDeleteSpace = async (id: number) => {
const response = await deleteSpace(id);
@@ -72,7 +73,7 @@ export function MemoriesPage({
setSpaces(spaces.filter((space) => space.id !== id));
toast.success("Space deleted");
} else {
- toast.error("Failed to delete space");
+ toast.error("Failed to delete the space");
}
};
@@ -96,25 +97,22 @@ export function MemoriesPage({
URL.revokeObjectURL(url);
};
- // Sort Both memories and spaces by their savedAt and createdAt dates respectfully.
- // The output should be just one single list of items
- // And it will look something like { item: "memory" | "space", date: Date, data: Content | StoredSpace }
const sortedItems = useMemo(() => {
- // Merge the lists
+ // merge spaces & memories to { item: "memory" | "space", date: Date, data: Content | StoredSpace }
const unifiedItems = [
...memoriesAndSpaces.memories.map((memory) => ({
item: "memory",
- date: new Date(memory.savedAt), // Assuming savedAt is a string date
+ date: new Date(memory.savedAt),
data: memory,
})),
...spaces.map((space) => ({
item: "space",
- date: new Date(space.createdAt), // Assuming createdAt is a string date
+ date: new Date(space.createdAt),
data: space,
})),
].map((item) => ({
...item,
- date: Number(item.date), // Convert the date to a number
+ date: Number(item.date),
}));
// Sort the merged list
@@ -142,28 +140,22 @@ export function MemoriesPage({
}, [memoriesAndSpaces.memories, spaces, filter]);
return (
- <div
- key={`${memoriesAndSpaces.memories.length + memoriesAndSpaces.spaces.length}`}
- className="px-2 md:px-32 py-36 h-full flex mx-auto w-full flex-col gap-6"
- >
- {currentSpace && (
- <Link href={"/memories"} className="flex gap-2 items-center">
- <ArrowLeftIcon className="w-3 h-3" /> Back to all memories
- </Link>
- )}
+ <div className="px-2 md:px-32 py-36 h-full flex mx-auto w-full flex-col gap-6">
+ <div className="space-y-2">
+ {currentSpace && (
+ <Link href={"/memories"}>
+ <Button className="px-0 text-gray-300" variant="link">
+ <ArrowLeftIcon className="w-3 h-3" /> Back to all memories
+ </Button>
+ </Link>
+ )}
+ <h2 className="text-white w-full text-3xl text-left font-semibold">
+ {title}
+ </h2>
+ </div>
- <h2 className="text-white w-full text-3xl text-left font-semibold">
- {title}
- </h2>
{currentSpace && (
<div className="flex flex-col gap-2">
- <div className="flex gap-4 items-center">
- Space
- <div className="flex items-center gap-2 bg-secondary p-2 rounded-xl">
- <Image src={MemoriesIcon} alt="Spaces icon" className="w-3 h-3" />
- <span className="text-[#fff]">{currentSpace.name}</span>
- </div>
- </div>
{usersWithAccess && usersWithAccess.length > 0 && (
<div className="flex gap-4 items-center">
@@ -202,7 +194,11 @@ export function MemoriesPage({
}}
className="flex gap-2 max-w-xl mt-2"
>
- <Input name="email" placeholder="Add user by email" />
+ <Input
+ className="focus-visible:ring-0 border-[1px]"
+ name="email"
+ placeholder="Add user by email"
+ />
<Button variant="secondary">Add</Button>
</form>
</div>
@@ -218,7 +214,7 @@ export function MemoriesPage({
/>
<button
onClick={handleExport}
- className={`transition px-6 py-2 rounded-xl hover:text-[#369DFD]" text-[#B3BCC5] bg-secondary hover:bg-secondary hover:text-[#76a3cc]`}
+ className={`transition px-4 py-2 rounded-lg text-[#B3BCC5] bg-secondary hover:bg-secondary hover:text-[#76a3cc]`}
>
JSON Export
</button>
@@ -235,7 +231,7 @@ export function MemoriesPage({
{sortedItems.map((item) => {
if (item.item === "memory") {
return (
- <LinkComponent
+ <MemoryComponent
type={(item.data as Content).type ?? "note"}
content={(item.data as Content).content}
title={(item.data as Content).title ?? "Untitled"}
@@ -256,7 +252,7 @@ export function MemoriesPage({
if (item.item === "space") {
return (
- <TabComponent
+ <SpaceComponent
title={(item.data as StoredSpace).name}
description={`${(item.data as StoredSpace).numItems} memories`}
id={(item.data as StoredSpace).id}
@@ -272,7 +268,7 @@ export function MemoriesPage({
);
}
-function TabComponent({
+function SpaceComponent({
title,
description,
id,
@@ -284,7 +280,7 @@ function TabComponent({
handleDeleteSpace: (id: number) => void;
}) {
return (
- <div className="flex group flex-col gap-4 bg-[#161f2a]/30 backdrop-blur-md border-2 border-border w-full rounded-xl p-4">
+ <div className="flex group flex-col gap-4 bg-[#161f2a]/25 backdrop-blur-md border-[1px] shadow-md border-border w-full rounded-xl p-4">
<div className="flex items-center gap-2 text-xs">
<Image alt="Spaces icon" src={MemoriesIcon} className="size-3" /> Space
</div>
@@ -296,7 +292,7 @@ function TabComponent({
>
<div>
<div className="h-12 w-12 flex justify-center items-center rounded-md">
- {title.slice(0, 2).toUpperCase()} {id}
+ {title.slice(0, 2).toUpperCase()}{id}
</div>
</div>
<div className="grow px-2">
@@ -308,17 +304,15 @@ function TabComponent({
</div>
</Link>
<div className="absolute z-40 right-3 top-3 opacity-0 group-hover:opacity-100 hover:text-red-600">
- <TrashIcon
- onClick={() => handleDeleteSpace(id)}
- className="w-4 cursor-pointer"
- />
+
+ <SpaceDeleteAlert onClick={()=> {handleDeleteSpace(id)}} />
</div>
</div>
</div>
);
}
-function LinkComponent({
+function MemoryComponent({
type,
content,
title,
@@ -445,12 +439,12 @@ function Filters({
filterMethods: string[];
}) {
return (
- <div className="flex gap-4 flex-wrap">
+ <div className="flex gap-3 flex-wrap">
{filterMethods.map((i) => {
return (
<button
onClick={() => setFilter(i)}
- className={`transition px-6 py-2 rounded-xl bg-border ${i === filter ? " text-[#369DFD]" : "text-[#B3BCC5] bg-secondary hover:bg-secondary hover:text-[#76a3cc]"}`}
+ className={`transition px-4 py-2 shadow-md rounded-lg bg-border ${i === filter ? " text-[#369DFD]" : "text-[#B3BCC5] bg-secondary drop-shadow-md hover:bg-secondary hover:text-[#76a3cc]"}`}
>
{i}
</button>
@@ -460,4 +454,26 @@ function Filters({
);
}
-export default MemoriesPage;
+function SpaceDeleteAlert({onClick}: {onClick: ()=> void}){
+ return (
+ <AlertDialog>
+ <AlertDialogTrigger> <TrashIcon
+ className="w-4 cursor-pointer"
+ /></AlertDialogTrigger>
+ <AlertDialogContent>
+ <AlertDialogHeader>
+ <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
+ <AlertDialogDescription>
+ This is irreversible. This will delete the space and all memories inside it.
+ </AlertDialogDescription>
+ </AlertDialogHeader>
+ <AlertDialogFooter>
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
+ <AlertDialogAction onClick={onClick}>Delete</AlertDialogAction>
+ </AlertDialogFooter>
+ </AlertDialogContent>
+</AlertDialog>
+ )
+}
+
+export default MemoriesPage; \ No newline at end of file
diff --git a/apps/web/app/(dash)/layout.tsx b/apps/web/app/(dash)/layout.tsx
index c6174945..348263f0 100644
--- a/apps/web/app/(dash)/layout.tsx
+++ b/apps/web/app/(dash)/layout.tsx
@@ -26,7 +26,7 @@ async function Layout({ children }: { children: React.ReactNode }) {
<Header />
</div>
- <div className="relative flex justify-center z-40 pointer-events-none">
+ <div className="relative flex justify-center z-[45] pointer-events-none">
<div
className="absolute -z-10 left-0 top-[10%] h-32 w-[90%] overflow-x-hidden bg-[rgb(54,157,253)] bg-opacity-100 md:bg-opacity-70 blur-[337.4px]"
style={{ transform: "rotate(-30deg)" }}
diff --git a/apps/web/app/(dash)/menu.tsx b/apps/web/app/(dash)/menu.tsx
index 51e97108..3124bdeb 100644
--- a/apps/web/app/(dash)/menu.tsx
+++ b/apps/web/app/(dash)/menu.tsx
@@ -66,11 +66,11 @@ function Menu() {
<>
{/* Desktop Menu */}
<Dialog open={dialogOpen} onOpenChange={setDialogOpen}>
- <div className="hidden lg:flex fixed h-screen pb-20 w-full p-4 items-center justify-start top-0 left-0 pointer-events-none z-[39]">
+ <div className="hidden lg:flex fixed h-screen w-full p-4 items-center top-0 left-0 pointer-events-none z-[39]">
<div className="pointer-events-auto group flex w-14 text-foreground-menu text-[15px] font-medium flex-col items-start gap-6 overflow-hidden rounded-[28px] border-2 border-border bg-secondary px-3 py-4 duration-200 hover:w-40 z-[99999]">
<div className="border-b border-border pb-4 w-full">
<DialogTrigger
- className={`flex w-full text-white brightness-75 hover:brightness-125 focus:brightness-125 cursor-pointer items-center gap-3 px-1 duration-200 justify-start`}
+ className="flex w-full text-white brightness-75 hover:brightness-125 focus:brightness-125 cursor-pointer items-center gap-3 px-1 duration-200 justify-start"
>
<Image
src={AddIcon}
@@ -86,14 +86,9 @@ function Menu() {
</div>
{menuItems.map((item) => (
<Link
- aria-disabled={item.disabled}
- href={item.disabled ? "#" : item.url}
+ href={item.url}
key={item.url}
- className={`flex w-full ${
- item.disabled
- ? "cursor-not-allowed opacity-30"
- : "text-white brightness-75 hover:brightness-125 cursor-pointer"
- } items-center gap-3 px-1 duration-200 hover:scale-105 active:scale-90 justify-start`}
+ className="flex w-full items-center gap-3 px-1 duration-200 hover:scale-105 active:scale-90 justify-start text-white brightness-75 hover:brightness-125 cursor-pointer"
>
<Image
src={item.icon}
@@ -297,6 +292,7 @@ function DialogContentMenu({setDialogClose}: {setDialogClose: ()=> void}){
<div>
<Label htmlFor="name">Resource (URL or content)</Label>
<Textarea
+ autoFocus
className={`bg-[#2F353C] text-[#DBDEE1] max-h-[35vh] overflow-auto focus-visible:ring-0 border-none focus-visible:ring-offset-0 mt-2 ${/^https?:\/\/\S+$/i.test(content) && "text-[#1D9BF0] underline underline-offset-2"}`}
id="content"
name="content"
diff --git a/package.json b/package.json
index 21900aa3..e24f636a 100644
--- a/package.json
+++ b/package.json
@@ -11,12 +11,12 @@
},
"devDependencies": {
"@clack/prompts": "^0.7.0",
+ "@repo/db": "*",
"@repo/eslint-config": "*",
"@repo/shared-types": "*",
"@repo/tailwind-config": "*",
"@repo/typescript-config": "*",
"@repo/ui": "*",
- "@repo/db": "*",
"lint-staged": "^15.2.5",
"prettier": "^3.3.3",
"rxjs": "^7.8.1",
@@ -45,6 +45,7 @@
"@million/lint": "^1.0.0-rc.81",
"@mozilla/readability": "^0.5.0",
"@radix-ui/react-accordion": "^1.1.2",
+ "@radix-ui/react-alert-dialog": "^1.1.1",
"@radix-ui/react-dropdown-menu": "^2.1.1",
"@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-label": "^2.0.2",
@@ -67,6 +68,8 @@
"cheerio": "^1.0.0-rc.12",
"compromise": "^14.13.0",
"crypto-browserify": "^3.12.0",
+ "drizzle-kit": "0.21.2",
+ "drizzle-orm": "0.30.0",
"eslint-config-turbo": "^2.0.6",
"framer-motion": "^11.2.6",
"geist": "^1.3.0",
@@ -100,9 +103,7 @@
"turndown": "^7.2.0",
"uploadthing": "^6.10.4",
"vaul": "^0.9.1",
- "zod": "^3.23.8",
- "drizzle-kit": "0.21.2",
- "drizzle-orm": "0.30.0"
+ "zod": "^3.23.8"
},
"trustedDependencies": [
"core-js-pure",
diff --git a/packages/ui/shadcn/alert-dialog.tsx b/packages/ui/shadcn/alert-dialog.tsx
new file mode 100644
index 00000000..fcde38f2
--- /dev/null
+++ b/packages/ui/shadcn/alert-dialog.tsx
@@ -0,0 +1,141 @@
+"use client"
+
+import * as React from "react"
+import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog"
+
+import { cn } from "@repo/ui/lib/utils";
+import { buttonVariants } from "@repo/ui/shadcn/button";
+
+const AlertDialog = AlertDialogPrimitive.Root
+
+const AlertDialogTrigger = AlertDialogPrimitive.Trigger
+
+const AlertDialogPortal = AlertDialogPrimitive.Portal
+
+const AlertDialogOverlay = React.forwardRef<
+ React.ElementRef<typeof AlertDialogPrimitive.Overlay>,
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>
+>(({ className, ...props }, ref) => (
+ <AlertDialogPrimitive.Overlay
+ className={cn(
+ "fixed inset-0 z-[41] bg-black/20 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
+ className
+ )}
+ {...props}
+ ref={ref}
+ />
+))
+AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName
+
+const AlertDialogContent = React.forwardRef<
+ React.ElementRef<typeof AlertDialogPrimitive.Content>,
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>
+>(({ className, ...props }, ref) => (
+ <AlertDialogPortal>
+ <AlertDialogOverlay />
+ <AlertDialogPrimitive.Content
+ ref={ref}
+ className={cn(
+ "fixed left-[50%] top-[50%] z-[41] grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
+ className
+ )}
+ {...props}
+ />
+ </AlertDialogPortal>
+))
+AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName
+
+const AlertDialogHeader = ({
+ className,
+ ...props
+}: React.HTMLAttributes<HTMLDivElement>) => (
+ <div
+ className={cn(
+ "flex flex-col space-y-2 text-center sm:text-left",
+ className
+ )}
+ {...props}
+ />
+)
+AlertDialogHeader.displayName = "AlertDialogHeader"
+
+const AlertDialogFooter = ({
+ className,
+ ...props
+}: React.HTMLAttributes<HTMLDivElement>) => (
+ <div
+ className={cn(
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
+ className
+ )}
+ {...props}
+ />
+)
+AlertDialogFooter.displayName = "AlertDialogFooter"
+
+const AlertDialogTitle = React.forwardRef<
+ React.ElementRef<typeof AlertDialogPrimitive.Title>,
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>
+>(({ className, ...props }, ref) => (
+ <AlertDialogPrimitive.Title
+ ref={ref}
+ className={cn("text-lg font-semibold", className)}
+ {...props}
+ />
+))
+AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName
+
+const AlertDialogDescription = React.forwardRef<
+ React.ElementRef<typeof AlertDialogPrimitive.Description>,
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>
+>(({ className, ...props }, ref) => (
+ <AlertDialogPrimitive.Description
+ ref={ref}
+ className={cn("text-sm text-muted-foreground", className)}
+ {...props}
+ />
+))
+AlertDialogDescription.displayName =
+ AlertDialogPrimitive.Description.displayName
+
+const AlertDialogAction = React.forwardRef<
+ React.ElementRef<typeof AlertDialogPrimitive.Action>,
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>
+>(({ className, ...props }, ref) => (
+ <AlertDialogPrimitive.Action
+ ref={ref}
+ className={cn(buttonVariants({variant: "destructive"}), className)}
+ {...props}
+ />
+))
+AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName
+
+const AlertDialogCancel = React.forwardRef<
+ React.ElementRef<typeof AlertDialogPrimitive.Cancel>,
+ React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>
+>(({ className, ...props }, ref) => (
+ <AlertDialogPrimitive.Cancel
+ ref={ref}
+ className={cn(
+ buttonVariants({ variant: "secondary" }),
+ "mt-2 sm:mt-0",
+ className
+ )}
+ {...props}
+ />
+))
+AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName
+
+export {
+ AlertDialog,
+ AlertDialogPortal,
+ AlertDialogOverlay,
+ AlertDialogTrigger,
+ AlertDialogContent,
+ AlertDialogHeader,
+ AlertDialogFooter,
+ AlertDialogTitle,
+ AlertDialogDescription,
+ AlertDialogAction,
+ AlertDialogCancel,
+}
diff --git a/packages/ui/shadcn/button.tsx b/packages/ui/shadcn/button.tsx
index 1b2a852e..a4ed345f 100644
--- a/packages/ui/shadcn/button.tsx
+++ b/packages/ui/shadcn/button.tsx
@@ -11,7 +11,7 @@ const buttonVariants = cva(
variant: {
default: "bg-primary text-primary-foreground hover:bg-primary/90",
destructive:
- "bg-destructive text-destructive-foreground hover:bg-destructive/90",
+ "bg-destructive text-destructive-foreground hover:bg-destructive/50",
outline:
"border border-input bg-background hover:bg-accent hover:text-accent-foreground",
secondary:
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f9da1fd3..59eb1a27 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -28,7 +28,7 @@ importers:
version: 3.620.0
'@babel/plugin-transform-runtime':
specifier: ^7.24.7
- version: 7.24.7(@babel/[email protected])
+ version: 7.24.7(@babel/[email protected])
'@cloudflare/puppeteer':
specifier: ^0.0.11
version: 0.0.11
@@ -59,6 +59,9 @@ importers:
'@radix-ui/react-accordion':
specifier: ^1.1.2
+ '@radix-ui/react-alert-dialog':
+ specifier: ^1.1.1
'@radix-ui/react-dropdown-menu':
specifier: ^2.1.1
@@ -139,7 +142,7 @@ importers:
geist:
specifier: ^1.3.0
google-auth-library:
specifier: ^9.11.0
version: 9.11.0([email protected])
@@ -169,7 +172,7 @@ importers:
version: 0.1.10([email protected])
next-auth:
specifier: ^5.0.0-beta.18
next-themes:
specifier: ^0.3.0
@@ -226,7 +229,7 @@ importers:
version: 7.2.0
uploadthing:
specifier: ^6.10.4
vaul:
specifier: ^0.9.1
@@ -13346,6 +13349,7 @@ packages:
resolution: {integrity: sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==}
+ deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained
resolution: {integrity: sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==}
@@ -14395,17 +14399,6 @@ snapshots:
regexpu-core: 5.3.2
semver: 6.3.1
- dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-compilation-targets': 7.24.8
- '@babel/helper-plugin-utils': 7.24.8
- debug: 4.3.6
- lodash.debounce: 4.0.8
- resolve: 1.22.8
- transitivePeerDependencies:
- - supports-color
-
dependencies:
'@babel/core': 7.24.9
@@ -15001,14 +14994,14 @@ snapshots:
'@babel/core': 7.24.9
'@babel/helper-plugin-utils': 7.24.8
dependencies:
- '@babel/core': 7.24.6
+ '@babel/core': 7.24.9
'@babel/helper-module-imports': 7.24.7
'@babel/helper-plugin-utils': 7.24.8
- babel-plugin-polyfill-corejs2: 0.4.11(@babel/[email protected])
- babel-plugin-polyfill-corejs3: 0.10.4(@babel/[email protected])
- babel-plugin-polyfill-regenerator: 0.6.2(@babel/[email protected])
+ babel-plugin-polyfill-corejs2: 0.4.11(@babel/[email protected])
+ babel-plugin-polyfill-corejs3: 0.10.4(@babel/[email protected])
+ babel-plugin-polyfill-regenerator: 0.6.2(@babel/[email protected])
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -20085,15 +20078,6 @@ snapshots:
schema-utils: 4.2.0
- dependencies:
- '@babel/compat-data': 7.25.0
- '@babel/core': 7.24.6
- '@babel/helper-define-polyfill-provider': 0.6.2(@babel/[email protected])
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
dependencies:
'@babel/compat-data': 7.25.0
@@ -20103,14 +20087,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-define-polyfill-provider': 0.6.2(@babel/[email protected])
- core-js-compat: 3.37.1
- transitivePeerDependencies:
- - supports-color
-
dependencies:
'@babel/core': 7.24.9
@@ -20119,13 +20095,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- dependencies:
- '@babel/core': 7.24.6
- '@babel/helper-define-polyfill-provider': 0.6.2(@babel/[email protected])
- transitivePeerDependencies:
- - supports-color
-
dependencies:
'@babel/core': 7.24.9
@@ -22670,9 +22639,9 @@ snapshots:
- encoding
- supports-color
dependencies:
@@ -25070,10 +25039,10 @@ snapshots:
dependencies:
react: 18.3.1
dependencies:
'@auth/core': 0.32.0
react: 18.3.1
@@ -25101,33 +25070,6 @@ snapshots:
- dependencies:
- '@next/env': 14.2.5
- '@swc/helpers': 0.5.5
- busboy: 1.6.0
- caniuse-lite: 1.0.30001643
- graceful-fs: 4.2.11
- postcss: 8.4.31
- react: 18.3.1
- react-dom: 18.3.1([email protected])
- styled-jsx: 5.1.1(@babel/[email protected])([email protected])
- optionalDependencies:
- '@next/swc-darwin-arm64': 14.2.5
- '@next/swc-darwin-x64': 14.2.5
- '@next/swc-linux-arm64-gnu': 14.2.5
- '@next/swc-linux-arm64-musl': 14.2.5
- '@next/swc-linux-x64-gnu': 14.2.5
- '@next/swc-linux-x64-musl': 14.2.5
- '@next/swc-win32-arm64-msvc': 14.2.5
- '@next/swc-win32-ia32-msvc': 14.2.5
- '@next/swc-win32-x64-msvc': 14.2.5
- '@opentelemetry/api': 1.9.0
- sass: 1.77.8
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
-
dependencies:
'@next/env': 14.2.5
@@ -27698,13 +27640,6 @@ snapshots:
dependencies:
inline-style-parser: 0.2.3
- dependencies:
- client-only: 0.0.1
- react: 18.3.1
- optionalDependencies:
- '@babel/core': 7.24.6
-
dependencies:
client-only: 0.0.1
@@ -28545,7 +28480,7 @@ snapshots:
transitivePeerDependencies:
- encoding
dependencies:
'@effect/schema': 0.68.12([email protected])
'@uploadthing/mime-types': 0.2.10
@@ -28555,7 +28490,7 @@ snapshots:
std-env: 3.7.0
optionalDependencies:
express: 4.19.2