eny.space Landingpage
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore(global): install shadcn

+7677 -57
+495
app/actions/components/component-example.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + 5 + import { 6 + Example, 7 + ExampleWrapper, 8 + } from "@/actions/components/example" 9 + import { 10 + AlertDialog, 11 + AlertDialogAction, 12 + AlertDialogCancel, 13 + AlertDialogContent, 14 + AlertDialogDescription, 15 + AlertDialogFooter, 16 + AlertDialogHeader, 17 + AlertDialogMedia, 18 + AlertDialogTitle, 19 + AlertDialogTrigger, 20 + } from "@/actions/components/ui/alert-dialog" 21 + import { Badge } from "@/actions/components/ui/badge" 22 + import { Button } from "@/actions/components/ui/button" 23 + import { 24 + Card, 25 + CardAction, 26 + CardContent, 27 + CardDescription, 28 + CardFooter, 29 + CardHeader, 30 + CardTitle, 31 + } from "@/actions/components/ui/card" 32 + import { 33 + Combobox, 34 + ComboboxContent, 35 + ComboboxEmpty, 36 + ComboboxInput, 37 + ComboboxItem, 38 + ComboboxList, 39 + } from "@/actions/components/ui/combobox" 40 + import { 41 + DropdownMenu, 42 + DropdownMenuCheckboxItem, 43 + DropdownMenuContent, 44 + DropdownMenuGroup, 45 + DropdownMenuItem, 46 + DropdownMenuLabel, 47 + DropdownMenuPortal, 48 + DropdownMenuRadioGroup, 49 + DropdownMenuRadioItem, 50 + DropdownMenuSeparator, 51 + DropdownMenuShortcut, 52 + DropdownMenuSub, 53 + DropdownMenuSubContent, 54 + DropdownMenuSubTrigger, 55 + DropdownMenuTrigger, 56 + } from "@/actions/components/ui/dropdown-menu" 57 + import { Field, FieldGroup, FieldLabel } from "@/actions/components/ui/field" 58 + import { Input } from "@/actions/components/ui/input" 59 + import { 60 + Select, 61 + SelectContent, 62 + SelectGroup, 63 + SelectItem, 64 + SelectTrigger, 65 + SelectValue, 66 + } from "@/actions/components/ui/select" 67 + import { Textarea } from "@/actions/components/ui/textarea" 68 + import { PlusIcon, BluetoothIcon, MoreVerticalIcon, FileIcon, FolderIcon, FolderOpenIcon, FileCodeIcon, MoreHorizontalIcon, FolderSearchIcon, SaveIcon, DownloadIcon, EyeIcon, LayoutIcon, PaletteIcon, SunIcon, MoonIcon, MonitorIcon, UserIcon, CreditCardIcon, SettingsIcon, KeyboardIcon, LanguagesIcon, BellIcon, MailIcon, ShieldIcon, HelpCircleIcon, FileTextIcon, LogOutIcon } from "lucide-react" 69 + 70 + export function ComponentExample() { 71 + return ( 72 + <ExampleWrapper> 73 + <CardExample /> 74 + <FormExample /> 75 + </ExampleWrapper> 76 + ) 77 + } 78 + 79 + function CardExample() { 80 + return ( 81 + <Example title="Card" className="items-center justify-center"> 82 + <Card className="relative w-full max-w-sm overflow-hidden pt-0"> 83 + <div className="absolute inset-0 z-30 aspect-video bg-primary opacity-50 mix-blend-color" /> 84 + <img 85 + src="https://images.unsplash.com/photo-1604076850742-4c7221f3101b?q=80&w=1887&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" 86 + alt="Photo by mymind on Unsplash" 87 + title="Photo by mymind on Unsplash" 88 + className="relative z-20 aspect-video w-full object-cover brightness-60 grayscale" 89 + /> 90 + <CardHeader> 91 + <CardTitle>Observability Plus is replacing Monitoring</CardTitle> 92 + <CardDescription> 93 + Switch to the improved way to explore your data, with natural 94 + language. Monitoring will no longer be available on the Pro plan in 95 + November, 2025 96 + </CardDescription> 97 + </CardHeader> 98 + <CardFooter> 99 + <AlertDialog> 100 + <AlertDialogTrigger asChild> 101 + <Button> 102 + <PlusIcon data-icon="inline-start" /> 103 + Show Dialog 104 + </Button> 105 + </AlertDialogTrigger> 106 + <AlertDialogContent size="sm"> 107 + <AlertDialogHeader> 108 + <AlertDialogMedia> 109 + <BluetoothIcon 110 + /> 111 + </AlertDialogMedia> 112 + <AlertDialogTitle>Allow accessory to connect?</AlertDialogTitle> 113 + <AlertDialogDescription> 114 + Do you want to allow the USB accessory to connect to this 115 + device? 116 + </AlertDialogDescription> 117 + </AlertDialogHeader> 118 + <AlertDialogFooter> 119 + <AlertDialogCancel>Don&apos;t allow</AlertDialogCancel> 120 + <AlertDialogAction>Allow</AlertDialogAction> 121 + </AlertDialogFooter> 122 + </AlertDialogContent> 123 + </AlertDialog> 124 + <Badge variant="secondary" className="ml-auto"> 125 + Warning 126 + </Badge> 127 + </CardFooter> 128 + </Card> 129 + </Example> 130 + ) 131 + } 132 + 133 + const frameworks = [ 134 + "Next.js", 135 + "SvelteKit", 136 + "Nuxt.js", 137 + "Remix", 138 + "Astro", 139 + ] as const 140 + 141 + function FormExample() { 142 + const [notifications, setNotifications] = React.useState({ 143 + email: true, 144 + sms: false, 145 + push: true, 146 + }) 147 + const [theme, setTheme] = React.useState("light") 148 + 149 + return ( 150 + <Example title="Form"> 151 + <Card className="w-full max-w-md"> 152 + <CardHeader> 153 + <CardTitle>User Information</CardTitle> 154 + <CardDescription>Please fill in your details below</CardDescription> 155 + <CardAction> 156 + <DropdownMenu> 157 + <DropdownMenuTrigger asChild> 158 + <Button variant="ghost" size="icon"> 159 + <MoreVerticalIcon 160 + /> 161 + <span className="sr-only">More options</span> 162 + </Button> 163 + </DropdownMenuTrigger> 164 + <DropdownMenuContent align="end" className="w-56"> 165 + <DropdownMenuGroup> 166 + <DropdownMenuLabel>File</DropdownMenuLabel> 167 + <DropdownMenuItem> 168 + <FileIcon 169 + /> 170 + New File 171 + <DropdownMenuShortcut>⌘N</DropdownMenuShortcut> 172 + </DropdownMenuItem> 173 + <DropdownMenuItem> 174 + <FolderIcon 175 + /> 176 + New Folder 177 + <DropdownMenuShortcut>⇧⌘N</DropdownMenuShortcut> 178 + </DropdownMenuItem> 179 + <DropdownMenuSub> 180 + <DropdownMenuSubTrigger> 181 + <FolderOpenIcon 182 + /> 183 + Open Recent 184 + </DropdownMenuSubTrigger> 185 + <DropdownMenuPortal> 186 + <DropdownMenuSubContent> 187 + <DropdownMenuGroup> 188 + <DropdownMenuLabel>Recent Projects</DropdownMenuLabel> 189 + <DropdownMenuItem> 190 + <FileCodeIcon 191 + /> 192 + Project Alpha 193 + </DropdownMenuItem> 194 + <DropdownMenuItem> 195 + <FileCodeIcon 196 + /> 197 + Project Beta 198 + </DropdownMenuItem> 199 + <DropdownMenuSub> 200 + <DropdownMenuSubTrigger> 201 + <MoreHorizontalIcon 202 + /> 203 + More Projects 204 + </DropdownMenuSubTrigger> 205 + <DropdownMenuPortal> 206 + <DropdownMenuSubContent> 207 + <DropdownMenuItem> 208 + <FileCodeIcon 209 + /> 210 + Project Gamma 211 + </DropdownMenuItem> 212 + <DropdownMenuItem> 213 + <FileCodeIcon 214 + /> 215 + Project Delta 216 + </DropdownMenuItem> 217 + </DropdownMenuSubContent> 218 + </DropdownMenuPortal> 219 + </DropdownMenuSub> 220 + </DropdownMenuGroup> 221 + <DropdownMenuSeparator /> 222 + <DropdownMenuGroup> 223 + <DropdownMenuItem> 224 + <FolderSearchIcon 225 + /> 226 + Browse... 227 + </DropdownMenuItem> 228 + </DropdownMenuGroup> 229 + </DropdownMenuSubContent> 230 + </DropdownMenuPortal> 231 + </DropdownMenuSub> 232 + <DropdownMenuSeparator /> 233 + <DropdownMenuItem> 234 + <SaveIcon 235 + /> 236 + Save 237 + <DropdownMenuShortcut>⌘S</DropdownMenuShortcut> 238 + </DropdownMenuItem> 239 + <DropdownMenuItem> 240 + <DownloadIcon 241 + /> 242 + Export 243 + <DropdownMenuShortcut>⇧⌘E</DropdownMenuShortcut> 244 + </DropdownMenuItem> 245 + </DropdownMenuGroup> 246 + <DropdownMenuSeparator /> 247 + <DropdownMenuGroup> 248 + <DropdownMenuLabel>View</DropdownMenuLabel> 249 + <DropdownMenuCheckboxItem 250 + checked={notifications.email} 251 + onCheckedChange={(checked) => 252 + setNotifications({ 253 + ...notifications, 254 + email: checked === true, 255 + }) 256 + } 257 + > 258 + <EyeIcon 259 + /> 260 + Show Sidebar 261 + </DropdownMenuCheckboxItem> 262 + <DropdownMenuCheckboxItem 263 + checked={notifications.sms} 264 + onCheckedChange={(checked) => 265 + setNotifications({ 266 + ...notifications, 267 + sms: checked === true, 268 + }) 269 + } 270 + > 271 + <LayoutIcon 272 + /> 273 + Show Status Bar 274 + </DropdownMenuCheckboxItem> 275 + <DropdownMenuSub> 276 + <DropdownMenuSubTrigger> 277 + <PaletteIcon 278 + /> 279 + Theme 280 + </DropdownMenuSubTrigger> 281 + <DropdownMenuPortal> 282 + <DropdownMenuSubContent> 283 + <DropdownMenuGroup> 284 + <DropdownMenuLabel>Appearance</DropdownMenuLabel> 285 + <DropdownMenuRadioGroup 286 + value={theme} 287 + onValueChange={setTheme} 288 + > 289 + <DropdownMenuRadioItem value="light"> 290 + <SunIcon 291 + /> 292 + Light 293 + </DropdownMenuRadioItem> 294 + <DropdownMenuRadioItem value="dark"> 295 + <MoonIcon 296 + /> 297 + Dark 298 + </DropdownMenuRadioItem> 299 + <DropdownMenuRadioItem value="system"> 300 + <MonitorIcon 301 + /> 302 + System 303 + </DropdownMenuRadioItem> 304 + </DropdownMenuRadioGroup> 305 + </DropdownMenuGroup> 306 + </DropdownMenuSubContent> 307 + </DropdownMenuPortal> 308 + </DropdownMenuSub> 309 + </DropdownMenuGroup> 310 + <DropdownMenuSeparator /> 311 + <DropdownMenuGroup> 312 + <DropdownMenuLabel>Account</DropdownMenuLabel> 313 + <DropdownMenuItem> 314 + <UserIcon 315 + /> 316 + Profile 317 + <DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut> 318 + </DropdownMenuItem> 319 + <DropdownMenuItem> 320 + <CreditCardIcon 321 + /> 322 + Billing 323 + </DropdownMenuItem> 324 + <DropdownMenuSub> 325 + <DropdownMenuSubTrigger> 326 + <SettingsIcon 327 + /> 328 + Settings 329 + </DropdownMenuSubTrigger> 330 + <DropdownMenuPortal> 331 + <DropdownMenuSubContent> 332 + <DropdownMenuGroup> 333 + <DropdownMenuLabel>Preferences</DropdownMenuLabel> 334 + <DropdownMenuItem> 335 + <KeyboardIcon 336 + /> 337 + Keyboard Shortcuts 338 + </DropdownMenuItem> 339 + <DropdownMenuItem> 340 + <LanguagesIcon 341 + /> 342 + Language 343 + </DropdownMenuItem> 344 + <DropdownMenuSub> 345 + <DropdownMenuSubTrigger> 346 + <BellIcon 347 + /> 348 + Notifications 349 + </DropdownMenuSubTrigger> 350 + <DropdownMenuPortal> 351 + <DropdownMenuSubContent> 352 + <DropdownMenuGroup> 353 + <DropdownMenuLabel> 354 + Notification Types 355 + </DropdownMenuLabel> 356 + <DropdownMenuCheckboxItem 357 + checked={notifications.push} 358 + onCheckedChange={(checked) => 359 + setNotifications({ 360 + ...notifications, 361 + push: checked === true, 362 + }) 363 + } 364 + > 365 + <BellIcon 366 + /> 367 + Push Notifications 368 + </DropdownMenuCheckboxItem> 369 + <DropdownMenuCheckboxItem 370 + checked={notifications.email} 371 + onCheckedChange={(checked) => 372 + setNotifications({ 373 + ...notifications, 374 + email: checked === true, 375 + }) 376 + } 377 + > 378 + <MailIcon 379 + /> 380 + Email Notifications 381 + </DropdownMenuCheckboxItem> 382 + </DropdownMenuGroup> 383 + </DropdownMenuSubContent> 384 + </DropdownMenuPortal> 385 + </DropdownMenuSub> 386 + </DropdownMenuGroup> 387 + <DropdownMenuSeparator /> 388 + <DropdownMenuGroup> 389 + <DropdownMenuItem> 390 + <ShieldIcon 391 + /> 392 + Privacy & Security 393 + </DropdownMenuItem> 394 + </DropdownMenuGroup> 395 + </DropdownMenuSubContent> 396 + </DropdownMenuPortal> 397 + </DropdownMenuSub> 398 + </DropdownMenuGroup> 399 + <DropdownMenuSeparator /> 400 + <DropdownMenuGroup> 401 + <DropdownMenuItem> 402 + <HelpCircleIcon 403 + /> 404 + Help & Support 405 + </DropdownMenuItem> 406 + <DropdownMenuItem> 407 + <FileTextIcon 408 + /> 409 + Documentation 410 + </DropdownMenuItem> 411 + </DropdownMenuGroup> 412 + <DropdownMenuSeparator /> 413 + <DropdownMenuGroup> 414 + <DropdownMenuItem variant="destructive"> 415 + <LogOutIcon 416 + /> 417 + Sign Out 418 + <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut> 419 + </DropdownMenuItem> 420 + </DropdownMenuGroup> 421 + </DropdownMenuContent> 422 + </DropdownMenu> 423 + </CardAction> 424 + </CardHeader> 425 + <CardContent> 426 + <form> 427 + <FieldGroup> 428 + <div className="grid grid-cols-2 gap-4"> 429 + <Field> 430 + <FieldLabel htmlFor="small-form-name">Name</FieldLabel> 431 + <Input 432 + id="small-form-name" 433 + placeholder="Enter your name" 434 + required 435 + /> 436 + </Field> 437 + <Field> 438 + <FieldLabel htmlFor="small-form-role">Role</FieldLabel> 439 + <Select defaultValue=""> 440 + <SelectTrigger id="small-form-role"> 441 + <SelectValue placeholder="Select a role" /> 442 + </SelectTrigger> 443 + <SelectContent> 444 + <SelectGroup> 445 + <SelectItem value="developer">Developer</SelectItem> 446 + <SelectItem value="designer">Designer</SelectItem> 447 + <SelectItem value="manager">Manager</SelectItem> 448 + <SelectItem value="other">Other</SelectItem> 449 + </SelectGroup> 450 + </SelectContent> 451 + </Select> 452 + </Field> 453 + </div> 454 + <Field> 455 + <FieldLabel htmlFor="small-form-framework"> 456 + Framework 457 + </FieldLabel> 458 + <Combobox items={frameworks}> 459 + <ComboboxInput 460 + id="small-form-framework" 461 + placeholder="Select a framework" 462 + required 463 + /> 464 + <ComboboxContent> 465 + <ComboboxEmpty>No frameworks found.</ComboboxEmpty> 466 + <ComboboxList> 467 + {(item) => ( 468 + <ComboboxItem key={item} value={item}> 469 + {item} 470 + </ComboboxItem> 471 + )} 472 + </ComboboxList> 473 + </ComboboxContent> 474 + </Combobox> 475 + </Field> 476 + <Field> 477 + <FieldLabel htmlFor="small-form-comments">Comments</FieldLabel> 478 + <Textarea 479 + id="small-form-comments" 480 + placeholder="Add any additional comments" 481 + /> 482 + </Field> 483 + <Field orientation="horizontal"> 484 + <Button type="submit">Submit</Button> 485 + <Button variant="outline" type="button"> 486 + Cancel 487 + </Button> 488 + </Field> 489 + </FieldGroup> 490 + </form> 491 + </CardContent> 492 + </Card> 493 + </Example> 494 + ) 495 + }
+55
app/actions/components/example.tsx
··· 1 + import { cn } from "@/actions/lib/utils" 2 + 3 + function ExampleWrapper({ className, ...props }: React.ComponentProps<"div">) { 4 + return ( 5 + <div className="w-full bg-background"> 6 + <div 7 + data-slot="example-wrapper" 8 + className={cn( 9 + "mx-auto grid min-h-screen w-full max-w-5xl min-w-0 content-center items-start gap-8 p-4 pt-2 sm:gap-12 sm:p-6 md:grid-cols-2 md:gap-8 lg:p-12 2xl:max-w-6xl", 10 + className 11 + )} 12 + {...props} 13 + /> 14 + </div> 15 + ) 16 + } 17 + 18 + function Example({ 19 + title, 20 + children, 21 + className, 22 + containerClassName, 23 + ...props 24 + }: React.ComponentProps<"div"> & { 25 + title?: string 26 + containerClassName?: string 27 + }) { 28 + return ( 29 + <div 30 + data-slot="example" 31 + className={cn( 32 + "mx-auto flex w-full max-w-lg min-w-0 flex-col gap-1 self-stretch lg:max-w-none", 33 + containerClassName 34 + )} 35 + {...props} 36 + > 37 + {title && ( 38 + <div className="px-1.5 py-2 text-xs font-medium text-muted-foreground"> 39 + {title} 40 + </div> 41 + )} 42 + <div 43 + data-slot="example-content" 44 + className={cn( 45 + "flex min-w-0 flex-1 flex-col items-start gap-6 border border-dashed bg-background p-4 text-foreground sm:p-6 *:[div:not([class*='w-'])]:w-full", 46 + className 47 + )} 48 + > 49 + {children} 50 + </div> 51 + </div> 52 + ) 53 + } 54 + 55 + export { ExampleWrapper, Example }
+199
app/actions/components/ui/alert-dialog.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { AlertDialog as AlertDialogPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + import { Button } from "@/actions/components/ui/button" 8 + 9 + function AlertDialog({ 10 + ...props 11 + }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) { 12 + return <AlertDialogPrimitive.Root data-slot="alert-dialog" {...props} /> 13 + } 14 + 15 + function AlertDialogTrigger({ 16 + ...props 17 + }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) { 18 + return ( 19 + <AlertDialogPrimitive.Trigger data-slot="alert-dialog-trigger" {...props} /> 20 + ) 21 + } 22 + 23 + function AlertDialogPortal({ 24 + ...props 25 + }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) { 26 + return ( 27 + <AlertDialogPrimitive.Portal data-slot="alert-dialog-portal" {...props} /> 28 + ) 29 + } 30 + 31 + function AlertDialogOverlay({ 32 + className, 33 + ...props 34 + }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) { 35 + return ( 36 + <AlertDialogPrimitive.Overlay 37 + data-slot="alert-dialog-overlay" 38 + className={cn( 39 + "fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", 40 + className 41 + )} 42 + {...props} 43 + /> 44 + ) 45 + } 46 + 47 + function AlertDialogContent({ 48 + className, 49 + size = "default", 50 + ...props 51 + }: React.ComponentProps<typeof AlertDialogPrimitive.Content> & { 52 + size?: "default" | "sm" 53 + }) { 54 + return ( 55 + <AlertDialogPortal> 56 + <AlertDialogOverlay /> 57 + <AlertDialogPrimitive.Content 58 + data-slot="alert-dialog-content" 59 + data-size={size} 60 + className={cn( 61 + "group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-background p-4 ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", 62 + className 63 + )} 64 + {...props} 65 + /> 66 + </AlertDialogPortal> 67 + ) 68 + } 69 + 70 + function AlertDialogHeader({ 71 + className, 72 + ...props 73 + }: React.ComponentProps<"div">) { 74 + return ( 75 + <div 76 + data-slot="alert-dialog-header" 77 + className={cn( 78 + "grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", 79 + className 80 + )} 81 + {...props} 82 + /> 83 + ) 84 + } 85 + 86 + function AlertDialogFooter({ 87 + className, 88 + ...props 89 + }: React.ComponentProps<"div">) { 90 + return ( 91 + <div 92 + data-slot="alert-dialog-footer" 93 + className={cn( 94 + "-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", 95 + className 96 + )} 97 + {...props} 98 + /> 99 + ) 100 + } 101 + 102 + function AlertDialogMedia({ 103 + className, 104 + ...props 105 + }: React.ComponentProps<"div">) { 106 + return ( 107 + <div 108 + data-slot="alert-dialog-media" 109 + className={cn( 110 + "mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6", 111 + className 112 + )} 113 + {...props} 114 + /> 115 + ) 116 + } 117 + 118 + function AlertDialogTitle({ 119 + className, 120 + ...props 121 + }: React.ComponentProps<typeof AlertDialogPrimitive.Title>) { 122 + return ( 123 + <AlertDialogPrimitive.Title 124 + data-slot="alert-dialog-title" 125 + className={cn( 126 + "text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", 127 + className 128 + )} 129 + {...props} 130 + /> 131 + ) 132 + } 133 + 134 + function AlertDialogDescription({ 135 + className, 136 + ...props 137 + }: React.ComponentProps<typeof AlertDialogPrimitive.Description>) { 138 + return ( 139 + <AlertDialogPrimitive.Description 140 + data-slot="alert-dialog-description" 141 + className={cn( 142 + "text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", 143 + className 144 + )} 145 + {...props} 146 + /> 147 + ) 148 + } 149 + 150 + function AlertDialogAction({ 151 + className, 152 + variant = "default", 153 + size = "default", 154 + ...props 155 + }: React.ComponentProps<typeof AlertDialogPrimitive.Action> & 156 + Pick<React.ComponentProps<typeof Button>, "variant" | "size">) { 157 + return ( 158 + <Button variant={variant} size={size} asChild> 159 + <AlertDialogPrimitive.Action 160 + data-slot="alert-dialog-action" 161 + className={cn(className)} 162 + {...props} 163 + /> 164 + </Button> 165 + ) 166 + } 167 + 168 + function AlertDialogCancel({ 169 + className, 170 + variant = "outline", 171 + size = "default", 172 + ...props 173 + }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> & 174 + Pick<React.ComponentProps<typeof Button>, "variant" | "size">) { 175 + return ( 176 + <Button variant={variant} size={size} asChild> 177 + <AlertDialogPrimitive.Cancel 178 + data-slot="alert-dialog-cancel" 179 + className={cn(className)} 180 + {...props} 181 + /> 182 + </Button> 183 + ) 184 + } 185 + 186 + export { 187 + AlertDialog, 188 + AlertDialogAction, 189 + AlertDialogCancel, 190 + AlertDialogContent, 191 + AlertDialogDescription, 192 + AlertDialogFooter, 193 + AlertDialogHeader, 194 + AlertDialogMedia, 195 + AlertDialogOverlay, 196 + AlertDialogPortal, 197 + AlertDialogTitle, 198 + AlertDialogTrigger, 199 + }
+49
app/actions/components/ui/badge.tsx
··· 1 + import * as React from "react" 2 + import { cva, type VariantProps } from "class-variance-authority" 3 + import { Slot } from "radix-ui" 4 + 5 + import { cn } from "@/actions/lib/utils" 6 + 7 + const badgeVariants = cva( 8 + "group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!", 9 + { 10 + variants: { 11 + variant: { 12 + default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80", 13 + secondary: 14 + "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80", 15 + destructive: 16 + "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20", 17 + outline: 18 + "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground", 19 + ghost: 20 + "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50", 21 + link: "text-primary underline-offset-4 hover:underline", 22 + }, 23 + }, 24 + defaultVariants: { 25 + variant: "default", 26 + }, 27 + } 28 + ) 29 + 30 + function Badge({ 31 + className, 32 + variant = "default", 33 + asChild = false, 34 + ...props 35 + }: React.ComponentProps<"span"> & 36 + VariantProps<typeof badgeVariants> & { asChild?: boolean }) { 37 + const Comp = asChild ? Slot.Root : "span" 38 + 39 + return ( 40 + <Comp 41 + data-slot="badge" 42 + data-variant={variant} 43 + className={cn(badgeVariants({ variant }), className)} 44 + {...props} 45 + /> 46 + ) 47 + } 48 + 49 + export { Badge, badgeVariants }
+67
app/actions/components/ui/button.tsx
··· 1 + import * as React from "react" 2 + import { cva, type VariantProps } from "class-variance-authority" 3 + import { Slot } from "radix-ui" 4 + 5 + import { cn } from "@/actions/lib/utils" 6 + 7 + const buttonVariants = cva( 8 + "group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 9 + { 10 + variants: { 11 + variant: { 12 + default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80", 13 + outline: 14 + "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50", 15 + secondary: 16 + "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground", 17 + ghost: 18 + "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50", 19 + destructive: 20 + "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40", 21 + link: "text-primary underline-offset-4 hover:underline", 22 + }, 23 + size: { 24 + default: 25 + "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2", 26 + xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3", 27 + sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5", 28 + lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3", 29 + icon: "size-8", 30 + "icon-xs": 31 + "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3", 32 + "icon-sm": 33 + "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg", 34 + "icon-lg": "size-9", 35 + }, 36 + }, 37 + defaultVariants: { 38 + variant: "default", 39 + size: "default", 40 + }, 41 + } 42 + ) 43 + 44 + function Button({ 45 + className, 46 + variant = "default", 47 + size = "default", 48 + asChild = false, 49 + ...props 50 + }: React.ComponentProps<"button"> & 51 + VariantProps<typeof buttonVariants> & { 52 + asChild?: boolean 53 + }) { 54 + const Comp = asChild ? Slot.Root : "button" 55 + 56 + return ( 57 + <Comp 58 + data-slot="button" 59 + data-variant={variant} 60 + data-size={size} 61 + className={cn(buttonVariants({ variant, size, className }))} 62 + {...props} 63 + /> 64 + ) 65 + } 66 + 67 + export { Button, buttonVariants }
+103
app/actions/components/ui/card.tsx
··· 1 + import * as React from "react" 2 + 3 + import { cn } from "@/actions/lib/utils" 4 + 5 + function Card({ 6 + className, 7 + size = "default", 8 + ...props 9 + }: React.ComponentProps<"div"> & { size?: "default" | "sm" }) { 10 + return ( 11 + <div 12 + data-slot="card" 13 + data-size={size} 14 + className={cn( 15 + "group/card flex flex-col gap-4 overflow-hidden rounded-xl bg-card py-4 text-sm text-card-foreground ring-1 ring-foreground/10 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", 16 + className 17 + )} 18 + {...props} 19 + /> 20 + ) 21 + } 22 + 23 + function CardHeader({ className, ...props }: React.ComponentProps<"div">) { 24 + return ( 25 + <div 26 + data-slot="card-header" 27 + className={cn( 28 + "group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3", 29 + className 30 + )} 31 + {...props} 32 + /> 33 + ) 34 + } 35 + 36 + function CardTitle({ className, ...props }: React.ComponentProps<"div">) { 37 + return ( 38 + <div 39 + data-slot="card-title" 40 + className={cn( 41 + "text-base leading-snug font-medium group-data-[size=sm]/card:text-sm", 42 + className 43 + )} 44 + {...props} 45 + /> 46 + ) 47 + } 48 + 49 + function CardDescription({ className, ...props }: React.ComponentProps<"div">) { 50 + return ( 51 + <div 52 + data-slot="card-description" 53 + className={cn("text-sm text-muted-foreground", className)} 54 + {...props} 55 + /> 56 + ) 57 + } 58 + 59 + function CardAction({ className, ...props }: React.ComponentProps<"div">) { 60 + return ( 61 + <div 62 + data-slot="card-action" 63 + className={cn( 64 + "col-start-2 row-span-2 row-start-1 self-start justify-self-end", 65 + className 66 + )} 67 + {...props} 68 + /> 69 + ) 70 + } 71 + 72 + function CardContent({ className, ...props }: React.ComponentProps<"div">) { 73 + return ( 74 + <div 75 + data-slot="card-content" 76 + className={cn("px-4 group-data-[size=sm]/card:px-3", className)} 77 + {...props} 78 + /> 79 + ) 80 + } 81 + 82 + function CardFooter({ className, ...props }: React.ComponentProps<"div">) { 83 + return ( 84 + <div 85 + data-slot="card-footer" 86 + className={cn( 87 + "flex items-center rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/card:p-3", 88 + className 89 + )} 90 + {...props} 91 + /> 92 + ) 93 + } 94 + 95 + export { 96 + Card, 97 + CardHeader, 98 + CardFooter, 99 + CardTitle, 100 + CardAction, 101 + CardDescription, 102 + CardContent, 103 + }
+299
app/actions/components/ui/combobox.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Combobox as ComboboxPrimitive } from "@base-ui/react" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + import { Button } from "@/actions/components/ui/button" 8 + import { 9 + InputGroup, 10 + InputGroupAddon, 11 + InputGroupButton, 12 + InputGroupInput, 13 + } from "@/actions/components/ui/input-group" 14 + import { ChevronDownIcon, XIcon, CheckIcon } from "lucide-react" 15 + 16 + const Combobox = ComboboxPrimitive.Root 17 + 18 + function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) { 19 + return <ComboboxPrimitive.Value data-slot="combobox-value" {...props} /> 20 + } 21 + 22 + function ComboboxTrigger({ 23 + className, 24 + children, 25 + ...props 26 + }: ComboboxPrimitive.Trigger.Props) { 27 + return ( 28 + <ComboboxPrimitive.Trigger 29 + data-slot="combobox-trigger" 30 + className={cn("[&_svg:not([class*='size-'])]:size-4", className)} 31 + {...props} 32 + > 33 + {children} 34 + <ChevronDownIcon className="pointer-events-none size-4 text-muted-foreground" /> 35 + </ComboboxPrimitive.Trigger> 36 + ) 37 + } 38 + 39 + function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) { 40 + return ( 41 + <ComboboxPrimitive.Clear 42 + data-slot="combobox-clear" 43 + render={<InputGroupButton variant="ghost" size="icon-xs" />} 44 + className={cn(className)} 45 + {...props} 46 + > 47 + <XIcon className="pointer-events-none" /> 48 + </ComboboxPrimitive.Clear> 49 + ) 50 + } 51 + 52 + function ComboboxInput({ 53 + className, 54 + children, 55 + disabled = false, 56 + showTrigger = true, 57 + showClear = false, 58 + ...props 59 + }: ComboboxPrimitive.Input.Props & { 60 + showTrigger?: boolean 61 + showClear?: boolean 62 + }) { 63 + return ( 64 + <InputGroup className={cn("w-auto", className)}> 65 + <ComboboxPrimitive.Input 66 + render={<InputGroupInput disabled={disabled} />} 67 + {...props} 68 + /> 69 + <InputGroupAddon align="inline-end"> 70 + {showTrigger && ( 71 + <InputGroupButton 72 + size="icon-xs" 73 + variant="ghost" 74 + asChild 75 + data-slot="input-group-button" 76 + className="group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent" 77 + disabled={disabled} 78 + > 79 + <ComboboxTrigger /> 80 + </InputGroupButton> 81 + )} 82 + {showClear && <ComboboxClear disabled={disabled} />} 83 + </InputGroupAddon> 84 + {children} 85 + </InputGroup> 86 + ) 87 + } 88 + 89 + function ComboboxContent({ 90 + className, 91 + side = "bottom", 92 + sideOffset = 6, 93 + align = "start", 94 + alignOffset = 0, 95 + anchor, 96 + ...props 97 + }: ComboboxPrimitive.Popup.Props & 98 + Pick< 99 + ComboboxPrimitive.Positioner.Props, 100 + "side" | "align" | "sideOffset" | "alignOffset" | "anchor" 101 + >) { 102 + return ( 103 + <ComboboxPrimitive.Portal> 104 + <ComboboxPrimitive.Positioner 105 + side={side} 106 + sideOffset={sideOffset} 107 + align={align} 108 + alignOffset={alignOffset} 109 + anchor={anchor} 110 + className="isolate z-50" 111 + > 112 + <ComboboxPrimitive.Popup 113 + data-slot="combobox-content" 114 + data-chips={!!anchor} 115 + className={cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className )} 116 + {...props} 117 + /> 118 + </ComboboxPrimitive.Positioner> 119 + </ComboboxPrimitive.Portal> 120 + ) 121 + } 122 + 123 + function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) { 124 + return ( 125 + <ComboboxPrimitive.List 126 + data-slot="combobox-list" 127 + className={cn( 128 + "no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0", 129 + className 130 + )} 131 + {...props} 132 + /> 133 + ) 134 + } 135 + 136 + function ComboboxItem({ 137 + className, 138 + children, 139 + ...props 140 + }: ComboboxPrimitive.Item.Props) { 141 + return ( 142 + <ComboboxPrimitive.Item 143 + data-slot="combobox-item" 144 + className={cn( 145 + "relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 146 + className 147 + )} 148 + {...props} 149 + > 150 + {children} 151 + <ComboboxPrimitive.ItemIndicator 152 + render={ 153 + <span className="pointer-events-none absolute right-2 flex size-4 items-center justify-center" /> 154 + } 155 + > 156 + <CheckIcon className="pointer-events-none" /> 157 + </ComboboxPrimitive.ItemIndicator> 158 + </ComboboxPrimitive.Item> 159 + ) 160 + } 161 + 162 + function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) { 163 + return ( 164 + <ComboboxPrimitive.Group 165 + data-slot="combobox-group" 166 + className={cn(className)} 167 + {...props} 168 + /> 169 + ) 170 + } 171 + 172 + function ComboboxLabel({ 173 + className, 174 + ...props 175 + }: ComboboxPrimitive.GroupLabel.Props) { 176 + return ( 177 + <ComboboxPrimitive.GroupLabel 178 + data-slot="combobox-label" 179 + className={cn("px-2 py-1.5 text-xs text-muted-foreground", className)} 180 + {...props} 181 + /> 182 + ) 183 + } 184 + 185 + function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) { 186 + return ( 187 + <ComboboxPrimitive.Collection data-slot="combobox-collection" {...props} /> 188 + ) 189 + } 190 + 191 + function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) { 192 + return ( 193 + <ComboboxPrimitive.Empty 194 + data-slot="combobox-empty" 195 + className={cn( 196 + "hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex", 197 + className 198 + )} 199 + {...props} 200 + /> 201 + ) 202 + } 203 + 204 + function ComboboxSeparator({ 205 + className, 206 + ...props 207 + }: ComboboxPrimitive.Separator.Props) { 208 + return ( 209 + <ComboboxPrimitive.Separator 210 + data-slot="combobox-separator" 211 + className={cn("-mx-1 my-1 h-px bg-border", className)} 212 + {...props} 213 + /> 214 + ) 215 + } 216 + 217 + function ComboboxChips({ 218 + className, 219 + ...props 220 + }: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & 221 + ComboboxPrimitive.Chips.Props) { 222 + return ( 223 + <ComboboxPrimitive.Chips 224 + data-slot="combobox-chips" 225 + className={cn( 226 + "flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40", 227 + className 228 + )} 229 + {...props} 230 + /> 231 + ) 232 + } 233 + 234 + function ComboboxChip({ 235 + className, 236 + children, 237 + showRemove = true, 238 + ...props 239 + }: ComboboxPrimitive.Chip.Props & { 240 + showRemove?: boolean 241 + }) { 242 + return ( 243 + <ComboboxPrimitive.Chip 244 + data-slot="combobox-chip" 245 + className={cn( 246 + "flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0", 247 + className 248 + )} 249 + {...props} 250 + > 251 + {children} 252 + {showRemove && ( 253 + <ComboboxPrimitive.ChipRemove 254 + render={<Button variant="ghost" size="icon-xs" />} 255 + className="-ml-1 opacity-50 hover:opacity-100" 256 + data-slot="combobox-chip-remove" 257 + > 258 + <XIcon className="pointer-events-none" /> 259 + </ComboboxPrimitive.ChipRemove> 260 + )} 261 + </ComboboxPrimitive.Chip> 262 + ) 263 + } 264 + 265 + function ComboboxChipsInput({ 266 + className, 267 + ...props 268 + }: ComboboxPrimitive.Input.Props) { 269 + return ( 270 + <ComboboxPrimitive.Input 271 + data-slot="combobox-chip-input" 272 + className={cn("min-w-16 flex-1 outline-none", className)} 273 + {...props} 274 + /> 275 + ) 276 + } 277 + 278 + function useComboboxAnchor() { 279 + return React.useRef<HTMLDivElement | null>(null) 280 + } 281 + 282 + export { 283 + Combobox, 284 + ComboboxInput, 285 + ComboboxContent, 286 + ComboboxList, 287 + ComboboxItem, 288 + ComboboxGroup, 289 + ComboboxLabel, 290 + ComboboxCollection, 291 + ComboboxEmpty, 292 + ComboboxSeparator, 293 + ComboboxChips, 294 + ComboboxChip, 295 + ComboboxChipsInput, 296 + ComboboxTrigger, 297 + ComboboxValue, 298 + useComboboxAnchor, 299 + }
+269
app/actions/components/ui/dropdown-menu.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + import { CheckIcon, ChevronRightIcon } from "lucide-react" 8 + 9 + function DropdownMenu({ 10 + ...props 11 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) { 12 + return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} /> 13 + } 14 + 15 + function DropdownMenuPortal({ 16 + ...props 17 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) { 18 + return ( 19 + <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} /> 20 + ) 21 + } 22 + 23 + function DropdownMenuTrigger({ 24 + ...props 25 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) { 26 + return ( 27 + <DropdownMenuPrimitive.Trigger 28 + data-slot="dropdown-menu-trigger" 29 + {...props} 30 + /> 31 + ) 32 + } 33 + 34 + function DropdownMenuContent({ 35 + className, 36 + align = "start", 37 + sideOffset = 4, 38 + ...props 39 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) { 40 + return ( 41 + <DropdownMenuPrimitive.Portal> 42 + <DropdownMenuPrimitive.Content 43 + data-slot="dropdown-menu-content" 44 + sideOffset={sideOffset} 45 + align={align} 46 + className={cn("z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className )} 47 + {...props} 48 + /> 49 + </DropdownMenuPrimitive.Portal> 50 + ) 51 + } 52 + 53 + function DropdownMenuGroup({ 54 + ...props 55 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) { 56 + return ( 57 + <DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} /> 58 + ) 59 + } 60 + 61 + function DropdownMenuItem({ 62 + className, 63 + inset, 64 + variant = "default", 65 + ...props 66 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & { 67 + inset?: boolean 68 + variant?: "default" | "destructive" 69 + }) { 70 + return ( 71 + <DropdownMenuPrimitive.Item 72 + data-slot="dropdown-menu-item" 73 + data-inset={inset} 74 + data-variant={variant} 75 + className={cn( 76 + "group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive", 77 + className 78 + )} 79 + {...props} 80 + /> 81 + ) 82 + } 83 + 84 + function DropdownMenuCheckboxItem({ 85 + className, 86 + children, 87 + checked, 88 + inset, 89 + ...props 90 + }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & { 91 + inset?: boolean 92 + }) { 93 + return ( 94 + <DropdownMenuPrimitive.CheckboxItem 95 + data-slot="dropdown-menu-checkbox-item" 96 + data-inset={inset} 97 + className={cn( 98 + "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 99 + className 100 + )} 101 + checked={checked} 102 + {...props} 103 + > 104 + <span 105 + className="pointer-events-none absolute right-2 flex items-center justify-center" 106 + data-slot="dropdown-menu-checkbox-item-indicator" 107 + > 108 + <DropdownMenuPrimitive.ItemIndicator> 109 + <CheckIcon 110 + /> 111 + </DropdownMenuPrimitive.ItemIndicator> 112 + </span> 113 + {children} 114 + </DropdownMenuPrimitive.CheckboxItem> 115 + ) 116 + } 117 + 118 + function DropdownMenuRadioGroup({ 119 + ...props 120 + }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) { 121 + return ( 122 + <DropdownMenuPrimitive.RadioGroup 123 + data-slot="dropdown-menu-radio-group" 124 + {...props} 125 + /> 126 + ) 127 + } 128 + 129 + function DropdownMenuRadioItem({ 130 + className, 131 + children, 132 + inset, 133 + ...props 134 + }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & { 135 + inset?: boolean 136 + }) { 137 + return ( 138 + <DropdownMenuPrimitive.RadioItem 139 + data-slot="dropdown-menu-radio-item" 140 + data-inset={inset} 141 + className={cn( 142 + "relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 143 + className 144 + )} 145 + {...props} 146 + > 147 + <span 148 + className="pointer-events-none absolute right-2 flex items-center justify-center" 149 + data-slot="dropdown-menu-radio-item-indicator" 150 + > 151 + <DropdownMenuPrimitive.ItemIndicator> 152 + <CheckIcon 153 + /> 154 + </DropdownMenuPrimitive.ItemIndicator> 155 + </span> 156 + {children} 157 + </DropdownMenuPrimitive.RadioItem> 158 + ) 159 + } 160 + 161 + function DropdownMenuLabel({ 162 + className, 163 + inset, 164 + ...props 165 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & { 166 + inset?: boolean 167 + }) { 168 + return ( 169 + <DropdownMenuPrimitive.Label 170 + data-slot="dropdown-menu-label" 171 + data-inset={inset} 172 + className={cn( 173 + "px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7", 174 + className 175 + )} 176 + {...props} 177 + /> 178 + ) 179 + } 180 + 181 + function DropdownMenuSeparator({ 182 + className, 183 + ...props 184 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) { 185 + return ( 186 + <DropdownMenuPrimitive.Separator 187 + data-slot="dropdown-menu-separator" 188 + className={cn("-mx-1 my-1 h-px bg-border", className)} 189 + {...props} 190 + /> 191 + ) 192 + } 193 + 194 + function DropdownMenuShortcut({ 195 + className, 196 + ...props 197 + }: React.ComponentProps<"span">) { 198 + return ( 199 + <span 200 + data-slot="dropdown-menu-shortcut" 201 + className={cn( 202 + "ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground", 203 + className 204 + )} 205 + {...props} 206 + /> 207 + ) 208 + } 209 + 210 + function DropdownMenuSub({ 211 + ...props 212 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) { 213 + return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} /> 214 + } 215 + 216 + function DropdownMenuSubTrigger({ 217 + className, 218 + inset, 219 + children, 220 + ...props 221 + }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & { 222 + inset?: boolean 223 + }) { 224 + return ( 225 + <DropdownMenuPrimitive.SubTrigger 226 + data-slot="dropdown-menu-sub-trigger" 227 + data-inset={inset} 228 + className={cn( 229 + "flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 230 + className 231 + )} 232 + {...props} 233 + > 234 + {children} 235 + <ChevronRightIcon className="ml-auto" /> 236 + </DropdownMenuPrimitive.SubTrigger> 237 + ) 238 + } 239 + 240 + function DropdownMenuSubContent({ 241 + className, 242 + ...props 243 + }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) { 244 + return ( 245 + <DropdownMenuPrimitive.SubContent 246 + data-slot="dropdown-menu-sub-content" 247 + className={cn("z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-lg bg-popover p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className )} 248 + {...props} 249 + /> 250 + ) 251 + } 252 + 253 + export { 254 + DropdownMenu, 255 + DropdownMenuPortal, 256 + DropdownMenuTrigger, 257 + DropdownMenuContent, 258 + DropdownMenuGroup, 259 + DropdownMenuLabel, 260 + DropdownMenuItem, 261 + DropdownMenuCheckboxItem, 262 + DropdownMenuRadioGroup, 263 + DropdownMenuRadioItem, 264 + DropdownMenuSeparator, 265 + DropdownMenuShortcut, 266 + DropdownMenuSub, 267 + DropdownMenuSubTrigger, 268 + DropdownMenuSubContent, 269 + }
+238
app/actions/components/ui/field.tsx
··· 1 + "use client" 2 + 3 + import { useMemo } from "react" 4 + import { cva, type VariantProps } from "class-variance-authority" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + import { Label } from "@/actions/components/ui/label" 8 + import { Separator } from "@/actions/components/ui/separator" 9 + 10 + function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) { 11 + return ( 12 + <fieldset 13 + data-slot="field-set" 14 + className={cn( 15 + "flex flex-col gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", 16 + className 17 + )} 18 + {...props} 19 + /> 20 + ) 21 + } 22 + 23 + function FieldLegend({ 24 + className, 25 + variant = "legend", 26 + ...props 27 + }: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }) { 28 + return ( 29 + <legend 30 + data-slot="field-legend" 31 + data-variant={variant} 32 + className={cn( 33 + "mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base", 34 + className 35 + )} 36 + {...props} 37 + /> 38 + ) 39 + } 40 + 41 + function FieldGroup({ className, ...props }: React.ComponentProps<"div">) { 42 + return ( 43 + <div 44 + data-slot="field-group" 45 + className={cn( 46 + "group/field-group @container/field-group flex w-full flex-col gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4", 47 + className 48 + )} 49 + {...props} 50 + /> 51 + ) 52 + } 53 + 54 + const fieldVariants = cva( 55 + "group/field flex w-full gap-2 data-[invalid=true]:text-destructive", 56 + { 57 + variants: { 58 + orientation: { 59 + vertical: "flex-col *:w-full [&>.sr-only]:w-auto", 60 + horizontal: 61 + "flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", 62 + responsive: 63 + "flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", 64 + }, 65 + }, 66 + defaultVariants: { 67 + orientation: "vertical", 68 + }, 69 + } 70 + ) 71 + 72 + function Field({ 73 + className, 74 + orientation = "vertical", 75 + ...props 76 + }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>) { 77 + return ( 78 + <div 79 + role="group" 80 + data-slot="field" 81 + data-orientation={orientation} 82 + className={cn(fieldVariants({ orientation }), className)} 83 + {...props} 84 + /> 85 + ) 86 + } 87 + 88 + function FieldContent({ className, ...props }: React.ComponentProps<"div">) { 89 + return ( 90 + <div 91 + data-slot="field-content" 92 + className={cn( 93 + "group/field-content flex flex-1 flex-col gap-0.5 leading-snug", 94 + className 95 + )} 96 + {...props} 97 + /> 98 + ) 99 + } 100 + 101 + function FieldLabel({ 102 + className, 103 + ...props 104 + }: React.ComponentProps<typeof Label>) { 105 + return ( 106 + <Label 107 + data-slot="field-label" 108 + className={cn( 109 + "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-data-checked:border-primary/30 has-data-checked:bg-primary/5 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10", 110 + "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col", 111 + className 112 + )} 113 + {...props} 114 + /> 115 + ) 116 + } 117 + 118 + function FieldTitle({ className, ...props }: React.ComponentProps<"div">) { 119 + return ( 120 + <div 121 + data-slot="field-label" 122 + className={cn( 123 + "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50", 124 + className 125 + )} 126 + {...props} 127 + /> 128 + ) 129 + } 130 + 131 + function FieldDescription({ className, ...props }: React.ComponentProps<"p">) { 132 + return ( 133 + <p 134 + data-slot="field-description" 135 + className={cn( 136 + "text-left text-sm leading-normal font-normal text-muted-foreground group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5", 137 + "last:mt-0 nth-last-2:-mt-1", 138 + "[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", 139 + className 140 + )} 141 + {...props} 142 + /> 143 + ) 144 + } 145 + 146 + function FieldSeparator({ 147 + children, 148 + className, 149 + ...props 150 + }: React.ComponentProps<"div"> & { 151 + children?: React.ReactNode 152 + }) { 153 + return ( 154 + <div 155 + data-slot="field-separator" 156 + data-content={!!children} 157 + className={cn( 158 + "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", 159 + className 160 + )} 161 + {...props} 162 + > 163 + <Separator className="absolute inset-0 top-1/2" /> 164 + {children && ( 165 + <span 166 + className="relative mx-auto block w-fit bg-background px-2 text-muted-foreground" 167 + data-slot="field-separator-content" 168 + > 169 + {children} 170 + </span> 171 + )} 172 + </div> 173 + ) 174 + } 175 + 176 + function FieldError({ 177 + className, 178 + children, 179 + errors, 180 + ...props 181 + }: React.ComponentProps<"div"> & { 182 + errors?: Array<{ message?: string } | undefined> 183 + }) { 184 + const content = useMemo(() => { 185 + if (children) { 186 + return children 187 + } 188 + 189 + if (!errors?.length) { 190 + return null 191 + } 192 + 193 + const uniqueErrors = [ 194 + ...new Map(errors.map((error) => [error?.message, error])).values(), 195 + ] 196 + 197 + if (uniqueErrors?.length == 1) { 198 + return uniqueErrors[0]?.message 199 + } 200 + 201 + return ( 202 + <ul className="ml-4 flex list-disc flex-col gap-1"> 203 + {uniqueErrors.map( 204 + (error, index) => 205 + error?.message && <li key={index}>{error.message}</li> 206 + )} 207 + </ul> 208 + ) 209 + }, [children, errors]) 210 + 211 + if (!content) { 212 + return null 213 + } 214 + 215 + return ( 216 + <div 217 + role="alert" 218 + data-slot="field-error" 219 + className={cn("text-sm font-normal text-destructive", className)} 220 + {...props} 221 + > 222 + {content} 223 + </div> 224 + ) 225 + } 226 + 227 + export { 228 + Field, 229 + FieldLabel, 230 + FieldDescription, 231 + FieldError, 232 + FieldGroup, 233 + FieldLegend, 234 + FieldSeparator, 235 + FieldSet, 236 + FieldContent, 237 + FieldTitle, 238 + }
+156
app/actions/components/ui/input-group.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { cva, type VariantProps } from "class-variance-authority" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + import { Button } from "@/actions/components/ui/button" 8 + import { Input } from "@/actions/components/ui/input" 9 + import { Textarea } from "@/actions/components/ui/textarea" 10 + 11 + function InputGroup({ className, ...props }: React.ComponentProps<"div">) { 12 + return ( 13 + <div 14 + data-slot="input-group" 15 + role="group" 16 + className={cn( 17 + "group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", 18 + className 19 + )} 20 + {...props} 21 + /> 22 + ) 23 + } 24 + 25 + const inputGroupAddonVariants = cva( 26 + "flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", 27 + { 28 + variants: { 29 + align: { 30 + "inline-start": 31 + "order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]", 32 + "inline-end": 33 + "order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]", 34 + "block-start": 35 + "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2", 36 + "block-end": 37 + "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2", 38 + }, 39 + }, 40 + defaultVariants: { 41 + align: "inline-start", 42 + }, 43 + } 44 + ) 45 + 46 + function InputGroupAddon({ 47 + className, 48 + align = "inline-start", 49 + ...props 50 + }: React.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>) { 51 + return ( 52 + <div 53 + role="group" 54 + data-slot="input-group-addon" 55 + data-align={align} 56 + className={cn(inputGroupAddonVariants({ align }), className)} 57 + onClick={(e) => { 58 + if ((e.target as HTMLElement).closest("button")) { 59 + return 60 + } 61 + e.currentTarget.parentElement?.querySelector("input")?.focus() 62 + }} 63 + {...props} 64 + /> 65 + ) 66 + } 67 + 68 + const inputGroupButtonVariants = cva( 69 + "flex items-center gap-2 text-sm shadow-none", 70 + { 71 + variants: { 72 + size: { 73 + xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5", 74 + sm: "", 75 + "icon-xs": 76 + "size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0", 77 + "icon-sm": "size-8 p-0 has-[>svg]:p-0", 78 + }, 79 + }, 80 + defaultVariants: { 81 + size: "xs", 82 + }, 83 + } 84 + ) 85 + 86 + function InputGroupButton({ 87 + className, 88 + type = "button", 89 + variant = "ghost", 90 + size = "xs", 91 + ...props 92 + }: Omit<React.ComponentProps<typeof Button>, "size"> & 93 + VariantProps<typeof inputGroupButtonVariants>) { 94 + return ( 95 + <Button 96 + type={type} 97 + data-size={size} 98 + variant={variant} 99 + className={cn(inputGroupButtonVariants({ size }), className)} 100 + {...props} 101 + /> 102 + ) 103 + } 104 + 105 + function InputGroupText({ className, ...props }: React.ComponentProps<"span">) { 106 + return ( 107 + <span 108 + className={cn( 109 + "flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", 110 + className 111 + )} 112 + {...props} 113 + /> 114 + ) 115 + } 116 + 117 + function InputGroupInput({ 118 + className, 119 + ...props 120 + }: React.ComponentProps<"input">) { 121 + return ( 122 + <Input 123 + data-slot="input-group-control" 124 + className={cn( 125 + "flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", 126 + className 127 + )} 128 + {...props} 129 + /> 130 + ) 131 + } 132 + 133 + function InputGroupTextarea({ 134 + className, 135 + ...props 136 + }: React.ComponentProps<"textarea">) { 137 + return ( 138 + <Textarea 139 + data-slot="input-group-control" 140 + className={cn( 141 + "flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent", 142 + className 143 + )} 144 + {...props} 145 + /> 146 + ) 147 + } 148 + 149 + export { 150 + InputGroup, 151 + InputGroupAddon, 152 + InputGroupButton, 153 + InputGroupText, 154 + InputGroupInput, 155 + InputGroupTextarea, 156 + }
+19
app/actions/components/ui/input.tsx
··· 1 + import * as React from "react" 2 + 3 + import { cn } from "@/actions/lib/utils" 4 + 5 + function Input({ className, type, ...props }: React.ComponentProps<"input">) { 6 + return ( 7 + <input 8 + type={type} 9 + data-slot="input" 10 + className={cn( 11 + "h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", 12 + className 13 + )} 14 + {...props} 15 + /> 16 + ) 17 + } 18 + 19 + export { Input }
+24
app/actions/components/ui/label.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Label as LabelPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + 8 + function Label({ 9 + className, 10 + ...props 11 + }: React.ComponentProps<typeof LabelPrimitive.Root>) { 12 + return ( 13 + <LabelPrimitive.Root 14 + data-slot="label" 15 + className={cn( 16 + "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", 17 + className 18 + )} 19 + {...props} 20 + /> 21 + ) 22 + } 23 + 24 + export { Label }
+192
app/actions/components/ui/select.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Select as SelectPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react" 8 + 9 + function Select({ 10 + ...props 11 + }: React.ComponentProps<typeof SelectPrimitive.Root>) { 12 + return <SelectPrimitive.Root data-slot="select" {...props} /> 13 + } 14 + 15 + function SelectGroup({ 16 + className, 17 + ...props 18 + }: React.ComponentProps<typeof SelectPrimitive.Group>) { 19 + return ( 20 + <SelectPrimitive.Group 21 + data-slot="select-group" 22 + className={cn("scroll-my-1 p-1", className)} 23 + {...props} 24 + /> 25 + ) 26 + } 27 + 28 + function SelectValue({ 29 + ...props 30 + }: React.ComponentProps<typeof SelectPrimitive.Value>) { 31 + return <SelectPrimitive.Value data-slot="select-value" {...props} /> 32 + } 33 + 34 + function SelectTrigger({ 35 + className, 36 + size = "default", 37 + children, 38 + ...props 39 + }: React.ComponentProps<typeof SelectPrimitive.Trigger> & { 40 + size?: "sm" | "default" 41 + }) { 42 + return ( 43 + <SelectPrimitive.Trigger 44 + data-slot="select-trigger" 45 + data-size={size} 46 + className={cn( 47 + "flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 48 + className 49 + )} 50 + {...props} 51 + > 52 + {children} 53 + <SelectPrimitive.Icon asChild> 54 + <ChevronDownIcon className="pointer-events-none size-4 text-muted-foreground" /> 55 + </SelectPrimitive.Icon> 56 + </SelectPrimitive.Trigger> 57 + ) 58 + } 59 + 60 + function SelectContent({ 61 + className, 62 + children, 63 + position = "item-aligned", 64 + align = "center", 65 + ...props 66 + }: React.ComponentProps<typeof SelectPrimitive.Content>) { 67 + return ( 68 + <SelectPrimitive.Portal> 69 + <SelectPrimitive.Content 70 + data-slot="select-content" 71 + data-align-trigger={position === "item-aligned"} 72 + className={cn("relative z-50 max-h-(--radix-select-content-available-height) min-w-36 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", position ==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className )} 73 + position={position} 74 + align={align} 75 + {...props} 76 + > 77 + <SelectScrollUpButton /> 78 + <SelectPrimitive.Viewport 79 + data-position={position} 80 + className={cn( 81 + "data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full data-[position=popper]:min-w-(--radix-select-trigger-width)", 82 + position === "popper" && "" 83 + )} 84 + > 85 + {children} 86 + </SelectPrimitive.Viewport> 87 + <SelectScrollDownButton /> 88 + </SelectPrimitive.Content> 89 + </SelectPrimitive.Portal> 90 + ) 91 + } 92 + 93 + function SelectLabel({ 94 + className, 95 + ...props 96 + }: React.ComponentProps<typeof SelectPrimitive.Label>) { 97 + return ( 98 + <SelectPrimitive.Label 99 + data-slot="select-label" 100 + className={cn("px-1.5 py-1 text-xs text-muted-foreground", className)} 101 + {...props} 102 + /> 103 + ) 104 + } 105 + 106 + function SelectItem({ 107 + className, 108 + children, 109 + ...props 110 + }: React.ComponentProps<typeof SelectPrimitive.Item>) { 111 + return ( 112 + <SelectPrimitive.Item 113 + data-slot="select-item" 114 + className={cn( 115 + "relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", 116 + className 117 + )} 118 + {...props} 119 + > 120 + <span className="pointer-events-none absolute right-2 flex size-4 items-center justify-center"> 121 + <SelectPrimitive.ItemIndicator> 122 + <CheckIcon className="pointer-events-none" /> 123 + </SelectPrimitive.ItemIndicator> 124 + </span> 125 + <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText> 126 + </SelectPrimitive.Item> 127 + ) 128 + } 129 + 130 + function SelectSeparator({ 131 + className, 132 + ...props 133 + }: React.ComponentProps<typeof SelectPrimitive.Separator>) { 134 + return ( 135 + <SelectPrimitive.Separator 136 + data-slot="select-separator" 137 + className={cn("pointer-events-none -mx-1 my-1 h-px bg-border", className)} 138 + {...props} 139 + /> 140 + ) 141 + } 142 + 143 + function SelectScrollUpButton({ 144 + className, 145 + ...props 146 + }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) { 147 + return ( 148 + <SelectPrimitive.ScrollUpButton 149 + data-slot="select-scroll-up-button" 150 + className={cn( 151 + "z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", 152 + className 153 + )} 154 + {...props} 155 + > 156 + <ChevronUpIcon 157 + /> 158 + </SelectPrimitive.ScrollUpButton> 159 + ) 160 + } 161 + 162 + function SelectScrollDownButton({ 163 + className, 164 + ...props 165 + }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) { 166 + return ( 167 + <SelectPrimitive.ScrollDownButton 168 + data-slot="select-scroll-down-button" 169 + className={cn( 170 + "z-10 flex cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4", 171 + className 172 + )} 173 + {...props} 174 + > 175 + <ChevronDownIcon 176 + /> 177 + </SelectPrimitive.ScrollDownButton> 178 + ) 179 + } 180 + 181 + export { 182 + Select, 183 + SelectContent, 184 + SelectGroup, 185 + SelectItem, 186 + SelectLabel, 187 + SelectScrollDownButton, 188 + SelectScrollUpButton, 189 + SelectSeparator, 190 + SelectTrigger, 191 + SelectValue, 192 + }
+28
app/actions/components/ui/separator.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Separator as SeparatorPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/actions/lib/utils" 7 + 8 + function Separator({ 9 + className, 10 + orientation = "horizontal", 11 + decorative = true, 12 + ...props 13 + }: React.ComponentProps<typeof SeparatorPrimitive.Root>) { 14 + return ( 15 + <SeparatorPrimitive.Root 16 + data-slot="separator" 17 + decorative={decorative} 18 + orientation={orientation} 19 + className={cn( 20 + "shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch", 21 + className 22 + )} 23 + {...props} 24 + /> 25 + ) 26 + } 27 + 28 + export { Separator }
+18
app/actions/components/ui/textarea.tsx
··· 1 + import * as React from "react" 2 + 3 + import { cn } from "@/actions/lib/utils" 4 + 5 + function Textarea({ className, ...props }: React.ComponentProps<"textarea">) { 6 + return ( 7 + <textarea 8 + data-slot="textarea" 9 + className={cn( 10 + "flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", 11 + className 12 + )} 13 + {...props} 14 + /> 15 + ) 16 + } 17 + 18 + export { Textarea }
+124
app/globals.css
··· 1 1 @import "tailwindcss"; 2 + @import "tw-animate-css"; 3 + @import "shadcn/tailwind.css"; 4 + 5 + @custom-variant dark (&:is(.dark *)); 6 + 7 + :root { 8 + --background: oklch(1 0 0); 9 + --foreground: oklch(0.145 0 0); 10 + --card: oklch(1 0 0); 11 + --card-foreground: oklch(0.145 0 0); 12 + --popover: oklch(1 0 0); 13 + --popover-foreground: oklch(0.145 0 0); 14 + --primary: oklch(0.65 0.18 132); 15 + --primary-foreground: oklch(0.99 0.03 121); 16 + --secondary: oklch(0.967 0.001 286.375); 17 + --secondary-foreground: oklch(0.21 0.006 285.885); 18 + --muted: oklch(0.97 0 0); 19 + --muted-foreground: oklch(0.556 0 0); 20 + --accent: oklch(0.97 0 0); 21 + --accent-foreground: oklch(0.205 0 0); 22 + --destructive: oklch(0.58 0.22 27); 23 + --border: oklch(0.922 0 0); 24 + --input: oklch(0.922 0 0); 25 + --ring: oklch(0.708 0 0); 26 + --chart-1: oklch(0.90 0.18 127); 27 + --chart-2: oklch(0.85 0.21 129); 28 + --chart-3: oklch(0.77 0.20 131); 29 + --chart-4: oklch(0.65 0.18 132); 30 + --chart-5: oklch(0.53 0.14 132); 31 + --radius: 0.625rem; 32 + --sidebar: oklch(0.985 0 0); 33 + --sidebar-foreground: oklch(0.145 0 0); 34 + --sidebar-primary: oklch(0.65 0.18 132); 35 + --sidebar-primary-foreground: oklch(0.99 0.03 121); 36 + --sidebar-accent: oklch(0.97 0 0); 37 + --sidebar-accent-foreground: oklch(0.205 0 0); 38 + --sidebar-border: oklch(0.922 0 0); 39 + --sidebar-ring: oklch(0.708 0 0); 40 + } 41 + 42 + .dark { 43 + --background: oklch(0.145 0 0); 44 + --foreground: oklch(0.985 0 0); 45 + --card: oklch(0.205 0 0); 46 + --card-foreground: oklch(0.985 0 0); 47 + --popover: oklch(0.205 0 0); 48 + --popover-foreground: oklch(0.985 0 0); 49 + --primary: oklch(0.77 0.20 131); 50 + --primary-foreground: oklch(0.27 0.07 132); 51 + --secondary: oklch(0.274 0.006 286.033); 52 + --secondary-foreground: oklch(0.985 0 0); 53 + --muted: oklch(0.269 0 0); 54 + --muted-foreground: oklch(0.708 0 0); 55 + --accent: oklch(0.371 0 0); 56 + --accent-foreground: oklch(0.985 0 0); 57 + --destructive: oklch(0.704 0.191 22.216); 58 + --border: oklch(1 0 0 / 10%); 59 + --input: oklch(1 0 0 / 15%); 60 + --ring: oklch(0.556 0 0); 61 + --chart-1: oklch(0.90 0.18 127); 62 + --chart-2: oklch(0.85 0.21 129); 63 + --chart-3: oklch(0.77 0.20 131); 64 + --chart-4: oklch(0.65 0.18 132); 65 + --chart-5: oklch(0.53 0.14 132); 66 + --sidebar: oklch(0.205 0 0); 67 + --sidebar-foreground: oklch(0.985 0 0); 68 + --sidebar-primary: oklch(0.85 0.21 129); 69 + --sidebar-primary-foreground: oklch(0.27 0.07 132); 70 + --sidebar-accent: oklch(0.269 0 0); 71 + --sidebar-accent-foreground: oklch(0.985 0 0); 72 + --sidebar-border: oklch(1 0 0 / 10%); 73 + --sidebar-ring: oklch(0.556 0 0); 74 + } 75 + 76 + @theme inline { 77 + --font-sans: var(--font-sans); 78 + --color-sidebar-ring: var(--sidebar-ring); 79 + --color-sidebar-border: var(--sidebar-border); 80 + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); 81 + --color-sidebar-accent: var(--sidebar-accent); 82 + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); 83 + --color-sidebar-primary: var(--sidebar-primary); 84 + --color-sidebar-foreground: var(--sidebar-foreground); 85 + --color-sidebar: var(--sidebar); 86 + --color-chart-5: var(--chart-5); 87 + --color-chart-4: var(--chart-4); 88 + --color-chart-3: var(--chart-3); 89 + --color-chart-2: var(--chart-2); 90 + --color-chart-1: var(--chart-1); 91 + --color-ring: var(--ring); 92 + --color-input: var(--input); 93 + --color-border: var(--border); 94 + --color-destructive: var(--destructive); 95 + --color-accent-foreground: var(--accent-foreground); 96 + --color-accent: var(--accent); 97 + --color-muted-foreground: var(--muted-foreground); 98 + --color-muted: var(--muted); 99 + --color-secondary-foreground: var(--secondary-foreground); 100 + --color-secondary: var(--secondary); 101 + --color-primary-foreground: var(--primary-foreground); 102 + --color-primary: var(--primary); 103 + --color-popover-foreground: var(--popover-foreground); 104 + --color-popover: var(--popover); 105 + --color-card-foreground: var(--card-foreground); 106 + --color-card: var(--card); 107 + --color-foreground: var(--foreground); 108 + --color-background: var(--background); 109 + --radius-sm: calc(var(--radius) - 4px); 110 + --radius-md: calc(var(--radius) - 2px); 111 + --radius-lg: var(--radius); 112 + --radius-xl: calc(var(--radius) + 4px); 113 + --radius-2xl: calc(var(--radius) + 8px); 114 + --radius-3xl: calc(var(--radius) + 12px); 115 + --radius-4xl: calc(var(--radius) + 16px); 116 + } 117 + 118 + @layer base { 119 + * { 120 + @apply border-border outline-ring/50; 121 + } 122 + body { 123 + @apply bg-background text-foreground; 124 + } 125 + }
+5 -1
app/layout.tsx
··· 6 6 import { signOut } from "@/actions/auth"; 7 7 8 8 import "./globals.css"; 9 + import { Noto_Sans } from "next/font/google"; 10 + 11 + const notoSans = Noto_Sans({variable:'--font-sans'}); 12 + 9 13 10 14 interface LayoutProps { 11 15 children: React.ReactNode; ··· 29 33 } = await supabase.auth.getUser(); 30 34 31 35 return ( 32 - <html lang="en"> 36 + <html lang="en" className={notoSans.variable}> 33 37 <body> 34 38 <header> 35 39 <Link href="/">eny.space</Link>
+3 -39
app/page.tsx
··· 1 - import type { Metadata } from "next"; 2 - 3 - import Link from "next/link"; 4 - 5 - export const metadata: Metadata = { 6 - title: "eny.space – your data, your space, use it enywhere", 7 - }; 8 - 9 - export default function IndexPage(): JSX.Element { 10 - return ( 11 - <main> 12 - <h1>Your own custom PDS in seconds</h1> 13 - <h2>One-click ATProto hosting with eny.space</h2> 14 - <p> 15 - We&apos;re building a managed ATProto Personal Data Server (PDS) 16 - platform so you can focus on your product while we handle the 17 - infrastructure, scaling, and compliance. 18 - </p> 19 - 20 - <h3>What&apos;s coming soon</h3> 21 - <ul> 22 - <li>One-click provisioning of dedicated ATProto PDS instances</li> 23 - <li>Automatic backups and seamless upgrades</li> 24 - <li>Usage-based pricing with clear, predictable costs</li> 25 - </ul> 1 + import { ComponentExample } from "@/actions/components/component-example"; 26 2 27 - <h3>Be the first to know</h3> 28 - <p> 29 - We&apos;re onboarding early adopters now. If you&apos;re building on 30 - ATProto and want reliable managed hosting, we&apos;d love to hear from 31 - you. 32 - </p> 33 - 34 - <p> 35 - <Link href="mailto:hello@krekeny.com?subject=I%27d%20like%20early%20access%20to%20eny.space%20PDS"> 36 - Request early access 37 - </Link> 38 - </p> 39 - </main> 40 - ); 3 + export default function Page() { 4 + return <ComponentExample />; 41 5 }
+5 -2
components.json
··· 1 1 { 2 2 "$schema": "https://ui.shadcn.com/schema.json", 3 - "style": "new-york", 3 + "style": "radix-nova", 4 4 "rsc": true, 5 5 "tsx": true, 6 6 "tailwind": { 7 7 "config": "", 8 8 "css": "app/globals.css", 9 - "baseColor": "zinc", 9 + "baseColor": "neutral", 10 10 "cssVariables": true, 11 11 "prefix": "" 12 12 }, 13 13 "iconLibrary": "lucide", 14 + "rtl": false, 14 15 "aliases": { 15 16 "components": "@/actions/components", 16 17 "utils": "@/actions/lib/utils", ··· 18 19 "lib": "@/actions/lib", 19 20 "hooks": "@/actions/hooks" 20 21 }, 22 + "menuColor": "default", 23 + "menuAccent": "subtle", 21 24 "registries": {} 22 25 }
+5325 -14
package-lock.json
··· 5 5 "packages": { 6 6 "": { 7 7 "dependencies": { 8 + "@base-ui/react": "^1.2.0", 8 9 "@radix-ui/react-slot": "^1.2.4", 9 10 "@supabase/ssr": "^0.8.0", 10 11 "@supabase/supabase-js": "^2.90.1", ··· 16 17 "lucide-react": "^0.562.0", 17 18 "next": "latest", 18 19 "postcss": "^8.5.6", 20 + "radix-ui": "^1.4.3", 19 21 "react": "18.2.0", 20 22 "react-dom": "18.2.0", 21 23 "server-only": "0.0.1", 24 + "shadcn": "^3.8.5", 22 25 "stripe": "14.8.0", 23 - "tailwind-merge": "^3.4.0", 26 + "tailwind-merge": "^3.5.0", 24 27 "tailwindcss": "^4.1.18" 25 28 }, 26 29 "devDependencies": { ··· 42 45 "url": "https://github.com/sponsors/sindresorhus" 43 46 } 44 47 }, 48 + "node_modules/@antfu/ni": { 49 + "version": "25.0.0", 50 + "resolved": "https://registry.npmjs.org/@antfu/ni/-/ni-25.0.0.tgz", 51 + "integrity": "sha512-9q/yCljni37pkMr4sPrI3G4jqdIk074+iukc5aFJl7kmDCCsiJrbZ6zKxnES1Gwg+i9RcDZwvktl23puGslmvA==", 52 + "dependencies": { 53 + "ansis": "^4.0.0", 54 + "fzf": "^0.5.2", 55 + "package-manager-detector": "^1.3.0", 56 + "tinyexec": "^1.0.1" 57 + }, 58 + "bin": { 59 + "na": "bin/na.mjs", 60 + "nci": "bin/nci.mjs", 61 + "ni": "bin/ni.mjs", 62 + "nlx": "bin/nlx.mjs", 63 + "nr": "bin/nr.mjs", 64 + "nun": "bin/nun.mjs", 65 + "nup": "bin/nup.mjs" 66 + } 67 + }, 68 + "node_modules/@babel/code-frame": { 69 + "version": "7.29.0", 70 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", 71 + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", 72 + "dependencies": { 73 + "@babel/helper-validator-identifier": "^7.28.5", 74 + "js-tokens": "^4.0.0", 75 + "picocolors": "^1.1.1" 76 + }, 77 + "engines": { 78 + "node": ">=6.9.0" 79 + } 80 + }, 81 + "node_modules/@babel/compat-data": { 82 + "version": "7.29.0", 83 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", 84 + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", 85 + "engines": { 86 + "node": ">=6.9.0" 87 + } 88 + }, 89 + "node_modules/@babel/core": { 90 + "version": "7.29.0", 91 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", 92 + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", 93 + "dependencies": { 94 + "@babel/code-frame": "^7.29.0", 95 + "@babel/generator": "^7.29.0", 96 + "@babel/helper-compilation-targets": "^7.28.6", 97 + "@babel/helper-module-transforms": "^7.28.6", 98 + "@babel/helpers": "^7.28.6", 99 + "@babel/parser": "^7.29.0", 100 + "@babel/template": "^7.28.6", 101 + "@babel/traverse": "^7.29.0", 102 + "@babel/types": "^7.29.0", 103 + "@jridgewell/remapping": "^2.3.5", 104 + "convert-source-map": "^2.0.0", 105 + "debug": "^4.1.0", 106 + "gensync": "^1.0.0-beta.2", 107 + "json5": "^2.2.3", 108 + "semver": "^6.3.1" 109 + }, 110 + "engines": { 111 + "node": ">=6.9.0" 112 + }, 113 + "funding": { 114 + "type": "opencollective", 115 + "url": "https://opencollective.com/babel" 116 + } 117 + }, 118 + "node_modules/@babel/core/node_modules/semver": { 119 + "version": "6.3.1", 120 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 121 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 122 + "bin": { 123 + "semver": "bin/semver.js" 124 + } 125 + }, 126 + "node_modules/@babel/generator": { 127 + "version": "7.29.1", 128 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", 129 + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", 130 + "dependencies": { 131 + "@babel/parser": "^7.29.0", 132 + "@babel/types": "^7.29.0", 133 + "@jridgewell/gen-mapping": "^0.3.12", 134 + "@jridgewell/trace-mapping": "^0.3.28", 135 + "jsesc": "^3.0.2" 136 + }, 137 + "engines": { 138 + "node": ">=6.9.0" 139 + } 140 + }, 141 + "node_modules/@babel/helper-annotate-as-pure": { 142 + "version": "7.27.3", 143 + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", 144 + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", 145 + "dependencies": { 146 + "@babel/types": "^7.27.3" 147 + }, 148 + "engines": { 149 + "node": ">=6.9.0" 150 + } 151 + }, 152 + "node_modules/@babel/helper-compilation-targets": { 153 + "version": "7.28.6", 154 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", 155 + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", 156 + "dependencies": { 157 + "@babel/compat-data": "^7.28.6", 158 + "@babel/helper-validator-option": "^7.27.1", 159 + "browserslist": "^4.24.0", 160 + "lru-cache": "^5.1.1", 161 + "semver": "^6.3.1" 162 + }, 163 + "engines": { 164 + "node": ">=6.9.0" 165 + } 166 + }, 167 + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { 168 + "version": "6.3.1", 169 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 170 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 171 + "bin": { 172 + "semver": "bin/semver.js" 173 + } 174 + }, 175 + "node_modules/@babel/helper-create-class-features-plugin": { 176 + "version": "7.28.6", 177 + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", 178 + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", 179 + "dependencies": { 180 + "@babel/helper-annotate-as-pure": "^7.27.3", 181 + "@babel/helper-member-expression-to-functions": "^7.28.5", 182 + "@babel/helper-optimise-call-expression": "^7.27.1", 183 + "@babel/helper-replace-supers": "^7.28.6", 184 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", 185 + "@babel/traverse": "^7.28.6", 186 + "semver": "^6.3.1" 187 + }, 188 + "engines": { 189 + "node": ">=6.9.0" 190 + }, 191 + "peerDependencies": { 192 + "@babel/core": "^7.0.0" 193 + } 194 + }, 195 + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { 196 + "version": "6.3.1", 197 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 198 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 199 + "bin": { 200 + "semver": "bin/semver.js" 201 + } 202 + }, 203 + "node_modules/@babel/helper-globals": { 204 + "version": "7.28.0", 205 + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", 206 + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", 207 + "engines": { 208 + "node": ">=6.9.0" 209 + } 210 + }, 211 + "node_modules/@babel/helper-member-expression-to-functions": { 212 + "version": "7.28.5", 213 + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", 214 + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", 215 + "dependencies": { 216 + "@babel/traverse": "^7.28.5", 217 + "@babel/types": "^7.28.5" 218 + }, 219 + "engines": { 220 + "node": ">=6.9.0" 221 + } 222 + }, 223 + "node_modules/@babel/helper-module-imports": { 224 + "version": "7.28.6", 225 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", 226 + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", 227 + "dependencies": { 228 + "@babel/traverse": "^7.28.6", 229 + "@babel/types": "^7.28.6" 230 + }, 231 + "engines": { 232 + "node": ">=6.9.0" 233 + } 234 + }, 235 + "node_modules/@babel/helper-module-transforms": { 236 + "version": "7.28.6", 237 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", 238 + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", 239 + "dependencies": { 240 + "@babel/helper-module-imports": "^7.28.6", 241 + "@babel/helper-validator-identifier": "^7.28.5", 242 + "@babel/traverse": "^7.28.6" 243 + }, 244 + "engines": { 245 + "node": ">=6.9.0" 246 + }, 247 + "peerDependencies": { 248 + "@babel/core": "^7.0.0" 249 + } 250 + }, 251 + "node_modules/@babel/helper-optimise-call-expression": { 252 + "version": "7.27.1", 253 + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", 254 + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", 255 + "dependencies": { 256 + "@babel/types": "^7.27.1" 257 + }, 258 + "engines": { 259 + "node": ">=6.9.0" 260 + } 261 + }, 262 + "node_modules/@babel/helper-plugin-utils": { 263 + "version": "7.28.6", 264 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", 265 + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", 266 + "engines": { 267 + "node": ">=6.9.0" 268 + } 269 + }, 270 + "node_modules/@babel/helper-replace-supers": { 271 + "version": "7.28.6", 272 + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", 273 + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", 274 + "dependencies": { 275 + "@babel/helper-member-expression-to-functions": "^7.28.5", 276 + "@babel/helper-optimise-call-expression": "^7.27.1", 277 + "@babel/traverse": "^7.28.6" 278 + }, 279 + "engines": { 280 + "node": ">=6.9.0" 281 + }, 282 + "peerDependencies": { 283 + "@babel/core": "^7.0.0" 284 + } 285 + }, 286 + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { 287 + "version": "7.27.1", 288 + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", 289 + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", 290 + "dependencies": { 291 + "@babel/traverse": "^7.27.1", 292 + "@babel/types": "^7.27.1" 293 + }, 294 + "engines": { 295 + "node": ">=6.9.0" 296 + } 297 + }, 298 + "node_modules/@babel/helper-string-parser": { 299 + "version": "7.27.1", 300 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", 301 + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", 302 + "engines": { 303 + "node": ">=6.9.0" 304 + } 305 + }, 306 + "node_modules/@babel/helper-validator-identifier": { 307 + "version": "7.28.5", 308 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 309 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 310 + "engines": { 311 + "node": ">=6.9.0" 312 + } 313 + }, 314 + "node_modules/@babel/helper-validator-option": { 315 + "version": "7.27.1", 316 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", 317 + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", 318 + "engines": { 319 + "node": ">=6.9.0" 320 + } 321 + }, 322 + "node_modules/@babel/helpers": { 323 + "version": "7.28.6", 324 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", 325 + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", 326 + "dependencies": { 327 + "@babel/template": "^7.28.6", 328 + "@babel/types": "^7.28.6" 329 + }, 330 + "engines": { 331 + "node": ">=6.9.0" 332 + } 333 + }, 334 + "node_modules/@babel/parser": { 335 + "version": "7.29.0", 336 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", 337 + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", 338 + "dependencies": { 339 + "@babel/types": "^7.29.0" 340 + }, 341 + "bin": { 342 + "parser": "bin/babel-parser.js" 343 + }, 344 + "engines": { 345 + "node": ">=6.0.0" 346 + } 347 + }, 348 + "node_modules/@babel/plugin-syntax-jsx": { 349 + "version": "7.28.6", 350 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", 351 + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", 352 + "dependencies": { 353 + "@babel/helper-plugin-utils": "^7.28.6" 354 + }, 355 + "engines": { 356 + "node": ">=6.9.0" 357 + }, 358 + "peerDependencies": { 359 + "@babel/core": "^7.0.0-0" 360 + } 361 + }, 362 + "node_modules/@babel/plugin-syntax-typescript": { 363 + "version": "7.28.6", 364 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", 365 + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", 366 + "dependencies": { 367 + "@babel/helper-plugin-utils": "^7.28.6" 368 + }, 369 + "engines": { 370 + "node": ">=6.9.0" 371 + }, 372 + "peerDependencies": { 373 + "@babel/core": "^7.0.0-0" 374 + } 375 + }, 376 + "node_modules/@babel/plugin-transform-modules-commonjs": { 377 + "version": "7.28.6", 378 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", 379 + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", 380 + "dependencies": { 381 + "@babel/helper-module-transforms": "^7.28.6", 382 + "@babel/helper-plugin-utils": "^7.28.6" 383 + }, 384 + "engines": { 385 + "node": ">=6.9.0" 386 + }, 387 + "peerDependencies": { 388 + "@babel/core": "^7.0.0-0" 389 + } 390 + }, 391 + "node_modules/@babel/plugin-transform-typescript": { 392 + "version": "7.28.6", 393 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", 394 + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", 395 + "dependencies": { 396 + "@babel/helper-annotate-as-pure": "^7.27.3", 397 + "@babel/helper-create-class-features-plugin": "^7.28.6", 398 + "@babel/helper-plugin-utils": "^7.28.6", 399 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", 400 + "@babel/plugin-syntax-typescript": "^7.28.6" 401 + }, 402 + "engines": { 403 + "node": ">=6.9.0" 404 + }, 405 + "peerDependencies": { 406 + "@babel/core": "^7.0.0-0" 407 + } 408 + }, 409 + "node_modules/@babel/preset-typescript": { 410 + "version": "7.28.5", 411 + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", 412 + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", 413 + "dependencies": { 414 + "@babel/helper-plugin-utils": "^7.27.1", 415 + "@babel/helper-validator-option": "^7.27.1", 416 + "@babel/plugin-syntax-jsx": "^7.27.1", 417 + "@babel/plugin-transform-modules-commonjs": "^7.27.1", 418 + "@babel/plugin-transform-typescript": "^7.28.5" 419 + }, 420 + "engines": { 421 + "node": ">=6.9.0" 422 + }, 423 + "peerDependencies": { 424 + "@babel/core": "^7.0.0-0" 425 + } 426 + }, 427 + "node_modules/@babel/runtime": { 428 + "version": "7.28.6", 429 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", 430 + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", 431 + "engines": { 432 + "node": ">=6.9.0" 433 + } 434 + }, 435 + "node_modules/@babel/template": { 436 + "version": "7.28.6", 437 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", 438 + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", 439 + "dependencies": { 440 + "@babel/code-frame": "^7.28.6", 441 + "@babel/parser": "^7.28.6", 442 + "@babel/types": "^7.28.6" 443 + }, 444 + "engines": { 445 + "node": ">=6.9.0" 446 + } 447 + }, 448 + "node_modules/@babel/traverse": { 449 + "version": "7.29.0", 450 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", 451 + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", 452 + "dependencies": { 453 + "@babel/code-frame": "^7.29.0", 454 + "@babel/generator": "^7.29.0", 455 + "@babel/helper-globals": "^7.28.0", 456 + "@babel/parser": "^7.29.0", 457 + "@babel/template": "^7.28.6", 458 + "@babel/types": "^7.29.0", 459 + "debug": "^4.3.1" 460 + }, 461 + "engines": { 462 + "node": ">=6.9.0" 463 + } 464 + }, 465 + "node_modules/@babel/types": { 466 + "version": "7.29.0", 467 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", 468 + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", 469 + "dependencies": { 470 + "@babel/helper-string-parser": "^7.27.1", 471 + "@babel/helper-validator-identifier": "^7.28.5" 472 + }, 473 + "engines": { 474 + "node": ">=6.9.0" 475 + } 476 + }, 477 + "node_modules/@base-ui/react": { 478 + "version": "1.2.0", 479 + "resolved": "https://registry.npmjs.org/@base-ui/react/-/react-1.2.0.tgz", 480 + "integrity": "sha512-O6aEQHcm+QyGTFY28xuwRD3SEJGZOBDpyjN2WvpfWYFVhg+3zfXPysAILqtM0C1kWC82MccOE/v1j+GHXE4qIw==", 481 + "dependencies": { 482 + "@babel/runtime": "^7.28.6", 483 + "@base-ui/utils": "0.2.5", 484 + "@floating-ui/react-dom": "^2.1.6", 485 + "@floating-ui/utils": "^0.2.10", 486 + "tabbable": "^6.4.0", 487 + "use-sync-external-store": "^1.6.0" 488 + }, 489 + "engines": { 490 + "node": ">=14.0.0" 491 + }, 492 + "funding": { 493 + "type": "opencollective", 494 + "url": "https://opencollective.com/mui-org" 495 + }, 496 + "peerDependencies": { 497 + "@types/react": "^17 || ^18 || ^19", 498 + "react": "^17 || ^18 || ^19", 499 + "react-dom": "^17 || ^18 || ^19" 500 + }, 501 + "peerDependenciesMeta": { 502 + "@types/react": { 503 + "optional": true 504 + } 505 + } 506 + }, 507 + "node_modules/@base-ui/utils": { 508 + "version": "0.2.5", 509 + "resolved": "https://registry.npmjs.org/@base-ui/utils/-/utils-0.2.5.tgz", 510 + "integrity": "sha512-oYC7w0gp76RI5MxprlGLV0wze0SErZaRl3AAkeP3OnNB/UBMb6RqNf6ZSIlxOc9Qp68Ab3C2VOcJQyRs7Xc7Vw==", 511 + "dependencies": { 512 + "@babel/runtime": "^7.28.6", 513 + "@floating-ui/utils": "^0.2.10", 514 + "reselect": "^5.1.1", 515 + "use-sync-external-store": "^1.6.0" 516 + }, 517 + "peerDependencies": { 518 + "@types/react": "^17 || ^18 || ^19", 519 + "react": "^17 || ^18 || ^19", 520 + "react-dom": "^17 || ^18 || ^19" 521 + }, 522 + "peerDependenciesMeta": { 523 + "@types/react": { 524 + "optional": true 525 + } 526 + } 527 + }, 528 + "node_modules/@dotenvx/dotenvx": { 529 + "version": "1.53.0", 530 + "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.53.0.tgz", 531 + "integrity": "sha512-OnsVuJ5O2WCUMXBnyuYah08/I6Tnt1FEZ2PGH9skSRuRh3LK5UoGa6Bzi5Toj/F/0mbeFfv+eNKTsYRoGgRh3Q==", 532 + "dependencies": { 533 + "commander": "^11.1.0", 534 + "dotenv": "^17.2.1", 535 + "eciesjs": "^0.4.10", 536 + "execa": "^5.1.1", 537 + "fdir": "^6.2.0", 538 + "ignore": "^5.3.0", 539 + "object-treeify": "1.1.33", 540 + "picomatch": "^4.0.2", 541 + "which": "^4.0.0" 542 + }, 543 + "bin": { 544 + "dotenvx": "src/cli/dotenvx.js" 545 + }, 546 + "funding": { 547 + "url": "https://dotenvx.com" 548 + } 549 + }, 550 + "node_modules/@dotenvx/dotenvx/node_modules/commander": { 551 + "version": "11.1.0", 552 + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", 553 + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", 554 + "engines": { 555 + "node": ">=16" 556 + } 557 + }, 558 + "node_modules/@dotenvx/dotenvx/node_modules/execa": { 559 + "version": "5.1.1", 560 + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 561 + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 562 + "dependencies": { 563 + "cross-spawn": "^7.0.3", 564 + "get-stream": "^6.0.0", 565 + "human-signals": "^2.1.0", 566 + "is-stream": "^2.0.0", 567 + "merge-stream": "^2.0.0", 568 + "npm-run-path": "^4.0.1", 569 + "onetime": "^5.1.2", 570 + "signal-exit": "^3.0.3", 571 + "strip-final-newline": "^2.0.0" 572 + }, 573 + "engines": { 574 + "node": ">=10" 575 + }, 576 + "funding": { 577 + "url": "https://github.com/sindresorhus/execa?sponsor=1" 578 + } 579 + }, 580 + "node_modules/@dotenvx/dotenvx/node_modules/get-stream": { 581 + "version": "6.0.1", 582 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 583 + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 584 + "engines": { 585 + "node": ">=10" 586 + }, 587 + "funding": { 588 + "url": "https://github.com/sponsors/sindresorhus" 589 + } 590 + }, 591 + "node_modules/@dotenvx/dotenvx/node_modules/human-signals": { 592 + "version": "2.1.0", 593 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 594 + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 595 + "engines": { 596 + "node": ">=10.17.0" 597 + } 598 + }, 599 + "node_modules/@dotenvx/dotenvx/node_modules/is-stream": { 600 + "version": "2.0.1", 601 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 602 + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 603 + "engines": { 604 + "node": ">=8" 605 + }, 606 + "funding": { 607 + "url": "https://github.com/sponsors/sindresorhus" 608 + } 609 + }, 610 + "node_modules/@dotenvx/dotenvx/node_modules/npm-run-path": { 611 + "version": "4.0.1", 612 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 613 + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 614 + "dependencies": { 615 + "path-key": "^3.0.0" 616 + }, 617 + "engines": { 618 + "node": ">=8" 619 + } 620 + }, 621 + "node_modules/@dotenvx/dotenvx/node_modules/onetime": { 622 + "version": "5.1.2", 623 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 624 + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 625 + "dependencies": { 626 + "mimic-fn": "^2.1.0" 627 + }, 628 + "engines": { 629 + "node": ">=6" 630 + }, 631 + "funding": { 632 + "url": "https://github.com/sponsors/sindresorhus" 633 + } 634 + }, 635 + "node_modules/@dotenvx/dotenvx/node_modules/signal-exit": { 636 + "version": "3.0.7", 637 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 638 + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 639 + }, 640 + "node_modules/@dotenvx/dotenvx/node_modules/strip-final-newline": { 641 + "version": "2.0.0", 642 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 643 + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 644 + "engines": { 645 + "node": ">=6" 646 + } 647 + }, 648 + "node_modules/@ecies/ciphers": { 649 + "version": "0.2.5", 650 + "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.5.tgz", 651 + "integrity": "sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==", 652 + "engines": { 653 + "bun": ">=1", 654 + "deno": ">=2", 655 + "node": ">=16" 656 + }, 657 + "peerDependencies": { 658 + "@noble/ciphers": "^1.0.0" 659 + } 660 + }, 45 661 "node_modules/@emnapi/runtime": { 46 662 "version": "1.7.1", 47 663 "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", ··· 50 666 "optional": true, 51 667 "dependencies": { 52 668 "tslib": "^2.4.0" 669 + } 670 + }, 671 + "node_modules/@floating-ui/core": { 672 + "version": "1.7.5", 673 + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", 674 + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", 675 + "dependencies": { 676 + "@floating-ui/utils": "^0.2.11" 677 + } 678 + }, 679 + "node_modules/@floating-ui/dom": { 680 + "version": "1.7.6", 681 + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", 682 + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", 683 + "dependencies": { 684 + "@floating-ui/core": "^1.7.5", 685 + "@floating-ui/utils": "^0.2.11" 686 + } 687 + }, 688 + "node_modules/@floating-ui/react-dom": { 689 + "version": "2.1.8", 690 + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", 691 + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", 692 + "dependencies": { 693 + "@floating-ui/dom": "^1.7.6" 694 + }, 695 + "peerDependencies": { 696 + "react": ">=16.8.0", 697 + "react-dom": ">=16.8.0" 698 + } 699 + }, 700 + "node_modules/@floating-ui/utils": { 701 + "version": "0.2.11", 702 + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", 703 + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==" 704 + }, 705 + "node_modules/@hono/node-server": { 706 + "version": "1.19.11", 707 + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.11.tgz", 708 + "integrity": "sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==", 709 + "engines": { 710 + "node": ">=18.14.1" 711 + }, 712 + "peerDependencies": { 713 + "hono": "^4" 53 714 } 54 715 }, 55 716 "node_modules/@img/colour": { ··· 518 1179 "url": "https://opencollective.com/libvips" 519 1180 } 520 1181 }, 1182 + "node_modules/@inquirer/ansi": { 1183 + "version": "1.0.2", 1184 + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", 1185 + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", 1186 + "engines": { 1187 + "node": ">=18" 1188 + } 1189 + }, 1190 + "node_modules/@inquirer/confirm": { 1191 + "version": "5.1.21", 1192 + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", 1193 + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", 1194 + "dependencies": { 1195 + "@inquirer/core": "^10.3.2", 1196 + "@inquirer/type": "^3.0.10" 1197 + }, 1198 + "engines": { 1199 + "node": ">=18" 1200 + }, 1201 + "peerDependencies": { 1202 + "@types/node": ">=18" 1203 + }, 1204 + "peerDependenciesMeta": { 1205 + "@types/node": { 1206 + "optional": true 1207 + } 1208 + } 1209 + }, 1210 + "node_modules/@inquirer/core": { 1211 + "version": "10.3.2", 1212 + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", 1213 + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", 1214 + "dependencies": { 1215 + "@inquirer/ansi": "^1.0.2", 1216 + "@inquirer/figures": "^1.0.15", 1217 + "@inquirer/type": "^3.0.10", 1218 + "cli-width": "^4.1.0", 1219 + "mute-stream": "^2.0.0", 1220 + "signal-exit": "^4.1.0", 1221 + "wrap-ansi": "^6.2.0", 1222 + "yoctocolors-cjs": "^2.1.3" 1223 + }, 1224 + "engines": { 1225 + "node": ">=18" 1226 + }, 1227 + "peerDependencies": { 1228 + "@types/node": ">=18" 1229 + }, 1230 + "peerDependenciesMeta": { 1231 + "@types/node": { 1232 + "optional": true 1233 + } 1234 + } 1235 + }, 1236 + "node_modules/@inquirer/figures": { 1237 + "version": "1.0.15", 1238 + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", 1239 + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", 1240 + "engines": { 1241 + "node": ">=18" 1242 + } 1243 + }, 1244 + "node_modules/@inquirer/type": { 1245 + "version": "3.0.10", 1246 + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", 1247 + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", 1248 + "engines": { 1249 + "node": ">=18" 1250 + }, 1251 + "peerDependencies": { 1252 + "@types/node": ">=18" 1253 + }, 1254 + "peerDependenciesMeta": { 1255 + "@types/node": { 1256 + "optional": true 1257 + } 1258 + } 1259 + }, 521 1260 "node_modules/@jridgewell/gen-mapping": { 522 1261 "version": "0.3.13", 523 1262 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", ··· 563 1302 "@jridgewell/sourcemap-codec": "^1.4.14" 564 1303 } 565 1304 }, 1305 + "node_modules/@modelcontextprotocol/sdk": { 1306 + "version": "1.27.1", 1307 + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.27.1.tgz", 1308 + "integrity": "sha512-sr6GbP+4edBwFndLbM60gf07z0FQ79gaExpnsjMGePXqFcSSb7t6iscpjk9DhFhwd+mTEQrzNafGP8/iGGFYaA==", 1309 + "dependencies": { 1310 + "@hono/node-server": "^1.19.9", 1311 + "ajv": "^8.17.1", 1312 + "ajv-formats": "^3.0.1", 1313 + "content-type": "^1.0.5", 1314 + "cors": "^2.8.5", 1315 + "cross-spawn": "^7.0.5", 1316 + "eventsource": "^3.0.2", 1317 + "eventsource-parser": "^3.0.0", 1318 + "express": "^5.2.1", 1319 + "express-rate-limit": "^8.2.1", 1320 + "hono": "^4.11.4", 1321 + "jose": "^6.1.3", 1322 + "json-schema-typed": "^8.0.2", 1323 + "pkce-challenge": "^5.0.0", 1324 + "raw-body": "^3.0.0", 1325 + "zod": "^3.25 || ^4.0", 1326 + "zod-to-json-schema": "^3.25.1" 1327 + }, 1328 + "engines": { 1329 + "node": ">=18" 1330 + }, 1331 + "peerDependencies": { 1332 + "@cfworker/json-schema": "^4.1.1", 1333 + "zod": "^3.25 || ^4.0" 1334 + }, 1335 + "peerDependenciesMeta": { 1336 + "@cfworker/json-schema": { 1337 + "optional": true 1338 + }, 1339 + "zod": { 1340 + "optional": false 1341 + } 1342 + } 1343 + }, 1344 + "node_modules/@mswjs/interceptors": { 1345 + "version": "0.41.3", 1346 + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.41.3.tgz", 1347 + "integrity": "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==", 1348 + "dependencies": { 1349 + "@open-draft/deferred-promise": "^2.2.0", 1350 + "@open-draft/logger": "^0.3.0", 1351 + "@open-draft/until": "^2.0.0", 1352 + "is-node-process": "^1.2.0", 1353 + "outvariant": "^1.4.3", 1354 + "strict-event-emitter": "^0.5.1" 1355 + }, 1356 + "engines": { 1357 + "node": ">=18" 1358 + } 1359 + }, 566 1360 "node_modules/@next/env": { 567 1361 "version": "16.0.10", 568 1362 "resolved": "https://registry.npmjs.org/@next/env/-/env-16.0.10.tgz", ··· 697 1491 "node": ">= 10" 698 1492 } 699 1493 }, 1494 + "node_modules/@noble/ciphers": { 1495 + "version": "1.3.0", 1496 + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", 1497 + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", 1498 + "engines": { 1499 + "node": "^14.21.3 || >=16" 1500 + }, 1501 + "funding": { 1502 + "url": "https://paulmillr.com/funding/" 1503 + } 1504 + }, 1505 + "node_modules/@noble/curves": { 1506 + "version": "1.9.7", 1507 + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", 1508 + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", 1509 + "dependencies": { 1510 + "@noble/hashes": "1.8.0" 1511 + }, 1512 + "engines": { 1513 + "node": "^14.21.3 || >=16" 1514 + }, 1515 + "funding": { 1516 + "url": "https://paulmillr.com/funding/" 1517 + } 1518 + }, 1519 + "node_modules/@noble/hashes": { 1520 + "version": "1.8.0", 1521 + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", 1522 + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", 1523 + "engines": { 1524 + "node": "^14.21.3 || >=16" 1525 + }, 1526 + "funding": { 1527 + "url": "https://paulmillr.com/funding/" 1528 + } 1529 + }, 1530 + "node_modules/@nodelib/fs.scandir": { 1531 + "version": "2.1.5", 1532 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1533 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1534 + "dependencies": { 1535 + "@nodelib/fs.stat": "2.0.5", 1536 + "run-parallel": "^1.1.9" 1537 + }, 1538 + "engines": { 1539 + "node": ">= 8" 1540 + } 1541 + }, 1542 + "node_modules/@nodelib/fs.stat": { 1543 + "version": "2.0.5", 1544 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1545 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1546 + "engines": { 1547 + "node": ">= 8" 1548 + } 1549 + }, 1550 + "node_modules/@nodelib/fs.walk": { 1551 + "version": "1.2.8", 1552 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1553 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1554 + "dependencies": { 1555 + "@nodelib/fs.scandir": "2.1.5", 1556 + "fastq": "^1.6.0" 1557 + }, 1558 + "engines": { 1559 + "node": ">= 8" 1560 + } 1561 + }, 1562 + "node_modules/@open-draft/deferred-promise": { 1563 + "version": "2.2.0", 1564 + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", 1565 + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==" 1566 + }, 1567 + "node_modules/@open-draft/logger": { 1568 + "version": "0.3.0", 1569 + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", 1570 + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", 1571 + "dependencies": { 1572 + "is-node-process": "^1.2.0", 1573 + "outvariant": "^1.4.0" 1574 + } 1575 + }, 1576 + "node_modules/@open-draft/until": { 1577 + "version": "2.1.0", 1578 + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", 1579 + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==" 1580 + }, 1581 + "node_modules/@radix-ui/number": { 1582 + "version": "1.1.1", 1583 + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", 1584 + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==" 1585 + }, 1586 + "node_modules/@radix-ui/primitive": { 1587 + "version": "1.1.3", 1588 + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", 1589 + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==" 1590 + }, 700 1591 "node_modules/@radix-ui/react-compose-refs": { 701 1592 "version": "1.1.2", 702 1593 "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", ··· 712 1603 } 713 1604 } 714 1605 }, 1606 + "node_modules/@radix-ui/react-context": { 1607 + "version": "1.1.2", 1608 + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", 1609 + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", 1610 + "peerDependencies": { 1611 + "@types/react": "*", 1612 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1613 + }, 1614 + "peerDependenciesMeta": { 1615 + "@types/react": { 1616 + "optional": true 1617 + } 1618 + } 1619 + }, 1620 + "node_modules/@radix-ui/react-direction": { 1621 + "version": "1.1.1", 1622 + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", 1623 + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", 1624 + "peerDependencies": { 1625 + "@types/react": "*", 1626 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1627 + }, 1628 + "peerDependenciesMeta": { 1629 + "@types/react": { 1630 + "optional": true 1631 + } 1632 + } 1633 + }, 1634 + "node_modules/@radix-ui/react-focus-guards": { 1635 + "version": "1.1.3", 1636 + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", 1637 + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", 1638 + "peerDependencies": { 1639 + "@types/react": "*", 1640 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1641 + }, 1642 + "peerDependenciesMeta": { 1643 + "@types/react": { 1644 + "optional": true 1645 + } 1646 + } 1647 + }, 1648 + "node_modules/@radix-ui/react-id": { 1649 + "version": "1.1.1", 1650 + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", 1651 + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", 1652 + "dependencies": { 1653 + "@radix-ui/react-use-layout-effect": "1.1.1" 1654 + }, 1655 + "peerDependencies": { 1656 + "@types/react": "*", 1657 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1658 + }, 1659 + "peerDependenciesMeta": { 1660 + "@types/react": { 1661 + "optional": true 1662 + } 1663 + } 1664 + }, 715 1665 "node_modules/@radix-ui/react-slot": { 716 1666 "version": "1.2.4", 717 1667 "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", ··· 730 1680 } 731 1681 } 732 1682 }, 1683 + "node_modules/@radix-ui/react-use-callback-ref": { 1684 + "version": "1.1.1", 1685 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", 1686 + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", 1687 + "peerDependencies": { 1688 + "@types/react": "*", 1689 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1690 + }, 1691 + "peerDependenciesMeta": { 1692 + "@types/react": { 1693 + "optional": true 1694 + } 1695 + } 1696 + }, 1697 + "node_modules/@radix-ui/react-use-controllable-state": { 1698 + "version": "1.2.2", 1699 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", 1700 + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", 1701 + "dependencies": { 1702 + "@radix-ui/react-use-effect-event": "0.0.2", 1703 + "@radix-ui/react-use-layout-effect": "1.1.1" 1704 + }, 1705 + "peerDependencies": { 1706 + "@types/react": "*", 1707 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1708 + }, 1709 + "peerDependenciesMeta": { 1710 + "@types/react": { 1711 + "optional": true 1712 + } 1713 + } 1714 + }, 1715 + "node_modules/@radix-ui/react-use-effect-event": { 1716 + "version": "0.0.2", 1717 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", 1718 + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", 1719 + "dependencies": { 1720 + "@radix-ui/react-use-layout-effect": "1.1.1" 1721 + }, 1722 + "peerDependencies": { 1723 + "@types/react": "*", 1724 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1725 + }, 1726 + "peerDependenciesMeta": { 1727 + "@types/react": { 1728 + "optional": true 1729 + } 1730 + } 1731 + }, 1732 + "node_modules/@radix-ui/react-use-escape-keydown": { 1733 + "version": "1.1.1", 1734 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", 1735 + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", 1736 + "dependencies": { 1737 + "@radix-ui/react-use-callback-ref": "1.1.1" 1738 + }, 1739 + "peerDependencies": { 1740 + "@types/react": "*", 1741 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1742 + }, 1743 + "peerDependenciesMeta": { 1744 + "@types/react": { 1745 + "optional": true 1746 + } 1747 + } 1748 + }, 1749 + "node_modules/@radix-ui/react-use-is-hydrated": { 1750 + "version": "0.1.0", 1751 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", 1752 + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", 1753 + "dependencies": { 1754 + "use-sync-external-store": "^1.5.0" 1755 + }, 1756 + "peerDependencies": { 1757 + "@types/react": "*", 1758 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1759 + }, 1760 + "peerDependenciesMeta": { 1761 + "@types/react": { 1762 + "optional": true 1763 + } 1764 + } 1765 + }, 1766 + "node_modules/@radix-ui/react-use-layout-effect": { 1767 + "version": "1.1.1", 1768 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", 1769 + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", 1770 + "peerDependencies": { 1771 + "@types/react": "*", 1772 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1773 + }, 1774 + "peerDependenciesMeta": { 1775 + "@types/react": { 1776 + "optional": true 1777 + } 1778 + } 1779 + }, 1780 + "node_modules/@radix-ui/react-use-previous": { 1781 + "version": "1.1.1", 1782 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", 1783 + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", 1784 + "peerDependencies": { 1785 + "@types/react": "*", 1786 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1787 + }, 1788 + "peerDependenciesMeta": { 1789 + "@types/react": { 1790 + "optional": true 1791 + } 1792 + } 1793 + }, 1794 + "node_modules/@radix-ui/react-use-rect": { 1795 + "version": "1.1.1", 1796 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", 1797 + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", 1798 + "dependencies": { 1799 + "@radix-ui/rect": "1.1.1" 1800 + }, 1801 + "peerDependencies": { 1802 + "@types/react": "*", 1803 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1804 + }, 1805 + "peerDependenciesMeta": { 1806 + "@types/react": { 1807 + "optional": true 1808 + } 1809 + } 1810 + }, 1811 + "node_modules/@radix-ui/react-use-size": { 1812 + "version": "1.1.1", 1813 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", 1814 + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", 1815 + "dependencies": { 1816 + "@radix-ui/react-use-layout-effect": "1.1.1" 1817 + }, 1818 + "peerDependencies": { 1819 + "@types/react": "*", 1820 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 1821 + }, 1822 + "peerDependenciesMeta": { 1823 + "@types/react": { 1824 + "optional": true 1825 + } 1826 + } 1827 + }, 1828 + "node_modules/@radix-ui/rect": { 1829 + "version": "1.1.1", 1830 + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", 1831 + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==" 1832 + }, 1833 + "node_modules/@sec-ant/readable-stream": { 1834 + "version": "0.4.1", 1835 + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", 1836 + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==" 1837 + }, 1838 + "node_modules/@sindresorhus/merge-streams": { 1839 + "version": "4.0.0", 1840 + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", 1841 + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", 1842 + "engines": { 1843 + "node": ">=18" 1844 + }, 1845 + "funding": { 1846 + "url": "https://github.com/sponsors/sindresorhus" 1847 + } 1848 + }, 733 1849 "node_modules/@supabase/auth-js": { 734 1850 "version": "2.90.1", 735 1851 "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.90.1.tgz", ··· 1087 2203 "tailwindcss": "4.1.18" 1088 2204 } 1089 2205 }, 2206 + "node_modules/@ts-morph/common": { 2207 + "version": "0.27.0", 2208 + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.27.0.tgz", 2209 + "integrity": "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==", 2210 + "dependencies": { 2211 + "fast-glob": "^3.3.3", 2212 + "minimatch": "^10.0.1", 2213 + "path-browserify": "^1.0.1" 2214 + } 2215 + }, 1090 2216 "node_modules/@types/node": { 1091 2217 "version": "20.4.6", 1092 2218 "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.6.tgz", ··· 1124 2250 "integrity": "sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==", 1125 2251 "devOptional": true, 1126 2252 "license": "MIT" 2253 + }, 2254 + "node_modules/@types/statuses": { 2255 + "version": "2.0.6", 2256 + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.6.tgz", 2257 + "integrity": "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==" 2258 + }, 2259 + "node_modules/@types/validate-npm-package-name": { 2260 + "version": "4.0.2", 2261 + "resolved": "https://registry.npmjs.org/@types/validate-npm-package-name/-/validate-npm-package-name-4.0.2.tgz", 2262 + "integrity": "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==" 1127 2263 }, 1128 2264 "node_modules/@types/ws": { 1129 2265 "version": "8.18.1", ··· 1206 2342 } 1207 2343 } 1208 2344 }, 2345 + "node_modules/accepts": { 2346 + "version": "2.0.0", 2347 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", 2348 + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", 2349 + "dependencies": { 2350 + "mime-types": "^3.0.0", 2351 + "negotiator": "^1.0.0" 2352 + }, 2353 + "engines": { 2354 + "node": ">= 0.6" 2355 + } 2356 + }, 2357 + "node_modules/agent-base": { 2358 + "version": "7.1.4", 2359 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", 2360 + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", 2361 + "engines": { 2362 + "node": ">= 14" 2363 + } 2364 + }, 2365 + "node_modules/ajv": { 2366 + "version": "8.18.0", 2367 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", 2368 + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", 2369 + "dependencies": { 2370 + "fast-deep-equal": "^3.1.3", 2371 + "fast-uri": "^3.0.1", 2372 + "json-schema-traverse": "^1.0.0", 2373 + "require-from-string": "^2.0.2" 2374 + }, 2375 + "funding": { 2376 + "type": "github", 2377 + "url": "https://github.com/sponsors/epoberezkin" 2378 + } 2379 + }, 2380 + "node_modules/ajv-formats": { 2381 + "version": "3.0.1", 2382 + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", 2383 + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", 2384 + "dependencies": { 2385 + "ajv": "^8.0.0" 2386 + }, 2387 + "peerDependencies": { 2388 + "ajv": "^8.0.0" 2389 + }, 2390 + "peerDependenciesMeta": { 2391 + "ajv": { 2392 + "optional": true 2393 + } 2394 + } 2395 + }, 2396 + "node_modules/ansi-regex": { 2397 + "version": "6.2.2", 2398 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", 2399 + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", 2400 + "engines": { 2401 + "node": ">=12" 2402 + }, 2403 + "funding": { 2404 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2405 + } 2406 + }, 2407 + "node_modules/ansi-styles": { 2408 + "version": "4.3.0", 2409 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 2410 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 2411 + "dependencies": { 2412 + "color-convert": "^2.0.1" 2413 + }, 2414 + "engines": { 2415 + "node": ">=8" 2416 + }, 2417 + "funding": { 2418 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2419 + } 2420 + }, 2421 + "node_modules/ansis": { 2422 + "version": "4.2.0", 2423 + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", 2424 + "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", 2425 + "engines": { 2426 + "node": ">=14" 2427 + } 2428 + }, 2429 + "node_modules/argparse": { 2430 + "version": "2.0.1", 2431 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2432 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 2433 + }, 2434 + "node_modules/aria-hidden": { 2435 + "version": "1.2.6", 2436 + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", 2437 + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", 2438 + "dependencies": { 2439 + "tslib": "^2.0.0" 2440 + }, 2441 + "engines": { 2442 + "node": ">=10" 2443 + } 2444 + }, 2445 + "node_modules/ast-types": { 2446 + "version": "0.16.1", 2447 + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", 2448 + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", 2449 + "dependencies": { 2450 + "tslib": "^2.0.1" 2451 + }, 2452 + "engines": { 2453 + "node": ">=4" 2454 + } 2455 + }, 2456 + "node_modules/balanced-match": { 2457 + "version": "4.0.4", 2458 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", 2459 + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", 2460 + "engines": { 2461 + "node": "18 || 20 || >=22" 2462 + } 2463 + }, 2464 + "node_modules/baseline-browser-mapping": { 2465 + "version": "2.10.0", 2466 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", 2467 + "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", 2468 + "bin": { 2469 + "baseline-browser-mapping": "dist/cli.cjs" 2470 + }, 2471 + "engines": { 2472 + "node": ">=6.0.0" 2473 + } 2474 + }, 2475 + "node_modules/body-parser": { 2476 + "version": "2.2.2", 2477 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", 2478 + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", 2479 + "dependencies": { 2480 + "bytes": "^3.1.2", 2481 + "content-type": "^1.0.5", 2482 + "debug": "^4.4.3", 2483 + "http-errors": "^2.0.0", 2484 + "iconv-lite": "^0.7.0", 2485 + "on-finished": "^2.4.1", 2486 + "qs": "^6.14.1", 2487 + "raw-body": "^3.0.1", 2488 + "type-is": "^2.0.1" 2489 + }, 2490 + "engines": { 2491 + "node": ">=18" 2492 + }, 2493 + "funding": { 2494 + "type": "opencollective", 2495 + "url": "https://opencollective.com/express" 2496 + } 2497 + }, 2498 + "node_modules/brace-expansion": { 2499 + "version": "5.0.4", 2500 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", 2501 + "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", 2502 + "dependencies": { 2503 + "balanced-match": "^4.0.2" 2504 + }, 2505 + "engines": { 2506 + "node": "18 || 20 || >=22" 2507 + } 2508 + }, 2509 + "node_modules/braces": { 2510 + "version": "3.0.3", 2511 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 2512 + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 2513 + "dependencies": { 2514 + "fill-range": "^7.1.1" 2515 + }, 2516 + "engines": { 2517 + "node": ">=8" 2518 + } 2519 + }, 2520 + "node_modules/browserslist": { 2521 + "version": "4.28.1", 2522 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", 2523 + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", 2524 + "funding": [ 2525 + { 2526 + "type": "opencollective", 2527 + "url": "https://opencollective.com/browserslist" 2528 + }, 2529 + { 2530 + "type": "tidelift", 2531 + "url": "https://tidelift.com/funding/github/npm/browserslist" 2532 + }, 2533 + { 2534 + "type": "github", 2535 + "url": "https://github.com/sponsors/ai" 2536 + } 2537 + ], 2538 + "dependencies": { 2539 + "baseline-browser-mapping": "^2.9.0", 2540 + "caniuse-lite": "^1.0.30001759", 2541 + "electron-to-chromium": "^1.5.263", 2542 + "node-releases": "^2.0.27", 2543 + "update-browserslist-db": "^1.2.0" 2544 + }, 2545 + "bin": { 2546 + "browserslist": "cli.js" 2547 + }, 2548 + "engines": { 2549 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 2550 + } 2551 + }, 2552 + "node_modules/bundle-name": { 2553 + "version": "4.1.0", 2554 + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", 2555 + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", 2556 + "dependencies": { 2557 + "run-applescript": "^7.0.0" 2558 + }, 2559 + "engines": { 2560 + "node": ">=18" 2561 + }, 2562 + "funding": { 2563 + "url": "https://github.com/sponsors/sindresorhus" 2564 + } 2565 + }, 2566 + "node_modules/bytes": { 2567 + "version": "3.1.2", 2568 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 2569 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 2570 + "engines": { 2571 + "node": ">= 0.8" 2572 + } 2573 + }, 1209 2574 "node_modules/call-bind-apply-helpers": { 1210 2575 "version": "1.0.2", 1211 2576 "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", ··· 1235 2600 "url": "https://github.com/sponsors/ljharb" 1236 2601 } 1237 2602 }, 2603 + "node_modules/callsites": { 2604 + "version": "3.1.0", 2605 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2606 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 2607 + "engines": { 2608 + "node": ">=6" 2609 + } 2610 + }, 1238 2611 "node_modules/caniuse-lite": { 1239 2612 "version": "1.0.30001760", 1240 2613 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", ··· 1255 2628 ], 1256 2629 "license": "CC-BY-4.0" 1257 2630 }, 2631 + "node_modules/chalk": { 2632 + "version": "5.6.2", 2633 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", 2634 + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", 2635 + "engines": { 2636 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 2637 + }, 2638 + "funding": { 2639 + "url": "https://github.com/chalk/chalk?sponsor=1" 2640 + } 2641 + }, 1258 2642 "node_modules/class-variance-authority": { 1259 2643 "version": "0.7.1", 1260 2644 "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", 1261 2645 "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", 1262 - "license": "Apache-2.0", 1263 2646 "dependencies": { 1264 2647 "clsx": "^2.1.1" 1265 2648 }, ··· 1267 2650 "url": "https://polar.sh/cva" 1268 2651 } 1269 2652 }, 2653 + "node_modules/cli-cursor": { 2654 + "version": "5.0.0", 2655 + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", 2656 + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", 2657 + "dependencies": { 2658 + "restore-cursor": "^5.0.0" 2659 + }, 2660 + "engines": { 2661 + "node": ">=18" 2662 + }, 2663 + "funding": { 2664 + "url": "https://github.com/sponsors/sindresorhus" 2665 + } 2666 + }, 2667 + "node_modules/cli-spinners": { 2668 + "version": "2.9.2", 2669 + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", 2670 + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", 2671 + "engines": { 2672 + "node": ">=6" 2673 + }, 2674 + "funding": { 2675 + "url": "https://github.com/sponsors/sindresorhus" 2676 + } 2677 + }, 2678 + "node_modules/cli-width": { 2679 + "version": "4.1.0", 2680 + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", 2681 + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", 2682 + "engines": { 2683 + "node": ">= 12" 2684 + } 2685 + }, 1270 2686 "node_modules/client-only": { 1271 2687 "version": "0.0.1", 1272 2688 "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", 1273 2689 "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", 1274 2690 "license": "MIT" 1275 2691 }, 2692 + "node_modules/cliui": { 2693 + "version": "8.0.1", 2694 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", 2695 + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 2696 + "dependencies": { 2697 + "string-width": "^4.2.0", 2698 + "strip-ansi": "^6.0.1", 2699 + "wrap-ansi": "^7.0.0" 2700 + }, 2701 + "engines": { 2702 + "node": ">=12" 2703 + } 2704 + }, 2705 + "node_modules/cliui/node_modules/ansi-regex": { 2706 + "version": "5.0.1", 2707 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2708 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2709 + "engines": { 2710 + "node": ">=8" 2711 + } 2712 + }, 2713 + "node_modules/cliui/node_modules/emoji-regex": { 2714 + "version": "8.0.0", 2715 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2716 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 2717 + }, 2718 + "node_modules/cliui/node_modules/string-width": { 2719 + "version": "4.2.3", 2720 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2721 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2722 + "dependencies": { 2723 + "emoji-regex": "^8.0.0", 2724 + "is-fullwidth-code-point": "^3.0.0", 2725 + "strip-ansi": "^6.0.1" 2726 + }, 2727 + "engines": { 2728 + "node": ">=8" 2729 + } 2730 + }, 2731 + "node_modules/cliui/node_modules/strip-ansi": { 2732 + "version": "6.0.1", 2733 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2734 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2735 + "dependencies": { 2736 + "ansi-regex": "^5.0.1" 2737 + }, 2738 + "engines": { 2739 + "node": ">=8" 2740 + } 2741 + }, 2742 + "node_modules/cliui/node_modules/wrap-ansi": { 2743 + "version": "7.0.0", 2744 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 2745 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 2746 + "dependencies": { 2747 + "ansi-styles": "^4.0.0", 2748 + "string-width": "^4.1.0", 2749 + "strip-ansi": "^6.0.0" 2750 + }, 2751 + "engines": { 2752 + "node": ">=10" 2753 + }, 2754 + "funding": { 2755 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 2756 + } 2757 + }, 1276 2758 "node_modules/clsx": { 1277 2759 "version": "2.1.1", 1278 2760 "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 1279 2761 "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 1280 - "license": "MIT", 1281 2762 "engines": { 1282 2763 "node": ">=6" 1283 2764 } 1284 2765 }, 2766 + "node_modules/code-block-writer": { 2767 + "version": "13.0.3", 2768 + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", 2769 + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==" 2770 + }, 2771 + "node_modules/color-convert": { 2772 + "version": "2.0.1", 2773 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 2774 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 2775 + "dependencies": { 2776 + "color-name": "~1.1.4" 2777 + }, 2778 + "engines": { 2779 + "node": ">=7.0.0" 2780 + } 2781 + }, 2782 + "node_modules/color-name": { 2783 + "version": "1.1.4", 2784 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 2785 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 2786 + }, 2787 + "node_modules/commander": { 2788 + "version": "14.0.3", 2789 + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", 2790 + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", 2791 + "engines": { 2792 + "node": ">=20" 2793 + } 2794 + }, 2795 + "node_modules/content-disposition": { 2796 + "version": "1.0.1", 2797 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", 2798 + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", 2799 + "engines": { 2800 + "node": ">=18" 2801 + }, 2802 + "funding": { 2803 + "type": "opencollective", 2804 + "url": "https://opencollective.com/express" 2805 + } 2806 + }, 2807 + "node_modules/content-type": { 2808 + "version": "1.0.5", 2809 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", 2810 + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", 2811 + "engines": { 2812 + "node": ">= 0.6" 2813 + } 2814 + }, 2815 + "node_modules/convert-source-map": { 2816 + "version": "2.0.0", 2817 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 2818 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" 2819 + }, 1285 2820 "node_modules/cookie": { 1286 2821 "version": "1.1.1", 1287 2822 "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", ··· 1295 2830 "url": "https://opencollective.com/express" 1296 2831 } 1297 2832 }, 2833 + "node_modules/cookie-signature": { 2834 + "version": "1.2.2", 2835 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", 2836 + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", 2837 + "engines": { 2838 + "node": ">=6.6.0" 2839 + } 2840 + }, 2841 + "node_modules/cors": { 2842 + "version": "2.8.6", 2843 + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", 2844 + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", 2845 + "dependencies": { 2846 + "object-assign": "^4", 2847 + "vary": "^1" 2848 + }, 2849 + "engines": { 2850 + "node": ">= 0.10" 2851 + }, 2852 + "funding": { 2853 + "type": "opencollective", 2854 + "url": "https://opencollective.com/express" 2855 + } 2856 + }, 2857 + "node_modules/cosmiconfig": { 2858 + "version": "9.0.1", 2859 + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", 2860 + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", 2861 + "dependencies": { 2862 + "env-paths": "^2.2.1", 2863 + "import-fresh": "^3.3.0", 2864 + "js-yaml": "^4.1.0", 2865 + "parse-json": "^5.2.0" 2866 + }, 2867 + "engines": { 2868 + "node": ">=14" 2869 + }, 2870 + "funding": { 2871 + "url": "https://github.com/sponsors/d-fischer" 2872 + }, 2873 + "peerDependencies": { 2874 + "typescript": ">=4.9.5" 2875 + }, 2876 + "peerDependenciesMeta": { 2877 + "typescript": { 2878 + "optional": true 2879 + } 2880 + } 2881 + }, 2882 + "node_modules/cross-spawn": { 2883 + "version": "7.0.6", 2884 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 2885 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 2886 + "dependencies": { 2887 + "path-key": "^3.1.0", 2888 + "shebang-command": "^2.0.0", 2889 + "which": "^2.0.1" 2890 + }, 2891 + "engines": { 2892 + "node": ">= 8" 2893 + } 2894 + }, 2895 + "node_modules/cross-spawn/node_modules/isexe": { 2896 + "version": "2.0.0", 2897 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2898 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 2899 + }, 2900 + "node_modules/cross-spawn/node_modules/which": { 2901 + "version": "2.0.2", 2902 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2903 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2904 + "dependencies": { 2905 + "isexe": "^2.0.0" 2906 + }, 2907 + "bin": { 2908 + "node-which": "bin/node-which" 2909 + }, 2910 + "engines": { 2911 + "node": ">= 8" 2912 + } 2913 + }, 2914 + "node_modules/cssesc": { 2915 + "version": "3.0.0", 2916 + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 2917 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 2918 + "bin": { 2919 + "cssesc": "bin/cssesc" 2920 + }, 2921 + "engines": { 2922 + "node": ">=4" 2923 + } 2924 + }, 1298 2925 "node_modules/csstype": { 1299 2926 "version": "3.2.3", 1300 2927 "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", ··· 1302 2929 "devOptional": true, 1303 2930 "license": "MIT" 1304 2931 }, 2932 + "node_modules/data-uri-to-buffer": { 2933 + "version": "4.0.1", 2934 + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", 2935 + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", 2936 + "engines": { 2937 + "node": ">= 12" 2938 + } 2939 + }, 2940 + "node_modules/debug": { 2941 + "version": "4.4.3", 2942 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 2943 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 2944 + "dependencies": { 2945 + "ms": "^2.1.3" 2946 + }, 2947 + "engines": { 2948 + "node": ">=6.0" 2949 + }, 2950 + "peerDependenciesMeta": { 2951 + "supports-color": { 2952 + "optional": true 2953 + } 2954 + } 2955 + }, 2956 + "node_modules/dedent": { 2957 + "version": "1.7.2", 2958 + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", 2959 + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", 2960 + "peerDependencies": { 2961 + "babel-plugin-macros": "^3.1.0" 2962 + }, 2963 + "peerDependenciesMeta": { 2964 + "babel-plugin-macros": { 2965 + "optional": true 2966 + } 2967 + } 2968 + }, 2969 + "node_modules/deepmerge": { 2970 + "version": "4.3.1", 2971 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 2972 + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 2973 + "engines": { 2974 + "node": ">=0.10.0" 2975 + } 2976 + }, 2977 + "node_modules/default-browser": { 2978 + "version": "5.5.0", 2979 + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", 2980 + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", 2981 + "dependencies": { 2982 + "bundle-name": "^4.1.0", 2983 + "default-browser-id": "^5.0.0" 2984 + }, 2985 + "engines": { 2986 + "node": ">=18" 2987 + }, 2988 + "funding": { 2989 + "url": "https://github.com/sponsors/sindresorhus" 2990 + } 2991 + }, 2992 + "node_modules/default-browser-id": { 2993 + "version": "5.0.1", 2994 + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", 2995 + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", 2996 + "engines": { 2997 + "node": ">=18" 2998 + }, 2999 + "funding": { 3000 + "url": "https://github.com/sponsors/sindresorhus" 3001 + } 3002 + }, 3003 + "node_modules/define-lazy-prop": { 3004 + "version": "3.0.0", 3005 + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", 3006 + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", 3007 + "engines": { 3008 + "node": ">=12" 3009 + }, 3010 + "funding": { 3011 + "url": "https://github.com/sponsors/sindresorhus" 3012 + } 3013 + }, 3014 + "node_modules/depd": { 3015 + "version": "2.0.0", 3016 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 3017 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 3018 + "engines": { 3019 + "node": ">= 0.8" 3020 + } 3021 + }, 1305 3022 "node_modules/detect-libc": { 1306 3023 "version": "2.1.2", 1307 3024 "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", ··· 1311 3028 "node": ">=8" 1312 3029 } 1313 3030 }, 3031 + "node_modules/detect-node-es": { 3032 + "version": "1.1.0", 3033 + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", 3034 + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" 3035 + }, 3036 + "node_modules/diff": { 3037 + "version": "8.0.3", 3038 + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", 3039 + "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", 3040 + "engines": { 3041 + "node": ">=0.3.1" 3042 + } 3043 + }, 3044 + "node_modules/dotenv": { 3045 + "version": "17.3.1", 3046 + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", 3047 + "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", 3048 + "engines": { 3049 + "node": ">=12" 3050 + }, 3051 + "funding": { 3052 + "url": "https://dotenvx.com" 3053 + } 3054 + }, 1314 3055 "node_modules/dunder-proto": { 1315 3056 "version": "1.0.1", 1316 3057 "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", ··· 1325 3066 "node": ">= 0.4" 1326 3067 } 1327 3068 }, 3069 + "node_modules/eciesjs": { 3070 + "version": "0.4.17", 3071 + "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.17.tgz", 3072 + "integrity": "sha512-TOOURki4G7sD1wDCjj7NfLaXZZ49dFOeEb5y39IXpb8p0hRzVvfvzZHOi5JcT+PpyAbi/Y+lxPb8eTag2WYH8w==", 3073 + "dependencies": { 3074 + "@ecies/ciphers": "^0.2.5", 3075 + "@noble/ciphers": "^1.3.0", 3076 + "@noble/curves": "^1.9.7", 3077 + "@noble/hashes": "^1.8.0" 3078 + }, 3079 + "engines": { 3080 + "bun": ">=1", 3081 + "deno": ">=2", 3082 + "node": ">=16" 3083 + } 3084 + }, 3085 + "node_modules/ee-first": { 3086 + "version": "1.1.1", 3087 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 3088 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 3089 + }, 3090 + "node_modules/electron-to-chromium": { 3091 + "version": "1.5.307", 3092 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.307.tgz", 3093 + "integrity": "sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==" 3094 + }, 3095 + "node_modules/emoji-regex": { 3096 + "version": "10.6.0", 3097 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", 3098 + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==" 3099 + }, 3100 + "node_modules/encodeurl": { 3101 + "version": "2.0.0", 3102 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", 3103 + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", 3104 + "engines": { 3105 + "node": ">= 0.8" 3106 + } 3107 + }, 1328 3108 "node_modules/enhanced-resolve": { 1329 3109 "version": "5.18.4", 1330 3110 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", ··· 1338 3118 "node": ">=10.13.0" 1339 3119 } 1340 3120 }, 3121 + "node_modules/env-paths": { 3122 + "version": "2.2.1", 3123 + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", 3124 + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", 3125 + "engines": { 3126 + "node": ">=6" 3127 + } 3128 + }, 3129 + "node_modules/error-ex": { 3130 + "version": "1.3.4", 3131 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", 3132 + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", 3133 + "dependencies": { 3134 + "is-arrayish": "^0.2.1" 3135 + } 3136 + }, 1341 3137 "node_modules/es-define-property": { 1342 3138 "version": "1.0.1", 1343 3139 "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", ··· 1368 3164 "node": ">= 0.4" 1369 3165 } 1370 3166 }, 3167 + "node_modules/escalade": { 3168 + "version": "3.2.0", 3169 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 3170 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 3171 + "engines": { 3172 + "node": ">=6" 3173 + } 3174 + }, 3175 + "node_modules/escape-html": { 3176 + "version": "1.0.3", 3177 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 3178 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 3179 + }, 3180 + "node_modules/esprima": { 3181 + "version": "4.0.1", 3182 + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 3183 + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 3184 + "bin": { 3185 + "esparse": "bin/esparse.js", 3186 + "esvalidate": "bin/esvalidate.js" 3187 + }, 3188 + "engines": { 3189 + "node": ">=4" 3190 + } 3191 + }, 3192 + "node_modules/etag": { 3193 + "version": "1.8.1", 3194 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 3195 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 3196 + "engines": { 3197 + "node": ">= 0.6" 3198 + } 3199 + }, 3200 + "node_modules/eventsource": { 3201 + "version": "3.0.7", 3202 + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", 3203 + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", 3204 + "dependencies": { 3205 + "eventsource-parser": "^3.0.1" 3206 + }, 3207 + "engines": { 3208 + "node": ">=18.0.0" 3209 + } 3210 + }, 3211 + "node_modules/eventsource-parser": { 3212 + "version": "3.0.6", 3213 + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", 3214 + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", 3215 + "engines": { 3216 + "node": ">=18.0.0" 3217 + } 3218 + }, 3219 + "node_modules/execa": { 3220 + "version": "9.6.1", 3221 + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", 3222 + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", 3223 + "dependencies": { 3224 + "@sindresorhus/merge-streams": "^4.0.0", 3225 + "cross-spawn": "^7.0.6", 3226 + "figures": "^6.1.0", 3227 + "get-stream": "^9.0.0", 3228 + "human-signals": "^8.0.1", 3229 + "is-plain-obj": "^4.1.0", 3230 + "is-stream": "^4.0.1", 3231 + "npm-run-path": "^6.0.0", 3232 + "pretty-ms": "^9.2.0", 3233 + "signal-exit": "^4.1.0", 3234 + "strip-final-newline": "^4.0.0", 3235 + "yoctocolors": "^2.1.1" 3236 + }, 3237 + "engines": { 3238 + "node": "^18.19.0 || >=20.5.0" 3239 + }, 3240 + "funding": { 3241 + "url": "https://github.com/sindresorhus/execa?sponsor=1" 3242 + } 3243 + }, 3244 + "node_modules/express": { 3245 + "version": "5.2.1", 3246 + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", 3247 + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", 3248 + "dependencies": { 3249 + "accepts": "^2.0.0", 3250 + "body-parser": "^2.2.1", 3251 + "content-disposition": "^1.0.0", 3252 + "content-type": "^1.0.5", 3253 + "cookie": "^0.7.1", 3254 + "cookie-signature": "^1.2.1", 3255 + "debug": "^4.4.0", 3256 + "depd": "^2.0.0", 3257 + "encodeurl": "^2.0.0", 3258 + "escape-html": "^1.0.3", 3259 + "etag": "^1.8.1", 3260 + "finalhandler": "^2.1.0", 3261 + "fresh": "^2.0.0", 3262 + "http-errors": "^2.0.0", 3263 + "merge-descriptors": "^2.0.0", 3264 + "mime-types": "^3.0.0", 3265 + "on-finished": "^2.4.1", 3266 + "once": "^1.4.0", 3267 + "parseurl": "^1.3.3", 3268 + "proxy-addr": "^2.0.7", 3269 + "qs": "^6.14.0", 3270 + "range-parser": "^1.2.1", 3271 + "router": "^2.2.0", 3272 + "send": "^1.1.0", 3273 + "serve-static": "^2.2.0", 3274 + "statuses": "^2.0.1", 3275 + "type-is": "^2.0.1", 3276 + "vary": "^1.1.2" 3277 + }, 3278 + "engines": { 3279 + "node": ">= 18" 3280 + }, 3281 + "funding": { 3282 + "type": "opencollective", 3283 + "url": "https://opencollective.com/express" 3284 + } 3285 + }, 3286 + "node_modules/express-rate-limit": { 3287 + "version": "8.3.0", 3288 + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.0.tgz", 3289 + "integrity": "sha512-KJzBawY6fB9FiZGdE/0aftepZ91YlaGIrV8vgblRM3J8X+dHx/aiowJWwkx6LIGyuqGiANsjSwwrbb8mifOJ4Q==", 3290 + "dependencies": { 3291 + "ip-address": "10.1.0" 3292 + }, 3293 + "engines": { 3294 + "node": ">= 16" 3295 + }, 3296 + "funding": { 3297 + "url": "https://github.com/sponsors/express-rate-limit" 3298 + }, 3299 + "peerDependencies": { 3300 + "express": ">= 4.11" 3301 + } 3302 + }, 3303 + "node_modules/express/node_modules/cookie": { 3304 + "version": "0.7.2", 3305 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 3306 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 3307 + "engines": { 3308 + "node": ">= 0.6" 3309 + } 3310 + }, 3311 + "node_modules/fast-deep-equal": { 3312 + "version": "3.1.3", 3313 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 3314 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 3315 + }, 3316 + "node_modules/fast-glob": { 3317 + "version": "3.3.3", 3318 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 3319 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 3320 + "dependencies": { 3321 + "@nodelib/fs.stat": "^2.0.2", 3322 + "@nodelib/fs.walk": "^1.2.3", 3323 + "glob-parent": "^5.1.2", 3324 + "merge2": "^1.3.0", 3325 + "micromatch": "^4.0.8" 3326 + }, 3327 + "engines": { 3328 + "node": ">=8.6.0" 3329 + } 3330 + }, 3331 + "node_modules/fast-uri": { 3332 + "version": "3.1.0", 3333 + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", 3334 + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", 3335 + "funding": [ 3336 + { 3337 + "type": "github", 3338 + "url": "https://github.com/sponsors/fastify" 3339 + }, 3340 + { 3341 + "type": "opencollective", 3342 + "url": "https://opencollective.com/fastify" 3343 + } 3344 + ] 3345 + }, 3346 + "node_modules/fastq": { 3347 + "version": "1.20.1", 3348 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", 3349 + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", 3350 + "dependencies": { 3351 + "reusify": "^1.0.4" 3352 + } 3353 + }, 3354 + "node_modules/fdir": { 3355 + "version": "6.5.0", 3356 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 3357 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 3358 + "engines": { 3359 + "node": ">=12.0.0" 3360 + }, 3361 + "peerDependencies": { 3362 + "picomatch": "^3 || ^4" 3363 + }, 3364 + "peerDependenciesMeta": { 3365 + "picomatch": { 3366 + "optional": true 3367 + } 3368 + } 3369 + }, 3370 + "node_modules/fetch-blob": { 3371 + "version": "3.2.0", 3372 + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", 3373 + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", 3374 + "funding": [ 3375 + { 3376 + "type": "github", 3377 + "url": "https://github.com/sponsors/jimmywarting" 3378 + }, 3379 + { 3380 + "type": "paypal", 3381 + "url": "https://paypal.me/jimmywarting" 3382 + } 3383 + ], 3384 + "dependencies": { 3385 + "node-domexception": "^1.0.0", 3386 + "web-streams-polyfill": "^3.0.3" 3387 + }, 3388 + "engines": { 3389 + "node": "^12.20 || >= 14.13" 3390 + } 3391 + }, 3392 + "node_modules/figures": { 3393 + "version": "6.1.0", 3394 + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", 3395 + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", 3396 + "dependencies": { 3397 + "is-unicode-supported": "^2.0.0" 3398 + }, 3399 + "engines": { 3400 + "node": ">=18" 3401 + }, 3402 + "funding": { 3403 + "url": "https://github.com/sponsors/sindresorhus" 3404 + } 3405 + }, 3406 + "node_modules/fill-range": { 3407 + "version": "7.1.1", 3408 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 3409 + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 3410 + "dependencies": { 3411 + "to-regex-range": "^5.0.1" 3412 + }, 3413 + "engines": { 3414 + "node": ">=8" 3415 + } 3416 + }, 3417 + "node_modules/finalhandler": { 3418 + "version": "2.1.1", 3419 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", 3420 + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", 3421 + "dependencies": { 3422 + "debug": "^4.4.0", 3423 + "encodeurl": "^2.0.0", 3424 + "escape-html": "^1.0.3", 3425 + "on-finished": "^2.4.1", 3426 + "parseurl": "^1.3.3", 3427 + "statuses": "^2.0.1" 3428 + }, 3429 + "engines": { 3430 + "node": ">= 18.0.0" 3431 + }, 3432 + "funding": { 3433 + "type": "opencollective", 3434 + "url": "https://opencollective.com/express" 3435 + } 3436 + }, 3437 + "node_modules/formdata-polyfill": { 3438 + "version": "4.0.10", 3439 + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 3440 + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 3441 + "dependencies": { 3442 + "fetch-blob": "^3.1.2" 3443 + }, 3444 + "engines": { 3445 + "node": ">=12.20.0" 3446 + } 3447 + }, 3448 + "node_modules/forwarded": { 3449 + "version": "0.2.0", 3450 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 3451 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 3452 + "engines": { 3453 + "node": ">= 0.6" 3454 + } 3455 + }, 3456 + "node_modules/fresh": { 3457 + "version": "2.0.0", 3458 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", 3459 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", 3460 + "engines": { 3461 + "node": ">= 0.8" 3462 + } 3463 + }, 3464 + "node_modules/fs-extra": { 3465 + "version": "11.3.4", 3466 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", 3467 + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", 3468 + "dependencies": { 3469 + "graceful-fs": "^4.2.0", 3470 + "jsonfile": "^6.0.1", 3471 + "universalify": "^2.0.0" 3472 + }, 3473 + "engines": { 3474 + "node": ">=14.14" 3475 + } 3476 + }, 1371 3477 "node_modules/function-bind": { 1372 3478 "version": "1.1.2", 1373 3479 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", ··· 1377 3483 "url": "https://github.com/sponsors/ljharb" 1378 3484 } 1379 3485 }, 3486 + "node_modules/fuzzysort": { 3487 + "version": "3.1.0", 3488 + "resolved": "https://registry.npmjs.org/fuzzysort/-/fuzzysort-3.1.0.tgz", 3489 + "integrity": "sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==" 3490 + }, 3491 + "node_modules/fzf": { 3492 + "version": "0.5.2", 3493 + "resolved": "https://registry.npmjs.org/fzf/-/fzf-0.5.2.tgz", 3494 + "integrity": "sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==" 3495 + }, 3496 + "node_modules/gensync": { 3497 + "version": "1.0.0-beta.2", 3498 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 3499 + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 3500 + "engines": { 3501 + "node": ">=6.9.0" 3502 + } 3503 + }, 3504 + "node_modules/get-caller-file": { 3505 + "version": "2.0.5", 3506 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 3507 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 3508 + "engines": { 3509 + "node": "6.* || 8.* || >= 10.*" 3510 + } 3511 + }, 3512 + "node_modules/get-east-asian-width": { 3513 + "version": "1.5.0", 3514 + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", 3515 + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", 3516 + "engines": { 3517 + "node": ">=18" 3518 + }, 3519 + "funding": { 3520 + "url": "https://github.com/sponsors/sindresorhus" 3521 + } 3522 + }, 1380 3523 "node_modules/get-intrinsic": { 1381 3524 "version": "1.3.0", 1382 3525 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", ··· 1401 3544 "url": "https://github.com/sponsors/ljharb" 1402 3545 } 1403 3546 }, 3547 + "node_modules/get-nonce": { 3548 + "version": "1.0.1", 3549 + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", 3550 + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", 3551 + "engines": { 3552 + "node": ">=6" 3553 + } 3554 + }, 3555 + "node_modules/get-own-enumerable-keys": { 3556 + "version": "1.0.0", 3557 + "resolved": "https://registry.npmjs.org/get-own-enumerable-keys/-/get-own-enumerable-keys-1.0.0.tgz", 3558 + "integrity": "sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==", 3559 + "engines": { 3560 + "node": ">=14.16" 3561 + }, 3562 + "funding": { 3563 + "url": "https://github.com/sponsors/sindresorhus" 3564 + } 3565 + }, 1404 3566 "node_modules/get-proto": { 1405 3567 "version": "1.0.1", 1406 3568 "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", ··· 1414 3576 "node": ">= 0.4" 1415 3577 } 1416 3578 }, 3579 + "node_modules/get-stream": { 3580 + "version": "9.0.1", 3581 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", 3582 + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", 3583 + "dependencies": { 3584 + "@sec-ant/readable-stream": "^0.4.1", 3585 + "is-stream": "^4.0.1" 3586 + }, 3587 + "engines": { 3588 + "node": ">=18" 3589 + }, 3590 + "funding": { 3591 + "url": "https://github.com/sponsors/sindresorhus" 3592 + } 3593 + }, 3594 + "node_modules/glob-parent": { 3595 + "version": "5.1.2", 3596 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 3597 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 3598 + "dependencies": { 3599 + "is-glob": "^4.0.1" 3600 + }, 3601 + "engines": { 3602 + "node": ">= 6" 3603 + } 3604 + }, 1417 3605 "node_modules/gopd": { 1418 3606 "version": "1.2.0", 1419 3607 "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", ··· 1431 3619 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 1432 3620 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1433 3621 "license": "ISC" 3622 + }, 3623 + "node_modules/graphql": { 3624 + "version": "16.13.1", 3625 + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.13.1.tgz", 3626 + "integrity": "sha512-gGgrVCoDKlIZ8fIqXBBb0pPKqDgki0Z/FSKNiQzSGj2uEYHr1tq5wmBegGwJx6QB5S5cM0khSBpi/JFHMCvsmQ==", 3627 + "engines": { 3628 + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" 3629 + } 1434 3630 }, 1435 3631 "node_modules/has-symbols": { 1436 3632 "version": "1.1.0", ··· 1454 3650 }, 1455 3651 "engines": { 1456 3652 "node": ">= 0.4" 3653 + } 3654 + }, 3655 + "node_modules/headers-polyfill": { 3656 + "version": "4.0.3", 3657 + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", 3658 + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==" 3659 + }, 3660 + "node_modules/hono": { 3661 + "version": "4.12.5", 3662 + "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.5.tgz", 3663 + "integrity": "sha512-3qq+FUBtlTHhtYxbxheZgY8NIFnkkC/MR8u5TTsr7YZ3wixryQ3cCwn3iZbg8p8B88iDBBAYSfZDS75t8MN7Vg==", 3664 + "engines": { 3665 + "node": ">=16.9.0" 3666 + } 3667 + }, 3668 + "node_modules/http-errors": { 3669 + "version": "2.0.1", 3670 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", 3671 + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", 3672 + "dependencies": { 3673 + "depd": "~2.0.0", 3674 + "inherits": "~2.0.4", 3675 + "setprototypeof": "~1.2.0", 3676 + "statuses": "~2.0.2", 3677 + "toidentifier": "~1.0.1" 3678 + }, 3679 + "engines": { 3680 + "node": ">= 0.8" 3681 + }, 3682 + "funding": { 3683 + "type": "opencollective", 3684 + "url": "https://opencollective.com/express" 3685 + } 3686 + }, 3687 + "node_modules/https-proxy-agent": { 3688 + "version": "7.0.6", 3689 + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", 3690 + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", 3691 + "dependencies": { 3692 + "agent-base": "^7.1.2", 3693 + "debug": "4" 3694 + }, 3695 + "engines": { 3696 + "node": ">= 14" 3697 + } 3698 + }, 3699 + "node_modules/human-signals": { 3700 + "version": "8.0.1", 3701 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", 3702 + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", 3703 + "engines": { 3704 + "node": ">=18.18.0" 1457 3705 } 1458 3706 }, 1459 3707 "node_modules/iceberg-js": { ··· 1465 3713 "node": ">=20.0.0" 1466 3714 } 1467 3715 }, 3716 + "node_modules/iconv-lite": { 3717 + "version": "0.7.2", 3718 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", 3719 + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", 3720 + "dependencies": { 3721 + "safer-buffer": ">= 2.1.2 < 3.0.0" 3722 + }, 3723 + "engines": { 3724 + "node": ">=0.10.0" 3725 + }, 3726 + "funding": { 3727 + "type": "opencollective", 3728 + "url": "https://opencollective.com/express" 3729 + } 3730 + }, 3731 + "node_modules/ignore": { 3732 + "version": "5.3.2", 3733 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 3734 + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 3735 + "engines": { 3736 + "node": ">= 4" 3737 + } 3738 + }, 3739 + "node_modules/import-fresh": { 3740 + "version": "3.3.1", 3741 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 3742 + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 3743 + "dependencies": { 3744 + "parent-module": "^1.0.0", 3745 + "resolve-from": "^4.0.0" 3746 + }, 3747 + "engines": { 3748 + "node": ">=6" 3749 + }, 3750 + "funding": { 3751 + "url": "https://github.com/sponsors/sindresorhus" 3752 + } 3753 + }, 3754 + "node_modules/inherits": { 3755 + "version": "2.0.4", 3756 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3757 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 3758 + }, 3759 + "node_modules/ip-address": { 3760 + "version": "10.1.0", 3761 + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", 3762 + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", 3763 + "engines": { 3764 + "node": ">= 12" 3765 + } 3766 + }, 3767 + "node_modules/ipaddr.js": { 3768 + "version": "1.9.1", 3769 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 3770 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 3771 + "engines": { 3772 + "node": ">= 0.10" 3773 + } 3774 + }, 3775 + "node_modules/is-arrayish": { 3776 + "version": "0.2.1", 3777 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 3778 + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 3779 + }, 3780 + "node_modules/is-docker": { 3781 + "version": "3.0.0", 3782 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", 3783 + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 3784 + "bin": { 3785 + "is-docker": "cli.js" 3786 + }, 3787 + "engines": { 3788 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 3789 + }, 3790 + "funding": { 3791 + "url": "https://github.com/sponsors/sindresorhus" 3792 + } 3793 + }, 3794 + "node_modules/is-extglob": { 3795 + "version": "2.1.1", 3796 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 3797 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 3798 + "engines": { 3799 + "node": ">=0.10.0" 3800 + } 3801 + }, 3802 + "node_modules/is-fullwidth-code-point": { 3803 + "version": "3.0.0", 3804 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 3805 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 3806 + "engines": { 3807 + "node": ">=8" 3808 + } 3809 + }, 3810 + "node_modules/is-glob": { 3811 + "version": "4.0.3", 3812 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 3813 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 3814 + "dependencies": { 3815 + "is-extglob": "^2.1.1" 3816 + }, 3817 + "engines": { 3818 + "node": ">=0.10.0" 3819 + } 3820 + }, 3821 + "node_modules/is-in-ssh": { 3822 + "version": "1.0.0", 3823 + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", 3824 + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", 3825 + "engines": { 3826 + "node": ">=20" 3827 + }, 3828 + "funding": { 3829 + "url": "https://github.com/sponsors/sindresorhus" 3830 + } 3831 + }, 3832 + "node_modules/is-inside-container": { 3833 + "version": "1.0.0", 3834 + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", 3835 + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 3836 + "dependencies": { 3837 + "is-docker": "^3.0.0" 3838 + }, 3839 + "bin": { 3840 + "is-inside-container": "cli.js" 3841 + }, 3842 + "engines": { 3843 + "node": ">=14.16" 3844 + }, 3845 + "funding": { 3846 + "url": "https://github.com/sponsors/sindresorhus" 3847 + } 3848 + }, 3849 + "node_modules/is-interactive": { 3850 + "version": "2.0.0", 3851 + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", 3852 + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", 3853 + "engines": { 3854 + "node": ">=12" 3855 + }, 3856 + "funding": { 3857 + "url": "https://github.com/sponsors/sindresorhus" 3858 + } 3859 + }, 3860 + "node_modules/is-node-process": { 3861 + "version": "1.2.0", 3862 + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", 3863 + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==" 3864 + }, 3865 + "node_modules/is-number": { 3866 + "version": "7.0.0", 3867 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 3868 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 3869 + "engines": { 3870 + "node": ">=0.12.0" 3871 + } 3872 + }, 3873 + "node_modules/is-obj": { 3874 + "version": "3.0.0", 3875 + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-3.0.0.tgz", 3876 + "integrity": "sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==", 3877 + "engines": { 3878 + "node": ">=12" 3879 + }, 3880 + "funding": { 3881 + "url": "https://github.com/sponsors/sindresorhus" 3882 + } 3883 + }, 3884 + "node_modules/is-plain-obj": { 3885 + "version": "4.1.0", 3886 + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", 3887 + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", 3888 + "engines": { 3889 + "node": ">=12" 3890 + }, 3891 + "funding": { 3892 + "url": "https://github.com/sponsors/sindresorhus" 3893 + } 3894 + }, 3895 + "node_modules/is-promise": { 3896 + "version": "4.0.0", 3897 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", 3898 + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" 3899 + }, 3900 + "node_modules/is-regexp": { 3901 + "version": "3.1.0", 3902 + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", 3903 + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", 3904 + "engines": { 3905 + "node": ">=12" 3906 + }, 3907 + "funding": { 3908 + "url": "https://github.com/sponsors/sindresorhus" 3909 + } 3910 + }, 3911 + "node_modules/is-stream": { 3912 + "version": "4.0.1", 3913 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", 3914 + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", 3915 + "engines": { 3916 + "node": ">=18" 3917 + }, 3918 + "funding": { 3919 + "url": "https://github.com/sponsors/sindresorhus" 3920 + } 3921 + }, 3922 + "node_modules/is-unicode-supported": { 3923 + "version": "2.1.0", 3924 + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", 3925 + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", 3926 + "engines": { 3927 + "node": ">=18" 3928 + }, 3929 + "funding": { 3930 + "url": "https://github.com/sponsors/sindresorhus" 3931 + } 3932 + }, 3933 + "node_modules/is-wsl": { 3934 + "version": "3.1.1", 3935 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", 3936 + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", 3937 + "dependencies": { 3938 + "is-inside-container": "^1.0.0" 3939 + }, 3940 + "engines": { 3941 + "node": ">=16" 3942 + }, 3943 + "funding": { 3944 + "url": "https://github.com/sponsors/sindresorhus" 3945 + } 3946 + }, 3947 + "node_modules/isexe": { 3948 + "version": "3.1.5", 3949 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", 3950 + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", 3951 + "engines": { 3952 + "node": ">=18" 3953 + } 3954 + }, 1468 3955 "node_modules/jiti": { 1469 3956 "version": "2.6.1", 1470 3957 "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", ··· 1474 3961 "jiti": "lib/jiti-cli.mjs" 1475 3962 } 1476 3963 }, 3964 + "node_modules/jose": { 3965 + "version": "6.2.0", 3966 + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.0.tgz", 3967 + "integrity": "sha512-xsfE1TcSCbUdo6U07tR0mvhg0flGxU8tPLbF03mirl2ukGQENhUg4ubGYQnhVH0b5stLlPM+WOqDkEl1R1y5sQ==", 3968 + "funding": { 3969 + "url": "https://github.com/sponsors/panva" 3970 + } 3971 + }, 1477 3972 "node_modules/js-tokens": { 1478 3973 "version": "4.0.0", 1479 3974 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1480 3975 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1481 3976 "license": "MIT" 1482 3977 }, 3978 + "node_modules/js-yaml": { 3979 + "version": "4.1.1", 3980 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", 3981 + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", 3982 + "dependencies": { 3983 + "argparse": "^2.0.1" 3984 + }, 3985 + "bin": { 3986 + "js-yaml": "bin/js-yaml.js" 3987 + } 3988 + }, 3989 + "node_modules/jsesc": { 3990 + "version": "3.1.0", 3991 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 3992 + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 3993 + "bin": { 3994 + "jsesc": "bin/jsesc" 3995 + }, 3996 + "engines": { 3997 + "node": ">=6" 3998 + } 3999 + }, 4000 + "node_modules/json-parse-even-better-errors": { 4001 + "version": "2.3.1", 4002 + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 4003 + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 4004 + }, 4005 + "node_modules/json-schema-traverse": { 4006 + "version": "1.0.0", 4007 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 4008 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 4009 + }, 4010 + "node_modules/json-schema-typed": { 4011 + "version": "8.0.2", 4012 + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", 4013 + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==" 4014 + }, 4015 + "node_modules/json5": { 4016 + "version": "2.2.3", 4017 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 4018 + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 4019 + "bin": { 4020 + "json5": "lib/cli.js" 4021 + }, 4022 + "engines": { 4023 + "node": ">=6" 4024 + } 4025 + }, 4026 + "node_modules/jsonfile": { 4027 + "version": "6.2.0", 4028 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", 4029 + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", 4030 + "dependencies": { 4031 + "universalify": "^2.0.0" 4032 + }, 4033 + "optionalDependencies": { 4034 + "graceful-fs": "^4.1.6" 4035 + } 4036 + }, 4037 + "node_modules/kleur": { 4038 + "version": "4.1.5", 4039 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 4040 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 4041 + "engines": { 4042 + "node": ">=6" 4043 + } 4044 + }, 1483 4045 "node_modules/lightningcss": { 1484 4046 "version": "1.30.2", 1485 4047 "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", ··· 1729 4291 "url": "https://opencollective.com/parcel" 1730 4292 } 1731 4293 }, 4294 + "node_modules/lines-and-columns": { 4295 + "version": "1.2.4", 4296 + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 4297 + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 4298 + }, 4299 + "node_modules/log-symbols": { 4300 + "version": "6.0.0", 4301 + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", 4302 + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", 4303 + "dependencies": { 4304 + "chalk": "^5.3.0", 4305 + "is-unicode-supported": "^1.3.0" 4306 + }, 4307 + "engines": { 4308 + "node": ">=18" 4309 + }, 4310 + "funding": { 4311 + "url": "https://github.com/sponsors/sindresorhus" 4312 + } 4313 + }, 4314 + "node_modules/log-symbols/node_modules/is-unicode-supported": { 4315 + "version": "1.3.0", 4316 + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", 4317 + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", 4318 + "engines": { 4319 + "node": ">=12" 4320 + }, 4321 + "funding": { 4322 + "url": "https://github.com/sponsors/sindresorhus" 4323 + } 4324 + }, 1732 4325 "node_modules/loose-envify": { 1733 4326 "version": "1.4.0", 1734 4327 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", ··· 1739 4332 }, 1740 4333 "bin": { 1741 4334 "loose-envify": "cli.js" 4335 + } 4336 + }, 4337 + "node_modules/lru-cache": { 4338 + "version": "5.1.1", 4339 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 4340 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 4341 + "dependencies": { 4342 + "yallist": "^3.0.2" 1742 4343 } 1743 4344 }, 1744 4345 "node_modules/lucide-react": { 1745 4346 "version": "0.562.0", 1746 4347 "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz", 1747 4348 "integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==", 1748 - "license": "ISC", 1749 4349 "peerDependencies": { 1750 4350 "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" 1751 4351 } ··· 1768 4368 "node": ">= 0.4" 1769 4369 } 1770 4370 }, 4371 + "node_modules/media-typer": { 4372 + "version": "1.1.0", 4373 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 4374 + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", 4375 + "engines": { 4376 + "node": ">= 0.8" 4377 + } 4378 + }, 4379 + "node_modules/merge-descriptors": { 4380 + "version": "2.0.0", 4381 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", 4382 + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", 4383 + "engines": { 4384 + "node": ">=18" 4385 + }, 4386 + "funding": { 4387 + "url": "https://github.com/sponsors/sindresorhus" 4388 + } 4389 + }, 4390 + "node_modules/merge-stream": { 4391 + "version": "2.0.0", 4392 + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 4393 + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" 4394 + }, 4395 + "node_modules/merge2": { 4396 + "version": "1.4.1", 4397 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 4398 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 4399 + "engines": { 4400 + "node": ">= 8" 4401 + } 4402 + }, 4403 + "node_modules/micromatch": { 4404 + "version": "4.0.8", 4405 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 4406 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 4407 + "dependencies": { 4408 + "braces": "^3.0.3", 4409 + "picomatch": "^2.3.1" 4410 + }, 4411 + "engines": { 4412 + "node": ">=8.6" 4413 + } 4414 + }, 4415 + "node_modules/micromatch/node_modules/picomatch": { 4416 + "version": "2.3.1", 4417 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 4418 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 4419 + "engines": { 4420 + "node": ">=8.6" 4421 + }, 4422 + "funding": { 4423 + "url": "https://github.com/sponsors/jonschlinkert" 4424 + } 4425 + }, 4426 + "node_modules/mime-db": { 4427 + "version": "1.54.0", 4428 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 4429 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 4430 + "engines": { 4431 + "node": ">= 0.6" 4432 + } 4433 + }, 4434 + "node_modules/mime-types": { 4435 + "version": "3.0.2", 4436 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", 4437 + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", 4438 + "dependencies": { 4439 + "mime-db": "^1.54.0" 4440 + }, 4441 + "engines": { 4442 + "node": ">=18" 4443 + }, 4444 + "funding": { 4445 + "type": "opencollective", 4446 + "url": "https://opencollective.com/express" 4447 + } 4448 + }, 4449 + "node_modules/mimic-fn": { 4450 + "version": "2.1.0", 4451 + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 4452 + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 4453 + "engines": { 4454 + "node": ">=6" 4455 + } 4456 + }, 4457 + "node_modules/mimic-function": { 4458 + "version": "5.0.1", 4459 + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", 4460 + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", 4461 + "engines": { 4462 + "node": ">=18" 4463 + }, 4464 + "funding": { 4465 + "url": "https://github.com/sponsors/sindresorhus" 4466 + } 4467 + }, 4468 + "node_modules/minimatch": { 4469 + "version": "10.2.4", 4470 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", 4471 + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", 4472 + "dependencies": { 4473 + "brace-expansion": "^5.0.2" 4474 + }, 4475 + "engines": { 4476 + "node": "18 || 20 || >=22" 4477 + }, 4478 + "funding": { 4479 + "url": "https://github.com/sponsors/isaacs" 4480 + } 4481 + }, 4482 + "node_modules/minimist": { 4483 + "version": "1.2.8", 4484 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 4485 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 4486 + "funding": { 4487 + "url": "https://github.com/sponsors/ljharb" 4488 + } 4489 + }, 4490 + "node_modules/ms": { 4491 + "version": "2.1.3", 4492 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 4493 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 4494 + }, 4495 + "node_modules/msw": { 4496 + "version": "2.12.10", 4497 + "resolved": "https://registry.npmjs.org/msw/-/msw-2.12.10.tgz", 4498 + "integrity": "sha512-G3VUymSE0/iegFnuipujpwyTM2GuZAKXNeerUSrG2+Eg391wW63xFs5ixWsK9MWzr1AGoSkYGmyAzNgbR3+urw==", 4499 + "hasInstallScript": true, 4500 + "dependencies": { 4501 + "@inquirer/confirm": "^5.0.0", 4502 + "@mswjs/interceptors": "^0.41.2", 4503 + "@open-draft/deferred-promise": "^2.2.0", 4504 + "@types/statuses": "^2.0.6", 4505 + "cookie": "^1.0.2", 4506 + "graphql": "^16.12.0", 4507 + "headers-polyfill": "^4.0.2", 4508 + "is-node-process": "^1.2.0", 4509 + "outvariant": "^1.4.3", 4510 + "path-to-regexp": "^6.3.0", 4511 + "picocolors": "^1.1.1", 4512 + "rettime": "^0.10.1", 4513 + "statuses": "^2.0.2", 4514 + "strict-event-emitter": "^0.5.1", 4515 + "tough-cookie": "^6.0.0", 4516 + "type-fest": "^5.2.0", 4517 + "until-async": "^3.0.2", 4518 + "yargs": "^17.7.2" 4519 + }, 4520 + "bin": { 4521 + "msw": "cli/index.js" 4522 + }, 4523 + "engines": { 4524 + "node": ">=18" 4525 + }, 4526 + "funding": { 4527 + "url": "https://github.com/sponsors/mswjs" 4528 + }, 4529 + "peerDependencies": { 4530 + "typescript": ">= 4.8.x" 4531 + }, 4532 + "peerDependenciesMeta": { 4533 + "typescript": { 4534 + "optional": true 4535 + } 4536 + } 4537 + }, 4538 + "node_modules/mute-stream": { 4539 + "version": "2.0.0", 4540 + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", 4541 + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", 4542 + "engines": { 4543 + "node": "^18.17.0 || >=20.5.0" 4544 + } 4545 + }, 1771 4546 "node_modules/nanoid": { 1772 4547 "version": "3.3.11", 1773 4548 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", ··· 1784 4559 }, 1785 4560 "engines": { 1786 4561 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 4562 + } 4563 + }, 4564 + "node_modules/negotiator": { 4565 + "version": "1.0.0", 4566 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", 4567 + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", 4568 + "engines": { 4569 + "node": ">= 0.6" 1787 4570 } 1788 4571 }, 1789 4572 "node_modules/next": { ··· 1866 4649 "node": "^10 || ^12 || >=14" 1867 4650 } 1868 4651 }, 4652 + "node_modules/node-domexception": { 4653 + "version": "1.0.0", 4654 + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 4655 + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", 4656 + "deprecated": "Use your platform's native DOMException instead", 4657 + "funding": [ 4658 + { 4659 + "type": "github", 4660 + "url": "https://github.com/sponsors/jimmywarting" 4661 + }, 4662 + { 4663 + "type": "github", 4664 + "url": "https://paypal.me/jimmywarting" 4665 + } 4666 + ], 4667 + "engines": { 4668 + "node": ">=10.5.0" 4669 + } 4670 + }, 4671 + "node_modules/node-fetch": { 4672 + "version": "3.3.2", 4673 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", 4674 + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", 4675 + "dependencies": { 4676 + "data-uri-to-buffer": "^4.0.0", 4677 + "fetch-blob": "^3.1.4", 4678 + "formdata-polyfill": "^4.0.10" 4679 + }, 4680 + "engines": { 4681 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4682 + }, 4683 + "funding": { 4684 + "type": "opencollective", 4685 + "url": "https://opencollective.com/node-fetch" 4686 + } 4687 + }, 4688 + "node_modules/node-releases": { 4689 + "version": "2.0.36", 4690 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", 4691 + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==" 4692 + }, 4693 + "node_modules/npm-run-path": { 4694 + "version": "6.0.0", 4695 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", 4696 + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", 4697 + "dependencies": { 4698 + "path-key": "^4.0.0", 4699 + "unicorn-magic": "^0.3.0" 4700 + }, 4701 + "engines": { 4702 + "node": ">=18" 4703 + }, 4704 + "funding": { 4705 + "url": "https://github.com/sponsors/sindresorhus" 4706 + } 4707 + }, 4708 + "node_modules/npm-run-path/node_modules/path-key": { 4709 + "version": "4.0.0", 4710 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", 4711 + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", 4712 + "engines": { 4713 + "node": ">=12" 4714 + }, 4715 + "funding": { 4716 + "url": "https://github.com/sponsors/sindresorhus" 4717 + } 4718 + }, 4719 + "node_modules/object-assign": { 4720 + "version": "4.1.1", 4721 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 4722 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 4723 + "engines": { 4724 + "node": ">=0.10.0" 4725 + } 4726 + }, 1869 4727 "node_modules/object-inspect": { 1870 4728 "version": "1.13.4", 1871 4729 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", ··· 1878 4736 "url": "https://github.com/sponsors/ljharb" 1879 4737 } 1880 4738 }, 4739 + "node_modules/object-treeify": { 4740 + "version": "1.1.33", 4741 + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", 4742 + "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", 4743 + "engines": { 4744 + "node": ">= 10" 4745 + } 4746 + }, 4747 + "node_modules/on-finished": { 4748 + "version": "2.4.1", 4749 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 4750 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 4751 + "dependencies": { 4752 + "ee-first": "1.1.1" 4753 + }, 4754 + "engines": { 4755 + "node": ">= 0.8" 4756 + } 4757 + }, 4758 + "node_modules/once": { 4759 + "version": "1.4.0", 4760 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 4761 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 4762 + "dependencies": { 4763 + "wrappy": "1" 4764 + } 4765 + }, 4766 + "node_modules/onetime": { 4767 + "version": "7.0.0", 4768 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", 4769 + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", 4770 + "dependencies": { 4771 + "mimic-function": "^5.0.0" 4772 + }, 4773 + "engines": { 4774 + "node": ">=18" 4775 + }, 4776 + "funding": { 4777 + "url": "https://github.com/sponsors/sindresorhus" 4778 + } 4779 + }, 4780 + "node_modules/open": { 4781 + "version": "11.0.0", 4782 + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", 4783 + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", 4784 + "dependencies": { 4785 + "default-browser": "^5.4.0", 4786 + "define-lazy-prop": "^3.0.0", 4787 + "is-in-ssh": "^1.0.0", 4788 + "is-inside-container": "^1.0.0", 4789 + "powershell-utils": "^0.1.0", 4790 + "wsl-utils": "^0.3.0" 4791 + }, 4792 + "engines": { 4793 + "node": ">=20" 4794 + }, 4795 + "funding": { 4796 + "url": "https://github.com/sponsors/sindresorhus" 4797 + } 4798 + }, 4799 + "node_modules/ora": { 4800 + "version": "8.2.0", 4801 + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", 4802 + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", 4803 + "dependencies": { 4804 + "chalk": "^5.3.0", 4805 + "cli-cursor": "^5.0.0", 4806 + "cli-spinners": "^2.9.2", 4807 + "is-interactive": "^2.0.0", 4808 + "is-unicode-supported": "^2.0.0", 4809 + "log-symbols": "^6.0.0", 4810 + "stdin-discarder": "^0.2.2", 4811 + "string-width": "^7.2.0", 4812 + "strip-ansi": "^7.1.0" 4813 + }, 4814 + "engines": { 4815 + "node": ">=18" 4816 + }, 4817 + "funding": { 4818 + "url": "https://github.com/sponsors/sindresorhus" 4819 + } 4820 + }, 4821 + "node_modules/outvariant": { 4822 + "version": "1.4.3", 4823 + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", 4824 + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==" 4825 + }, 4826 + "node_modules/package-manager-detector": { 4827 + "version": "1.6.0", 4828 + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", 4829 + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==" 4830 + }, 4831 + "node_modules/parent-module": { 4832 + "version": "1.0.1", 4833 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 4834 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 4835 + "dependencies": { 4836 + "callsites": "^3.0.0" 4837 + }, 4838 + "engines": { 4839 + "node": ">=6" 4840 + } 4841 + }, 4842 + "node_modules/parse-json": { 4843 + "version": "5.2.0", 4844 + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 4845 + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 4846 + "dependencies": { 4847 + "@babel/code-frame": "^7.0.0", 4848 + "error-ex": "^1.3.1", 4849 + "json-parse-even-better-errors": "^2.3.0", 4850 + "lines-and-columns": "^1.1.6" 4851 + }, 4852 + "engines": { 4853 + "node": ">=8" 4854 + }, 4855 + "funding": { 4856 + "url": "https://github.com/sponsors/sindresorhus" 4857 + } 4858 + }, 4859 + "node_modules/parse-ms": { 4860 + "version": "4.0.0", 4861 + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", 4862 + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", 4863 + "engines": { 4864 + "node": ">=18" 4865 + }, 4866 + "funding": { 4867 + "url": "https://github.com/sponsors/sindresorhus" 4868 + } 4869 + }, 4870 + "node_modules/parseurl": { 4871 + "version": "1.3.3", 4872 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 4873 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 4874 + "engines": { 4875 + "node": ">= 0.8" 4876 + } 4877 + }, 4878 + "node_modules/path-browserify": { 4879 + "version": "1.0.1", 4880 + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", 4881 + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" 4882 + }, 4883 + "node_modules/path-key": { 4884 + "version": "3.1.1", 4885 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 4886 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 4887 + "engines": { 4888 + "node": ">=8" 4889 + } 4890 + }, 4891 + "node_modules/path-to-regexp": { 4892 + "version": "6.3.0", 4893 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 4894 + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==" 4895 + }, 1881 4896 "node_modules/picocolors": { 1882 4897 "version": "1.1.1", 1883 4898 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 1884 4899 "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 1885 4900 "license": "ISC" 1886 4901 }, 4902 + "node_modules/picomatch": { 4903 + "version": "4.0.3", 4904 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 4905 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 4906 + "engines": { 4907 + "node": ">=12" 4908 + }, 4909 + "funding": { 4910 + "url": "https://github.com/sponsors/jonschlinkert" 4911 + } 4912 + }, 4913 + "node_modules/pkce-challenge": { 4914 + "version": "5.0.1", 4915 + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", 4916 + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", 4917 + "engines": { 4918 + "node": ">=16.20.0" 4919 + } 4920 + }, 1887 4921 "node_modules/postcss": { 1888 4922 "version": "8.5.6", 1889 4923 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", ··· 1912 4946 "node": "^10 || ^12 || >=14" 1913 4947 } 1914 4948 }, 4949 + "node_modules/postcss-selector-parser": { 4950 + "version": "7.1.1", 4951 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", 4952 + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", 4953 + "dependencies": { 4954 + "cssesc": "^3.0.0", 4955 + "util-deprecate": "^1.0.2" 4956 + }, 4957 + "engines": { 4958 + "node": ">=4" 4959 + } 4960 + }, 4961 + "node_modules/powershell-utils": { 4962 + "version": "0.1.0", 4963 + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", 4964 + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", 4965 + "engines": { 4966 + "node": ">=20" 4967 + }, 4968 + "funding": { 4969 + "url": "https://github.com/sponsors/sindresorhus" 4970 + } 4971 + }, 4972 + "node_modules/pretty-ms": { 4973 + "version": "9.3.0", 4974 + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", 4975 + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", 4976 + "dependencies": { 4977 + "parse-ms": "^4.0.0" 4978 + }, 4979 + "engines": { 4980 + "node": ">=18" 4981 + }, 4982 + "funding": { 4983 + "url": "https://github.com/sponsors/sindresorhus" 4984 + } 4985 + }, 4986 + "node_modules/prompts": { 4987 + "version": "2.4.2", 4988 + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", 4989 + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", 4990 + "dependencies": { 4991 + "kleur": "^3.0.3", 4992 + "sisteransi": "^1.0.5" 4993 + }, 4994 + "engines": { 4995 + "node": ">= 6" 4996 + } 4997 + }, 4998 + "node_modules/prompts/node_modules/kleur": { 4999 + "version": "3.0.3", 5000 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", 5001 + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", 5002 + "engines": { 5003 + "node": ">=6" 5004 + } 5005 + }, 5006 + "node_modules/proxy-addr": { 5007 + "version": "2.0.7", 5008 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 5009 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 5010 + "dependencies": { 5011 + "forwarded": "0.2.0", 5012 + "ipaddr.js": "1.9.1" 5013 + }, 5014 + "engines": { 5015 + "node": ">= 0.10" 5016 + } 5017 + }, 1915 5018 "node_modules/qs": { 1916 - "version": "6.14.0", 1917 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", 1918 - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", 1919 - "license": "BSD-3-Clause", 5019 + "version": "6.15.0", 5020 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", 5021 + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", 1920 5022 "dependencies": { 1921 5023 "side-channel": "^1.1.0" 1922 5024 }, ··· 1927 5029 "url": "https://github.com/sponsors/ljharb" 1928 5030 } 1929 5031 }, 5032 + "node_modules/queue-microtask": { 5033 + "version": "1.2.3", 5034 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 5035 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 5036 + "funding": [ 5037 + { 5038 + "type": "github", 5039 + "url": "https://github.com/sponsors/feross" 5040 + }, 5041 + { 5042 + "type": "patreon", 5043 + "url": "https://www.patreon.com/feross" 5044 + }, 5045 + { 5046 + "type": "consulting", 5047 + "url": "https://feross.org/support" 5048 + } 5049 + ] 5050 + }, 5051 + "node_modules/radix-ui": { 5052 + "version": "1.4.3", 5053 + "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.4.3.tgz", 5054 + "integrity": "sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==", 5055 + "dependencies": { 5056 + "@radix-ui/primitive": "1.1.3", 5057 + "@radix-ui/react-accessible-icon": "1.1.7", 5058 + "@radix-ui/react-accordion": "1.2.12", 5059 + "@radix-ui/react-alert-dialog": "1.1.15", 5060 + "@radix-ui/react-arrow": "1.1.7", 5061 + "@radix-ui/react-aspect-ratio": "1.1.7", 5062 + "@radix-ui/react-avatar": "1.1.10", 5063 + "@radix-ui/react-checkbox": "1.3.3", 5064 + "@radix-ui/react-collapsible": "1.1.12", 5065 + "@radix-ui/react-collection": "1.1.7", 5066 + "@radix-ui/react-compose-refs": "1.1.2", 5067 + "@radix-ui/react-context": "1.1.2", 5068 + "@radix-ui/react-context-menu": "2.2.16", 5069 + "@radix-ui/react-dialog": "1.1.15", 5070 + "@radix-ui/react-direction": "1.1.1", 5071 + "@radix-ui/react-dismissable-layer": "1.1.11", 5072 + "@radix-ui/react-dropdown-menu": "2.1.16", 5073 + "@radix-ui/react-focus-guards": "1.1.3", 5074 + "@radix-ui/react-focus-scope": "1.1.7", 5075 + "@radix-ui/react-form": "0.1.8", 5076 + "@radix-ui/react-hover-card": "1.1.15", 5077 + "@radix-ui/react-label": "2.1.7", 5078 + "@radix-ui/react-menu": "2.1.16", 5079 + "@radix-ui/react-menubar": "1.1.16", 5080 + "@radix-ui/react-navigation-menu": "1.2.14", 5081 + "@radix-ui/react-one-time-password-field": "0.1.8", 5082 + "@radix-ui/react-password-toggle-field": "0.1.3", 5083 + "@radix-ui/react-popover": "1.1.15", 5084 + "@radix-ui/react-popper": "1.2.8", 5085 + "@radix-ui/react-portal": "1.1.9", 5086 + "@radix-ui/react-presence": "1.1.5", 5087 + "@radix-ui/react-primitive": "2.1.3", 5088 + "@radix-ui/react-progress": "1.1.7", 5089 + "@radix-ui/react-radio-group": "1.3.8", 5090 + "@radix-ui/react-roving-focus": "1.1.11", 5091 + "@radix-ui/react-scroll-area": "1.2.10", 5092 + "@radix-ui/react-select": "2.2.6", 5093 + "@radix-ui/react-separator": "1.1.7", 5094 + "@radix-ui/react-slider": "1.3.6", 5095 + "@radix-ui/react-slot": "1.2.3", 5096 + "@radix-ui/react-switch": "1.2.6", 5097 + "@radix-ui/react-tabs": "1.1.13", 5098 + "@radix-ui/react-toast": "1.2.15", 5099 + "@radix-ui/react-toggle": "1.1.10", 5100 + "@radix-ui/react-toggle-group": "1.1.11", 5101 + "@radix-ui/react-toolbar": "1.1.11", 5102 + "@radix-ui/react-tooltip": "1.2.8", 5103 + "@radix-ui/react-use-callback-ref": "1.1.1", 5104 + "@radix-ui/react-use-controllable-state": "1.2.2", 5105 + "@radix-ui/react-use-effect-event": "0.0.2", 5106 + "@radix-ui/react-use-escape-keydown": "1.1.1", 5107 + "@radix-ui/react-use-is-hydrated": "0.1.0", 5108 + "@radix-ui/react-use-layout-effect": "1.1.1", 5109 + "@radix-ui/react-use-size": "1.1.1", 5110 + "@radix-ui/react-visually-hidden": "1.2.3" 5111 + }, 5112 + "peerDependencies": { 5113 + "@types/react": "*", 5114 + "@types/react-dom": "*", 5115 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5116 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5117 + }, 5118 + "peerDependenciesMeta": { 5119 + "@types/react": { 5120 + "optional": true 5121 + }, 5122 + "@types/react-dom": { 5123 + "optional": true 5124 + } 5125 + } 5126 + }, 5127 + "node_modules/radix-ui/node_modules/@radix-ui/react-accessible-icon": { 5128 + "version": "1.1.7", 5129 + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.7.tgz", 5130 + "integrity": "sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==", 5131 + "dependencies": { 5132 + "@radix-ui/react-visually-hidden": "1.2.3" 5133 + }, 5134 + "peerDependencies": { 5135 + "@types/react": "*", 5136 + "@types/react-dom": "*", 5137 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5138 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5139 + }, 5140 + "peerDependenciesMeta": { 5141 + "@types/react": { 5142 + "optional": true 5143 + }, 5144 + "@types/react-dom": { 5145 + "optional": true 5146 + } 5147 + } 5148 + }, 5149 + "node_modules/radix-ui/node_modules/@radix-ui/react-accordion": { 5150 + "version": "1.2.12", 5151 + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", 5152 + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", 5153 + "dependencies": { 5154 + "@radix-ui/primitive": "1.1.3", 5155 + "@radix-ui/react-collapsible": "1.1.12", 5156 + "@radix-ui/react-collection": "1.1.7", 5157 + "@radix-ui/react-compose-refs": "1.1.2", 5158 + "@radix-ui/react-context": "1.1.2", 5159 + "@radix-ui/react-direction": "1.1.1", 5160 + "@radix-ui/react-id": "1.1.1", 5161 + "@radix-ui/react-primitive": "2.1.3", 5162 + "@radix-ui/react-use-controllable-state": "1.2.2" 5163 + }, 5164 + "peerDependencies": { 5165 + "@types/react": "*", 5166 + "@types/react-dom": "*", 5167 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5168 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5169 + }, 5170 + "peerDependenciesMeta": { 5171 + "@types/react": { 5172 + "optional": true 5173 + }, 5174 + "@types/react-dom": { 5175 + "optional": true 5176 + } 5177 + } 5178 + }, 5179 + "node_modules/radix-ui/node_modules/@radix-ui/react-alert-dialog": { 5180 + "version": "1.1.15", 5181 + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", 5182 + "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", 5183 + "dependencies": { 5184 + "@radix-ui/primitive": "1.1.3", 5185 + "@radix-ui/react-compose-refs": "1.1.2", 5186 + "@radix-ui/react-context": "1.1.2", 5187 + "@radix-ui/react-dialog": "1.1.15", 5188 + "@radix-ui/react-primitive": "2.1.3", 5189 + "@radix-ui/react-slot": "1.2.3" 5190 + }, 5191 + "peerDependencies": { 5192 + "@types/react": "*", 5193 + "@types/react-dom": "*", 5194 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5195 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5196 + }, 5197 + "peerDependenciesMeta": { 5198 + "@types/react": { 5199 + "optional": true 5200 + }, 5201 + "@types/react-dom": { 5202 + "optional": true 5203 + } 5204 + } 5205 + }, 5206 + "node_modules/radix-ui/node_modules/@radix-ui/react-arrow": { 5207 + "version": "1.1.7", 5208 + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", 5209 + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", 5210 + "dependencies": { 5211 + "@radix-ui/react-primitive": "2.1.3" 5212 + }, 5213 + "peerDependencies": { 5214 + "@types/react": "*", 5215 + "@types/react-dom": "*", 5216 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5217 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5218 + }, 5219 + "peerDependenciesMeta": { 5220 + "@types/react": { 5221 + "optional": true 5222 + }, 5223 + "@types/react-dom": { 5224 + "optional": true 5225 + } 5226 + } 5227 + }, 5228 + "node_modules/radix-ui/node_modules/@radix-ui/react-aspect-ratio": { 5229 + "version": "1.1.7", 5230 + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", 5231 + "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", 5232 + "dependencies": { 5233 + "@radix-ui/react-primitive": "2.1.3" 5234 + }, 5235 + "peerDependencies": { 5236 + "@types/react": "*", 5237 + "@types/react-dom": "*", 5238 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5239 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5240 + }, 5241 + "peerDependenciesMeta": { 5242 + "@types/react": { 5243 + "optional": true 5244 + }, 5245 + "@types/react-dom": { 5246 + "optional": true 5247 + } 5248 + } 5249 + }, 5250 + "node_modules/radix-ui/node_modules/@radix-ui/react-avatar": { 5251 + "version": "1.1.10", 5252 + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", 5253 + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", 5254 + "dependencies": { 5255 + "@radix-ui/react-context": "1.1.2", 5256 + "@radix-ui/react-primitive": "2.1.3", 5257 + "@radix-ui/react-use-callback-ref": "1.1.1", 5258 + "@radix-ui/react-use-is-hydrated": "0.1.0", 5259 + "@radix-ui/react-use-layout-effect": "1.1.1" 5260 + }, 5261 + "peerDependencies": { 5262 + "@types/react": "*", 5263 + "@types/react-dom": "*", 5264 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5265 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5266 + }, 5267 + "peerDependenciesMeta": { 5268 + "@types/react": { 5269 + "optional": true 5270 + }, 5271 + "@types/react-dom": { 5272 + "optional": true 5273 + } 5274 + } 5275 + }, 5276 + "node_modules/radix-ui/node_modules/@radix-ui/react-checkbox": { 5277 + "version": "1.3.3", 5278 + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", 5279 + "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", 5280 + "dependencies": { 5281 + "@radix-ui/primitive": "1.1.3", 5282 + "@radix-ui/react-compose-refs": "1.1.2", 5283 + "@radix-ui/react-context": "1.1.2", 5284 + "@radix-ui/react-presence": "1.1.5", 5285 + "@radix-ui/react-primitive": "2.1.3", 5286 + "@radix-ui/react-use-controllable-state": "1.2.2", 5287 + "@radix-ui/react-use-previous": "1.1.1", 5288 + "@radix-ui/react-use-size": "1.1.1" 5289 + }, 5290 + "peerDependencies": { 5291 + "@types/react": "*", 5292 + "@types/react-dom": "*", 5293 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5294 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5295 + }, 5296 + "peerDependenciesMeta": { 5297 + "@types/react": { 5298 + "optional": true 5299 + }, 5300 + "@types/react-dom": { 5301 + "optional": true 5302 + } 5303 + } 5304 + }, 5305 + "node_modules/radix-ui/node_modules/@radix-ui/react-collapsible": { 5306 + "version": "1.1.12", 5307 + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", 5308 + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", 5309 + "dependencies": { 5310 + "@radix-ui/primitive": "1.1.3", 5311 + "@radix-ui/react-compose-refs": "1.1.2", 5312 + "@radix-ui/react-context": "1.1.2", 5313 + "@radix-ui/react-id": "1.1.1", 5314 + "@radix-ui/react-presence": "1.1.5", 5315 + "@radix-ui/react-primitive": "2.1.3", 5316 + "@radix-ui/react-use-controllable-state": "1.2.2", 5317 + "@radix-ui/react-use-layout-effect": "1.1.1" 5318 + }, 5319 + "peerDependencies": { 5320 + "@types/react": "*", 5321 + "@types/react-dom": "*", 5322 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5323 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5324 + }, 5325 + "peerDependenciesMeta": { 5326 + "@types/react": { 5327 + "optional": true 5328 + }, 5329 + "@types/react-dom": { 5330 + "optional": true 5331 + } 5332 + } 5333 + }, 5334 + "node_modules/radix-ui/node_modules/@radix-ui/react-collection": { 5335 + "version": "1.1.7", 5336 + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", 5337 + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", 5338 + "dependencies": { 5339 + "@radix-ui/react-compose-refs": "1.1.2", 5340 + "@radix-ui/react-context": "1.1.2", 5341 + "@radix-ui/react-primitive": "2.1.3", 5342 + "@radix-ui/react-slot": "1.2.3" 5343 + }, 5344 + "peerDependencies": { 5345 + "@types/react": "*", 5346 + "@types/react-dom": "*", 5347 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5348 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5349 + }, 5350 + "peerDependenciesMeta": { 5351 + "@types/react": { 5352 + "optional": true 5353 + }, 5354 + "@types/react-dom": { 5355 + "optional": true 5356 + } 5357 + } 5358 + }, 5359 + "node_modules/radix-ui/node_modules/@radix-ui/react-context-menu": { 5360 + "version": "2.2.16", 5361 + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz", 5362 + "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==", 5363 + "dependencies": { 5364 + "@radix-ui/primitive": "1.1.3", 5365 + "@radix-ui/react-context": "1.1.2", 5366 + "@radix-ui/react-menu": "2.1.16", 5367 + "@radix-ui/react-primitive": "2.1.3", 5368 + "@radix-ui/react-use-callback-ref": "1.1.1", 5369 + "@radix-ui/react-use-controllable-state": "1.2.2" 5370 + }, 5371 + "peerDependencies": { 5372 + "@types/react": "*", 5373 + "@types/react-dom": "*", 5374 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5375 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5376 + }, 5377 + "peerDependenciesMeta": { 5378 + "@types/react": { 5379 + "optional": true 5380 + }, 5381 + "@types/react-dom": { 5382 + "optional": true 5383 + } 5384 + } 5385 + }, 5386 + "node_modules/radix-ui/node_modules/@radix-ui/react-dialog": { 5387 + "version": "1.1.15", 5388 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", 5389 + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", 5390 + "dependencies": { 5391 + "@radix-ui/primitive": "1.1.3", 5392 + "@radix-ui/react-compose-refs": "1.1.2", 5393 + "@radix-ui/react-context": "1.1.2", 5394 + "@radix-ui/react-dismissable-layer": "1.1.11", 5395 + "@radix-ui/react-focus-guards": "1.1.3", 5396 + "@radix-ui/react-focus-scope": "1.1.7", 5397 + "@radix-ui/react-id": "1.1.1", 5398 + "@radix-ui/react-portal": "1.1.9", 5399 + "@radix-ui/react-presence": "1.1.5", 5400 + "@radix-ui/react-primitive": "2.1.3", 5401 + "@radix-ui/react-slot": "1.2.3", 5402 + "@radix-ui/react-use-controllable-state": "1.2.2", 5403 + "aria-hidden": "^1.2.4", 5404 + "react-remove-scroll": "^2.6.3" 5405 + }, 5406 + "peerDependencies": { 5407 + "@types/react": "*", 5408 + "@types/react-dom": "*", 5409 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5410 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5411 + }, 5412 + "peerDependenciesMeta": { 5413 + "@types/react": { 5414 + "optional": true 5415 + }, 5416 + "@types/react-dom": { 5417 + "optional": true 5418 + } 5419 + } 5420 + }, 5421 + "node_modules/radix-ui/node_modules/@radix-ui/react-dismissable-layer": { 5422 + "version": "1.1.11", 5423 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", 5424 + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", 5425 + "dependencies": { 5426 + "@radix-ui/primitive": "1.1.3", 5427 + "@radix-ui/react-compose-refs": "1.1.2", 5428 + "@radix-ui/react-primitive": "2.1.3", 5429 + "@radix-ui/react-use-callback-ref": "1.1.1", 5430 + "@radix-ui/react-use-escape-keydown": "1.1.1" 5431 + }, 5432 + "peerDependencies": { 5433 + "@types/react": "*", 5434 + "@types/react-dom": "*", 5435 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5436 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5437 + }, 5438 + "peerDependenciesMeta": { 5439 + "@types/react": { 5440 + "optional": true 5441 + }, 5442 + "@types/react-dom": { 5443 + "optional": true 5444 + } 5445 + } 5446 + }, 5447 + "node_modules/radix-ui/node_modules/@radix-ui/react-dropdown-menu": { 5448 + "version": "2.1.16", 5449 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", 5450 + "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", 5451 + "dependencies": { 5452 + "@radix-ui/primitive": "1.1.3", 5453 + "@radix-ui/react-compose-refs": "1.1.2", 5454 + "@radix-ui/react-context": "1.1.2", 5455 + "@radix-ui/react-id": "1.1.1", 5456 + "@radix-ui/react-menu": "2.1.16", 5457 + "@radix-ui/react-primitive": "2.1.3", 5458 + "@radix-ui/react-use-controllable-state": "1.2.2" 5459 + }, 5460 + "peerDependencies": { 5461 + "@types/react": "*", 5462 + "@types/react-dom": "*", 5463 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5464 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5465 + }, 5466 + "peerDependenciesMeta": { 5467 + "@types/react": { 5468 + "optional": true 5469 + }, 5470 + "@types/react-dom": { 5471 + "optional": true 5472 + } 5473 + } 5474 + }, 5475 + "node_modules/radix-ui/node_modules/@radix-ui/react-focus-scope": { 5476 + "version": "1.1.7", 5477 + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", 5478 + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", 5479 + "dependencies": { 5480 + "@radix-ui/react-compose-refs": "1.1.2", 5481 + "@radix-ui/react-primitive": "2.1.3", 5482 + "@radix-ui/react-use-callback-ref": "1.1.1" 5483 + }, 5484 + "peerDependencies": { 5485 + "@types/react": "*", 5486 + "@types/react-dom": "*", 5487 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5488 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5489 + }, 5490 + "peerDependenciesMeta": { 5491 + "@types/react": { 5492 + "optional": true 5493 + }, 5494 + "@types/react-dom": { 5495 + "optional": true 5496 + } 5497 + } 5498 + }, 5499 + "node_modules/radix-ui/node_modules/@radix-ui/react-form": { 5500 + "version": "0.1.8", 5501 + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.8.tgz", 5502 + "integrity": "sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==", 5503 + "dependencies": { 5504 + "@radix-ui/primitive": "1.1.3", 5505 + "@radix-ui/react-compose-refs": "1.1.2", 5506 + "@radix-ui/react-context": "1.1.2", 5507 + "@radix-ui/react-id": "1.1.1", 5508 + "@radix-ui/react-label": "2.1.7", 5509 + "@radix-ui/react-primitive": "2.1.3" 5510 + }, 5511 + "peerDependencies": { 5512 + "@types/react": "*", 5513 + "@types/react-dom": "*", 5514 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5515 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5516 + }, 5517 + "peerDependenciesMeta": { 5518 + "@types/react": { 5519 + "optional": true 5520 + }, 5521 + "@types/react-dom": { 5522 + "optional": true 5523 + } 5524 + } 5525 + }, 5526 + "node_modules/radix-ui/node_modules/@radix-ui/react-hover-card": { 5527 + "version": "1.1.15", 5528 + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz", 5529 + "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==", 5530 + "dependencies": { 5531 + "@radix-ui/primitive": "1.1.3", 5532 + "@radix-ui/react-compose-refs": "1.1.2", 5533 + "@radix-ui/react-context": "1.1.2", 5534 + "@radix-ui/react-dismissable-layer": "1.1.11", 5535 + "@radix-ui/react-popper": "1.2.8", 5536 + "@radix-ui/react-portal": "1.1.9", 5537 + "@radix-ui/react-presence": "1.1.5", 5538 + "@radix-ui/react-primitive": "2.1.3", 5539 + "@radix-ui/react-use-controllable-state": "1.2.2" 5540 + }, 5541 + "peerDependencies": { 5542 + "@types/react": "*", 5543 + "@types/react-dom": "*", 5544 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5545 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5546 + }, 5547 + "peerDependenciesMeta": { 5548 + "@types/react": { 5549 + "optional": true 5550 + }, 5551 + "@types/react-dom": { 5552 + "optional": true 5553 + } 5554 + } 5555 + }, 5556 + "node_modules/radix-ui/node_modules/@radix-ui/react-label": { 5557 + "version": "2.1.7", 5558 + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", 5559 + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", 5560 + "dependencies": { 5561 + "@radix-ui/react-primitive": "2.1.3" 5562 + }, 5563 + "peerDependencies": { 5564 + "@types/react": "*", 5565 + "@types/react-dom": "*", 5566 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5567 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5568 + }, 5569 + "peerDependenciesMeta": { 5570 + "@types/react": { 5571 + "optional": true 5572 + }, 5573 + "@types/react-dom": { 5574 + "optional": true 5575 + } 5576 + } 5577 + }, 5578 + "node_modules/radix-ui/node_modules/@radix-ui/react-menu": { 5579 + "version": "2.1.16", 5580 + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", 5581 + "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", 5582 + "dependencies": { 5583 + "@radix-ui/primitive": "1.1.3", 5584 + "@radix-ui/react-collection": "1.1.7", 5585 + "@radix-ui/react-compose-refs": "1.1.2", 5586 + "@radix-ui/react-context": "1.1.2", 5587 + "@radix-ui/react-direction": "1.1.1", 5588 + "@radix-ui/react-dismissable-layer": "1.1.11", 5589 + "@radix-ui/react-focus-guards": "1.1.3", 5590 + "@radix-ui/react-focus-scope": "1.1.7", 5591 + "@radix-ui/react-id": "1.1.1", 5592 + "@radix-ui/react-popper": "1.2.8", 5593 + "@radix-ui/react-portal": "1.1.9", 5594 + "@radix-ui/react-presence": "1.1.5", 5595 + "@radix-ui/react-primitive": "2.1.3", 5596 + "@radix-ui/react-roving-focus": "1.1.11", 5597 + "@radix-ui/react-slot": "1.2.3", 5598 + "@radix-ui/react-use-callback-ref": "1.1.1", 5599 + "aria-hidden": "^1.2.4", 5600 + "react-remove-scroll": "^2.6.3" 5601 + }, 5602 + "peerDependencies": { 5603 + "@types/react": "*", 5604 + "@types/react-dom": "*", 5605 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5606 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5607 + }, 5608 + "peerDependenciesMeta": { 5609 + "@types/react": { 5610 + "optional": true 5611 + }, 5612 + "@types/react-dom": { 5613 + "optional": true 5614 + } 5615 + } 5616 + }, 5617 + "node_modules/radix-ui/node_modules/@radix-ui/react-menubar": { 5618 + "version": "1.1.16", 5619 + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz", 5620 + "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==", 5621 + "dependencies": { 5622 + "@radix-ui/primitive": "1.1.3", 5623 + "@radix-ui/react-collection": "1.1.7", 5624 + "@radix-ui/react-compose-refs": "1.1.2", 5625 + "@radix-ui/react-context": "1.1.2", 5626 + "@radix-ui/react-direction": "1.1.1", 5627 + "@radix-ui/react-id": "1.1.1", 5628 + "@radix-ui/react-menu": "2.1.16", 5629 + "@radix-ui/react-primitive": "2.1.3", 5630 + "@radix-ui/react-roving-focus": "1.1.11", 5631 + "@radix-ui/react-use-controllable-state": "1.2.2" 5632 + }, 5633 + "peerDependencies": { 5634 + "@types/react": "*", 5635 + "@types/react-dom": "*", 5636 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5637 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5638 + }, 5639 + "peerDependenciesMeta": { 5640 + "@types/react": { 5641 + "optional": true 5642 + }, 5643 + "@types/react-dom": { 5644 + "optional": true 5645 + } 5646 + } 5647 + }, 5648 + "node_modules/radix-ui/node_modules/@radix-ui/react-navigation-menu": { 5649 + "version": "1.2.14", 5650 + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", 5651 + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", 5652 + "dependencies": { 5653 + "@radix-ui/primitive": "1.1.3", 5654 + "@radix-ui/react-collection": "1.1.7", 5655 + "@radix-ui/react-compose-refs": "1.1.2", 5656 + "@radix-ui/react-context": "1.1.2", 5657 + "@radix-ui/react-direction": "1.1.1", 5658 + "@radix-ui/react-dismissable-layer": "1.1.11", 5659 + "@radix-ui/react-id": "1.1.1", 5660 + "@radix-ui/react-presence": "1.1.5", 5661 + "@radix-ui/react-primitive": "2.1.3", 5662 + "@radix-ui/react-use-callback-ref": "1.1.1", 5663 + "@radix-ui/react-use-controllable-state": "1.2.2", 5664 + "@radix-ui/react-use-layout-effect": "1.1.1", 5665 + "@radix-ui/react-use-previous": "1.1.1", 5666 + "@radix-ui/react-visually-hidden": "1.2.3" 5667 + }, 5668 + "peerDependencies": { 5669 + "@types/react": "*", 5670 + "@types/react-dom": "*", 5671 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5672 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5673 + }, 5674 + "peerDependenciesMeta": { 5675 + "@types/react": { 5676 + "optional": true 5677 + }, 5678 + "@types/react-dom": { 5679 + "optional": true 5680 + } 5681 + } 5682 + }, 5683 + "node_modules/radix-ui/node_modules/@radix-ui/react-one-time-password-field": { 5684 + "version": "0.1.8", 5685 + "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.8.tgz", 5686 + "integrity": "sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==", 5687 + "dependencies": { 5688 + "@radix-ui/number": "1.1.1", 5689 + "@radix-ui/primitive": "1.1.3", 5690 + "@radix-ui/react-collection": "1.1.7", 5691 + "@radix-ui/react-compose-refs": "1.1.2", 5692 + "@radix-ui/react-context": "1.1.2", 5693 + "@radix-ui/react-direction": "1.1.1", 5694 + "@radix-ui/react-primitive": "2.1.3", 5695 + "@radix-ui/react-roving-focus": "1.1.11", 5696 + "@radix-ui/react-use-controllable-state": "1.2.2", 5697 + "@radix-ui/react-use-effect-event": "0.0.2", 5698 + "@radix-ui/react-use-is-hydrated": "0.1.0", 5699 + "@radix-ui/react-use-layout-effect": "1.1.1" 5700 + }, 5701 + "peerDependencies": { 5702 + "@types/react": "*", 5703 + "@types/react-dom": "*", 5704 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5705 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5706 + }, 5707 + "peerDependenciesMeta": { 5708 + "@types/react": { 5709 + "optional": true 5710 + }, 5711 + "@types/react-dom": { 5712 + "optional": true 5713 + } 5714 + } 5715 + }, 5716 + "node_modules/radix-ui/node_modules/@radix-ui/react-password-toggle-field": { 5717 + "version": "0.1.3", 5718 + "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.3.tgz", 5719 + "integrity": "sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==", 5720 + "dependencies": { 5721 + "@radix-ui/primitive": "1.1.3", 5722 + "@radix-ui/react-compose-refs": "1.1.2", 5723 + "@radix-ui/react-context": "1.1.2", 5724 + "@radix-ui/react-id": "1.1.1", 5725 + "@radix-ui/react-primitive": "2.1.3", 5726 + "@radix-ui/react-use-controllable-state": "1.2.2", 5727 + "@radix-ui/react-use-effect-event": "0.0.2", 5728 + "@radix-ui/react-use-is-hydrated": "0.1.0" 5729 + }, 5730 + "peerDependencies": { 5731 + "@types/react": "*", 5732 + "@types/react-dom": "*", 5733 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5734 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5735 + }, 5736 + "peerDependenciesMeta": { 5737 + "@types/react": { 5738 + "optional": true 5739 + }, 5740 + "@types/react-dom": { 5741 + "optional": true 5742 + } 5743 + } 5744 + }, 5745 + "node_modules/radix-ui/node_modules/@radix-ui/react-popover": { 5746 + "version": "1.1.15", 5747 + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", 5748 + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", 5749 + "dependencies": { 5750 + "@radix-ui/primitive": "1.1.3", 5751 + "@radix-ui/react-compose-refs": "1.1.2", 5752 + "@radix-ui/react-context": "1.1.2", 5753 + "@radix-ui/react-dismissable-layer": "1.1.11", 5754 + "@radix-ui/react-focus-guards": "1.1.3", 5755 + "@radix-ui/react-focus-scope": "1.1.7", 5756 + "@radix-ui/react-id": "1.1.1", 5757 + "@radix-ui/react-popper": "1.2.8", 5758 + "@radix-ui/react-portal": "1.1.9", 5759 + "@radix-ui/react-presence": "1.1.5", 5760 + "@radix-ui/react-primitive": "2.1.3", 5761 + "@radix-ui/react-slot": "1.2.3", 5762 + "@radix-ui/react-use-controllable-state": "1.2.2", 5763 + "aria-hidden": "^1.2.4", 5764 + "react-remove-scroll": "^2.6.3" 5765 + }, 5766 + "peerDependencies": { 5767 + "@types/react": "*", 5768 + "@types/react-dom": "*", 5769 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5770 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5771 + }, 5772 + "peerDependenciesMeta": { 5773 + "@types/react": { 5774 + "optional": true 5775 + }, 5776 + "@types/react-dom": { 5777 + "optional": true 5778 + } 5779 + } 5780 + }, 5781 + "node_modules/radix-ui/node_modules/@radix-ui/react-popper": { 5782 + "version": "1.2.8", 5783 + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", 5784 + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", 5785 + "dependencies": { 5786 + "@floating-ui/react-dom": "^2.0.0", 5787 + "@radix-ui/react-arrow": "1.1.7", 5788 + "@radix-ui/react-compose-refs": "1.1.2", 5789 + "@radix-ui/react-context": "1.1.2", 5790 + "@radix-ui/react-primitive": "2.1.3", 5791 + "@radix-ui/react-use-callback-ref": "1.1.1", 5792 + "@radix-ui/react-use-layout-effect": "1.1.1", 5793 + "@radix-ui/react-use-rect": "1.1.1", 5794 + "@radix-ui/react-use-size": "1.1.1", 5795 + "@radix-ui/rect": "1.1.1" 5796 + }, 5797 + "peerDependencies": { 5798 + "@types/react": "*", 5799 + "@types/react-dom": "*", 5800 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5801 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5802 + }, 5803 + "peerDependenciesMeta": { 5804 + "@types/react": { 5805 + "optional": true 5806 + }, 5807 + "@types/react-dom": { 5808 + "optional": true 5809 + } 5810 + } 5811 + }, 5812 + "node_modules/radix-ui/node_modules/@radix-ui/react-portal": { 5813 + "version": "1.1.9", 5814 + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", 5815 + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", 5816 + "dependencies": { 5817 + "@radix-ui/react-primitive": "2.1.3", 5818 + "@radix-ui/react-use-layout-effect": "1.1.1" 5819 + }, 5820 + "peerDependencies": { 5821 + "@types/react": "*", 5822 + "@types/react-dom": "*", 5823 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5824 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5825 + }, 5826 + "peerDependenciesMeta": { 5827 + "@types/react": { 5828 + "optional": true 5829 + }, 5830 + "@types/react-dom": { 5831 + "optional": true 5832 + } 5833 + } 5834 + }, 5835 + "node_modules/radix-ui/node_modules/@radix-ui/react-presence": { 5836 + "version": "1.1.5", 5837 + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", 5838 + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", 5839 + "dependencies": { 5840 + "@radix-ui/react-compose-refs": "1.1.2", 5841 + "@radix-ui/react-use-layout-effect": "1.1.1" 5842 + }, 5843 + "peerDependencies": { 5844 + "@types/react": "*", 5845 + "@types/react-dom": "*", 5846 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5847 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5848 + }, 5849 + "peerDependenciesMeta": { 5850 + "@types/react": { 5851 + "optional": true 5852 + }, 5853 + "@types/react-dom": { 5854 + "optional": true 5855 + } 5856 + } 5857 + }, 5858 + "node_modules/radix-ui/node_modules/@radix-ui/react-primitive": { 5859 + "version": "2.1.3", 5860 + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", 5861 + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", 5862 + "dependencies": { 5863 + "@radix-ui/react-slot": "1.2.3" 5864 + }, 5865 + "peerDependencies": { 5866 + "@types/react": "*", 5867 + "@types/react-dom": "*", 5868 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5869 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5870 + }, 5871 + "peerDependenciesMeta": { 5872 + "@types/react": { 5873 + "optional": true 5874 + }, 5875 + "@types/react-dom": { 5876 + "optional": true 5877 + } 5878 + } 5879 + }, 5880 + "node_modules/radix-ui/node_modules/@radix-ui/react-progress": { 5881 + "version": "1.1.7", 5882 + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", 5883 + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", 5884 + "dependencies": { 5885 + "@radix-ui/react-context": "1.1.2", 5886 + "@radix-ui/react-primitive": "2.1.3" 5887 + }, 5888 + "peerDependencies": { 5889 + "@types/react": "*", 5890 + "@types/react-dom": "*", 5891 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5892 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5893 + }, 5894 + "peerDependenciesMeta": { 5895 + "@types/react": { 5896 + "optional": true 5897 + }, 5898 + "@types/react-dom": { 5899 + "optional": true 5900 + } 5901 + } 5902 + }, 5903 + "node_modules/radix-ui/node_modules/@radix-ui/react-radio-group": { 5904 + "version": "1.3.8", 5905 + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", 5906 + "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", 5907 + "dependencies": { 5908 + "@radix-ui/primitive": "1.1.3", 5909 + "@radix-ui/react-compose-refs": "1.1.2", 5910 + "@radix-ui/react-context": "1.1.2", 5911 + "@radix-ui/react-direction": "1.1.1", 5912 + "@radix-ui/react-presence": "1.1.5", 5913 + "@radix-ui/react-primitive": "2.1.3", 5914 + "@radix-ui/react-roving-focus": "1.1.11", 5915 + "@radix-ui/react-use-controllable-state": "1.2.2", 5916 + "@radix-ui/react-use-previous": "1.1.1", 5917 + "@radix-ui/react-use-size": "1.1.1" 5918 + }, 5919 + "peerDependencies": { 5920 + "@types/react": "*", 5921 + "@types/react-dom": "*", 5922 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5923 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5924 + }, 5925 + "peerDependenciesMeta": { 5926 + "@types/react": { 5927 + "optional": true 5928 + }, 5929 + "@types/react-dom": { 5930 + "optional": true 5931 + } 5932 + } 5933 + }, 5934 + "node_modules/radix-ui/node_modules/@radix-ui/react-roving-focus": { 5935 + "version": "1.1.11", 5936 + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", 5937 + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", 5938 + "dependencies": { 5939 + "@radix-ui/primitive": "1.1.3", 5940 + "@radix-ui/react-collection": "1.1.7", 5941 + "@radix-ui/react-compose-refs": "1.1.2", 5942 + "@radix-ui/react-context": "1.1.2", 5943 + "@radix-ui/react-direction": "1.1.1", 5944 + "@radix-ui/react-id": "1.1.1", 5945 + "@radix-ui/react-primitive": "2.1.3", 5946 + "@radix-ui/react-use-callback-ref": "1.1.1", 5947 + "@radix-ui/react-use-controllable-state": "1.2.2" 5948 + }, 5949 + "peerDependencies": { 5950 + "@types/react": "*", 5951 + "@types/react-dom": "*", 5952 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5953 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5954 + }, 5955 + "peerDependenciesMeta": { 5956 + "@types/react": { 5957 + "optional": true 5958 + }, 5959 + "@types/react-dom": { 5960 + "optional": true 5961 + } 5962 + } 5963 + }, 5964 + "node_modules/radix-ui/node_modules/@radix-ui/react-scroll-area": { 5965 + "version": "1.2.10", 5966 + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", 5967 + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", 5968 + "dependencies": { 5969 + "@radix-ui/number": "1.1.1", 5970 + "@radix-ui/primitive": "1.1.3", 5971 + "@radix-ui/react-compose-refs": "1.1.2", 5972 + "@radix-ui/react-context": "1.1.2", 5973 + "@radix-ui/react-direction": "1.1.1", 5974 + "@radix-ui/react-presence": "1.1.5", 5975 + "@radix-ui/react-primitive": "2.1.3", 5976 + "@radix-ui/react-use-callback-ref": "1.1.1", 5977 + "@radix-ui/react-use-layout-effect": "1.1.1" 5978 + }, 5979 + "peerDependencies": { 5980 + "@types/react": "*", 5981 + "@types/react-dom": "*", 5982 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 5983 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 5984 + }, 5985 + "peerDependenciesMeta": { 5986 + "@types/react": { 5987 + "optional": true 5988 + }, 5989 + "@types/react-dom": { 5990 + "optional": true 5991 + } 5992 + } 5993 + }, 5994 + "node_modules/radix-ui/node_modules/@radix-ui/react-select": { 5995 + "version": "2.2.6", 5996 + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", 5997 + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", 5998 + "dependencies": { 5999 + "@radix-ui/number": "1.1.1", 6000 + "@radix-ui/primitive": "1.1.3", 6001 + "@radix-ui/react-collection": "1.1.7", 6002 + "@radix-ui/react-compose-refs": "1.1.2", 6003 + "@radix-ui/react-context": "1.1.2", 6004 + "@radix-ui/react-direction": "1.1.1", 6005 + "@radix-ui/react-dismissable-layer": "1.1.11", 6006 + "@radix-ui/react-focus-guards": "1.1.3", 6007 + "@radix-ui/react-focus-scope": "1.1.7", 6008 + "@radix-ui/react-id": "1.1.1", 6009 + "@radix-ui/react-popper": "1.2.8", 6010 + "@radix-ui/react-portal": "1.1.9", 6011 + "@radix-ui/react-primitive": "2.1.3", 6012 + "@radix-ui/react-slot": "1.2.3", 6013 + "@radix-ui/react-use-callback-ref": "1.1.1", 6014 + "@radix-ui/react-use-controllable-state": "1.2.2", 6015 + "@radix-ui/react-use-layout-effect": "1.1.1", 6016 + "@radix-ui/react-use-previous": "1.1.1", 6017 + "@radix-ui/react-visually-hidden": "1.2.3", 6018 + "aria-hidden": "^1.2.4", 6019 + "react-remove-scroll": "^2.6.3" 6020 + }, 6021 + "peerDependencies": { 6022 + "@types/react": "*", 6023 + "@types/react-dom": "*", 6024 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6025 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6026 + }, 6027 + "peerDependenciesMeta": { 6028 + "@types/react": { 6029 + "optional": true 6030 + }, 6031 + "@types/react-dom": { 6032 + "optional": true 6033 + } 6034 + } 6035 + }, 6036 + "node_modules/radix-ui/node_modules/@radix-ui/react-separator": { 6037 + "version": "1.1.7", 6038 + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", 6039 + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", 6040 + "dependencies": { 6041 + "@radix-ui/react-primitive": "2.1.3" 6042 + }, 6043 + "peerDependencies": { 6044 + "@types/react": "*", 6045 + "@types/react-dom": "*", 6046 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6047 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6048 + }, 6049 + "peerDependenciesMeta": { 6050 + "@types/react": { 6051 + "optional": true 6052 + }, 6053 + "@types/react-dom": { 6054 + "optional": true 6055 + } 6056 + } 6057 + }, 6058 + "node_modules/radix-ui/node_modules/@radix-ui/react-slider": { 6059 + "version": "1.3.6", 6060 + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", 6061 + "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", 6062 + "dependencies": { 6063 + "@radix-ui/number": "1.1.1", 6064 + "@radix-ui/primitive": "1.1.3", 6065 + "@radix-ui/react-collection": "1.1.7", 6066 + "@radix-ui/react-compose-refs": "1.1.2", 6067 + "@radix-ui/react-context": "1.1.2", 6068 + "@radix-ui/react-direction": "1.1.1", 6069 + "@radix-ui/react-primitive": "2.1.3", 6070 + "@radix-ui/react-use-controllable-state": "1.2.2", 6071 + "@radix-ui/react-use-layout-effect": "1.1.1", 6072 + "@radix-ui/react-use-previous": "1.1.1", 6073 + "@radix-ui/react-use-size": "1.1.1" 6074 + }, 6075 + "peerDependencies": { 6076 + "@types/react": "*", 6077 + "@types/react-dom": "*", 6078 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6079 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6080 + }, 6081 + "peerDependenciesMeta": { 6082 + "@types/react": { 6083 + "optional": true 6084 + }, 6085 + "@types/react-dom": { 6086 + "optional": true 6087 + } 6088 + } 6089 + }, 6090 + "node_modules/radix-ui/node_modules/@radix-ui/react-slot": { 6091 + "version": "1.2.3", 6092 + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", 6093 + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", 6094 + "dependencies": { 6095 + "@radix-ui/react-compose-refs": "1.1.2" 6096 + }, 6097 + "peerDependencies": { 6098 + "@types/react": "*", 6099 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6100 + }, 6101 + "peerDependenciesMeta": { 6102 + "@types/react": { 6103 + "optional": true 6104 + } 6105 + } 6106 + }, 6107 + "node_modules/radix-ui/node_modules/@radix-ui/react-switch": { 6108 + "version": "1.2.6", 6109 + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", 6110 + "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", 6111 + "dependencies": { 6112 + "@radix-ui/primitive": "1.1.3", 6113 + "@radix-ui/react-compose-refs": "1.1.2", 6114 + "@radix-ui/react-context": "1.1.2", 6115 + "@radix-ui/react-primitive": "2.1.3", 6116 + "@radix-ui/react-use-controllable-state": "1.2.2", 6117 + "@radix-ui/react-use-previous": "1.1.1", 6118 + "@radix-ui/react-use-size": "1.1.1" 6119 + }, 6120 + "peerDependencies": { 6121 + "@types/react": "*", 6122 + "@types/react-dom": "*", 6123 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6124 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6125 + }, 6126 + "peerDependenciesMeta": { 6127 + "@types/react": { 6128 + "optional": true 6129 + }, 6130 + "@types/react-dom": { 6131 + "optional": true 6132 + } 6133 + } 6134 + }, 6135 + "node_modules/radix-ui/node_modules/@radix-ui/react-tabs": { 6136 + "version": "1.1.13", 6137 + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", 6138 + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", 6139 + "dependencies": { 6140 + "@radix-ui/primitive": "1.1.3", 6141 + "@radix-ui/react-context": "1.1.2", 6142 + "@radix-ui/react-direction": "1.1.1", 6143 + "@radix-ui/react-id": "1.1.1", 6144 + "@radix-ui/react-presence": "1.1.5", 6145 + "@radix-ui/react-primitive": "2.1.3", 6146 + "@radix-ui/react-roving-focus": "1.1.11", 6147 + "@radix-ui/react-use-controllable-state": "1.2.2" 6148 + }, 6149 + "peerDependencies": { 6150 + "@types/react": "*", 6151 + "@types/react-dom": "*", 6152 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6153 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6154 + }, 6155 + "peerDependenciesMeta": { 6156 + "@types/react": { 6157 + "optional": true 6158 + }, 6159 + "@types/react-dom": { 6160 + "optional": true 6161 + } 6162 + } 6163 + }, 6164 + "node_modules/radix-ui/node_modules/@radix-ui/react-toast": { 6165 + "version": "1.2.15", 6166 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz", 6167 + "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==", 6168 + "dependencies": { 6169 + "@radix-ui/primitive": "1.1.3", 6170 + "@radix-ui/react-collection": "1.1.7", 6171 + "@radix-ui/react-compose-refs": "1.1.2", 6172 + "@radix-ui/react-context": "1.1.2", 6173 + "@radix-ui/react-dismissable-layer": "1.1.11", 6174 + "@radix-ui/react-portal": "1.1.9", 6175 + "@radix-ui/react-presence": "1.1.5", 6176 + "@radix-ui/react-primitive": "2.1.3", 6177 + "@radix-ui/react-use-callback-ref": "1.1.1", 6178 + "@radix-ui/react-use-controllable-state": "1.2.2", 6179 + "@radix-ui/react-use-layout-effect": "1.1.1", 6180 + "@radix-ui/react-visually-hidden": "1.2.3" 6181 + }, 6182 + "peerDependencies": { 6183 + "@types/react": "*", 6184 + "@types/react-dom": "*", 6185 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6186 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6187 + }, 6188 + "peerDependenciesMeta": { 6189 + "@types/react": { 6190 + "optional": true 6191 + }, 6192 + "@types/react-dom": { 6193 + "optional": true 6194 + } 6195 + } 6196 + }, 6197 + "node_modules/radix-ui/node_modules/@radix-ui/react-toggle": { 6198 + "version": "1.1.10", 6199 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", 6200 + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", 6201 + "dependencies": { 6202 + "@radix-ui/primitive": "1.1.3", 6203 + "@radix-ui/react-primitive": "2.1.3", 6204 + "@radix-ui/react-use-controllable-state": "1.2.2" 6205 + }, 6206 + "peerDependencies": { 6207 + "@types/react": "*", 6208 + "@types/react-dom": "*", 6209 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6210 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6211 + }, 6212 + "peerDependenciesMeta": { 6213 + "@types/react": { 6214 + "optional": true 6215 + }, 6216 + "@types/react-dom": { 6217 + "optional": true 6218 + } 6219 + } 6220 + }, 6221 + "node_modules/radix-ui/node_modules/@radix-ui/react-toggle-group": { 6222 + "version": "1.1.11", 6223 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", 6224 + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", 6225 + "dependencies": { 6226 + "@radix-ui/primitive": "1.1.3", 6227 + "@radix-ui/react-context": "1.1.2", 6228 + "@radix-ui/react-direction": "1.1.1", 6229 + "@radix-ui/react-primitive": "2.1.3", 6230 + "@radix-ui/react-roving-focus": "1.1.11", 6231 + "@radix-ui/react-toggle": "1.1.10", 6232 + "@radix-ui/react-use-controllable-state": "1.2.2" 6233 + }, 6234 + "peerDependencies": { 6235 + "@types/react": "*", 6236 + "@types/react-dom": "*", 6237 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6238 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6239 + }, 6240 + "peerDependenciesMeta": { 6241 + "@types/react": { 6242 + "optional": true 6243 + }, 6244 + "@types/react-dom": { 6245 + "optional": true 6246 + } 6247 + } 6248 + }, 6249 + "node_modules/radix-ui/node_modules/@radix-ui/react-toolbar": { 6250 + "version": "1.1.11", 6251 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz", 6252 + "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==", 6253 + "dependencies": { 6254 + "@radix-ui/primitive": "1.1.3", 6255 + "@radix-ui/react-context": "1.1.2", 6256 + "@radix-ui/react-direction": "1.1.1", 6257 + "@radix-ui/react-primitive": "2.1.3", 6258 + "@radix-ui/react-roving-focus": "1.1.11", 6259 + "@radix-ui/react-separator": "1.1.7", 6260 + "@radix-ui/react-toggle-group": "1.1.11" 6261 + }, 6262 + "peerDependencies": { 6263 + "@types/react": "*", 6264 + "@types/react-dom": "*", 6265 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6266 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6267 + }, 6268 + "peerDependenciesMeta": { 6269 + "@types/react": { 6270 + "optional": true 6271 + }, 6272 + "@types/react-dom": { 6273 + "optional": true 6274 + } 6275 + } 6276 + }, 6277 + "node_modules/radix-ui/node_modules/@radix-ui/react-tooltip": { 6278 + "version": "1.2.8", 6279 + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", 6280 + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", 6281 + "dependencies": { 6282 + "@radix-ui/primitive": "1.1.3", 6283 + "@radix-ui/react-compose-refs": "1.1.2", 6284 + "@radix-ui/react-context": "1.1.2", 6285 + "@radix-ui/react-dismissable-layer": "1.1.11", 6286 + "@radix-ui/react-id": "1.1.1", 6287 + "@radix-ui/react-popper": "1.2.8", 6288 + "@radix-ui/react-portal": "1.1.9", 6289 + "@radix-ui/react-presence": "1.1.5", 6290 + "@radix-ui/react-primitive": "2.1.3", 6291 + "@radix-ui/react-slot": "1.2.3", 6292 + "@radix-ui/react-use-controllable-state": "1.2.2", 6293 + "@radix-ui/react-visually-hidden": "1.2.3" 6294 + }, 6295 + "peerDependencies": { 6296 + "@types/react": "*", 6297 + "@types/react-dom": "*", 6298 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6299 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6300 + }, 6301 + "peerDependenciesMeta": { 6302 + "@types/react": { 6303 + "optional": true 6304 + }, 6305 + "@types/react-dom": { 6306 + "optional": true 6307 + } 6308 + } 6309 + }, 6310 + "node_modules/radix-ui/node_modules/@radix-ui/react-visually-hidden": { 6311 + "version": "1.2.3", 6312 + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", 6313 + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", 6314 + "dependencies": { 6315 + "@radix-ui/react-primitive": "2.1.3" 6316 + }, 6317 + "peerDependencies": { 6318 + "@types/react": "*", 6319 + "@types/react-dom": "*", 6320 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 6321 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 6322 + }, 6323 + "peerDependenciesMeta": { 6324 + "@types/react": { 6325 + "optional": true 6326 + }, 6327 + "@types/react-dom": { 6328 + "optional": true 6329 + } 6330 + } 6331 + }, 6332 + "node_modules/range-parser": { 6333 + "version": "1.2.1", 6334 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 6335 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 6336 + "engines": { 6337 + "node": ">= 0.6" 6338 + } 6339 + }, 6340 + "node_modules/raw-body": { 6341 + "version": "3.0.2", 6342 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", 6343 + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", 6344 + "dependencies": { 6345 + "bytes": "~3.1.2", 6346 + "http-errors": "~2.0.1", 6347 + "iconv-lite": "~0.7.0", 6348 + "unpipe": "~1.0.0" 6349 + }, 6350 + "engines": { 6351 + "node": ">= 0.10" 6352 + } 6353 + }, 1930 6354 "node_modules/react": { 1931 6355 "version": "18.2.0", 1932 6356 "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", ··· 1952 6376 "react": "^18.2.0" 1953 6377 } 1954 6378 }, 6379 + "node_modules/react-remove-scroll": { 6380 + "version": "2.7.2", 6381 + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", 6382 + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", 6383 + "dependencies": { 6384 + "react-remove-scroll-bar": "^2.3.7", 6385 + "react-style-singleton": "^2.2.3", 6386 + "tslib": "^2.1.0", 6387 + "use-callback-ref": "^1.3.3", 6388 + "use-sidecar": "^1.1.3" 6389 + }, 6390 + "engines": { 6391 + "node": ">=10" 6392 + }, 6393 + "peerDependencies": { 6394 + "@types/react": "*", 6395 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 6396 + }, 6397 + "peerDependenciesMeta": { 6398 + "@types/react": { 6399 + "optional": true 6400 + } 6401 + } 6402 + }, 6403 + "node_modules/react-remove-scroll-bar": { 6404 + "version": "2.3.8", 6405 + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", 6406 + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", 6407 + "dependencies": { 6408 + "react-style-singleton": "^2.2.2", 6409 + "tslib": "^2.0.0" 6410 + }, 6411 + "engines": { 6412 + "node": ">=10" 6413 + }, 6414 + "peerDependencies": { 6415 + "@types/react": "*", 6416 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 6417 + }, 6418 + "peerDependenciesMeta": { 6419 + "@types/react": { 6420 + "optional": true 6421 + } 6422 + } 6423 + }, 6424 + "node_modules/react-style-singleton": { 6425 + "version": "2.2.3", 6426 + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", 6427 + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", 6428 + "dependencies": { 6429 + "get-nonce": "^1.0.0", 6430 + "tslib": "^2.0.0" 6431 + }, 6432 + "engines": { 6433 + "node": ">=10" 6434 + }, 6435 + "peerDependencies": { 6436 + "@types/react": "*", 6437 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 6438 + }, 6439 + "peerDependenciesMeta": { 6440 + "@types/react": { 6441 + "optional": true 6442 + } 6443 + } 6444 + }, 6445 + "node_modules/recast": { 6446 + "version": "0.23.11", 6447 + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", 6448 + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", 6449 + "dependencies": { 6450 + "ast-types": "^0.16.1", 6451 + "esprima": "~4.0.0", 6452 + "source-map": "~0.6.1", 6453 + "tiny-invariant": "^1.3.3", 6454 + "tslib": "^2.0.1" 6455 + }, 6456 + "engines": { 6457 + "node": ">= 4" 6458 + } 6459 + }, 6460 + "node_modules/require-directory": { 6461 + "version": "2.1.1", 6462 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 6463 + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 6464 + "engines": { 6465 + "node": ">=0.10.0" 6466 + } 6467 + }, 6468 + "node_modules/require-from-string": { 6469 + "version": "2.0.2", 6470 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 6471 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 6472 + "engines": { 6473 + "node": ">=0.10.0" 6474 + } 6475 + }, 6476 + "node_modules/reselect": { 6477 + "version": "5.1.1", 6478 + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", 6479 + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==" 6480 + }, 6481 + "node_modules/resolve-from": { 6482 + "version": "4.0.0", 6483 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 6484 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 6485 + "engines": { 6486 + "node": ">=4" 6487 + } 6488 + }, 6489 + "node_modules/restore-cursor": { 6490 + "version": "5.1.0", 6491 + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", 6492 + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", 6493 + "dependencies": { 6494 + "onetime": "^7.0.0", 6495 + "signal-exit": "^4.1.0" 6496 + }, 6497 + "engines": { 6498 + "node": ">=18" 6499 + }, 6500 + "funding": { 6501 + "url": "https://github.com/sponsors/sindresorhus" 6502 + } 6503 + }, 6504 + "node_modules/rettime": { 6505 + "version": "0.10.1", 6506 + "resolved": "https://registry.npmjs.org/rettime/-/rettime-0.10.1.tgz", 6507 + "integrity": "sha512-uyDrIlUEH37cinabq0AX4QbgV4HbFZ/gqoiunWQ1UqBtRvTTytwhNYjE++pO/MjPTZL5KQCf2bEoJ/BJNVQ5Kw==" 6508 + }, 6509 + "node_modules/reusify": { 6510 + "version": "1.1.0", 6511 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 6512 + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 6513 + "engines": { 6514 + "iojs": ">=1.0.0", 6515 + "node": ">=0.10.0" 6516 + } 6517 + }, 6518 + "node_modules/router": { 6519 + "version": "2.2.0", 6520 + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", 6521 + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", 6522 + "dependencies": { 6523 + "debug": "^4.4.0", 6524 + "depd": "^2.0.0", 6525 + "is-promise": "^4.0.0", 6526 + "parseurl": "^1.3.3", 6527 + "path-to-regexp": "^8.0.0" 6528 + }, 6529 + "engines": { 6530 + "node": ">= 18" 6531 + } 6532 + }, 6533 + "node_modules/router/node_modules/path-to-regexp": { 6534 + "version": "8.3.0", 6535 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", 6536 + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", 6537 + "funding": { 6538 + "type": "opencollective", 6539 + "url": "https://opencollective.com/express" 6540 + } 6541 + }, 6542 + "node_modules/run-applescript": { 6543 + "version": "7.1.0", 6544 + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", 6545 + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", 6546 + "engines": { 6547 + "node": ">=18" 6548 + }, 6549 + "funding": { 6550 + "url": "https://github.com/sponsors/sindresorhus" 6551 + } 6552 + }, 6553 + "node_modules/run-parallel": { 6554 + "version": "1.2.0", 6555 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 6556 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 6557 + "funding": [ 6558 + { 6559 + "type": "github", 6560 + "url": "https://github.com/sponsors/feross" 6561 + }, 6562 + { 6563 + "type": "patreon", 6564 + "url": "https://www.patreon.com/feross" 6565 + }, 6566 + { 6567 + "type": "consulting", 6568 + "url": "https://feross.org/support" 6569 + } 6570 + ], 6571 + "dependencies": { 6572 + "queue-microtask": "^1.2.2" 6573 + } 6574 + }, 6575 + "node_modules/safer-buffer": { 6576 + "version": "2.1.2", 6577 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 6578 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 6579 + }, 1955 6580 "node_modules/scheduler": { 1956 6581 "version": "0.23.2", 1957 6582 "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", ··· 1974 6599 "node": ">=10" 1975 6600 } 1976 6601 }, 6602 + "node_modules/send": { 6603 + "version": "1.2.1", 6604 + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", 6605 + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", 6606 + "dependencies": { 6607 + "debug": "^4.4.3", 6608 + "encodeurl": "^2.0.0", 6609 + "escape-html": "^1.0.3", 6610 + "etag": "^1.8.1", 6611 + "fresh": "^2.0.0", 6612 + "http-errors": "^2.0.1", 6613 + "mime-types": "^3.0.2", 6614 + "ms": "^2.1.3", 6615 + "on-finished": "^2.4.1", 6616 + "range-parser": "^1.2.1", 6617 + "statuses": "^2.0.2" 6618 + }, 6619 + "engines": { 6620 + "node": ">= 18" 6621 + }, 6622 + "funding": { 6623 + "type": "opencollective", 6624 + "url": "https://opencollective.com/express" 6625 + } 6626 + }, 6627 + "node_modules/serve-static": { 6628 + "version": "2.2.1", 6629 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", 6630 + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", 6631 + "dependencies": { 6632 + "encodeurl": "^2.0.0", 6633 + "escape-html": "^1.0.3", 6634 + "parseurl": "^1.3.3", 6635 + "send": "^1.2.0" 6636 + }, 6637 + "engines": { 6638 + "node": ">= 18" 6639 + }, 6640 + "funding": { 6641 + "type": "opencollective", 6642 + "url": "https://opencollective.com/express" 6643 + } 6644 + }, 1977 6645 "node_modules/server-only": { 1978 6646 "version": "0.0.1", 1979 6647 "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", 1980 6648 "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==", 1981 6649 "license": "MIT" 1982 6650 }, 6651 + "node_modules/setprototypeof": { 6652 + "version": "1.2.0", 6653 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 6654 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 6655 + }, 6656 + "node_modules/shadcn": { 6657 + "version": "3.8.5", 6658 + "resolved": "https://registry.npmjs.org/shadcn/-/shadcn-3.8.5.tgz", 6659 + "integrity": "sha512-jPRx44e+eyeV7xwY3BLJXcfrks00+M0h5BGB9l6DdcBW4BpAj4x3lVmVy0TXPEs2iHEisxejr62sZAAw6B1EVA==", 6660 + "dependencies": { 6661 + "@antfu/ni": "^25.0.0", 6662 + "@babel/core": "^7.28.0", 6663 + "@babel/parser": "^7.28.0", 6664 + "@babel/plugin-transform-typescript": "^7.28.0", 6665 + "@babel/preset-typescript": "^7.27.1", 6666 + "@dotenvx/dotenvx": "^1.48.4", 6667 + "@modelcontextprotocol/sdk": "^1.26.0", 6668 + "@types/validate-npm-package-name": "^4.0.2", 6669 + "browserslist": "^4.26.2", 6670 + "commander": "^14.0.0", 6671 + "cosmiconfig": "^9.0.0", 6672 + "dedent": "^1.6.0", 6673 + "deepmerge": "^4.3.1", 6674 + "diff": "^8.0.2", 6675 + "execa": "^9.6.0", 6676 + "fast-glob": "^3.3.3", 6677 + "fs-extra": "^11.3.1", 6678 + "fuzzysort": "^3.1.0", 6679 + "https-proxy-agent": "^7.0.6", 6680 + "kleur": "^4.1.5", 6681 + "msw": "^2.10.4", 6682 + "node-fetch": "^3.3.2", 6683 + "open": "^11.0.0", 6684 + "ora": "^8.2.0", 6685 + "postcss": "^8.5.6", 6686 + "postcss-selector-parser": "^7.1.0", 6687 + "prompts": "^2.4.2", 6688 + "recast": "^0.23.11", 6689 + "stringify-object": "^5.0.0", 6690 + "tailwind-merge": "^3.0.1", 6691 + "ts-morph": "^26.0.0", 6692 + "tsconfig-paths": "^4.2.0", 6693 + "validate-npm-package-name": "^7.0.1", 6694 + "zod": "^3.24.1", 6695 + "zod-to-json-schema": "^3.24.6" 6696 + }, 6697 + "bin": { 6698 + "shadcn": "dist/index.js" 6699 + } 6700 + }, 1983 6701 "node_modules/sharp": { 1984 6702 "version": "0.34.5", 1985 6703 "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", ··· 2025 6743 "@img/sharp-win32-x64": "0.34.5" 2026 6744 } 2027 6745 }, 6746 + "node_modules/shebang-command": { 6747 + "version": "2.0.0", 6748 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 6749 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 6750 + "dependencies": { 6751 + "shebang-regex": "^3.0.0" 6752 + }, 6753 + "engines": { 6754 + "node": ">=8" 6755 + } 6756 + }, 6757 + "node_modules/shebang-regex": { 6758 + "version": "3.0.0", 6759 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 6760 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 6761 + "engines": { 6762 + "node": ">=8" 6763 + } 6764 + }, 2028 6765 "node_modules/side-channel": { 2029 6766 "version": "1.1.0", 2030 6767 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", ··· 2097 6834 "url": "https://github.com/sponsors/ljharb" 2098 6835 } 2099 6836 }, 6837 + "node_modules/signal-exit": { 6838 + "version": "4.1.0", 6839 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 6840 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 6841 + "engines": { 6842 + "node": ">=14" 6843 + }, 6844 + "funding": { 6845 + "url": "https://github.com/sponsors/isaacs" 6846 + } 6847 + }, 6848 + "node_modules/sisteransi": { 6849 + "version": "1.0.5", 6850 + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", 6851 + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" 6852 + }, 6853 + "node_modules/source-map": { 6854 + "version": "0.6.1", 6855 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 6856 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 6857 + "engines": { 6858 + "node": ">=0.10.0" 6859 + } 6860 + }, 2100 6861 "node_modules/source-map-js": { 2101 6862 "version": "1.2.1", 2102 6863 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", ··· 2106 6867 "node": ">=0.10.0" 2107 6868 } 2108 6869 }, 6870 + "node_modules/statuses": { 6871 + "version": "2.0.2", 6872 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", 6873 + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", 6874 + "engines": { 6875 + "node": ">= 0.8" 6876 + } 6877 + }, 6878 + "node_modules/stdin-discarder": { 6879 + "version": "0.2.2", 6880 + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", 6881 + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", 6882 + "engines": { 6883 + "node": ">=18" 6884 + }, 6885 + "funding": { 6886 + "url": "https://github.com/sponsors/sindresorhus" 6887 + } 6888 + }, 6889 + "node_modules/strict-event-emitter": { 6890 + "version": "0.5.1", 6891 + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", 6892 + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==" 6893 + }, 6894 + "node_modules/string-width": { 6895 + "version": "7.2.0", 6896 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", 6897 + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", 6898 + "dependencies": { 6899 + "emoji-regex": "^10.3.0", 6900 + "get-east-asian-width": "^1.0.0", 6901 + "strip-ansi": "^7.1.0" 6902 + }, 6903 + "engines": { 6904 + "node": ">=18" 6905 + }, 6906 + "funding": { 6907 + "url": "https://github.com/sponsors/sindresorhus" 6908 + } 6909 + }, 6910 + "node_modules/stringify-object": { 6911 + "version": "5.0.0", 6912 + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-5.0.0.tgz", 6913 + "integrity": "sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==", 6914 + "dependencies": { 6915 + "get-own-enumerable-keys": "^1.0.0", 6916 + "is-obj": "^3.0.0", 6917 + "is-regexp": "^3.1.0" 6918 + }, 6919 + "engines": { 6920 + "node": ">=14.16" 6921 + }, 6922 + "funding": { 6923 + "url": "https://github.com/yeoman/stringify-object?sponsor=1" 6924 + } 6925 + }, 6926 + "node_modules/strip-ansi": { 6927 + "version": "7.2.0", 6928 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", 6929 + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", 6930 + "dependencies": { 6931 + "ansi-regex": "^6.2.2" 6932 + }, 6933 + "engines": { 6934 + "node": ">=12" 6935 + }, 6936 + "funding": { 6937 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 6938 + } 6939 + }, 6940 + "node_modules/strip-bom": { 6941 + "version": "3.0.0", 6942 + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 6943 + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 6944 + "engines": { 6945 + "node": ">=4" 6946 + } 6947 + }, 6948 + "node_modules/strip-final-newline": { 6949 + "version": "4.0.0", 6950 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", 6951 + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", 6952 + "engines": { 6953 + "node": ">=18" 6954 + }, 6955 + "funding": { 6956 + "url": "https://github.com/sponsors/sindresorhus" 6957 + } 6958 + }, 2109 6959 "node_modules/stripe": { 2110 6960 "version": "14.8.0", 2111 6961 "resolved": "https://registry.npmjs.org/stripe/-/stripe-14.8.0.tgz", ··· 2142 6992 } 2143 6993 } 2144 6994 }, 6995 + "node_modules/tabbable": { 6996 + "version": "6.4.0", 6997 + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", 6998 + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==" 6999 + }, 7000 + "node_modules/tagged-tag": { 7001 + "version": "1.0.0", 7002 + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", 7003 + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", 7004 + "engines": { 7005 + "node": ">=20" 7006 + }, 7007 + "funding": { 7008 + "url": "https://github.com/sponsors/sindresorhus" 7009 + } 7010 + }, 2145 7011 "node_modules/tailwind-merge": { 2146 - "version": "3.4.0", 2147 - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", 2148 - "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", 2149 - "license": "MIT", 7012 + "version": "3.5.0", 7013 + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz", 7014 + "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==", 2150 7015 "funding": { 2151 7016 "type": "github", 2152 7017 "url": "https://github.com/sponsors/dcastil" ··· 2171 7036 "url": "https://opencollective.com/webpack" 2172 7037 } 2173 7038 }, 7039 + "node_modules/tiny-invariant": { 7040 + "version": "1.3.3", 7041 + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", 7042 + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" 7043 + }, 7044 + "node_modules/tinyexec": { 7045 + "version": "1.0.2", 7046 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", 7047 + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", 7048 + "engines": { 7049 + "node": ">=18" 7050 + } 7051 + }, 7052 + "node_modules/tldts": { 7053 + "version": "7.0.24", 7054 + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.24.tgz", 7055 + "integrity": "sha512-1r6vQTTt1rUiJkI5vX7KG8PR342Ru/5Oh13kEQP2SMbRSZpOey9SrBe27IDxkoWulx8ShWu4K6C0BkctP8Z1bQ==", 7056 + "dependencies": { 7057 + "tldts-core": "^7.0.24" 7058 + }, 7059 + "bin": { 7060 + "tldts": "bin/cli.js" 7061 + } 7062 + }, 7063 + "node_modules/tldts-core": { 7064 + "version": "7.0.24", 7065 + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.24.tgz", 7066 + "integrity": "sha512-pj7yygNMoMRqG7ML2SDQ0xNIOfN3IBDUcPVM2Sg6hP96oFNN2nqnzHreT3z9xLq85IWJyNTvD38O002DdOrPMw==" 7067 + }, 7068 + "node_modules/to-regex-range": { 7069 + "version": "5.0.1", 7070 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 7071 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 7072 + "dependencies": { 7073 + "is-number": "^7.0.0" 7074 + }, 7075 + "engines": { 7076 + "node": ">=8.0" 7077 + } 7078 + }, 7079 + "node_modules/toidentifier": { 7080 + "version": "1.0.1", 7081 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 7082 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 7083 + "engines": { 7084 + "node": ">=0.6" 7085 + } 7086 + }, 7087 + "node_modules/tough-cookie": { 7088 + "version": "6.0.0", 7089 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", 7090 + "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", 7091 + "dependencies": { 7092 + "tldts": "^7.0.5" 7093 + }, 7094 + "engines": { 7095 + "node": ">=16" 7096 + } 7097 + }, 7098 + "node_modules/ts-morph": { 7099 + "version": "26.0.0", 7100 + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-26.0.0.tgz", 7101 + "integrity": "sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==", 7102 + "dependencies": { 7103 + "@ts-morph/common": "~0.27.0", 7104 + "code-block-writer": "^13.0.3" 7105 + } 7106 + }, 7107 + "node_modules/tsconfig-paths": { 7108 + "version": "4.2.0", 7109 + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", 7110 + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", 7111 + "dependencies": { 7112 + "json5": "^2.2.2", 7113 + "minimist": "^1.2.6", 7114 + "strip-bom": "^3.0.0" 7115 + }, 7116 + "engines": { 7117 + "node": ">=6" 7118 + } 7119 + }, 2174 7120 "node_modules/tslib": { 2175 7121 "version": "2.8.1", 2176 7122 "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", ··· 2182 7128 "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", 2183 7129 "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", 2184 7130 "dev": true, 2185 - "license": "MIT", 2186 7131 "funding": { 2187 7132 "url": "https://github.com/sponsors/Wombosvideo" 2188 7133 } 2189 7134 }, 7135 + "node_modules/type-fest": { 7136 + "version": "5.4.4", 7137 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz", 7138 + "integrity": "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==", 7139 + "dependencies": { 7140 + "tagged-tag": "^1.0.0" 7141 + }, 7142 + "engines": { 7143 + "node": ">=20" 7144 + }, 7145 + "funding": { 7146 + "url": "https://github.com/sponsors/sindresorhus" 7147 + } 7148 + }, 7149 + "node_modules/type-is": { 7150 + "version": "2.0.1", 7151 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", 7152 + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 7153 + "dependencies": { 7154 + "content-type": "^1.0.5", 7155 + "media-typer": "^1.1.0", 7156 + "mime-types": "^3.0.0" 7157 + }, 7158 + "engines": { 7159 + "node": ">= 0.6" 7160 + } 7161 + }, 2190 7162 "node_modules/typescript": { 2191 7163 "version": "5.1.6", 2192 7164 "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", 2193 7165 "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", 2194 - "dev": true, 7166 + "devOptional": true, 2195 7167 "license": "Apache-2.0", 2196 7168 "bin": { 2197 7169 "tsc": "bin/tsc", ··· 2201 7173 "node": ">=14.17" 2202 7174 } 2203 7175 }, 7176 + "node_modules/unicorn-magic": { 7177 + "version": "0.3.0", 7178 + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", 7179 + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", 7180 + "engines": { 7181 + "node": ">=18" 7182 + }, 7183 + "funding": { 7184 + "url": "https://github.com/sponsors/sindresorhus" 7185 + } 7186 + }, 7187 + "node_modules/universalify": { 7188 + "version": "2.0.1", 7189 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", 7190 + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", 7191 + "engines": { 7192 + "node": ">= 10.0.0" 7193 + } 7194 + }, 7195 + "node_modules/unpipe": { 7196 + "version": "1.0.0", 7197 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 7198 + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 7199 + "engines": { 7200 + "node": ">= 0.8" 7201 + } 7202 + }, 7203 + "node_modules/until-async": { 7204 + "version": "3.0.2", 7205 + "resolved": "https://registry.npmjs.org/until-async/-/until-async-3.0.2.tgz", 7206 + "integrity": "sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==", 7207 + "funding": { 7208 + "url": "https://github.com/sponsors/kettanaito" 7209 + } 7210 + }, 7211 + "node_modules/update-browserslist-db": { 7212 + "version": "1.2.3", 7213 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", 7214 + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", 7215 + "funding": [ 7216 + { 7217 + "type": "opencollective", 7218 + "url": "https://opencollective.com/browserslist" 7219 + }, 7220 + { 7221 + "type": "tidelift", 7222 + "url": "https://tidelift.com/funding/github/npm/browserslist" 7223 + }, 7224 + { 7225 + "type": "github", 7226 + "url": "https://github.com/sponsors/ai" 7227 + } 7228 + ], 7229 + "dependencies": { 7230 + "escalade": "^3.2.0", 7231 + "picocolors": "^1.1.1" 7232 + }, 7233 + "bin": { 7234 + "update-browserslist-db": "cli.js" 7235 + }, 7236 + "peerDependencies": { 7237 + "browserslist": ">= 4.21.0" 7238 + } 7239 + }, 7240 + "node_modules/use-callback-ref": { 7241 + "version": "1.3.3", 7242 + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", 7243 + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", 7244 + "dependencies": { 7245 + "tslib": "^2.0.0" 7246 + }, 7247 + "engines": { 7248 + "node": ">=10" 7249 + }, 7250 + "peerDependencies": { 7251 + "@types/react": "*", 7252 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 7253 + }, 7254 + "peerDependenciesMeta": { 7255 + "@types/react": { 7256 + "optional": true 7257 + } 7258 + } 7259 + }, 7260 + "node_modules/use-sidecar": { 7261 + "version": "1.1.3", 7262 + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", 7263 + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", 7264 + "dependencies": { 7265 + "detect-node-es": "^1.1.0", 7266 + "tslib": "^2.0.0" 7267 + }, 7268 + "engines": { 7269 + "node": ">=10" 7270 + }, 7271 + "peerDependencies": { 7272 + "@types/react": "*", 7273 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 7274 + }, 7275 + "peerDependenciesMeta": { 7276 + "@types/react": { 7277 + "optional": true 7278 + } 7279 + } 7280 + }, 7281 + "node_modules/use-sync-external-store": { 7282 + "version": "1.6.0", 7283 + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", 7284 + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", 7285 + "peerDependencies": { 7286 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 7287 + } 7288 + }, 7289 + "node_modules/util-deprecate": { 7290 + "version": "1.0.2", 7291 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 7292 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 7293 + }, 7294 + "node_modules/validate-npm-package-name": { 7295 + "version": "7.0.2", 7296 + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", 7297 + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", 7298 + "engines": { 7299 + "node": "^20.17.0 || >=22.9.0" 7300 + } 7301 + }, 7302 + "node_modules/vary": { 7303 + "version": "1.1.2", 7304 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 7305 + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 7306 + "engines": { 7307 + "node": ">= 0.8" 7308 + } 7309 + }, 7310 + "node_modules/web-streams-polyfill": { 7311 + "version": "3.3.3", 7312 + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", 7313 + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", 7314 + "engines": { 7315 + "node": ">= 8" 7316 + } 7317 + }, 7318 + "node_modules/which": { 7319 + "version": "4.0.0", 7320 + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", 7321 + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", 7322 + "dependencies": { 7323 + "isexe": "^3.1.1" 7324 + }, 7325 + "bin": { 7326 + "node-which": "bin/which.js" 7327 + }, 7328 + "engines": { 7329 + "node": "^16.13.0 || >=18.0.0" 7330 + } 7331 + }, 7332 + "node_modules/wrap-ansi": { 7333 + "version": "6.2.0", 7334 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 7335 + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 7336 + "dependencies": { 7337 + "ansi-styles": "^4.0.0", 7338 + "string-width": "^4.1.0", 7339 + "strip-ansi": "^6.0.0" 7340 + }, 7341 + "engines": { 7342 + "node": ">=8" 7343 + } 7344 + }, 7345 + "node_modules/wrap-ansi/node_modules/ansi-regex": { 7346 + "version": "5.0.1", 7347 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 7348 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 7349 + "engines": { 7350 + "node": ">=8" 7351 + } 7352 + }, 7353 + "node_modules/wrap-ansi/node_modules/emoji-regex": { 7354 + "version": "8.0.0", 7355 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 7356 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 7357 + }, 7358 + "node_modules/wrap-ansi/node_modules/string-width": { 7359 + "version": "4.2.3", 7360 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 7361 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 7362 + "dependencies": { 7363 + "emoji-regex": "^8.0.0", 7364 + "is-fullwidth-code-point": "^3.0.0", 7365 + "strip-ansi": "^6.0.1" 7366 + }, 7367 + "engines": { 7368 + "node": ">=8" 7369 + } 7370 + }, 7371 + "node_modules/wrap-ansi/node_modules/strip-ansi": { 7372 + "version": "6.0.1", 7373 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 7374 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 7375 + "dependencies": { 7376 + "ansi-regex": "^5.0.1" 7377 + }, 7378 + "engines": { 7379 + "node": ">=8" 7380 + } 7381 + }, 7382 + "node_modules/wrappy": { 7383 + "version": "1.0.2", 7384 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 7385 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 7386 + }, 2204 7387 "node_modules/ws": { 2205 7388 "version": "8.19.0", 2206 7389 "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", ··· 2220 7403 "utf-8-validate": { 2221 7404 "optional": true 2222 7405 } 7406 + } 7407 + }, 7408 + "node_modules/wsl-utils": { 7409 + "version": "0.3.1", 7410 + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", 7411 + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", 7412 + "dependencies": { 7413 + "is-wsl": "^3.1.0", 7414 + "powershell-utils": "^0.1.0" 7415 + }, 7416 + "engines": { 7417 + "node": ">=20" 7418 + }, 7419 + "funding": { 7420 + "url": "https://github.com/sponsors/sindresorhus" 7421 + } 7422 + }, 7423 + "node_modules/y18n": { 7424 + "version": "5.0.8", 7425 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 7426 + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 7427 + "engines": { 7428 + "node": ">=10" 7429 + } 7430 + }, 7431 + "node_modules/yallist": { 7432 + "version": "3.1.1", 7433 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 7434 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 7435 + }, 7436 + "node_modules/yargs": { 7437 + "version": "17.7.2", 7438 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", 7439 + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", 7440 + "dependencies": { 7441 + "cliui": "^8.0.1", 7442 + "escalade": "^3.1.1", 7443 + "get-caller-file": "^2.0.5", 7444 + "require-directory": "^2.1.1", 7445 + "string-width": "^4.2.3", 7446 + "y18n": "^5.0.5", 7447 + "yargs-parser": "^21.1.1" 7448 + }, 7449 + "engines": { 7450 + "node": ">=12" 7451 + } 7452 + }, 7453 + "node_modules/yargs-parser": { 7454 + "version": "21.1.1", 7455 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 7456 + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", 7457 + "engines": { 7458 + "node": ">=12" 7459 + } 7460 + }, 7461 + "node_modules/yargs/node_modules/ansi-regex": { 7462 + "version": "5.0.1", 7463 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 7464 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 7465 + "engines": { 7466 + "node": ">=8" 7467 + } 7468 + }, 7469 + "node_modules/yargs/node_modules/emoji-regex": { 7470 + "version": "8.0.0", 7471 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 7472 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 7473 + }, 7474 + "node_modules/yargs/node_modules/string-width": { 7475 + "version": "4.2.3", 7476 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 7477 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 7478 + "dependencies": { 7479 + "emoji-regex": "^8.0.0", 7480 + "is-fullwidth-code-point": "^3.0.0", 7481 + "strip-ansi": "^6.0.1" 7482 + }, 7483 + "engines": { 7484 + "node": ">=8" 7485 + } 7486 + }, 7487 + "node_modules/yargs/node_modules/strip-ansi": { 7488 + "version": "6.0.1", 7489 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 7490 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 7491 + "dependencies": { 7492 + "ansi-regex": "^5.0.1" 7493 + }, 7494 + "engines": { 7495 + "node": ">=8" 7496 + } 7497 + }, 7498 + "node_modules/yoctocolors": { 7499 + "version": "2.1.2", 7500 + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", 7501 + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", 7502 + "engines": { 7503 + "node": ">=18" 7504 + }, 7505 + "funding": { 7506 + "url": "https://github.com/sponsors/sindresorhus" 7507 + } 7508 + }, 7509 + "node_modules/yoctocolors-cjs": { 7510 + "version": "2.1.3", 7511 + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", 7512 + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", 7513 + "engines": { 7514 + "node": ">=18" 7515 + }, 7516 + "funding": { 7517 + "url": "https://github.com/sponsors/sindresorhus" 7518 + } 7519 + }, 7520 + "node_modules/zod": { 7521 + "version": "3.25.76", 7522 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", 7523 + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", 7524 + "funding": { 7525 + "url": "https://github.com/sponsors/colinhacks" 7526 + } 7527 + }, 7528 + "node_modules/zod-to-json-schema": { 7529 + "version": "3.25.1", 7530 + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", 7531 + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", 7532 + "peerDependencies": { 7533 + "zod": "^3.25 || ^4" 2223 7534 } 2224 7535 } 2225 7536 }
+4 -1
package.json
··· 6 6 "start": "next start" 7 7 }, 8 8 "dependencies": { 9 + "@base-ui/react": "^1.2.0", 9 10 "@radix-ui/react-slot": "^1.2.4", 10 11 "@supabase/ssr": "^0.8.0", 11 12 "@supabase/supabase-js": "^2.90.1", ··· 17 18 "lucide-react": "^0.562.0", 18 19 "next": "latest", 19 20 "postcss": "^8.5.6", 21 + "radix-ui": "^1.4.3", 20 22 "react": "18.2.0", 21 23 "react-dom": "18.2.0", 22 24 "server-only": "0.0.1", 25 + "shadcn": "^3.8.5", 23 26 "stripe": "14.8.0", 24 - "tailwind-merge": "^3.4.0", 27 + "tailwind-merge": "^3.5.0", 25 28 "tailwindcss": "^4.1.18" 26 29 }, 27 30 "devDependencies": {