mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-10-18 15:11:42 -04:00
add device dialog, fixed traffic light svgs, added icon prop to button
This commit is contained in:
1 parent
0192e2aff2
commit
7c6bb151f3
18 files changed
+369
-193
No files matched your search
@@ -72,6 +72,7 @@ function App() {
|
||||
<div className="App">
|
||||
{/* <header className="App-header"></header> */}
|
||||
<SpacedriveInterface
|
||||
demoMode
|
||||
useMemoryRouter={true}
|
||||
transport={new Transport()}
|
||||
platform={'browser'}
|
||||
|
||||
+24
-1
@@ -1,6 +1,6 @@
|
||||
use crate::{
|
||||
prisma::{self, client},
|
||||
state, Core,
|
||||
state, Core, CoreContext,
|
||||
};
|
||||
use chrono::{DateTime, Utc};
|
||||
use int_enum::IntEnum;
|
||||
@@ -34,6 +34,19 @@ pub enum Platform {
|
||||
Android = 5,
|
||||
}
|
||||
|
||||
// impl Into<Client> for client::Data {
|
||||
// fn into(self) -> Client {
|
||||
// Client {
|
||||
// uuid: self.pub_id,
|
||||
// name: self.name,
|
||||
// platform: ,
|
||||
// tcp_address: self.tcp_address,
|
||||
// last_seen: self.last_seen,
|
||||
// last_synchronized: self.last_synchronized,
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
pub async fn create(core: &Core) -> Result<(), ClientError> {
|
||||
println!("Creating client...");
|
||||
let mut config = state::client::get();
|
||||
@@ -83,8 +96,18 @@ pub async fn create(core: &Core) -> Result<(), ClientError> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn get_clients(ctx: &CoreContext) -> Result<Vec<client::Data>, ClientError> {
|
||||
let db = &ctx.database;
|
||||
|
||||
let client = db.client().find_many(vec![]).exec().await?;
|
||||
|
||||
Ok(client)
|
||||
}
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum ClientError {
|
||||
#[error("Database error")]
|
||||
DatabaseError(#[from] prisma::QueryError),
|
||||
#[error("Client not found error")]
|
||||
ClientNotFound,
|
||||
}
|
||||
@@ -186,6 +186,7 @@ fn prepare_values(
|
||||
|
||||
let cas_id = {
|
||||
if !metadata.is_dir() {
|
||||
// TODO: remove unwrap, skip and make sure to continue loop
|
||||
let mut x = generate_cas_id(&file_path.to_str().unwrap(), metadata.len()).unwrap();
|
||||
x.truncate(16);
|
||||
x
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Todo
|
||||
|
||||
☐ Landing sections
|
||||
☐ Client pool
|
||||
✔ Custom scrollbars
|
||||
☐ Tag files
|
||||
☐ Right click menu
|
||||
☐ File explorer grid view
|
||||
☐ Albums
|
||||
☐ Content types screen
|
||||
☐ Show duplicate files on the inspector
|
||||
☐ Explorer filter by tag
|
||||
☐ Library statistics
|
||||
☐ File viewer
|
||||
☐ Open file
|
||||
☐ Media data (started)
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
# Todo
|
||||
|
||||
- Landing sections
|
||||
- Client pool
|
||||
- Custom scrollbars
|
||||
- Tag files
|
||||
- Right click menu
|
||||
- File explorer grid view
|
||||
- Albums
|
||||
- Content types screen
|
||||
- Show duplicate files on the inspector
|
||||
- Explorer filter by tag
|
||||
- Library statistics
|
||||
- File viewer
|
||||
- Open file
|
||||
- Media data (started)
|
||||
@@ -39,7 +39,6 @@ export const AppPropsContext = React.createContext<AppProps | null>(null);
|
||||
|
||||
export type Platform = 'browser' | 'macOS' | 'windows' | 'linux';
|
||||
|
||||
|
||||
export interface AppProps {
|
||||
transport: BaseTransport;
|
||||
platform: Platform;
|
||||
@@ -50,6 +49,7 @@ export interface AppProps {
|
||||
onFullscreen?: () => void;
|
||||
onOpen?: (path: string) => void;
|
||||
useMemoryRouter: boolean;
|
||||
demoMode?: boolean;
|
||||
}
|
||||
|
||||
function AppLayout() {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<svg width="87" height="20" viewBox="0 0 87 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="87" height="20" fill="#985712"/>
|
||||
<svg width="87" height="16" viewBox="0 0 87 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M87 0H0V16H87V0Z" fill="#985712"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 147 B |
@@ -21,6 +21,7 @@ export interface DeviceProps {
|
||||
type: 'laptop' | 'desktop' | 'phone' | 'server';
|
||||
locations: { name: string }[];
|
||||
runningJob?: { amount: number; task: string };
|
||||
removeThisSoon?: boolean;
|
||||
}
|
||||
|
||||
export function Device(props: DeviceProps) {
|
||||
@@ -87,6 +88,24 @@ export function Device(props: DeviceProps) {
|
||||
folder
|
||||
/>
|
||||
))}
|
||||
{props.removeThisSoon && (
|
||||
<>
|
||||
<FileItem
|
||||
selected={selectedFile == 'tsx'}
|
||||
onClick={() => handleSelect('tsx')}
|
||||
fileName="App.tsx"
|
||||
format="tsx"
|
||||
iconName="reactts"
|
||||
/>
|
||||
<FileItem
|
||||
selected={selectedFile == 'vite'}
|
||||
onClick={() => handleSelect('vite')}
|
||||
fileName="vite.config.js"
|
||||
format="vite"
|
||||
iconName="vite"
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -117,10 +117,10 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
|
||||
<Icon component={CirclesFour} />
|
||||
Content
|
||||
</SidebarLink>
|
||||
<SidebarLink to="debug">
|
||||
{/* <SidebarLink to="debug">
|
||||
<Icon component={Code} />
|
||||
Debug
|
||||
</SidebarLink>
|
||||
</SidebarLink> */}
|
||||
{/* <SidebarLink to="explorer">
|
||||
<Icon component={MonitorPlay} />
|
||||
Explorer
|
||||
@@ -192,9 +192,10 @@ export const Sidebar: React.FC<SidebarProps> = (props) => {
|
||||
<NavLink to="/settings/general">
|
||||
{({ isActive }) => (
|
||||
<Button
|
||||
noPadding
|
||||
variant={isActive ? 'default' : 'default'}
|
||||
className={clsx(
|
||||
'px-[4px]'
|
||||
'px-[4px] mb-1'
|
||||
// isActive && '!bg-gray-550'
|
||||
)}
|
||||
>
|
||||
|
||||
@@ -1,26 +1,43 @@
|
||||
// import { Button } from '../primitive';
|
||||
// import React from 'react';
|
||||
// import * as DialogPrimitive from '@radix-ui/react-dialog';
|
||||
//
|
||||
// export default function DialogButton<{ children: React.ReactNode }>(props) {
|
||||
// return (
|
||||
// <DialogPrimitive.Root>
|
||||
// <DialogPrimitive.Trigger asChild>
|
||||
// <Button variant="primary">Add Location</Button>
|
||||
// </DialogPrimitive.Trigger>
|
||||
// <DialogPrimitive.Portal className="">
|
||||
// <DialogPrimitive.Overlay className="bg-black bg-opacity-50 absolute top-0 left-0 h-screen w-screen" />
|
||||
// <DialogPrimitive.Content className="absolute p-8 rounded-md margin-auto bg-gray-700 text-white">
|
||||
// <DialogPrimitive.Title>Add Location</DialogPrimitive.Title>
|
||||
// <DialogPrimitive.Description>Choose a location from the list</DialogPrimitive.Description>
|
||||
// <div className="flex flex-row space-x-2 mt-1">
|
||||
// <DialogPrimitive.Close asChild>
|
||||
// <Button>Close</Button>
|
||||
// </DialogPrimitive.Close>
|
||||
// <Button variant="primary">Add Location</Button>
|
||||
// </div>
|
||||
// </DialogPrimitive.Content>
|
||||
// </DialogPrimitive.Portal>
|
||||
// </DialogPrimitive.Root>
|
||||
// );
|
||||
// }
|
||||
import { Button } from '@sd/ui';
|
||||
import React, { ReactNode } from 'react';
|
||||
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
||||
|
||||
export interface DialogProps {
|
||||
trigger: ReactNode;
|
||||
ctaLabel?: string;
|
||||
ctaAction?: () => void;
|
||||
title?: string;
|
||||
description?: string;
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
export default function Dialog(props: DialogProps) {
|
||||
return (
|
||||
<DialogPrimitive.Root>
|
||||
<DialogPrimitive.Trigger asChild>{props.trigger}</DialogPrimitive.Trigger>
|
||||
<DialogPrimitive.Portal>
|
||||
<DialogPrimitive.Overlay className="fixed top-0 dialog-overlay bottom-0 left-0 right-0 z-50 grid overflow-y-auto bg-black bg-opacity-50 rounded-xl place-items-center m-[1px]">
|
||||
<DialogPrimitive.Content className="min-w-[300px] max-w-[400px] dialog-content rounded-md bg-gray-650 text-white border border-gray-550 shadow-deep">
|
||||
<div className="p-5">
|
||||
<DialogPrimitive.Title className="font-bold ">{props.title}</DialogPrimitive.Title>
|
||||
<DialogPrimitive.Description className="text-sm text-gray-300">
|
||||
{props.description}
|
||||
</DialogPrimitive.Description>
|
||||
{props.children}
|
||||
</div>
|
||||
<div className="flex flex-row justify-end px-3 py-3 space-x-2 bg-gray-600 border-t border-gray-550">
|
||||
<DialogPrimitive.Close asChild>
|
||||
<Button size="sm" variant="gray">
|
||||
Close
|
||||
</Button>
|
||||
</DialogPrimitive.Close>
|
||||
<Button onClick={props.ctaAction} size="sm" variant="primary">
|
||||
{props.ctaLabel}
|
||||
</Button>
|
||||
</div>
|
||||
</DialogPrimitive.Content>
|
||||
</DialogPrimitive.Overlay>
|
||||
</DialogPrimitive.Portal>
|
||||
</DialogPrimitive.Root>
|
||||
);
|
||||
}
|
||||
@@ -17,7 +17,6 @@ export const Modal: React.FC<ModalProps> = (props) => {
|
||||
<div
|
||||
className={clsx('absolute w-screen h-screen z-30', { 'pointer-events-none hidden': !open })}
|
||||
>
|
||||
<MacOSTrafficLights />
|
||||
<div className="flex w-screen h-screen p-2 pt-12">
|
||||
<Transition
|
||||
show
|
||||
@@ -52,7 +51,7 @@ export const Modal: React.FC<ModalProps> = (props) => {
|
||||
leaveFrom="opacity-100"
|
||||
leaveTo="opacity-0"
|
||||
>
|
||||
<div className="z-30 flex flex-grow mx-auto bg-white rounded-lg shadow-xl shadow-2xl max-w-7xl dark:bg-gray-650 ">
|
||||
<div className="z-30 flex flex-grow mx-auto bg-white rounded-lg shadow-2xl max-w-7xl dark:bg-gray-650 ">
|
||||
{props.children}
|
||||
</div>
|
||||
</Transition>
|
||||
|
||||
@@ -38,22 +38,24 @@ const Light: React.FC<LightProps> = (props) => {
|
||||
<div
|
||||
onClick={props.action}
|
||||
className={clsx('w-[13px] h-[13px] rounded-full bg-gray-500', {
|
||||
'!bg-red-400': props.mode == 'close' && props.focused,
|
||||
'!bg-green-400': props.mode == 'fullscreen' && props.focused,
|
||||
'!bg-yellow-400': props.mode == 'minimize' && props.focused
|
||||
'!bg-red-400 active:!bg-red-300': props.mode == 'close' && props.focused,
|
||||
'!bg-green-400 active:!bg-green-300': props.mode == 'fullscreen' && props.focused,
|
||||
'!bg-yellow-400 active:!bg-yellow-300': props.mode == 'minimize' && props.focused
|
||||
})}
|
||||
>
|
||||
{(() => {
|
||||
switch (props.mode) {
|
||||
case 'close':
|
||||
return <Close className=" w-[13px] -mt-[1px] opacity-0 group-hover:opacity-100" />;
|
||||
return (
|
||||
<Close className=" w-[13px] -mt-[1px] h-[15px] opacity-0 group-hover:opacity-100" />
|
||||
);
|
||||
case 'minimize':
|
||||
return (
|
||||
<Minimize className="ml-[2px] w-[9px] -mt-[1px] opacity-0 group-hover:opacity-100" />
|
||||
<Minimize className="ml-[2px] w-[9px] -mt-[1px] h-[15px] opacity-0 group-hover:opacity-100" />
|
||||
);
|
||||
case 'fullscreen':
|
||||
return (
|
||||
<Fullscreen className="ml-[1px] w-[11px] -mt-[1px] opacity-0 group-hover:opacity-100" />
|
||||
<Fullscreen className="ml-[1px] w-[11px] -mt-[1px] h-[15px] opacity-0 group-hover:opacity-100" />
|
||||
);
|
||||
}
|
||||
})()}
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
import { CloudIcon } from '@heroicons/react/outline';
|
||||
import { CogIcon, MenuIcon, PlusIcon } from '@heroicons/react/solid';
|
||||
import { useBridgeQuery } from '@sd/client';
|
||||
import { Button } from '@sd/ui';
|
||||
import byteSize from 'byte-size';
|
||||
import { DotsSixVertical, Laptop, LineSegments } from 'phosphor-react';
|
||||
import { DotsSixVertical, Laptop, LineSegments, Plus } from 'phosphor-react';
|
||||
import React, { useState } from 'react';
|
||||
import { Device } from '../components/device/Device';
|
||||
import FileItem from '../components/file/FileItem';
|
||||
import Dialog from '../components/layout/Dialog';
|
||||
import { Input } from '../components/primitive';
|
||||
import { InputContainer } from '../components/primitive/InputContainer';
|
||||
|
||||
interface StatItemProps {
|
||||
name: string;
|
||||
@@ -26,13 +32,14 @@ const StatItem: React.FC<StatItemProps> = (props) => {
|
||||
|
||||
export const OverviewScreen: React.FC<{}> = (props) => {
|
||||
const { data: libraryStatistics } = useBridgeQuery('GetLibraryStatistics');
|
||||
const { data: clientState } = useBridgeQuery('ClientGetState');
|
||||
|
||||
return (
|
||||
<div className="flex flex-col w-full h-screen overflow-x-hidden custom-scroll page-scroll">
|
||||
<div data-tauri-drag-region className="flex flex-shrink-0 w-full h-7" />
|
||||
<div className="flex flex-col w-full h-screen px-3">
|
||||
<div className="flex items-center w-full">
|
||||
<div className="flex flex-wrap pb-4 space-x-6">
|
||||
<div className="flex w-full">
|
||||
<div className="flex flex-wrap flex-grow pb-4 space-x-6">
|
||||
<StatItem
|
||||
name="Total capacity"
|
||||
value={libraryStatistics?.total_bytes_capacity}
|
||||
@@ -60,11 +67,51 @@ export const OverviewScreen: React.FC<{}> = (props) => {
|
||||
/>
|
||||
<StatItem name="Total backed up" value={'0'} unit={''} /> */}
|
||||
</div>
|
||||
<div className="space-x-2">
|
||||
<Dialog
|
||||
title="Add Device"
|
||||
description="Connect a new device to your library. Either enter another device's code or copy this one."
|
||||
ctaAction={() => {}}
|
||||
ctaLabel="Connect"
|
||||
trigger={
|
||||
<Button
|
||||
size="sm"
|
||||
icon={<PlusIcon className="inline w-4 h-4 -mt-0.5 mr-1" />}
|
||||
variant="gray"
|
||||
>
|
||||
Add Device
|
||||
</Button>
|
||||
}
|
||||
>
|
||||
<div className="flex flex-col mt-2 space-y-3">
|
||||
<div className="flex flex-col">
|
||||
<span className="mb-1 text-xs font-bold uppercase text-gray-450">
|
||||
This Device
|
||||
</span>
|
||||
<Input readOnly disabled value="06ffd64309b24fb09e7c2188963d0207" />
|
||||
</div>
|
||||
<div className="flex flex-col">
|
||||
<span className="mb-1 text-xs font-bold uppercase text-gray-450">
|
||||
Enter a device code
|
||||
</span>
|
||||
<Input value="" />
|
||||
</div>
|
||||
</div>
|
||||
</Dialog>
|
||||
|
||||
<Button
|
||||
size="sm"
|
||||
className="w-8"
|
||||
noPadding
|
||||
icon={<MenuIcon className="inline w-4 h-4" />}
|
||||
variant="gray"
|
||||
></Button>
|
||||
</div>
|
||||
</div>
|
||||
{/* <div className="mt-5" /> */}
|
||||
<div className="flex flex-col pb-4 space-y-4">
|
||||
<Device
|
||||
name="James' MBP"
|
||||
name={clientState?.client_name ?? ''}
|
||||
size="1.4TB"
|
||||
runningJob={{ amount: 65, task: 'Generating preview media' }}
|
||||
locations={[{ name: 'Pictures' }, { name: 'Downloads' }, { name: 'Minecraft' }]}
|
||||
@@ -75,6 +122,7 @@ export const OverviewScreen: React.FC<{}> = (props) => {
|
||||
size="47.7GB"
|
||||
locations={[{ name: 'Camera Roll' }, { name: 'Notes' }]}
|
||||
type="phone"
|
||||
removeThisSoon
|
||||
/>
|
||||
<Device
|
||||
name={`Spacedrive Server`}
|
||||
|
||||
@@ -31,54 +31,60 @@ const Heading: React.FC<{ className?: string; children: string }> = ({ children,
|
||||
export const SettingsScreen: React.FC<{}> = () => {
|
||||
return (
|
||||
<div className="flex flex-row w-full">
|
||||
<div className="h-full p-5 border-r border-gray-100 w-60 dark:border-gray-550">
|
||||
<Heading className="mt-0">Client</Heading>
|
||||
<SidebarLink to="/settings/general">
|
||||
<Icon component={CogIcon} />
|
||||
General
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/security">
|
||||
<Icon component={LockClosedIcon} />
|
||||
Security
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/appearance">
|
||||
<Icon component={PaintBrush} />
|
||||
Appearance
|
||||
</SidebarLink>
|
||||
<div className="h-full border-r border-gray-100 w-60 dark:border-gray-550">
|
||||
<div data-tauri-drag-region className="w-full h-7" />
|
||||
<div className="p-5 pt-0">
|
||||
<Heading className="mt-0">Client</Heading>
|
||||
<SidebarLink to="/settings/general">
|
||||
<Icon component={CogIcon} />
|
||||
General
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/security">
|
||||
<Icon component={LockClosedIcon} />
|
||||
Security
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/appearance">
|
||||
<Icon component={PaintBrush} />
|
||||
Appearance
|
||||
</SidebarLink>
|
||||
|
||||
<Heading>Library</Heading>
|
||||
<SidebarLink to="/settings/library">
|
||||
<Icon component={Database} />
|
||||
Database
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/locations">
|
||||
<Icon component={HardDrive} />
|
||||
Locations
|
||||
</SidebarLink>
|
||||
<Heading>Library</Heading>
|
||||
<SidebarLink to="/settings/library">
|
||||
<Icon component={Database} />
|
||||
Database
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/locations">
|
||||
<Icon component={HardDrive} />
|
||||
Locations
|
||||
</SidebarLink>
|
||||
|
||||
<SidebarLink to="/settings/keys">
|
||||
<Icon component={KeyIcon} />
|
||||
Keys
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/tags">
|
||||
<Icon component={TagIcon} />
|
||||
Tags
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/keys">
|
||||
<Icon component={KeyIcon} />
|
||||
Keys
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/tags">
|
||||
<Icon component={TagIcon} />
|
||||
Tags
|
||||
</SidebarLink>
|
||||
|
||||
<Heading>Cloud</Heading>
|
||||
<SidebarLink to="/settings/sync">
|
||||
<Icon component={CloudIcon} />
|
||||
Sync
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/contacts">
|
||||
<Icon component={UsersIcon} />
|
||||
Contacts
|
||||
</SidebarLink>
|
||||
<Heading>Cloud</Heading>
|
||||
<SidebarLink to="/settings/sync">
|
||||
<Icon component={CloudIcon} />
|
||||
Sync
|
||||
</SidebarLink>
|
||||
<SidebarLink to="/settings/contacts">
|
||||
<Icon component={UsersIcon} />
|
||||
Contacts
|
||||
</SidebarLink>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-grow-0 w-full h-full max-h-screen custom-scrollbar page-scroll">
|
||||
<div className="flex flex-grow px-12 py-5">
|
||||
<Outlet />
|
||||
<div className="block h-20" />
|
||||
<div className="">
|
||||
<div data-tauri-drag-region className="w-full h-7" />
|
||||
<div className="flex flex-grow-0 w-full h-full max-h-screen custom-scrollbar page-scroll">
|
||||
<div className="flex flex-grow px-12 pb-5">
|
||||
<Outlet />
|
||||
<div className="block h-20" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -57,3 +57,58 @@ body { font-family: "InterVariable", sans-serif; }
|
||||
@apply rounded-[6px] bg-gray-300 dark:bg-gray-550;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeOut {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes slide-top {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(-50px);
|
||||
transform: translateY(-50px);
|
||||
}
|
||||
}
|
||||
@keyframes slide-top {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(-50px);
|
||||
transform: translateY(-50px);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.dialog-overlay[data-state='open'] {
|
||||
animation: fadeIn 200ms ease-out forwards;
|
||||
}
|
||||
.dialog-overlay[data-state='closed'] {
|
||||
animation: fadeIn 200ms ease-out forwards;
|
||||
}
|
||||
.dialog-content[data-state='open'] {
|
||||
-webkit-animation: slide-top 0.3s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||
animation: slide-top 0.3s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||
}
|
||||
.dialog-content[data-state='closed'] {
|
||||
animation: bounceDown 100ms ease-in forwards;
|
||||
}
|
||||
@@ -102,6 +102,7 @@ export const Button: React.FC<ButtonProps> = ({ loading, justifyLeft, ...props }
|
||||
props.className
|
||||
)}
|
||||
>
|
||||
{props.icon}
|
||||
{props.children}
|
||||
</button>
|
||||
);
|
||||
|
||||
@@ -35,7 +35,8 @@ module.exports = function (app, options) {
|
||||
extend: {
|
||||
boxShadow: {
|
||||
box: '0px 4px 9px rgba(0, 0, 0, 0.05)',
|
||||
backdrop: '0px 4px 66px rgba(0, 0, 0, 0.08)'
|
||||
backdrop: '0px 4px 66px rgba(0, 0, 0, 0.08)',
|
||||
deep: '0px 4px 66px rgba(0, 0, 0, 0.68)'
|
||||
},
|
||||
bg: {
|
||||
funky: 'linear-gradient(90.63deg,#46bcff 12.1%,#85edfb 50.85%,#e04cf8 91.09%)'
|
||||
|
||||
Generated
+87
-87
@@ -1,4 +1,4 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: 5.3
|
||||
|
||||
importers:
|
||||
|
||||
@@ -112,7 +112,7 @@ importers:
|
||||
vite-plugin-svgr: ^1.1.0
|
||||
dependencies:
|
||||
'@fontsource/inter': 4.5.9
|
||||
'@headlessui/react': 1.5.0_zpnidt7m3osuk7shl3s4oenomq
|
||||
'@headlessui/react': 1.5.0_react-dom@18.0.0+react@18.0.0
|
||||
'@heroicons/react': 1.0.6_react@18.0.0
|
||||
'@icons-pack/react-simple-icons': 4.6.1_react@18.0.0
|
||||
'@sd/client': link:../../packages/client
|
||||
@@ -128,10 +128,10 @@ importers:
|
||||
phosphor-react: 1.4.1_react@18.0.0
|
||||
prismjs: 1.28.0
|
||||
react: 18.0.0
|
||||
react-device-detect: 2.2.2_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-device-detect: 2.2.2_react-dom@18.0.0+react@18.0.0
|
||||
react-dom: 18.0.0_react@18.0.0
|
||||
react-helmet: 6.1.0_react@18.0.0
|
||||
react-router-dom: 6.3.0_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-router-dom: 6.3.0_react-dom@18.0.0+react@18.0.0
|
||||
react-tsparticles: 2.0.6_react@18.0.0
|
||||
simple-icons: 6.19.0
|
||||
tsparticles: 2.0.6
|
||||
@@ -201,7 +201,7 @@ importers:
|
||||
typescript: 4.6.3
|
||||
vite: 2.9.5
|
||||
vite-plugin-svgr: 1.1.0_vite@2.9.5
|
||||
vite-plugin-tsconfig-paths: 1.0.5_w5v33ehmxzy52jcrbupop25zpy
|
||||
vite-plugin-tsconfig-paths: 1.0.5_typescript@4.6.3+vite@2.9.5
|
||||
|
||||
core:
|
||||
specifiers:
|
||||
@@ -210,7 +210,7 @@ importers:
|
||||
typescript: ^4.6.3
|
||||
devDependencies:
|
||||
'@types/node': 17.0.23
|
||||
ts-node: 10.7.0_52efxrzidnucw2w35vvobhxasa
|
||||
ts-node: 10.7.0_ee885bc7281b682b6adbed6ae09ee090
|
||||
typescript: 4.6.3
|
||||
|
||||
packages/client:
|
||||
@@ -302,10 +302,10 @@ importers:
|
||||
dependencies:
|
||||
'@apollo/client': 3.6.1_react@18.0.0
|
||||
'@fontsource/inter': 4.5.9
|
||||
'@headlessui/react': 1.5.0_zpnidt7m3osuk7shl3s4oenomq
|
||||
'@headlessui/react': 1.5.0_react-dom@18.0.0+react@18.0.0
|
||||
'@heroicons/react': 1.0.6_react@18.0.0
|
||||
'@radix-ui/react-dialog': 0.1.7_ca3iilkt5tbo43h35hmeecyxuu
|
||||
'@radix-ui/react-dropdown-menu': 0.1.6_ca3iilkt5tbo43h35hmeecyxuu
|
||||
'@radix-ui/react-dialog': 0.1.7_1036842d53ecc2ee6cfbe9d8420b17a5
|
||||
'@radix-ui/react-dropdown-menu': 0.1.6_1036842d53ecc2ee6cfbe9d8420b17a5
|
||||
'@radix-ui/react-icons': 1.1.0_react@18.0.0
|
||||
'@radix-ui/react-progress': 0.1.4_react@18.0.0
|
||||
'@radix-ui/react-slider': 0.1.4_react@18.0.0
|
||||
@@ -317,7 +317,7 @@ importers:
|
||||
byte-size: 8.1.0
|
||||
clsx: 1.1.1
|
||||
immer: 9.0.12
|
||||
jotai: 1.6.2_snqbpbx2kmgyrqporflvt6z4sa
|
||||
jotai: 1.6.2_93601786fa530d88c1ee895759fb3c90
|
||||
moment: 2.29.2
|
||||
phosphor-react: 1.4.1_react@18.0.0
|
||||
pretty-bytes: 6.0.0
|
||||
@@ -325,18 +325,18 @@ importers:
|
||||
react-dom: 18.0.0_react@18.0.0
|
||||
react-dropzone: 12.0.4_react@18.0.0
|
||||
react-error-boundary: 3.1.4_react@18.0.0
|
||||
react-hotkeys-hook: 3.4.4_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-json-view: 1.21.3_ca3iilkt5tbo43h35hmeecyxuu
|
||||
react-hotkeys-hook: 3.4.4_react-dom@18.0.0+react@18.0.0
|
||||
react-json-view: 1.21.3_1036842d53ecc2ee6cfbe9d8420b17a5
|
||||
react-loading-icons: 1.0.8
|
||||
react-portal: 4.2.2_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-query: 3.34.19_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-portal: 4.2.2_react-dom@18.0.0+react@18.0.0
|
||||
react-query: 3.34.19_react-dom@18.0.0+react@18.0.0
|
||||
react-router: 6.3.0_react@18.0.0
|
||||
react-router-dom: 6.3.0_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-scrollbars-custom: 4.0.27_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-router-dom: 6.3.0_react-dom@18.0.0+react@18.0.0
|
||||
react-scrollbars-custom: 4.0.27_react-dom@18.0.0+react@18.0.0
|
||||
react-spline: 1.2.1_react@18.0.0
|
||||
react-transition-group: 4.4.2_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-transition-group: 4.4.2_react-dom@18.0.0+react@18.0.0
|
||||
react-virtuoso: 2.9.0_react@18.0.0
|
||||
rooks: 5.11.0_zpnidt7m3osuk7shl3s4oenomq
|
||||
rooks: 5.11.0_react-dom@18.0.0+react@18.0.0
|
||||
tailwindcss: 3.0.23_autoprefixer@10.4.4
|
||||
zustand: 3.7.2_react@18.0.0
|
||||
devDependencies:
|
||||
@@ -857,17 +857,7 @@ packages:
|
||||
graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
|
||||
dev: false
|
||||
|
||||
/@headlessui/react/1.5.0_react@18.0.0:
|
||||
resolution: {integrity: sha512-aaRnYxBb3MU2FNJf3Ut9RMTUqqU3as0aI1lQhgo2n9Fa67wRu14iOGqx93xB+uMNVfNwZ5B3y/Ndm7qZGuFeMQ==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
react: ^16 || ^17 || ^18
|
||||
react-dom: ^16 || ^17 || ^18
|
||||
dependencies:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/@headlessui/react/1.5.0_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/@headlessui/react/1.5.0_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-aaRnYxBb3MU2FNJf3Ut9RMTUqqU3as0aI1lQhgo2n9Fa67wRu14iOGqx93xB+uMNVfNwZ5B3y/Ndm7qZGuFeMQ==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
@@ -878,6 +868,16 @@ packages:
|
||||
react-dom: 18.0.0_react@18.0.0
|
||||
dev: false
|
||||
|
||||
/@headlessui/react/1.5.0_react@18.0.0:
|
||||
resolution: {integrity: sha512-aaRnYxBb3MU2FNJf3Ut9RMTUqqU3as0aI1lQhgo2n9Fa67wRu14iOGqx93xB+uMNVfNwZ5B3y/Ndm7qZGuFeMQ==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
react: ^16 || ^17 || ^18
|
||||
react-dom: ^16 || ^17 || ^18
|
||||
dependencies:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/@heroicons/react/1.0.6_react@18.0.0:
|
||||
resolution: {integrity: sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==}
|
||||
peerDependencies:
|
||||
@@ -993,7 +993,7 @@ packages:
|
||||
tinycolor2: 1.4.2
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-contain/0.16.1_hdurtz6n4amigqqh6fpopmgoni:
|
||||
/@jimp/plugin-contain/0.16.1_38e919e7cde018834207f15ee7b0ce6a:
|
||||
resolution: {integrity: sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1005,11 +1005,11 @@ packages:
|
||||
'@jimp/custom': 0.16.1
|
||||
'@jimp/plugin-blit': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-scale': 0.16.1_yobdog5u6yhkf7jbdico3cvr4i
|
||||
'@jimp/plugin-scale': 0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-cover/0.16.1_huj753jw6x6ymgmn4r5xrmstcq:
|
||||
/@jimp/plugin-cover/0.16.1_3d13feed36f5fd86198de47b78b25314:
|
||||
resolution: {integrity: sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1021,7 +1021,7 @@ packages:
|
||||
'@jimp/custom': 0.16.1
|
||||
'@jimp/plugin-crop': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-scale': 0.16.1_yobdog5u6yhkf7jbdico3cvr4i
|
||||
'@jimp/plugin-scale': 0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
@@ -1065,7 +1065,7 @@ packages:
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-flip/0.16.1_ebpr3hwfcslp7e7vflcwddbwma:
|
||||
/@jimp/plugin-flip/0.16.1_205f1d9ec51496ff93f52ac5618c3660:
|
||||
resolution: {integrity: sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1073,7 +1073,7 @@ packages:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.17.9
|
||||
'@jimp/custom': 0.16.1
|
||||
'@jimp/plugin-rotate': 0.16.1_g72lzg55x5a4ao4td3uebcztme
|
||||
'@jimp/plugin-rotate': 0.16.1_37f4bc9bbdbf41c03b931ee8408b3361
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
@@ -1117,7 +1117,7 @@ packages:
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-print/0.16.1_kgi3mefd5odb2o5kccttl2e6zq:
|
||||
/@jimp/plugin-print/0.16.1_5191b610a3eb861d3baa10a735e89ecc:
|
||||
resolution: {integrity: sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1140,7 +1140,7 @@ packages:
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-rotate/0.16.1_g72lzg55x5a4ao4td3uebcztme:
|
||||
/@jimp/plugin-rotate/0.16.1_37f4bc9bbdbf41c03b931ee8408b3361:
|
||||
resolution: {integrity: sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1156,7 +1156,7 @@ packages:
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-scale/0.16.1_yobdog5u6yhkf7jbdico3cvr4i:
|
||||
/@jimp/plugin-scale/0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2:
|
||||
resolution: {integrity: sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1168,7 +1168,7 @@ packages:
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-shadow/0.16.1_qjkavnenl6bwqbeu6ngq3leqp4:
|
||||
/@jimp/plugin-shadow/0.16.1_82540ab48d5f83680494f34d0dac907f:
|
||||
resolution: {integrity: sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1182,7 +1182,7 @@ packages:
|
||||
'@jimp/utils': 0.16.1
|
||||
dev: true
|
||||
|
||||
/@jimp/plugin-threshold/0.16.1_5qgih43agfe2q6apq4cf7aqzei:
|
||||
/@jimp/plugin-threshold/0.16.1_ec0c83f3603149a8780f87045f821922:
|
||||
resolution: {integrity: sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA==}
|
||||
peerDependencies:
|
||||
'@jimp/custom': '>=0.3.5'
|
||||
@@ -1207,23 +1207,23 @@ packages:
|
||||
'@jimp/plugin-blur': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-circle': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-color': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-contain': 0.16.1_hdurtz6n4amigqqh6fpopmgoni
|
||||
'@jimp/plugin-cover': 0.16.1_huj753jw6x6ymgmn4r5xrmstcq
|
||||
'@jimp/plugin-contain': 0.16.1_38e919e7cde018834207f15ee7b0ce6a
|
||||
'@jimp/plugin-cover': 0.16.1_3d13feed36f5fd86198de47b78b25314
|
||||
'@jimp/plugin-crop': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-displace': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-dither': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-fisheye': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-flip': 0.16.1_ebpr3hwfcslp7e7vflcwddbwma
|
||||
'@jimp/plugin-flip': 0.16.1_205f1d9ec51496ff93f52ac5618c3660
|
||||
'@jimp/plugin-gaussian': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-invert': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-mask': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-normalize': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-print': 0.16.1_kgi3mefd5odb2o5kccttl2e6zq
|
||||
'@jimp/plugin-print': 0.16.1_5191b610a3eb861d3baa10a735e89ecc
|
||||
'@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1
|
||||
'@jimp/plugin-rotate': 0.16.1_g72lzg55x5a4ao4td3uebcztme
|
||||
'@jimp/plugin-scale': 0.16.1_yobdog5u6yhkf7jbdico3cvr4i
|
||||
'@jimp/plugin-shadow': 0.16.1_qjkavnenl6bwqbeu6ngq3leqp4
|
||||
'@jimp/plugin-threshold': 0.16.1_5qgih43agfe2q6apq4cf7aqzei
|
||||
'@jimp/plugin-rotate': 0.16.1_37f4bc9bbdbf41c03b931ee8408b3361
|
||||
'@jimp/plugin-scale': 0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2
|
||||
'@jimp/plugin-shadow': 0.16.1_82540ab48d5f83680494f34d0dac907f
|
||||
'@jimp/plugin-threshold': 0.16.1_ec0c83f3603149a8780f87045f821922
|
||||
timm: 1.7.1
|
||||
dev: true
|
||||
|
||||
@@ -1361,7 +1361,7 @@ packages:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/@radix-ui/react-dialog/0.1.7_ca3iilkt5tbo43h35hmeecyxuu:
|
||||
/@radix-ui/react-dialog/0.1.7_1036842d53ecc2ee6cfbe9d8420b17a5:
|
||||
resolution: {integrity: sha512-jXt8srGhHBRvEr9jhEAiwwJzWCWZoGRJ030aC9ja/gkRJbZdy0iD3FwXf+Ff4RtsZyLUMHW7VUwFOlz3Ixe1Vw==}
|
||||
peerDependencies:
|
||||
react: ^16.8 || ^17.0
|
||||
@@ -1375,7 +1375,7 @@ packages:
|
||||
'@radix-ui/react-focus-guards': 0.1.0_react@18.0.0
|
||||
'@radix-ui/react-focus-scope': 0.1.4_react@18.0.0
|
||||
'@radix-ui/react-id': 0.1.5_react@18.0.0
|
||||
'@radix-ui/react-portal': 0.1.4_zpnidt7m3osuk7shl3s4oenomq
|
||||
'@radix-ui/react-portal': 0.1.4_react-dom@18.0.0+react@18.0.0
|
||||
'@radix-ui/react-presence': 0.1.2_react@18.0.0
|
||||
'@radix-ui/react-primitive': 0.1.4_react@18.0.0
|
||||
'@radix-ui/react-slot': 0.1.2_react@18.0.0
|
||||
@@ -1383,7 +1383,7 @@ packages:
|
||||
aria-hidden: 1.1.3
|
||||
react: 18.0.0
|
||||
react-dom: 18.0.0_react@18.0.0
|
||||
react-remove-scroll: 2.4.4_4y5bjn44bzlaofthgjwivvhune
|
||||
react-remove-scroll: 2.4.4_@types+react@18.0.8+react@18.0.0
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
dev: false
|
||||
@@ -1403,7 +1403,7 @@ packages:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/@radix-ui/react-dropdown-menu/0.1.6_ca3iilkt5tbo43h35hmeecyxuu:
|
||||
/@radix-ui/react-dropdown-menu/0.1.6_1036842d53ecc2ee6cfbe9d8420b17a5:
|
||||
resolution: {integrity: sha512-RZhtzjWwJ4ZBN7D8ek4Zn+ilHzYuYta9yIxFnbC0pfqMnSi67IQNONo1tuuNqtFh9SRHacPKc65zo+kBBlxtdg==}
|
||||
peerDependencies:
|
||||
react: ^16.8 || ^17.0
|
||||
@@ -1414,7 +1414,7 @@ packages:
|
||||
'@radix-ui/react-compose-refs': 0.1.0_react@18.0.0
|
||||
'@radix-ui/react-context': 0.1.1_react@18.0.0
|
||||
'@radix-ui/react-id': 0.1.5_react@18.0.0
|
||||
'@radix-ui/react-menu': 0.1.6_ca3iilkt5tbo43h35hmeecyxuu
|
||||
'@radix-ui/react-menu': 0.1.6_1036842d53ecc2ee6cfbe9d8420b17a5
|
||||
'@radix-ui/react-primitive': 0.1.4_react@18.0.0
|
||||
'@radix-ui/react-use-controllable-state': 0.1.0_react@18.0.0
|
||||
react: 18.0.0
|
||||
@@ -1462,7 +1462,7 @@ packages:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/@radix-ui/react-menu/0.1.6_ca3iilkt5tbo43h35hmeecyxuu:
|
||||
/@radix-ui/react-menu/0.1.6_1036842d53ecc2ee6cfbe9d8420b17a5:
|
||||
resolution: {integrity: sha512-ho3+bhpr3oAFkOBJ8VkUb1BcGoiZBB3OmcWPqa6i5RTUKrzNX/d6rauochu2xDlWjiRtpVuiAcsTVOeIC4FbYQ==}
|
||||
peerDependencies:
|
||||
react: ^16.8 || ^17.0
|
||||
@@ -1478,7 +1478,7 @@ packages:
|
||||
'@radix-ui/react-focus-scope': 0.1.4_react@18.0.0
|
||||
'@radix-ui/react-id': 0.1.5_react@18.0.0
|
||||
'@radix-ui/react-popper': 0.1.4_react@18.0.0
|
||||
'@radix-ui/react-portal': 0.1.4_zpnidt7m3osuk7shl3s4oenomq
|
||||
'@radix-ui/react-portal': 0.1.4_react-dom@18.0.0+react@18.0.0
|
||||
'@radix-ui/react-presence': 0.1.2_react@18.0.0
|
||||
'@radix-ui/react-primitive': 0.1.4_react@18.0.0
|
||||
'@radix-ui/react-roving-focus': 0.1.5_react@18.0.0
|
||||
@@ -1487,7 +1487,7 @@ packages:
|
||||
aria-hidden: 1.1.3
|
||||
react: 18.0.0
|
||||
react-dom: 18.0.0_react@18.0.0
|
||||
react-remove-scroll: 2.4.4_4y5bjn44bzlaofthgjwivvhune
|
||||
react-remove-scroll: 2.4.4_@types+react@18.0.8+react@18.0.0
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
dev: false
|
||||
@@ -1509,7 +1509,7 @@ packages:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/@radix-ui/react-portal/0.1.4_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/@radix-ui/react-portal/0.1.4_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==}
|
||||
peerDependencies:
|
||||
react: ^16.8 || ^17.0
|
||||
@@ -5270,7 +5270,7 @@ packages:
|
||||
regenerator-runtime: 0.13.9
|
||||
dev: true
|
||||
|
||||
/jotai/1.6.2_snqbpbx2kmgyrqporflvt6z4sa:
|
||||
/jotai/1.6.2_93601786fa530d88c1ee895759fb3c90:
|
||||
resolution: {integrity: sha512-WglyuXX67f8QPCOX5tDR0N9GhasOV1+IQ3piaF4owr2wBn2CV51T8zbw01ZCme/24JKJilFe6+aA29PJx+jsQw==}
|
||||
engines: {node: '>=12.7.0'}
|
||||
peerDependencies:
|
||||
@@ -5306,7 +5306,7 @@ packages:
|
||||
dependencies:
|
||||
immer: 9.0.12
|
||||
react: 18.0.0
|
||||
react-query: 3.34.19_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-query: 3.34.19_react-dom@18.0.0+react@18.0.0
|
||||
dev: false
|
||||
|
||||
/jpeg-js/0.4.2:
|
||||
@@ -6651,7 +6651,7 @@ packages:
|
||||
pure-color: 1.3.0
|
||||
dev: false
|
||||
|
||||
/react-device-detect/2.2.2_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-device-detect/2.2.2_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-zSN1gIAztUekp5qUT/ybHwQ9fmOqVT1psxpSlTn1pe0CO+fnJHKRLOWWac5nKxOxvOpD/w84hk1I+EydrJp7SA==}
|
||||
peerDependencies:
|
||||
react: '>= 0.14.0'
|
||||
@@ -6672,7 +6672,7 @@ packages:
|
||||
scheduler: 0.21.0
|
||||
dev: false
|
||||
|
||||
/react-draggable/4.4.5_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-draggable/4.4.5_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==}
|
||||
peerDependencies:
|
||||
react: '>= 16.3.0'
|
||||
@@ -6722,7 +6722,7 @@ packages:
|
||||
react-side-effect: 2.1.1_react@18.0.0
|
||||
dev: false
|
||||
|
||||
/react-hotkeys-hook/3.4.4_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-hotkeys-hook/3.4.4_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-vaORq07rWgmuF3owWRhgFV/3VL8/l2q9lz0WyVEddJnWTtKW+AOgU5YgYKuwN6h6h7bCcLG3MFsJIjCrM/5DvQ==}
|
||||
peerDependencies:
|
||||
react: '>=16.8.1'
|
||||
@@ -6737,7 +6737,7 @@ packages:
|
||||
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
||||
dev: false
|
||||
|
||||
/react-json-view/1.21.3_ca3iilkt5tbo43h35hmeecyxuu:
|
||||
/react-json-view/1.21.3_1036842d53ecc2ee6cfbe9d8420b17a5:
|
||||
resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==}
|
||||
peerDependencies:
|
||||
react: ^17.0.0 || ^16.3.0 || ^15.5.4
|
||||
@@ -6748,7 +6748,7 @@ packages:
|
||||
react-base16-styling: 0.6.0
|
||||
react-dom: 18.0.0_react@18.0.0
|
||||
react-lifecycles-compat: 3.0.4
|
||||
react-textarea-autosize: 8.3.3_4y5bjn44bzlaofthgjwivvhune
|
||||
react-textarea-autosize: 8.3.3_@types+react@18.0.8+react@18.0.0
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
- encoding
|
||||
@@ -6762,7 +6762,7 @@ packages:
|
||||
resolution: {integrity: sha512-j0myUwDUPoo3qaPkbgnA7U2RNHqLLC+wXcpMWe+rtk3Iw+mGHltZ3QitPSHFKtsFKlpM9UlMmZGZ6sw6WVVW7w==}
|
||||
dev: false
|
||||
|
||||
/react-portal/4.2.2_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-portal/4.2.2_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-vS18idTmevQxyQpnde0Td6ZcUlv+pD8GTyR42n3CHUQq9OHi1C4jDE4ZWEbEsrbrLRhSECYiao58cvocwMtP7Q==}
|
||||
peerDependencies:
|
||||
react: ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0
|
||||
@@ -6790,7 +6790,7 @@ packages:
|
||||
match-sorter: 6.3.1
|
||||
dev: false
|
||||
|
||||
/react-query/3.34.19_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-query/3.34.19_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-JO0Ymi58WKmvnhgg6bGIrYIeKb64KsKaPWo8JcGnmK2jJxAs2XmMBzlP75ZepSU7CHzcsWtIIyhMrLbX3pb/3w==}
|
||||
peerDependencies:
|
||||
react: ^16.8.0 || ^17.0.0
|
||||
@@ -6813,7 +6813,7 @@ packages:
|
||||
resolution: {integrity: sha512-suLIhrU2IHKL5JEKR/fAwJv7bbeq4kJ+pJopf77jHwuR+HmJS/HbrPIGsTBUVfw7tXPOmYv7UJ7PCaN49e8x4A==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
/react-remove-scroll-bar/2.2.0_4y5bjn44bzlaofthgjwivvhune:
|
||||
/react-remove-scroll-bar/2.2.0_@types+react@18.0.8+react@18.0.0:
|
||||
resolution: {integrity: sha512-UU9ZBP1wdMR8qoUs7owiVcpaPwsQxUDC2lypP6mmixaGlARZa7ZIBx1jcuObLdhMOvCsnZcvetOho0wzPa9PYg==}
|
||||
engines: {node: '>=8.5.0'}
|
||||
peerDependencies:
|
||||
@@ -6825,11 +6825,11 @@ packages:
|
||||
dependencies:
|
||||
'@types/react': 18.0.8
|
||||
react: 18.0.0
|
||||
react-style-singleton: 2.1.1_4y5bjn44bzlaofthgjwivvhune
|
||||
react-style-singleton: 2.1.1_@types+react@18.0.8+react@18.0.0
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/react-remove-scroll/2.4.4_4y5bjn44bzlaofthgjwivvhune:
|
||||
/react-remove-scroll/2.4.4_@types+react@18.0.8+react@18.0.0:
|
||||
resolution: {integrity: sha512-EyC5ohYhaeKbThMSQxuN2i+QC5HqV3AJvNZKEdiATITexu0gHm00+5ko0ltNS1ajYJVeDgVG2baRSCei0AUWlQ==}
|
||||
engines: {node: '>=8.5.0'}
|
||||
peerDependencies:
|
||||
@@ -6841,14 +6841,14 @@ packages:
|
||||
dependencies:
|
||||
'@types/react': 18.0.8
|
||||
react: 18.0.0
|
||||
react-remove-scroll-bar: 2.2.0_4y5bjn44bzlaofthgjwivvhune
|
||||
react-style-singleton: 2.1.1_4y5bjn44bzlaofthgjwivvhune
|
||||
react-remove-scroll-bar: 2.2.0_@types+react@18.0.8+react@18.0.0
|
||||
react-style-singleton: 2.1.1_@types+react@18.0.8+react@18.0.0
|
||||
tslib: 1.14.1
|
||||
use-callback-ref: 1.2.5_4y5bjn44bzlaofthgjwivvhune
|
||||
use-callback-ref: 1.2.5_@types+react@18.0.8+react@18.0.0
|
||||
use-sidecar: 1.0.5_react@18.0.0
|
||||
dev: false
|
||||
|
||||
/react-router-dom/6.3.0_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-router-dom/6.3.0_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==}
|
||||
peerDependencies:
|
||||
react: '>=16.8'
|
||||
@@ -6869,14 +6869,14 @@ packages:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/react-scrollbars-custom/4.0.27_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-scrollbars-custom/4.0.27_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-vEIvb+AbxWHtU6yqNfIEtnm06vguFFxDK8UTC6hPMlgEPvrQX7ayoLp9MT+vyszouQ9NgcEtipLmNGEw31pQpQ==}
|
||||
peerDependencies:
|
||||
react: '>=16.0.0'
|
||||
dependencies:
|
||||
cnbuilder: 2.7.1
|
||||
react: 18.0.0
|
||||
react-draggable: 4.4.5_zpnidt7m3osuk7shl3s4oenomq
|
||||
react-draggable: 4.4.5_react-dom@18.0.0+react@18.0.0
|
||||
zoom-level: 2.5.0
|
||||
transitivePeerDependencies:
|
||||
- react-dom
|
||||
@@ -6900,7 +6900,7 @@ packages:
|
||||
three: 0.123.0
|
||||
dev: false
|
||||
|
||||
/react-style-singleton/2.1.1_4y5bjn44bzlaofthgjwivvhune:
|
||||
/react-style-singleton/2.1.1_@types+react@18.0.8+react@18.0.0:
|
||||
resolution: {integrity: sha512-jNRp07Jza6CBqdRKNgGhT3u9umWvils1xsuMOjZlghBDH2MU0PL2WZor4PGYjXpnRCa9DQSlHMs/xnABWOwYbA==}
|
||||
engines: {node: '>=8.5.0'}
|
||||
peerDependencies:
|
||||
@@ -6917,7 +6917,7 @@ packages:
|
||||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/react-textarea-autosize/8.3.3_4y5bjn44bzlaofthgjwivvhune:
|
||||
/react-textarea-autosize/8.3.3_@types+react@18.0.8+react@18.0.0:
|
||||
resolution: {integrity: sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
@@ -6926,12 +6926,12 @@ packages:
|
||||
'@babel/runtime': 7.17.9
|
||||
react: 18.0.0
|
||||
use-composed-ref: 1.2.1_react@18.0.0
|
||||
use-latest: 1.2.0_4y5bjn44bzlaofthgjwivvhune
|
||||
use-latest: 1.2.0_@types+react@18.0.8+react@18.0.0
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
dev: false
|
||||
|
||||
/react-transition-group/4.4.2_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/react-transition-group/4.4.2_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==}
|
||||
peerDependencies:
|
||||
react: '>=16.6.0'
|
||||
@@ -7178,7 +7178,7 @@ packages:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/rooks/5.11.0_zpnidt7m3osuk7shl3s4oenomq:
|
||||
/rooks/5.11.0_react-dom@18.0.0+react@18.0.0:
|
||||
resolution: {integrity: sha512-acyTuaYbB021hhHAN6uiU6QUUSuGucK9YOU16nOUM0oypqpckYm7nX5v9xnopoX4pNtrxzIM/mtjC8O7fF3/8A==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
@@ -7936,7 +7936,7 @@ packages:
|
||||
tslib: 2.3.1
|
||||
dev: false
|
||||
|
||||
/ts-node/10.7.0_52efxrzidnucw2w35vvobhxasa:
|
||||
/ts-node/10.7.0_ee885bc7281b682b6adbed6ae09ee090:
|
||||
resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -8568,7 +8568,7 @@ packages:
|
||||
engines: {node: '>= 4'}
|
||||
dev: true
|
||||
|
||||
/use-callback-ref/1.2.5_4y5bjn44bzlaofthgjwivvhune:
|
||||
/use-callback-ref/1.2.5_@types+react@18.0.8+react@18.0.0:
|
||||
resolution: {integrity: sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==}
|
||||
engines: {node: '>=8.5.0'}
|
||||
peerDependencies:
|
||||
@@ -8590,7 +8590,7 @@ packages:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/use-isomorphic-layout-effect/1.1.2_4y5bjn44bzlaofthgjwivvhune:
|
||||
/use-isomorphic-layout-effect/1.1.2_@types+react@18.0.8+react@18.0.0:
|
||||
resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
@@ -8603,7 +8603,7 @@ packages:
|
||||
react: 18.0.0
|
||||
dev: false
|
||||
|
||||
/use-latest/1.2.0_4y5bjn44bzlaofthgjwivvhune:
|
||||
/use-latest/1.2.0_@types+react@18.0.8+react@18.0.0:
|
||||
resolution: {integrity: sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
@@ -8614,7 +8614,7 @@ packages:
|
||||
dependencies:
|
||||
'@types/react': 18.0.8
|
||||
react: 18.0.0
|
||||
use-isomorphic-layout-effect: 1.1.2_4y5bjn44bzlaofthgjwivvhune
|
||||
use-isomorphic-layout-effect: 1.1.2_@types+react@18.0.8+react@18.0.0
|
||||
dev: false
|
||||
|
||||
/use-sidecar/1.0.5_react@18.0.0:
|
||||
@@ -8795,7 +8795,7 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vite-plugin-tsconfig-paths/1.0.5_w5v33ehmxzy52jcrbupop25zpy:
|
||||
/vite-plugin-tsconfig-paths/1.0.5_typescript@4.6.3+vite@2.9.5:
|
||||
resolution: {integrity: sha512-xYGm16eVWqfnlCtxAKQawIq1u+gW//T8hh+EiA17L5i3t+44r40W4G+ZY0TvboK1X3EAKgnjFNxv9dnWnFuAGg==}
|
||||
peerDependencies:
|
||||
vite: '*'
|
||||
@@ -8944,7 +8944,7 @@ packages:
|
||||
/wide-align/1.1.5:
|
||||
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
|
||||
dependencies:
|
||||
string-width: 1.0.2
|
||||
string-width: 4.2.3
|
||||
dev: true
|
||||
|
||||
/widest-line/3.1.0:
|
||||
|
||||
Reference in new issue
Block a user