diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index c2923ce21..c471715c4 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -72,6 +72,7 @@ function App() {
{/*
*/} 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, 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, } diff --git a/core/src/file/indexer/scan.rs b/core/src/file/indexer/scan.rs index cda66556a..546c1918e 100644 --- a/core/src/file/indexer/scan.rs +++ b/core/src/file/indexer/scan.rs @@ -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 diff --git a/docs/developer/.todo b/docs/developer/.todo new file mode 100644 index 000000000..e2ebf9543 --- /dev/null +++ b/docs/developer/.todo @@ -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) + + diff --git a/docs/developer/todo.md b/docs/developer/todo.md deleted file mode 100644 index 368d3e30d..000000000 --- a/docs/developer/todo.md +++ /dev/null @@ -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) diff --git a/packages/interface/src/App.tsx b/packages/interface/src/App.tsx index a42ab5ad4..ec6f9c722 100644 --- a/packages/interface/src/App.tsx +++ b/packages/interface/src/App.tsx @@ -39,7 +39,6 @@ export const AppPropsContext = React.createContext(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() { diff --git a/packages/interface/src/assets/svg/macos_minimize.svg b/packages/interface/src/assets/svg/macos_minimize.svg index 84d8e974a..5f57c3321 100644 --- a/packages/interface/src/assets/svg/macos_minimize.svg +++ b/packages/interface/src/assets/svg/macos_minimize.svg @@ -1,3 +1,3 @@ - - + + diff --git a/packages/interface/src/components/device/Device.tsx b/packages/interface/src/components/device/Device.tsx index 14314d6c1..f7044630d 100644 --- a/packages/interface/src/components/device/Device.tsx +++ b/packages/interface/src/components/device/Device.tsx @@ -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 && ( + <> + handleSelect('tsx')} + fileName="App.tsx" + format="tsx" + iconName="reactts" + /> + handleSelect('vite')} + fileName="vite.config.js" + format="vite" + iconName="vite" + /> + + )}
); diff --git a/packages/interface/src/components/file/Sidebar.tsx b/packages/interface/src/components/file/Sidebar.tsx index 58665bce7..dce6d7408 100644 --- a/packages/interface/src/components/file/Sidebar.tsx +++ b/packages/interface/src/components/file/Sidebar.tsx @@ -117,10 +117,10 @@ export const Sidebar: React.FC = (props) => { Content - + {/* Debug - + */} {/* Explorer @@ -192,9 +192,10 @@ export const Sidebar: React.FC = (props) => { {({ isActive }) => ( -// -// -// -// -// Add Location -// Choose a location from the list -//
-// -// -// -// -//
-//
-//
-// -// ); -// } +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 ( + + {props.trigger} + + + +
+ {props.title} + + {props.description} + + {props.children} +
+
+ + + + +
+
+
+
+
+ ); +} diff --git a/packages/interface/src/components/layout/Modal.tsx b/packages/interface/src/components/layout/Modal.tsx index babea4ed3..b609a9fc6 100644 --- a/packages/interface/src/components/layout/Modal.tsx +++ b/packages/interface/src/components/layout/Modal.tsx @@ -17,7 +17,6 @@ export const Modal: React.FC = (props) => {
-
= (props) => { leaveFrom="opacity-100" leaveTo="opacity-0" > -
+
{props.children}
diff --git a/packages/interface/src/components/os/TrafficLights.tsx b/packages/interface/src/components/os/TrafficLights.tsx index 9ca144a28..c4fdb9a6b 100644 --- a/packages/interface/src/components/os/TrafficLights.tsx +++ b/packages/interface/src/components/os/TrafficLights.tsx @@ -38,22 +38,24 @@ const Light: React.FC = (props) => {
{(() => { switch (props.mode) { case 'close': - return ; + return ( + + ); case 'minimize': return ( - + ); case 'fullscreen': return ( - + ); } })()} diff --git a/packages/interface/src/screens/Overview.tsx b/packages/interface/src/screens/Overview.tsx index 3d3623199..9a959144c 100644 --- a/packages/interface/src/screens/Overview.tsx +++ b/packages/interface/src/screens/Overview.tsx @@ -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 = (props) => { export const OverviewScreen: React.FC<{}> = (props) => { const { data: libraryStatistics } = useBridgeQuery('GetLibraryStatistics'); + const { data: clientState } = useBridgeQuery('ClientGetState'); return (
-
-
+
+
= (props) => { /> */}
+
+ {}} + ctaLabel="Connect" + trigger={ + + } + > +
+
+ + This Device + + +
+
+ + Enter a device code + + +
+
+
+ + +
{/*
*/}
= (props) => { size="47.7GB" locations={[{ name: 'Camera Roll' }, { name: 'Notes' }]} type="phone" + removeThisSoon /> = ({ children, export const SettingsScreen: React.FC<{}> = () => { return (
-
- Client - - - General - - - - Security - - - - Appearance - +
+
+
+ Client + + + General + + + + Security + + + + Appearance + - Library - - - Database - - - - Locations - + Library + + + Database + + + + Locations + - - - Keys - - - - Tags - + + + Keys + + + + Tags + - Cloud - - - Sync - - - - Contacts - + Cloud + + + Sync + + + + Contacts + +
-
-
- -
+
+
+
+
+ +
+
diff --git a/packages/interface/src/style.scss b/packages/interface/src/style.scss index 1f899eee3..8da56028d 100644 --- a/packages/interface/src/style.scss +++ b/packages/interface/src/style.scss @@ -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; +} \ No newline at end of file diff --git a/packages/ui/src/Button.tsx b/packages/ui/src/Button.tsx index a15ea3b1c..dedfd08a5 100644 --- a/packages/ui/src/Button.tsx +++ b/packages/ui/src/Button.tsx @@ -102,6 +102,7 @@ export const Button: React.FC = ({ loading, justifyLeft, ...props } props.className )} > + {props.icon} {props.children} ); diff --git a/packages/ui/style/tailwind.js b/packages/ui/style/tailwind.js index b61785400..9a67c8aeb 100644 --- a/packages/ui/style/tailwind.js +++ b/packages/ui/style/tailwind.js @@ -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%)' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e4c38213..43990a238 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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: