diff --git a/.prettierrc.js b/.prettierrc.js index b5ad19188..dc5d108ad 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -11,16 +11,19 @@ module.exports = { quoteProps: 'consistent', importOrder: [ // external packages - '^([A-Za-z]|@[^s/])', + '', // spacedrive packages '^@sd/(interface|client|ui)(/.*)?$', - // this package + // internal packages + '^@/', '^~/', + '', // relative - '^\\.' + '^[../]', + '^[./]' ], - importOrderSortSpecifiers: true, - importOrderParserPlugins: ['importAssertions', 'typescript', 'jsx'], - plugins: ['@trivago/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'], - tailwindConfig: './packages/ui/tailwind.config.js' + importOrderParserPlugins: ['typescript', 'jsx', 'decorators-legacy'], + importOrderTypeScriptVersion: '4.4.0', + tailwindConfig: './packages/ui/tailwind.config.js', + plugins: ['@ianvs/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'] }; diff --git a/.vscode/settings.json b/.vscode/settings.json index 41ac7fed5..4f032eb17 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,7 +26,7 @@ "tailwindcss", "tanstack", "titlebar", - "trivago", + "ianvs", "tsparticles", "unlisten", "upsert", diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index f7dc568d8..e10cf744e 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -14,11 +14,13 @@ import { OperatingSystem, Platform, PlatformProvider, - SpacedriveInterface, - routes + routes, + SpacedriveInterface } from '@sd/interface'; import { getSpacedropState } from '@sd/interface/hooks/useSpacedropState'; + import '@sd/ui/style'; + import * as commands from './commands'; // TODO: Bring this back once upstream is fixed up. diff --git a/apps/desktop/vite.config.ts b/apps/desktop/vite.config.ts index 44abdf783..ded92f6a5 100644 --- a/apps/desktop/vite.config.ts +++ b/apps/desktop/vite.config.ts @@ -1,5 +1,6 @@ import { sentryVitePlugin } from '@sentry/vite-plugin'; -import { Plugin, defineConfig, loadEnv, mergeConfig } from 'vite'; +import { defineConfig, loadEnv, mergeConfig, Plugin } from 'vite'; + import baseConfig from '../../packages/config/vite'; const devtoolsPlugin: Plugin = { diff --git a/apps/landing/drizzle.config.ts b/apps/landing/drizzle.config.ts index 834906c6b..3a4184293 100644 --- a/apps/landing/drizzle.config.ts +++ b/apps/landing/drizzle.config.ts @@ -1,4 +1,5 @@ import 'dotenv/config'; + import { Config } from 'drizzle-kit'; // TODO: Using t3 env is too damn hard, thanks JS bs diff --git a/apps/landing/package.json b/apps/landing/package.json index 5e1ed44bd..f3f16fcf1 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -11,6 +11,7 @@ }, "dependencies": { "@aws-sdk/client-ses": "^3.337.0", + "@phosphor-icons/react": "^2.0.10", "@planetscale/database": "^1.7.0", "@react-three/drei": "^9.78.1", "@react-three/fiber": "^8.13.4", @@ -26,7 +27,6 @@ "md5": "^2.3.0", "next": "13.4.3", "next-contentlayer": "^0.3.2", - "phosphor-react": "^1.4.1", "react": "18.2.0", "react-burger-menu": "^3.0.9", "react-dom": "^18.2.0", diff --git a/apps/landing/src/app/api/feedback/route.ts b/apps/landing/src/app/api/feedback/route.ts index 339463746..74954b13c 100644 --- a/apps/landing/src/app/api/feedback/route.ts +++ b/apps/landing/src/app/api/feedback/route.ts @@ -1,5 +1,6 @@ import { NextRequest } from 'next/server'; import { z } from 'zod'; + import { env } from '~/env'; export const runtime = 'edge'; diff --git a/apps/landing/src/app/api/releases/[version]/[target]/[arch]/route.ts b/apps/landing/src/app/api/releases/[version]/[target]/[arch]/route.ts index ea0d09a1b..d3ed47485 100644 --- a/apps/landing/src/app/api/releases/[version]/[target]/[arch]/route.ts +++ b/apps/landing/src/app/api/releases/[version]/[target]/[arch]/route.ts @@ -1,5 +1,6 @@ import { NextResponse } from 'next/server'; import { z } from 'zod'; + import { env } from '~/env'; const version = z.union([z.literal('stable'), z.literal('alpha')]); diff --git a/apps/landing/src/app/api/waitlist/route.ts b/apps/landing/src/app/api/waitlist/route.ts index d97b143c9..7cb157f07 100644 --- a/apps/landing/src/app/api/waitlist/route.ts +++ b/apps/landing/src/app/api/waitlist/route.ts @@ -1,5 +1,6 @@ import type { NextRequest } from 'next/server'; import { z } from 'zod'; + import { sendEmail } from '~/server/aws'; import { db, eq, waitlistTable } from '~/server/db'; import { welcomeTemplate } from './welcomeEmail'; diff --git a/apps/landing/src/components/DocsLayout.tsx b/apps/landing/src/components/DocsLayout.tsx index f1def556f..bef2d2752 100644 --- a/apps/landing/src/components/DocsLayout.tsx +++ b/apps/landing/src/components/DocsLayout.tsx @@ -1,8 +1,9 @@ import Link from 'next/link'; -import { CaretRight, List, X } from 'phosphor-react'; +import { CaretRight, List, X } from '@phosphor-icons/react'; import { PropsWithChildren, useState } from 'react'; import { slide as Menu } from 'react-burger-menu'; import { Button } from '@sd/ui'; + import { DocsNavigation } from '~/utils/contentlayer'; import { toTitleCase } from '~/utils/util'; import DocsSidebar from './DocsSidebar'; diff --git a/apps/landing/src/components/DocsSidebar.tsx b/apps/landing/src/components/DocsSidebar.tsx index 97861cd6e..5fbc4cca0 100644 --- a/apps/landing/src/components/DocsSidebar.tsx +++ b/apps/landing/src/components/DocsSidebar.tsx @@ -1,6 +1,7 @@ import clsx from 'clsx'; import Link from 'next/link'; import { SearchInput } from '@sd/ui'; + import { DocsNavigation, iconConfig } from '~/utils/contentlayer'; import { toTitleCase } from '~/utils/util'; diff --git a/apps/landing/src/components/NavBar.tsx b/apps/landing/src/components/NavBar.tsx index 8ede4794f..ddd83aeec 100644 --- a/apps/landing/src/components/NavBar.tsx +++ b/apps/landing/src/components/NavBar.tsx @@ -4,9 +4,10 @@ import clsx from 'clsx'; import Image from 'next/image'; import Link from 'next/link'; import { NextRouter, useRouter } from 'next/router'; -import { Book, Chat, DotsThreeVertical, MapPin, User } from 'phosphor-react'; +import { Book, Chat, DotsThreeVertical, MapPin, User } from '@phosphor-icons/react'; import { PropsWithChildren, useEffect, useState } from 'react'; import { Button, Dropdown } from '@sd/ui'; + import { positions } from '~/pages/careers'; import { getWindow } from '~/utils/util'; diff --git a/apps/landing/src/components/Space.tsx b/apps/landing/src/components/Space.tsx index 96be5b6e9..f236d8a9e 100644 --- a/apps/landing/src/components/Space.tsx +++ b/apps/landing/src/components/Space.tsx @@ -1,7 +1,7 @@ import { PointMaterial, Points, Trail } from '@react-three/drei'; import { Canvas, useFrame } from '@react-three/fiber'; import { inSphere as randomInSphere } from 'maath/random'; -import { type FunctionComponent, useRef, useState } from 'react'; +import { useRef, useState, type FunctionComponent } from 'react'; import { Color, type Mesh } from 'three'; const Stars = (props: any) => { diff --git a/apps/landing/src/components/mdx/Notice.tsx b/apps/landing/src/components/mdx/Notice.tsx index 6c067797c..359adc139 100644 --- a/apps/landing/src/components/mdx/Notice.tsx +++ b/apps/landing/src/components/mdx/Notice.tsx @@ -1,6 +1,6 @@ import clsx from 'clsx'; import MarkdownToJsx from 'markdown-to-jsx'; -import { Fire, Info } from 'phosphor-react'; +import { Fire, Info } from '@phosphor-icons/react'; type NoticeProps = { title?: string; diff --git a/apps/landing/src/components/mdx/index.tsx b/apps/landing/src/components/mdx/index.tsx index 17b414539..96aada2fb 100644 --- a/apps/landing/src/components/mdx/index.tsx +++ b/apps/landing/src/components/mdx/index.tsx @@ -1,4 +1,5 @@ import NextImage, { ImageProps } from 'next/image'; + import Notice from './Notice'; const Image = (props: ImageProps) => ; diff --git a/apps/landing/src/pages/404.tsx b/apps/landing/src/pages/404.tsx index fbf836498..2e8b9b96a 100644 --- a/apps/landing/src/pages/404.tsx +++ b/apps/landing/src/pages/404.tsx @@ -1,7 +1,8 @@ import Head from 'next/head'; import { useRouter } from 'next/router'; -import { SmileyXEyes } from 'phosphor-react'; +import { SmileyXEyes } from '@phosphor-icons/react'; import { Button } from '@sd/ui'; + import Markdown from '~/components/Markdown'; import PageWrapper from '~/components/PageWrapper'; diff --git a/apps/landing/src/pages/_app.tsx b/apps/landing/src/pages/_app.tsx index 585afc6cf..2d6860fb3 100644 --- a/apps/landing/src/pages/_app.tsx +++ b/apps/landing/src/pages/_app.tsx @@ -1,6 +1,7 @@ import type { AppProps } from 'next/app'; import Head from 'next/head'; import Script from 'next/script'; + import '@sd/ui/style'; import '~/styles/prism.css'; import '~/styles/style.scss'; diff --git a/apps/landing/src/pages/blog/[slug].tsx b/apps/landing/src/pages/blog/[slug].tsx index 06c2e087a..749bbf613 100644 --- a/apps/landing/src/pages/blog/[slug].tsx +++ b/apps/landing/src/pages/blog/[slug].tsx @@ -3,9 +3,10 @@ import { InferGetStaticPropsType } from 'next'; import { useMDXComponent } from 'next-contentlayer/hooks'; import Head from 'next/head'; import Image from 'next/image'; + import { BlogTag } from '~/components/BlogTag'; -import PageWrapper from '~/components/PageWrapper'; import { BlogMDXComponents } from '~/components/mdx'; +import PageWrapper from '~/components/PageWrapper'; export async function getStaticPaths() { const paths = allPosts.map((post) => post.url); diff --git a/apps/landing/src/pages/blog/index.tsx b/apps/landing/src/pages/blog/index.tsx index afab02b97..4daabb576 100644 --- a/apps/landing/src/pages/blog/index.tsx +++ b/apps/landing/src/pages/blog/index.tsx @@ -3,6 +3,7 @@ import { InferGetStaticPropsType } from 'next'; import Head from 'next/head'; import Image from 'next/image'; import Link from 'next/link'; + import { BlogTag } from '~/components/BlogTag'; import PageWrapper from '~/components/PageWrapper'; diff --git a/apps/landing/src/pages/careers.tsx b/apps/landing/src/pages/careers.tsx index 06ca7a046..fa6808755 100644 --- a/apps/landing/src/pages/careers.tsx +++ b/apps/landing/src/pages/careers.tsx @@ -9,9 +9,10 @@ import { Smiley, Star, TrendUp -} from 'phosphor-react'; +} from '@phosphor-icons/react'; import { useRef } from 'react'; import { Button } from '@sd/ui'; + import PageWrapper from '~/components/PageWrapper'; interface PositionPosting { diff --git a/apps/landing/src/pages/docs/[...slug].tsx b/apps/landing/src/pages/docs/[...slug].tsx index c4d8af491..8ea97b7a8 100644 --- a/apps/landing/src/pages/docs/[...slug].tsx +++ b/apps/landing/src/pages/docs/[...slug].tsx @@ -1,15 +1,16 @@ -import { Github } from '@sd/assets/svgs/brands'; import { allDocs } from '@contentlayer/generated'; +import { Github } from '@sd/assets/svgs/brands'; import { InferGetStaticPropsType } from 'next'; import { useMDXComponent } from 'next-contentlayer/hooks'; import Head from 'next/head'; import Link from 'next/link'; -import { CaretRight } from 'phosphor-react'; +import { CaretRight } from '@phosphor-icons/react'; import { PropsWithChildren } from 'react'; + import DocsLayout from '~/components/DocsLayout'; import Markdown from '~/components/Markdown'; -import PageWrapper from '~/components/PageWrapper'; import { DocMDXComponents } from '~/components/mdx'; +import PageWrapper from '~/components/PageWrapper'; import { getDocsNavigation } from '~/utils/contentlayer'; import { toTitleCase } from '~/utils/util'; diff --git a/apps/landing/src/pages/docs/index.tsx b/apps/landing/src/pages/docs/index.tsx index a5ecd6379..d0e556cea 100644 --- a/apps/landing/src/pages/docs/index.tsx +++ b/apps/landing/src/pages/docs/index.tsx @@ -2,6 +2,7 @@ import { allDocs } from '@contentlayer/generated'; import { InferGetStaticPropsType } from 'next'; import Head from 'next/head'; import Link from 'next/link'; + import DocsLayout from '~/components/DocsLayout'; import Markdown from '~/components/Markdown'; import PageWrapper from '~/components/PageWrapper'; diff --git a/apps/landing/src/pages/index.tsx b/apps/landing/src/pages/index.tsx index f070eef97..788020453 100644 --- a/apps/landing/src/pages/index.tsx +++ b/apps/landing/src/pages/index.tsx @@ -4,6 +4,7 @@ import Head from 'next/head'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; + import AppImage from '~/components/AppImage'; import HomeCTA from '~/components/HomeCTA'; import NewBanner from '~/components/NewBanner'; diff --git a/apps/landing/src/pages/roadmap.tsx b/apps/landing/src/pages/roadmap.tsx index 1bdc5bee5..91536d125 100644 --- a/apps/landing/src/pages/roadmap.tsx +++ b/apps/landing/src/pages/roadmap.tsx @@ -2,6 +2,7 @@ import clsx from 'clsx'; import Head from 'next/head'; import Link from 'next/link'; import { Fragment } from 'react'; + import PageWrapper from '~/components/PageWrapper'; const items = [ diff --git a/apps/landing/src/pages/team.tsx b/apps/landing/src/pages/team.tsx index c2247a965..899cd929d 100644 --- a/apps/landing/src/pages/team.tsx +++ b/apps/landing/src/pages/team.tsx @@ -1,6 +1,7 @@ import Head from 'next/head'; import Link from 'next/link'; -import { ArrowRight } from 'phosphor-react'; +import { ArrowRight } from '@phosphor-icons/react'; + import Markdown from '~/components/Markdown'; import PageWrapper from '~/components/PageWrapper'; import { TeamMember, TeamMemberProps } from '~/components/TeamMember'; diff --git a/apps/landing/src/server/aws.ts b/apps/landing/src/server/aws.ts index 04038ee71..b602faa24 100644 --- a/apps/landing/src/server/aws.ts +++ b/apps/landing/src/server/aws.ts @@ -1,4 +1,5 @@ -import { SESClient, SendEmailCommand } from '@aws-sdk/client-ses'; +import { SendEmailCommand, SESClient } from '@aws-sdk/client-ses'; + import { env } from '~/env'; export const ses = new SESClient({ diff --git a/apps/landing/src/server/db.ts b/apps/landing/src/server/db.ts index 07dfe15da..d0799dc95 100644 --- a/apps/landing/src/server/db.ts +++ b/apps/landing/src/server/db.ts @@ -1,6 +1,7 @@ import { connect } from '@planetscale/database'; import { mysqlTable, serial, timestamp, varchar } from 'drizzle-orm/mysql-core'; import { drizzle } from 'drizzle-orm/planetscale-serverless'; + import { env } from '~/env'; export { and, eq, or, type InferModel } from 'drizzle-orm'; diff --git a/apps/landing/src/utils/contentlayer.ts b/apps/landing/src/utils/contentlayer.ts index 00c362f33..5428de665 100644 --- a/apps/landing/src/utils/contentlayer.ts +++ b/apps/landing/src/utils/contentlayer.ts @@ -1,5 +1,6 @@ import { Doc, DocumentTypes } from '@contentlayer/generated'; -import { Circle, Cube, Icon, Sparkle, Star } from 'phosphor-react'; +import { Circle, Cube, Icon, Sparkle, Star } from '@phosphor-icons/react'; + import { toTitleCase } from './util'; type DocsCategory = { diff --git a/apps/mobile/index.js b/apps/mobile/index.js index 0a345a545..3f377a858 100644 --- a/apps/mobile/index.js +++ b/apps/mobile/index.js @@ -1,4 +1,5 @@ import { registerRootComponent } from 'expo'; + import { AppWrapper } from './src/main'; registerRootComponent(AppWrapper); diff --git a/apps/mobile/src/App.tsx b/apps/mobile/src/App.tsx index e783ab045..2f09d358f 100644 --- a/apps/mobile/src/App.tsx +++ b/apps/mobile/src/App.tsx @@ -18,17 +18,18 @@ import { SafeAreaProvider } from 'react-native-safe-area-context'; import { useSnapshot } from 'valtio'; import { ClientContextProvider, + initPlausible, LibraryContextProvider, NotificationContextProvider, P2PContextProvider, RspcProvider, - initPlausible, useClientContext, useInvalidateQuery, usePlausibleEvent, usePlausiblePageViewMonitor, usePlausiblePingMonitor } from '@sd/client'; + import { GlobalModals } from './components/modal/GlobalModals'; import { useTheme } from './hooks/useTheme'; import { changeTwTheme, tw } from './lib/tailwind'; diff --git a/apps/mobile/src/components/animation/ProgressBar.tsx b/apps/mobile/src/components/animation/ProgressBar.tsx index 5a47d482f..2bb8576cf 100644 --- a/apps/mobile/src/components/animation/ProgressBar.tsx +++ b/apps/mobile/src/components/animation/ProgressBar.tsx @@ -1,6 +1,7 @@ import { MotiView } from 'moti'; import { memo } from 'react'; import { View } from 'react-native'; + import { tw } from '~/lib/tailwind'; type ProgressBarProps = { diff --git a/apps/mobile/src/components/animation/layout.tsx b/apps/mobile/src/components/animation/layout.tsx index 1cf43230f..16a72b5ab 100644 --- a/apps/mobile/src/components/animation/layout.tsx +++ b/apps/mobile/src/components/animation/layout.tsx @@ -7,6 +7,7 @@ import Animated, { useSharedValue, withTiming } from 'react-native-reanimated'; + import Layout from '~/constants/Layout'; type MotiViewProps = PropsWithChildren; diff --git a/apps/mobile/src/components/drawer/DrawerContent.tsx b/apps/mobile/src/components/drawer/DrawerContent.tsx index f175528e0..0673b7737 100644 --- a/apps/mobile/src/components/drawer/DrawerContent.tsx +++ b/apps/mobile/src/components/drawer/DrawerContent.tsx @@ -1,10 +1,11 @@ -import { AppLogo } from '@sd/assets/images'; import { DrawerContentScrollView } from '@react-navigation/drawer'; import { DrawerContentComponentProps } from '@react-navigation/drawer/lib/typescript/src/types'; +import { AppLogo } from '@sd/assets/images'; import { CheckCircle, Gear } from 'phosphor-react-native'; import { useRef } from 'react'; import { Image, Platform, Pressable, Text, View } from 'react-native'; import { JobManagerContextProvider, useLibraryQuery } from '@sd/client'; + import Layout from '~/constants/Layout'; import { tw, twStyle } from '~/lib/tailwind'; import { getStackNameFromState } from '~/utils/nav'; diff --git a/apps/mobile/src/components/drawer/DrawerLibraryManager.tsx b/apps/mobile/src/components/drawer/DrawerLibraryManager.tsx index eb6f82c23..945f68f2e 100644 --- a/apps/mobile/src/components/drawer/DrawerLibraryManager.tsx +++ b/apps/mobile/src/components/drawer/DrawerLibraryManager.tsx @@ -5,6 +5,7 @@ import { CaretRight, Gear, Lock, Plus } from 'phosphor-react-native'; import { useEffect, useRef, useState } from 'react'; import { Alert, Pressable, Text, View } from 'react-native'; import { useClientContext } from '@sd/client'; + import { tw, twStyle } from '~/lib/tailwind'; import { currentLibraryStore } from '~/utils/nav'; import { AnimatedHeight } from '../animation/layout'; diff --git a/apps/mobile/src/components/drawer/DrawerLocations.tsx b/apps/mobile/src/components/drawer/DrawerLocations.tsx index 3317390e3..6dd19ec5b 100644 --- a/apps/mobile/src/components/drawer/DrawerLocations.tsx +++ b/apps/mobile/src/components/drawer/DrawerLocations.tsx @@ -3,6 +3,7 @@ import { useNavigation } from '@react-navigation/native'; import { useRef } from 'react'; import { Pressable, Text, View } from 'react-native'; import { useLibraryQuery } from '@sd/client'; + import { ModalRef } from '~/components/layout/Modal'; import { tw, twStyle } from '~/lib/tailwind'; import FolderIcon from '../icons/FolderIcon'; diff --git a/apps/mobile/src/components/drawer/DrawerTags.tsx b/apps/mobile/src/components/drawer/DrawerTags.tsx index 9ca709860..09426de42 100644 --- a/apps/mobile/src/components/drawer/DrawerTags.tsx +++ b/apps/mobile/src/components/drawer/DrawerTags.tsx @@ -3,6 +3,7 @@ import { useNavigation } from '@react-navigation/native'; import { useRef } from 'react'; import { ColorValue, Pressable, Text, View } from 'react-native'; import { useLibraryQuery } from '@sd/client'; + import { ModalRef } from '~/components/layout/Modal'; import { tw, twStyle } from '~/lib/tailwind'; import CollapsibleView from '../layout/CollapsibleView'; diff --git a/apps/mobile/src/components/explorer/Explorer.tsx b/apps/mobile/src/components/explorer/Explorer.tsx index 85ba3cdfe..6a0cf2fb7 100644 --- a/apps/mobile/src/components/explorer/Explorer.tsx +++ b/apps/mobile/src/components/explorer/Explorer.tsx @@ -1,9 +1,10 @@ -import { FlashList } from '@shopify/flash-list'; import { useNavigation } from '@react-navigation/native'; +import { FlashList } from '@shopify/flash-list'; import { Rows, SquaresFour } from 'phosphor-react-native'; import { useState } from 'react'; import { Pressable, View } from 'react-native'; -import { type ExplorerItem, isPath } from '@sd/client'; +import { isPath, type ExplorerItem } from '@sd/client'; + import SortByMenu from '~/components/menu/SortByMenu'; import Layout from '~/constants/Layout'; import { tw } from '~/lib/tailwind'; diff --git a/apps/mobile/src/components/explorer/FileItem.tsx b/apps/mobile/src/components/explorer/FileItem.tsx index 136ef8e97..401830641 100644 --- a/apps/mobile/src/components/explorer/FileItem.tsx +++ b/apps/mobile/src/components/explorer/FileItem.tsx @@ -1,5 +1,6 @@ import { Text, View } from 'react-native'; import { ExplorerItem, getItemFilePath } from '@sd/client'; + import Layout from '~/constants/Layout'; import { tw, twStyle } from '~/lib/tailwind'; import { getExplorerStore } from '~/stores/explorerStore'; diff --git a/apps/mobile/src/components/explorer/FileRow.tsx b/apps/mobile/src/components/explorer/FileRow.tsx index 8203c20a7..155c8de32 100644 --- a/apps/mobile/src/components/explorer/FileRow.tsx +++ b/apps/mobile/src/components/explorer/FileRow.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { Text, View } from 'react-native'; import { ExplorerItem, getItemFilePath } from '@sd/client'; + import { tw, twStyle } from '~/lib/tailwind'; import { getExplorerStore } from '~/stores/explorerStore'; import FileThumb from './FileThumb'; diff --git a/apps/mobile/src/components/explorer/FileThumb.tsx b/apps/mobile/src/components/explorer/FileThumb.tsx index 0ce520d21..fcf25a31e 100644 --- a/apps/mobile/src/components/explorer/FileThumb.tsx +++ b/apps/mobile/src/components/explorer/FileThumb.tsx @@ -1,14 +1,15 @@ import { getIcon } from '@sd/assets/util'; -import { type PropsWithChildren, useEffect, useLayoutEffect, useMemo, useState } from 'react'; +import { useEffect, useLayoutEffect, useMemo, useState, type PropsWithChildren } from 'react'; import { Image, View } from 'react-native'; import { DocumentDirectoryPath } from 'react-native-fs'; import { - type ExplorerItem, getExplorerItemData, getItemFilePath, getItemLocation, - isDarkTheme + isDarkTheme, + type ExplorerItem } from '@sd/client'; + import { flattenThumbnailKey, useExplorerStore } from '~/stores/explorerStore'; import { tw } from '../../lib/tailwind'; diff --git a/apps/mobile/src/components/explorer/sections/InfoTagPills.tsx b/apps/mobile/src/components/explorer/sections/InfoTagPills.tsx index 6998d3540..8af2131e7 100644 --- a/apps/mobile/src/components/explorer/sections/InfoTagPills.tsx +++ b/apps/mobile/src/components/explorer/sections/InfoTagPills.tsx @@ -8,6 +8,7 @@ import { isPath, useLibraryQuery } from '@sd/client'; + import { InfoPill, PlaceholderPill } from '~/components/primitive/InfoPill'; import { tw, twStyle } from '~/lib/tailwind'; diff --git a/apps/mobile/src/components/form/ColorPicker.tsx b/apps/mobile/src/components/form/ColorPicker.tsx index 9f45253c2..a4b9a2958 100644 --- a/apps/mobile/src/components/form/ColorPicker.tsx +++ b/apps/mobile/src/components/form/ColorPicker.tsx @@ -1,5 +1,6 @@ import React from 'react'; import WheelColorPicker from 'react-native-wheel-color-picker'; + import { tw } from '~/lib/tailwind'; type ColorPickerProps = { diff --git a/apps/mobile/src/components/form/Input.tsx b/apps/mobile/src/components/form/Input.tsx index 0619792b5..15ec99b44 100644 --- a/apps/mobile/src/components/form/Input.tsx +++ b/apps/mobile/src/components/form/Input.tsx @@ -1,8 +1,9 @@ import { BottomSheetTextInput } from '@gorhom/bottom-sheet'; -import { VariantProps, cva } from 'class-variance-authority'; +import { cva, VariantProps } from 'class-variance-authority'; import { Eye, EyeSlash } from 'phosphor-react-native'; import { useState } from 'react'; import { Pressable, TextInputProps as RNTextInputProps, TextInput, View } from 'react-native'; + import { tw, twStyle } from '~/lib/tailwind'; const input = cva(['rounded-md border text-sm leading-tight shadow-sm'], { diff --git a/apps/mobile/src/components/form/Switch.tsx b/apps/mobile/src/components/form/Switch.tsx index 07e15786a..d6f3ca0ac 100644 --- a/apps/mobile/src/components/form/Switch.tsx +++ b/apps/mobile/src/components/form/Switch.tsx @@ -1,5 +1,6 @@ import { FC } from 'react'; import { Switch as RNSwitch, SwitchProps, Text, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; export const Switch: FC = ({ ...props }) => { diff --git a/apps/mobile/src/components/header/Header.tsx b/apps/mobile/src/components/header/Header.tsx index 6bed71021..afe8e3081 100644 --- a/apps/mobile/src/components/header/Header.tsx +++ b/apps/mobile/src/components/header/Header.tsx @@ -5,6 +5,7 @@ import { MotiView } from 'moti'; import { List } from 'phosphor-react-native'; import { Pressable, Text, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; + import { tw, twStyle } from '~/lib/tailwind'; // Default header with search bar and button to open drawer diff --git a/apps/mobile/src/components/job/Job.tsx b/apps/mobile/src/components/job/Job.tsx index d925768b6..f5d9fbaa2 100644 --- a/apps/mobile/src/components/job/Job.tsx +++ b/apps/mobile/src/components/job/Job.tsx @@ -11,6 +11,7 @@ import { import { memo } from 'react'; import { View, ViewStyle } from 'react-native'; import { JobProgressEvent, JobReport, useJobInfo } from '@sd/client'; + import { tw } from '~/lib/tailwind'; import { ProgressBar } from '../animation/ProgressBar'; import JobContainer from './JobContainer'; diff --git a/apps/mobile/src/components/job/JobContainer.tsx b/apps/mobile/src/components/job/JobContainer.tsx index d7a491f26..9cbaf2d36 100644 --- a/apps/mobile/src/components/job/JobContainer.tsx +++ b/apps/mobile/src/components/job/JobContainer.tsx @@ -2,6 +2,7 @@ import { Icon } from 'phosphor-react-native'; import { Fragment } from 'react'; import { Image, Text, View, ViewStyle } from 'react-native'; import { TextItems } from '@sd/client'; + import { styled, tw, twStyle } from '~/lib/tailwind'; type JobContainerProps = { diff --git a/apps/mobile/src/components/job/JobGroup.tsx b/apps/mobile/src/components/job/JobGroup.tsx index bd95952a5..d468ac1a2 100644 --- a/apps/mobile/src/components/job/JobGroup.tsx +++ b/apps/mobile/src/components/job/JobGroup.tsx @@ -5,17 +5,18 @@ import { useMemo, useState } from 'react'; import { Animated, Pressable, View } from 'react-native'; import { Swipeable } from 'react-native-gesture-handler'; import { + getJobNiceActionName, + getTotalTasks, JobGroup, JobProgressEvent, JobReport, - getJobNiceActionName, - getTotalTasks, useLibraryMutation, useTotalElapsedTimeText } from '@sd/client'; + import { tw } from '~/lib/tailwind'; -import { ProgressBar } from '../animation/ProgressBar'; import { AnimatedHeight } from '../animation/layout'; +import { ProgressBar } from '../animation/ProgressBar'; import { Button } from '../primitive/Button'; import Job from './Job'; import JobContainer from './JobContainer'; diff --git a/apps/mobile/src/components/key/PasswordMeter.tsx b/apps/mobile/src/components/key/PasswordMeter.tsx index 83cc693fe..760ea13e1 100644 --- a/apps/mobile/src/components/key/PasswordMeter.tsx +++ b/apps/mobile/src/components/key/PasswordMeter.tsx @@ -1,5 +1,6 @@ import { Text, View, ViewStyle } from 'react-native'; import { getPasswordStrength } from '@sd/client'; + import { tw, twStyle } from '~/lib/tailwind'; // NOTE: Lazy load this component. diff --git a/apps/mobile/src/components/layout/Card.tsx b/apps/mobile/src/components/layout/Card.tsx index 67381ce43..92227b814 100644 --- a/apps/mobile/src/components/layout/Card.tsx +++ b/apps/mobile/src/components/layout/Card.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { View, ViewProps } from 'react-native'; + import { twStyle } from '~/lib/tailwind'; type CardProps = { diff --git a/apps/mobile/src/components/layout/CollapsibleView.tsx b/apps/mobile/src/components/layout/CollapsibleView.tsx index a406d623b..d5196103e 100644 --- a/apps/mobile/src/components/layout/CollapsibleView.tsx +++ b/apps/mobile/src/components/layout/CollapsibleView.tsx @@ -2,6 +2,7 @@ import { MotiView } from 'moti'; import { CaretRight } from 'phosphor-react-native'; import { PropsWithChildren, useReducer } from 'react'; import { Pressable, StyleProp, Text, TextStyle, View, ViewStyle } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { AnimatedHeight } from '../animation/layout'; diff --git a/apps/mobile/src/components/layout/Modal.tsx b/apps/mobile/src/components/layout/Modal.tsx index 5ba924c33..302659bca 100644 --- a/apps/mobile/src/components/layout/Modal.tsx +++ b/apps/mobile/src/components/layout/Modal.tsx @@ -9,8 +9,9 @@ import { BottomSheetScrollView } from '@gorhom/bottom-sheet'; import { X } from 'phosphor-react-native'; -import { ReactNode, forwardRef } from 'react'; +import { forwardRef, ReactNode } from 'react'; import { Pressable, Text, View } from 'react-native'; + import useForwardedRef from '~/hooks/useForwardedRef'; import { tw } from '~/lib/tailwind'; import { Button } from '../primitive/Button'; diff --git a/apps/mobile/src/components/menu/SortByMenu.tsx b/apps/mobile/src/components/menu/SortByMenu.tsx index 5f6d135ad..4f5022319 100644 --- a/apps/mobile/src/components/menu/SortByMenu.tsx +++ b/apps/mobile/src/components/menu/SortByMenu.tsx @@ -1,6 +1,7 @@ import { ArrowDown, ArrowUp } from 'phosphor-react-native'; import { useState } from 'react'; import { Text, View } from 'react-native'; + import { Menu, MenuItem } from '~/components/primitive/Menu'; import { tw } from '~/lib/tailwind'; diff --git a/apps/mobile/src/components/modal/CreateLibraryModal.tsx b/apps/mobile/src/components/modal/CreateLibraryModal.tsx index 10adb6209..95c2f3090 100644 --- a/apps/mobile/src/components/modal/CreateLibraryModal.tsx +++ b/apps/mobile/src/components/modal/CreateLibraryModal.tsx @@ -2,6 +2,7 @@ import { useQueryClient } from '@tanstack/react-query'; import { forwardRef, useState } from 'react'; import { Text, View } from 'react-native'; import { useBridgeMutation, usePlausibleEvent } from '@sd/client'; + import { ModalInput } from '~/components/form/Input'; import { Modal, ModalRef } from '~/components/layout/Modal'; import { Button } from '~/components/primitive/Button'; diff --git a/apps/mobile/src/components/modal/ImportModal.tsx b/apps/mobile/src/components/modal/ImportModal.tsx index 01dc55386..f7c0fc7f0 100644 --- a/apps/mobile/src/components/modal/ImportModal.tsx +++ b/apps/mobile/src/components/modal/ImportModal.tsx @@ -2,6 +2,7 @@ import { forwardRef, useCallback } from 'react'; import { Alert, Text, View } from 'react-native'; import DocumentPicker from 'react-native-document-picker'; import { useLibraryMutation } from '@sd/client'; + import { Modal, ModalRef } from '~/components/layout/Modal'; import { Button } from '~/components/primitive/Button'; import useForwardedRef from '~/hooks/useForwardedRef'; diff --git a/apps/mobile/src/components/modal/confirmModals/DeleteLibraryModal.tsx b/apps/mobile/src/components/modal/confirmModals/DeleteLibraryModal.tsx index ceaffe945..1c0020733 100644 --- a/apps/mobile/src/components/modal/confirmModals/DeleteLibraryModal.tsx +++ b/apps/mobile/src/components/modal/confirmModals/DeleteLibraryModal.tsx @@ -1,6 +1,7 @@ import { useQueryClient } from '@tanstack/react-query'; import { useRef } from 'react'; import { useBridgeMutation, usePlausibleEvent } from '@sd/client'; + import { ConfirmModal, ModalRef } from '~/components/layout/Modal'; type Props = { diff --git a/apps/mobile/src/components/modal/confirmModals/DeleteLocationModal.tsx b/apps/mobile/src/components/modal/confirmModals/DeleteLocationModal.tsx index a477558f7..8ae96d389 100644 --- a/apps/mobile/src/components/modal/confirmModals/DeleteLocationModal.tsx +++ b/apps/mobile/src/components/modal/confirmModals/DeleteLocationModal.tsx @@ -1,5 +1,6 @@ import { useRef } from 'react'; import { useLibraryMutation, usePlausibleEvent } from '@sd/client'; + import { ConfirmModal, ModalRef } from '~/components/layout/Modal'; type Props = { diff --git a/apps/mobile/src/components/modal/confirmModals/DeleteTagModal.tsx b/apps/mobile/src/components/modal/confirmModals/DeleteTagModal.tsx index 8d5165f31..0aa831062 100644 --- a/apps/mobile/src/components/modal/confirmModals/DeleteTagModal.tsx +++ b/apps/mobile/src/components/modal/confirmModals/DeleteTagModal.tsx @@ -1,5 +1,6 @@ import { useRef } from 'react'; import { useLibraryMutation, usePlausibleEvent } from '@sd/client'; + import { ConfirmModal, ModalRef } from '~/components/layout/Modal'; type Props = { diff --git a/apps/mobile/src/components/modal/inspector/ActionsModal.tsx b/apps/mobile/src/components/modal/inspector/ActionsModal.tsx index 492cd4c87..e74bd2e6a 100644 --- a/apps/mobile/src/components/modal/inspector/ActionsModal.tsx +++ b/apps/mobile/src/components/modal/inspector/ActionsModal.tsx @@ -13,6 +13,7 @@ import { import { PropsWithChildren, useRef } from 'react'; import { Pressable, Text, View, ViewStyle } from 'react-native'; import { byteSize, getItemFilePath, getItemObject } from '@sd/client'; + import FileThumb from '~/components/explorer/FileThumb'; import FavoriteButton from '~/components/explorer/sections/FavoriteButton'; import InfoTagPills from '~/components/explorer/sections/InfoTagPills'; diff --git a/apps/mobile/src/components/modal/inspector/FileInfoModal.tsx b/apps/mobile/src/components/modal/inspector/FileInfoModal.tsx index d02951891..bf7267681 100644 --- a/apps/mobile/src/components/modal/inspector/FileInfoModal.tsx +++ b/apps/mobile/src/components/modal/inspector/FileInfoModal.tsx @@ -11,15 +11,16 @@ import { import { forwardRef } from 'react'; import { Pressable, Text, View } from 'react-native'; import { - type ExplorerItem, byteSize, getItemFilePath, getItemObject, - useLibraryQuery + useLibraryQuery, + type ExplorerItem } from '@sd/client'; + import FileThumb from '~/components/explorer/FileThumb'; import InfoTagPills from '~/components/explorer/sections/InfoTagPills'; -import { Modal, type ModalRef, ModalScrollView } from '~/components/layout/Modal'; +import { Modal, ModalScrollView, type ModalRef } from '~/components/layout/Modal'; import { Divider } from '~/components/primitive/Divider'; import useForwardedRef from '~/hooks/useForwardedRef'; import { tw } from '~/lib/tailwind'; diff --git a/apps/mobile/src/components/modal/job/JobManagerModal.tsx b/apps/mobile/src/components/modal/job/JobManagerModal.tsx index dc67acf2a..219965ea5 100644 --- a/apps/mobile/src/components/modal/job/JobManagerModal.tsx +++ b/apps/mobile/src/components/modal/job/JobManagerModal.tsx @@ -1,6 +1,7 @@ import { forwardRef, useMemo } from 'react'; import { FlatList, Text, View } from 'react-native'; import { useBridgeQuery, useJobProgress } from '@sd/client'; + import JobGroup from '~/components/job/JobGroup'; import { Modal, ModalRef } from '~/components/layout/Modal'; import { tw } from '~/lib/tailwind'; diff --git a/apps/mobile/src/components/modal/tag/CreateTagModal.tsx b/apps/mobile/src/components/modal/tag/CreateTagModal.tsx index 020d46295..25fc6ddd1 100644 --- a/apps/mobile/src/components/modal/tag/CreateTagModal.tsx +++ b/apps/mobile/src/components/modal/tag/CreateTagModal.tsx @@ -3,6 +3,7 @@ import { forwardRef, useEffect, useState } from 'react'; import { Pressable, Text, View } from 'react-native'; import ColorPicker from 'react-native-wheel-color-picker'; import { useLibraryMutation, usePlausibleEvent } from '@sd/client'; + import { FadeInAnimation } from '~/components/animation/layout'; import { ModalInput } from '~/components/form/Input'; import { Modal, ModalRef } from '~/components/layout/Modal'; diff --git a/apps/mobile/src/components/modal/tag/UpdateTagModal.tsx b/apps/mobile/src/components/modal/tag/UpdateTagModal.tsx index 472f4d8d5..9f47741a8 100644 --- a/apps/mobile/src/components/modal/tag/UpdateTagModal.tsx +++ b/apps/mobile/src/components/modal/tag/UpdateTagModal.tsx @@ -2,6 +2,7 @@ import { useQueryClient } from '@tanstack/react-query'; import { forwardRef, useEffect, useState } from 'react'; import { Pressable, Text, View } from 'react-native'; import { Tag, useLibraryMutation } from '@sd/client'; + import { FadeInAnimation } from '~/components/animation/layout'; import ColorPicker from '~/components/form/ColorPicker'; import { Input } from '~/components/form/Input'; diff --git a/apps/mobile/src/components/overview/OverviewStats.tsx b/apps/mobile/src/components/overview/OverviewStats.tsx index 58551f352..1ac46d353 100644 --- a/apps/mobile/src/components/overview/OverviewStats.tsx +++ b/apps/mobile/src/components/overview/OverviewStats.tsx @@ -1,7 +1,8 @@ import { FC, useEffect, useState } from 'react'; import { ScrollView, Text, View } from 'react-native'; import RNFS from 'react-native-fs'; -import { Statistics, byteSize, useLibraryQuery } from '@sd/client'; +import { byteSize, Statistics, useLibraryQuery } from '@sd/client'; + import useCounter from '~/hooks/useCounter'; import { tw, twStyle } from '~/lib/tailwind'; diff --git a/apps/mobile/src/components/primitive/Button.tsx b/apps/mobile/src/components/primitive/Button.tsx index 8c0aa4569..6cb8deeb0 100644 --- a/apps/mobile/src/components/primitive/Button.tsx +++ b/apps/mobile/src/components/primitive/Button.tsx @@ -1,7 +1,8 @@ -import { VariantProps, cva } from 'class-variance-authority'; +import { cva, VariantProps } from 'class-variance-authority'; import { MotiPressable, MotiPressableProps } from 'moti/interactions'; import { FC, useMemo } from 'react'; import { Pressable, PressableProps, View, ViewProps } from 'react-native'; + import { twStyle } from '~/lib/tailwind'; const button = cva(['items-center justify-center rounded-md border shadow-sm'], { diff --git a/apps/mobile/src/components/primitive/Divider.tsx b/apps/mobile/src/components/primitive/Divider.tsx index 08ba31988..13a441cb2 100644 --- a/apps/mobile/src/components/primitive/Divider.tsx +++ b/apps/mobile/src/components/primitive/Divider.tsx @@ -1,4 +1,5 @@ import { View } from 'react-native'; + import { styled } from '~/lib/tailwind'; export const Divider = styled(View, 'bg-app-line my-1 h-[1px] w-full'); diff --git a/apps/mobile/src/components/primitive/InfoPill.tsx b/apps/mobile/src/components/primitive/InfoPill.tsx index 487c995cf..29b2a8c53 100644 --- a/apps/mobile/src/components/primitive/InfoPill.tsx +++ b/apps/mobile/src/components/primitive/InfoPill.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Text, TextStyle, View, ViewStyle } from 'react-native'; + import { twStyle } from '~/lib/tailwind'; type Props = { diff --git a/apps/mobile/src/components/primitive/Menu.tsx b/apps/mobile/src/components/primitive/Menu.tsx index e74c5889b..5a8234c27 100644 --- a/apps/mobile/src/components/primitive/Menu.tsx +++ b/apps/mobile/src/components/primitive/Menu.tsx @@ -8,6 +8,7 @@ import { Menu as PMenu, renderers } from 'react-native-popup-menu'; + import { tw } from '~/lib/tailwind'; type MenuProps = { diff --git a/apps/mobile/src/components/settings/SettingsContainer.tsx b/apps/mobile/src/components/settings/SettingsContainer.tsx index c24165ece..95434bea5 100644 --- a/apps/mobile/src/components/settings/SettingsContainer.tsx +++ b/apps/mobile/src/components/settings/SettingsContainer.tsx @@ -1,5 +1,6 @@ import { PropsWithChildren } from 'react'; import { Text, View } from 'react-native'; + import { styled, tw } from '~/lib/tailwind'; type SettingsContainerProps = PropsWithChildren<{ diff --git a/apps/mobile/src/components/settings/SettingsItem.tsx b/apps/mobile/src/components/settings/SettingsItem.tsx index a7bfebbe8..ae334d5be 100644 --- a/apps/mobile/src/components/settings/SettingsItem.tsx +++ b/apps/mobile/src/components/settings/SettingsItem.tsx @@ -1,5 +1,6 @@ import { CaretRight, Icon } from 'phosphor-react-native'; import { Pressable, Text, View, ViewStyle } from 'react-native'; + import { tw, twStyle } from '~/lib/tailwind'; type SettingsItemProps = { diff --git a/apps/mobile/src/hooks/useTheme.ts b/apps/mobile/src/hooks/useTheme.ts index c14adb9ab..8e2f36bb6 100644 --- a/apps/mobile/src/hooks/useTheme.ts +++ b/apps/mobile/src/hooks/useTheme.ts @@ -3,6 +3,7 @@ import { Appearance, NativeEventSubscription } from 'react-native'; import { useDeviceContext } from 'twrnc'; import { subscribe } from 'valtio'; import { getThemeStore } from '@sd/client'; + import { changeTwTheme, tw } from '~/lib/tailwind'; export function useTheme() { diff --git a/apps/mobile/src/lib/tailwind.ts b/apps/mobile/src/lib/tailwind.ts index 6d9c37281..145a7f302 100644 --- a/apps/mobile/src/lib/tailwind.ts +++ b/apps/mobile/src/lib/tailwind.ts @@ -1,4 +1,4 @@ -import { Component, ComponentType, ElementType, createElement, forwardRef } from 'react'; +import { Component, ComponentType, createElement, ElementType, forwardRef } from 'react'; import { create } from 'twrnc'; import { Themes } from '@sd/client'; diff --git a/apps/mobile/src/main.tsx b/apps/mobile/src/main.tsx index 6b296d211..5466d3a7b 100644 --- a/apps/mobile/src/main.tsx +++ b/apps/mobile/src/main.tsx @@ -1,9 +1,11 @@ import AsyncStorage from '@react-native-async-storage/async-storage'; + import 'event-target-polyfill'; + import * as SplashScreen from 'expo-splash-screen'; -import { Suspense, lazy } from 'react'; -import { Platform } from 'react-native'; -import { Dimensions } from 'react-native'; +import { lazy, Suspense } from 'react'; +import { Dimensions, Platform } from 'react-native'; + import { reactNativeLink } from './lib/rspcReactNativeTransport'; // Enable the splash screen diff --git a/apps/mobile/src/navigation/DrawerNavigator.tsx b/apps/mobile/src/navigation/DrawerNavigator.tsx index 8960ec6bb..36cba8eff 100644 --- a/apps/mobile/src/navigation/DrawerNavigator.tsx +++ b/apps/mobile/src/navigation/DrawerNavigator.tsx @@ -1,6 +1,7 @@ -import { DrawerScreenProps, createDrawerNavigator } from '@react-navigation/drawer'; +import { createDrawerNavigator, DrawerScreenProps } from '@react-navigation/drawer'; import { CompositeScreenProps, NavigatorScreenParams } from '@react-navigation/native'; import { StackScreenProps } from '@react-navigation/stack'; + import DrawerContent from '~/components/drawer/DrawerContent'; import { tw } from '~/lib/tailwind'; import type { RootStackParamList } from '.'; diff --git a/apps/mobile/src/navigation/LinkingConfiguration.ts b/apps/mobile/src/navigation/LinkingConfiguration.ts index 68fd12cd1..215e73003 100644 --- a/apps/mobile/src/navigation/LinkingConfiguration.ts +++ b/apps/mobile/src/navigation/LinkingConfiguration.ts @@ -1,5 +1,6 @@ import { LinkingOptions } from '@react-navigation/native'; import * as Linking from 'expo-linking'; + import { RootStackParamList } from '.'; /** diff --git a/apps/mobile/src/navigation/OnboardingNavigator.tsx b/apps/mobile/src/navigation/OnboardingNavigator.tsx index 3a1f763c2..58ae8ee32 100644 --- a/apps/mobile/src/navigation/OnboardingNavigator.tsx +++ b/apps/mobile/src/navigation/OnboardingNavigator.tsx @@ -1,9 +1,10 @@ -import { StackScreenProps, createStackNavigator } from '@react-navigation/stack'; +import { createStackNavigator, StackScreenProps } from '@react-navigation/stack'; + +import { OnboardingContext, useContextValue } from '~/screens/onboarding/context'; import CreatingLibraryScreen from '~/screens/onboarding/CreatingLibrary'; import GetStartedScreen from '~/screens/onboarding/GetStarted'; import NewLibraryScreen from '~/screens/onboarding/NewLibrary'; import PrivacyScreen from '~/screens/onboarding/Privacy'; -import { OnboardingContext, useContextValue } from '~/screens/onboarding/context'; const OnboardingStack = createStackNavigator(); diff --git a/apps/mobile/src/navigation/SettingsNavigator.tsx b/apps/mobile/src/navigation/SettingsNavigator.tsx index dc93c6644..885147dd0 100644 --- a/apps/mobile/src/navigation/SettingsNavigator.tsx +++ b/apps/mobile/src/navigation/SettingsNavigator.tsx @@ -1,6 +1,6 @@ -import { StackScreenProps, createStackNavigator } from '@react-navigation/stack'; +import { createStackNavigator, StackScreenProps } from '@react-navigation/stack'; + import { tw } from '~/lib/tailwind'; -import SettingsScreen from '~/screens/settings/Settings'; import AppearanceSettingsScreen from '~/screens/settings/client/AppearanceSettings'; import ExtensionsSettingsScreen from '~/screens/settings/client/ExtensionsSettings'; import GeneralSettingsScreen from '~/screens/settings/client/GeneralSettings'; @@ -15,6 +15,7 @@ import LibraryGeneralSettingsScreen from '~/screens/settings/library/LibraryGene import LocationSettingsScreen from '~/screens/settings/library/LocationSettings'; import NodesSettingsScreen from '~/screens/settings/library/NodesSettings'; import TagsSettingsScreen from '~/screens/settings/library/TagsSettings'; +import SettingsScreen from '~/screens/settings/Settings'; const SettingsStack = createStackNavigator(); diff --git a/apps/mobile/src/navigation/SharedScreens.tsx b/apps/mobile/src/navigation/SharedScreens.tsx index bf564e448..ca3bc96f6 100644 --- a/apps/mobile/src/navigation/SharedScreens.tsx +++ b/apps/mobile/src/navigation/SharedScreens.tsx @@ -4,6 +4,7 @@ import { StackNavigationOptions, StackScreenProps } from '@react-navigation/stack'; + import LocationScreen from '~/screens/Location'; import TagScreen from '~/screens/Tag'; diff --git a/apps/mobile/src/navigation/TabNavigator.tsx b/apps/mobile/src/navigation/TabNavigator.tsx index de36c38a9..c4678103f 100644 --- a/apps/mobile/src/navigation/TabNavigator.tsx +++ b/apps/mobile/src/navigation/TabNavigator.tsx @@ -1,6 +1,7 @@ import { BottomTabScreenProps, createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { CompositeScreenProps, NavigatorScreenParams } from '@react-navigation/native'; import { Broadcast, CirclesFour, Planet } from 'phosphor-react-native'; + import { tw } from '~/lib/tailwind'; import type { HomeDrawerScreenProps } from './DrawerNavigator'; import OverviewStack, { OverviewStackParamList } from './tabs/OverviewStack'; diff --git a/apps/mobile/src/navigation/index.tsx b/apps/mobile/src/navigation/index.tsx index f9d7fb21e..bb6459fb4 100644 --- a/apps/mobile/src/navigation/index.tsx +++ b/apps/mobile/src/navigation/index.tsx @@ -1,5 +1,6 @@ import { NavigatorScreenParams } from '@react-navigation/native'; -import { StackScreenProps, createStackNavigator } from '@react-navigation/stack'; +import { createStackNavigator, StackScreenProps } from '@react-navigation/stack'; + import { tw } from '~/lib/tailwind'; import NotFoundScreen from '~/screens/NotFound'; import SearchScreen from '~/screens/Search'; diff --git a/apps/mobile/src/navigation/tabs/OverviewStack.tsx b/apps/mobile/src/navigation/tabs/OverviewStack.tsx index 4fa582c25..1bafc990f 100644 --- a/apps/mobile/src/navigation/tabs/OverviewStack.tsx +++ b/apps/mobile/src/navigation/tabs/OverviewStack.tsx @@ -1,5 +1,6 @@ import { CompositeScreenProps } from '@react-navigation/native'; -import { StackScreenProps, createStackNavigator } from '@react-navigation/stack'; +import { createStackNavigator, StackScreenProps } from '@react-navigation/stack'; + import Header from '~/components/header/Header'; import { tw } from '~/lib/tailwind'; import OverviewScreen from '../../screens/Overview'; diff --git a/apps/mobile/src/navigation/tabs/SpacedropStack.tsx b/apps/mobile/src/navigation/tabs/SpacedropStack.tsx index d18e39e70..c37b3c02f 100644 --- a/apps/mobile/src/navigation/tabs/SpacedropStack.tsx +++ b/apps/mobile/src/navigation/tabs/SpacedropStack.tsx @@ -1,5 +1,6 @@ import { CompositeScreenProps } from '@react-navigation/native'; -import { StackScreenProps, createStackNavigator } from '@react-navigation/stack'; +import { createStackNavigator, StackScreenProps } from '@react-navigation/stack'; + import Header from '~/components/header/Header'; import { tw } from '~/lib/tailwind'; import SpacedropScreen from '~/screens/Spacedrop'; diff --git a/apps/mobile/src/navigation/tabs/SpacesStack.tsx b/apps/mobile/src/navigation/tabs/SpacesStack.tsx index 2166031a3..1946054c6 100644 --- a/apps/mobile/src/navigation/tabs/SpacesStack.tsx +++ b/apps/mobile/src/navigation/tabs/SpacesStack.tsx @@ -1,5 +1,6 @@ import { CompositeScreenProps } from '@react-navigation/native'; -import { StackScreenProps, createStackNavigator } from '@react-navigation/stack'; +import { createStackNavigator, StackScreenProps } from '@react-navigation/stack'; + import Header from '~/components/header/Header'; import { tw } from '~/lib/tailwind'; import SpacesScreen from '../../screens/Spaces'; diff --git a/apps/mobile/src/screens/Location.tsx b/apps/mobile/src/screens/Location.tsx index 43b8df4b9..103f717f4 100644 --- a/apps/mobile/src/screens/Location.tsx +++ b/apps/mobile/src/screens/Location.tsx @@ -1,5 +1,6 @@ import { useEffect } from 'react'; import { useLibraryQuery } from '@sd/client'; + import Explorer from '~/components/explorer/Explorer'; import { SharedScreenProps } from '~/navigation/SharedScreens'; import { getExplorerStore } from '~/stores/explorerStore'; diff --git a/apps/mobile/src/screens/NotFound.tsx b/apps/mobile/src/screens/NotFound.tsx index c1014685d..89a1ebbc3 100644 --- a/apps/mobile/src/screens/NotFound.tsx +++ b/apps/mobile/src/screens/NotFound.tsx @@ -1,4 +1,5 @@ import { Text, TouchableOpacity, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { RootStackScreenProps } from '~/navigation'; diff --git a/apps/mobile/src/screens/Overview.tsx b/apps/mobile/src/screens/Overview.tsx index 962c231e4..ec06a1183 100644 --- a/apps/mobile/src/screens/Overview.tsx +++ b/apps/mobile/src/screens/Overview.tsx @@ -1,4 +1,5 @@ import { View } from 'react-native'; + import VirtualizedListWrapper from '~/components/layout/VirtualizedListWrapper'; import OverviewStats from '~/components/overview/OverviewStats'; import { tw } from '~/lib/tailwind'; diff --git a/apps/mobile/src/screens/Search.tsx b/apps/mobile/src/screens/Search.tsx index 8526a8d55..8fefb6882 100644 --- a/apps/mobile/src/screens/Search.tsx +++ b/apps/mobile/src/screens/Search.tsx @@ -3,6 +3,7 @@ import { Suspense, useDeferredValue, useMemo, useState } from 'react'; import { ActivityIndicator, Pressable, Text, TextInput, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { getExplorerItemData, useLibraryQuery } from '@sd/client'; + import Explorer from '~/components/explorer/Explorer'; import { tw, twStyle } from '~/lib/tailwind'; import { RootStackScreenProps } from '~/navigation'; diff --git a/apps/mobile/src/screens/Spacedrop.tsx b/apps/mobile/src/screens/Spacedrop.tsx index 2eb9cb97f..d0e5ba4e8 100644 --- a/apps/mobile/src/screens/Spacedrop.tsx +++ b/apps/mobile/src/screens/Spacedrop.tsx @@ -1,7 +1,8 @@ -import { GoogleDrive, Mega, iCloud } from '@sd/assets/images'; +import { GoogleDrive, iCloud, Mega } from '@sd/assets/images'; import { DeviceMobile, Icon, Laptop, User } from 'phosphor-react-native'; import { Alert, Image, ImageSourcePropType, Pressable, ScrollView, Text, View } from 'react-native'; import { Polygon, Svg } from 'react-native-svg'; + import { InfoPill } from '~/components/primitive/InfoPill'; import { tw, twStyle } from '~/lib/tailwind'; import { SpacedropStackScreenProps } from '~/navigation/tabs/SpacedropStack'; diff --git a/apps/mobile/src/screens/Spaces.tsx b/apps/mobile/src/screens/Spaces.tsx index c5c7efb70..bcc61baff 100644 --- a/apps/mobile/src/screens/Spaces.tsx +++ b/apps/mobile/src/screens/Spaces.tsx @@ -1,4 +1,5 @@ import { Text, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { SpacesStackScreenProps } from '~/navigation/tabs/SpacesStack'; diff --git a/apps/mobile/src/screens/Tag.tsx b/apps/mobile/src/screens/Tag.tsx index 714e10f50..5444f211e 100644 --- a/apps/mobile/src/screens/Tag.tsx +++ b/apps/mobile/src/screens/Tag.tsx @@ -1,5 +1,6 @@ import { useEffect } from 'react'; import { useLibraryQuery } from '@sd/client'; + import Explorer from '~/components/explorer/Explorer'; import { SharedScreenProps } from '~/navigation/SharedScreens'; diff --git a/apps/mobile/src/screens/onboarding/CreatingLibrary.tsx b/apps/mobile/src/screens/onboarding/CreatingLibrary.tsx index 988749352..9e86caa68 100644 --- a/apps/mobile/src/screens/onboarding/CreatingLibrary.tsx +++ b/apps/mobile/src/screens/onboarding/CreatingLibrary.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Text } from 'react-native'; + import { PulseAnimation } from '~/components/animation/lottie'; import { tw } from '~/lib/tailwind'; import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './GetStarted'; diff --git a/apps/mobile/src/screens/onboarding/GetStarted.tsx b/apps/mobile/src/screens/onboarding/GetStarted.tsx index 53c7b5630..2f32ee1bb 100644 --- a/apps/mobile/src/screens/onboarding/GetStarted.tsx +++ b/apps/mobile/src/screens/onboarding/GetStarted.tsx @@ -1,10 +1,11 @@ -import { AppLogo, BloomOne } from '@sd/assets/images'; import { useNavigation, useRoute } from '@react-navigation/native'; +import { AppLogo, BloomOne } from '@sd/assets/images'; import { MotiView } from 'moti'; import { CaretLeft } from 'phosphor-react-native'; import { Image, KeyboardAvoidingView, Platform, Pressable, Text, View } from 'react-native'; import Animated from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; + import { FadeInUpAnimation, LogoAnimation } from '~/components/animation/layout'; import { AnimatedButton } from '~/components/primitive/Button'; import { styled, tw, twStyle } from '~/lib/tailwind'; diff --git a/apps/mobile/src/screens/onboarding/NewLibrary.tsx b/apps/mobile/src/screens/onboarding/NewLibrary.tsx index 0f293e21e..813a3f5bd 100644 --- a/apps/mobile/src/screens/onboarding/NewLibrary.tsx +++ b/apps/mobile/src/screens/onboarding/NewLibrary.tsx @@ -1,12 +1,13 @@ import { Database } from '@sd/assets/icons'; import { Controller } from 'react-hook-form'; import { Alert, Image, Text, View } from 'react-native'; + import { Input } from '~/components/form/Input'; import { Button } from '~/components/primitive/Button'; import { tw } from '~/lib/tailwind'; import { OnboardingStackScreenProps } from '~/navigation/OnboardingNavigator'; -import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './GetStarted'; import { useOnboardingContext } from './context'; +import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './GetStarted'; const NewLibraryScreen = ({ navigation }: OnboardingStackScreenProps<'NewLibrary'>) => { const form = useOnboardingContext().forms.useForm('NewLibrary'); diff --git a/apps/mobile/src/screens/onboarding/Privacy.tsx b/apps/mobile/src/screens/onboarding/Privacy.tsx index 7055988ba..373187020 100644 --- a/apps/mobile/src/screens/onboarding/Privacy.tsx +++ b/apps/mobile/src/screens/onboarding/Privacy.tsx @@ -1,11 +1,12 @@ import React from 'react'; import { Controller } from 'react-hook-form'; import { Pressable, Text, View, ViewStyle } from 'react-native'; + import { Button } from '~/components/primitive/Button'; import { tw, twStyle } from '~/lib/tailwind'; import { OnboardingStackScreenProps } from '~/navigation/OnboardingNavigator'; -import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './GetStarted'; import { useOnboardingContext } from './context'; +import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './GetStarted'; type RadioButtonProps = { title: string; diff --git a/apps/mobile/src/screens/onboarding/context.tsx b/apps/mobile/src/screens/onboarding/context.tsx index 569e6aead..a9a6e12d6 100644 --- a/apps/mobile/src/screens/onboarding/context.tsx +++ b/apps/mobile/src/screens/onboarding/context.tsx @@ -13,6 +13,7 @@ import { useOnboardingStore, usePlausibleEvent } from '@sd/client'; + import { OnboardingStackScreenProps } from '~/navigation/OnboardingNavigator'; import { currentLibraryStore } from '~/utils/nav'; diff --git a/apps/mobile/src/screens/settings/Settings.tsx b/apps/mobile/src/screens/settings/Settings.tsx index d4eb74de8..474e4cac7 100644 --- a/apps/mobile/src/screens/settings/Settings.tsx +++ b/apps/mobile/src/screens/settings/Settings.tsx @@ -15,6 +15,7 @@ import { import React from 'react'; import { SectionList, Text, TouchableWithoutFeedback, View } from 'react-native'; import { DebugState, useDebugState, useDebugStateEnabler } from '@sd/client'; + import { SettingsItem, SettingsItemDivider } from '~/components/settings/SettingsItem'; import { tw, twStyle } from '~/lib/tailwind'; import { SettingsStackParamList, SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/client/AppearanceSettings.tsx b/apps/mobile/src/screens/settings/client/AppearanceSettings.tsx index 308c22936..4e1a39652 100644 --- a/apps/mobile/src/screens/settings/client/AppearanceSettings.tsx +++ b/apps/mobile/src/screens/settings/client/AppearanceSettings.tsx @@ -2,6 +2,7 @@ import { CheckCircle } from 'phosphor-react-native'; import React, { useState } from 'react'; import { ColorValue, Pressable, ScrollView, Text, View, ViewStyle } from 'react-native'; import { Themes, useThemeStore } from '@sd/client'; + import { SettingsTitle } from '~/components/settings/SettingsContainer'; import Colors from '~/constants/style/Colors'; import { tw, twStyle } from '~/lib/tailwind'; diff --git a/apps/mobile/src/screens/settings/client/ExtensionsSettings.tsx b/apps/mobile/src/screens/settings/client/ExtensionsSettings.tsx index 6e01eed8f..1d4a44e5e 100644 --- a/apps/mobile/src/screens/settings/client/ExtensionsSettings.tsx +++ b/apps/mobile/src/screens/settings/client/ExtensionsSettings.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Text, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/client/GeneralSettings.tsx b/apps/mobile/src/screens/settings/client/GeneralSettings.tsx index 76a481fdd..3a382e311 100644 --- a/apps/mobile/src/screens/settings/client/GeneralSettings.tsx +++ b/apps/mobile/src/screens/settings/client/GeneralSettings.tsx @@ -1,5 +1,6 @@ import { Text, View } from 'react-native'; import { useBridgeQuery, useDebugState } from '@sd/client'; + import { Input } from '~/components/form/Input'; import Card from '~/components/layout/Card'; import { Divider } from '~/components/primitive/Divider'; diff --git a/apps/mobile/src/screens/settings/client/LibrarySettings.tsx b/apps/mobile/src/screens/settings/client/LibrarySettings.tsx index a136462ea..f7a11397d 100644 --- a/apps/mobile/src/screens/settings/client/LibrarySettings.tsx +++ b/apps/mobile/src/screens/settings/client/LibrarySettings.tsx @@ -3,6 +3,7 @@ import React, { useEffect, useRef } from 'react'; import { Animated, FlatList, Text, View } from 'react-native'; import { Swipeable } from 'react-native-gesture-handler'; import { LibraryConfigWrapped, useBridgeQuery } from '@sd/client'; + import { ModalRef } from '~/components/layout/Modal'; import DeleteLibraryModal from '~/components/modal/confirmModals/DeleteLibraryModal'; import { AnimatedButton, FakeButton } from '~/components/primitive/Button'; diff --git a/apps/mobile/src/screens/settings/client/PrivacySettings.tsx b/apps/mobile/src/screens/settings/client/PrivacySettings.tsx index 693e0ff29..1aacde339 100644 --- a/apps/mobile/src/screens/settings/client/PrivacySettings.tsx +++ b/apps/mobile/src/screens/settings/client/PrivacySettings.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Text, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/info/About.tsx b/apps/mobile/src/screens/settings/info/About.tsx index c188235e2..91646e55f 100644 --- a/apps/mobile/src/screens/settings/info/About.tsx +++ b/apps/mobile/src/screens/settings/info/About.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Text, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/info/Debug.tsx b/apps/mobile/src/screens/settings/info/Debug.tsx index 0db4d0ac0..e218ed4ae 100644 --- a/apps/mobile/src/screens/settings/info/Debug.tsx +++ b/apps/mobile/src/screens/settings/info/Debug.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { Text, View } from 'react-native'; import { getDebugState, toggleFeatureFlag, useDebugState, useFeatureFlags } from '@sd/client'; + import Card from '~/components/layout/Card'; import { Button } from '~/components/primitive/Button'; import { tw } from '~/lib/tailwind'; diff --git a/apps/mobile/src/screens/settings/info/Support.tsx b/apps/mobile/src/screens/settings/info/Support.tsx index 07c5950b7..17403c27b 100644 --- a/apps/mobile/src/screens/settings/info/Support.tsx +++ b/apps/mobile/src/screens/settings/info/Support.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Text, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/library/EditLocationSettings.tsx b/apps/mobile/src/screens/settings/library/EditLocationSettings.tsx index 2f1a28c14..610166497 100644 --- a/apps/mobile/src/screens/settings/library/EditLocationSettings.tsx +++ b/apps/mobile/src/screens/settings/library/EditLocationSettings.tsx @@ -5,6 +5,7 @@ import { Controller } from 'react-hook-form'; import { Alert, ScrollView, Text, View } from 'react-native'; import { z } from 'zod'; import { useLibraryMutation, useLibraryQuery, useZodForm } from '@sd/client'; + import { Input } from '~/components/form/Input'; import { Switch } from '~/components/form/Switch'; import DeleteLocationModal from '~/components/modal/confirmModals/DeleteLocationModal'; diff --git a/apps/mobile/src/screens/settings/library/KeysSettings.tsx b/apps/mobile/src/screens/settings/library/KeysSettings.tsx index 0cc4e91e1..a10290ad4 100644 --- a/apps/mobile/src/screens/settings/library/KeysSettings.tsx +++ b/apps/mobile/src/screens/settings/library/KeysSettings.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Text, View } from 'react-native'; + import { tw } from '~/lib/tailwind'; import { SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/library/LibraryGeneralSettings.tsx b/apps/mobile/src/screens/settings/library/LibraryGeneralSettings.tsx index 12f3c36e3..2bf256b53 100644 --- a/apps/mobile/src/screens/settings/library/LibraryGeneralSettings.tsx +++ b/apps/mobile/src/screens/settings/library/LibraryGeneralSettings.tsx @@ -4,6 +4,7 @@ import { Controller } from 'react-hook-form'; import { Alert, View } from 'react-native'; import { z } from 'zod'; import { useBridgeMutation, useLibraryContext, useZodForm } from '@sd/client'; + import { Input } from '~/components/form/Input'; import { Switch } from '~/components/form/Switch'; import DeleteLibraryModal from '~/components/modal/confirmModals/DeleteLibraryModal'; diff --git a/apps/mobile/src/screens/settings/library/LocationSettings.tsx b/apps/mobile/src/screens/settings/library/LocationSettings.tsx index db1a7f313..5be350e67 100644 --- a/apps/mobile/src/screens/settings/library/LocationSettings.tsx +++ b/apps/mobile/src/screens/settings/library/LocationSettings.tsx @@ -3,16 +3,17 @@ import { useEffect, useRef } from 'react'; import { Animated, FlatList, Pressable, Text, View } from 'react-native'; import { Swipeable } from 'react-native-gesture-handler'; import { - Location, arraysEqual, + Location, useLibraryMutation, useLibraryQuery, useOnlineLocations } from '@sd/client'; + import FolderIcon from '~/components/icons/FolderIcon'; import { ModalRef } from '~/components/layout/Modal'; -import ImportModal from '~/components/modal/ImportModal'; import DeleteLocationModal from '~/components/modal/confirmModals/DeleteLocationModal'; +import ImportModal from '~/components/modal/ImportModal'; import { AnimatedButton } from '~/components/primitive/Button'; import { tw, twStyle } from '~/lib/tailwind'; import { SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/library/NodesSettings.tsx b/apps/mobile/src/screens/settings/library/NodesSettings.tsx index a214e91d2..e4afc4e31 100644 --- a/apps/mobile/src/screens/settings/library/NodesSettings.tsx +++ b/apps/mobile/src/screens/settings/library/NodesSettings.tsx @@ -1,6 +1,7 @@ import React from 'react'; import { Text, View } from 'react-native'; import { isEnabled, useBridgeMutation, useDiscoveredPeers } from '@sd/client'; + import { Button } from '~/components/primitive/Button'; import { tw } from '~/lib/tailwind'; import { SettingsStackScreenProps } from '~/navigation/SettingsNavigator'; diff --git a/apps/mobile/src/screens/settings/library/TagsSettings.tsx b/apps/mobile/src/screens/settings/library/TagsSettings.tsx index f6d45fca1..a0e25da17 100644 --- a/apps/mobile/src/screens/settings/library/TagsSettings.tsx +++ b/apps/mobile/src/screens/settings/library/TagsSettings.tsx @@ -3,6 +3,7 @@ import { useEffect, useRef } from 'react'; import { Animated, FlatList, Text, View } from 'react-native'; import { Swipeable } from 'react-native-gesture-handler'; import { Tag, useLibraryQuery } from '@sd/client'; + import { ModalRef } from '~/components/layout/Modal'; import DeleteTagModal from '~/components/modal/confirmModals/DeleteTagModal'; import CreateTagModal from '~/components/modal/tag/CreateTagModal'; diff --git a/apps/mobile/src/stores/modalStore.ts b/apps/mobile/src/stores/modalStore.ts index c3e332e59..f9be04443 100644 --- a/apps/mobile/src/stores/modalStore.ts +++ b/apps/mobile/src/stores/modalStore.ts @@ -1,6 +1,7 @@ import { createRef } from 'react'; import { proxy, ref, useSnapshot } from 'valtio'; import { ExplorerItem } from '@sd/client'; + import { ModalRef } from '~/components/layout/Modal'; export const actionsModalStore = proxy({ diff --git a/apps/mobile/src/utils/nav.ts b/apps/mobile/src/utils/nav.ts index 422544c76..29c802c57 100644 --- a/apps/mobile/src/utils/nav.ts +++ b/apps/mobile/src/utils/nav.ts @@ -1,8 +1,8 @@ import { DrawerNavigationState, + getFocusedRouteNameFromRoute, ParamListBase, - Route, - getFocusedRouteNameFromRoute + Route } from '@react-navigation/native'; import { valtioPersist } from '@sd/client'; diff --git a/apps/storybook/.storybook/preview.ts b/apps/storybook/.storybook/preview.ts index 03800253d..1384b87e1 100644 --- a/apps/storybook/.storybook/preview.ts +++ b/apps/storybook/.storybook/preview.ts @@ -1,4 +1,5 @@ import type { Preview } from '@storybook/react'; + import '@sd/ui/style'; const preview: Preview = { diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index 4a42f1447..776fbc5cc 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -1,8 +1,9 @@ -import { QueryClient, QueryClientProvider, hydrate } from '@tanstack/react-query'; +import { hydrate, QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { useEffect } from 'react'; import { createBrowserRouter } from 'react-router-dom'; import { RspcProvider } from '@sd/client'; -import { Platform, PlatformProvider, SpacedriveInterface, routes } from '@sd/interface'; +import { Platform, PlatformProvider, routes, SpacedriveInterface } from '@sd/interface'; + import demoData from './demoData.json'; // TODO: Restore this once TS is back up to functionality in rspc. diff --git a/apps/web/src/index.tsx b/apps/web/src/index.tsx index 480202f9d..fd460a22c 100644 --- a/apps/web/src/index.tsx +++ b/apps/web/src/index.tsx @@ -1,8 +1,10 @@ // WARNING: BE CAREFUL SAVING THIS FILE WITH A FORMATTER ENABLED. The import order is important and goes against prettier's recommendations. import React, { Suspense } from 'react'; import ReactDOM from 'react-dom/client'; + import '@sd/ui/style'; import '~/patches'; + import App from './App'; const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts index a620efa1f..4e8cab88b 100644 --- a/apps/web/vite.config.ts +++ b/apps/web/vite.config.ts @@ -1,5 +1,6 @@ import { visualizer } from 'rollup-plugin-visualizer'; import { mergeConfig } from 'vite'; + import baseConfig from '../../packages/config/vite'; export default mergeConfig(baseConfig, { diff --git a/interface/ErrorFallback.tsx b/interface/ErrorFallback.tsx index 733e75758..75f0dc558 100644 --- a/interface/ErrorFallback.tsx +++ b/interface/ErrorFallback.tsx @@ -3,6 +3,7 @@ import { FallbackProps } from 'react-error-boundary'; import { useRouteError } from 'react-router'; import { useDebugState } from '@sd/client'; import { Button, Dialogs } from '@sd/ui'; + import { showAlertDialog } from './components'; import { useOperatingSystem, useTheme } from './hooks'; diff --git a/interface/app/$libraryId/Explorer/Context.tsx b/interface/app/$libraryId/Explorer/Context.tsx index 8677a4e54..571820144 100644 --- a/interface/app/$libraryId/Explorer/Context.tsx +++ b/interface/app/$libraryId/Explorer/Context.tsx @@ -1,4 +1,5 @@ -import { PropsWithChildren, createContext, useContext } from 'react'; +import { createContext, PropsWithChildren, useContext } from 'react'; + import { Ordering } from './store'; import { UseExplorer } from './useExplorer'; diff --git a/interface/app/$libraryId/Explorer/ContextMenu/FilePath/CutCopyItems.tsx b/interface/app/$libraryId/Explorer/ContextMenu/FilePath/CutCopyItems.tsx index c7072cc04..f310562b1 100644 --- a/interface/app/$libraryId/Explorer/ContextMenu/FilePath/CutCopyItems.tsx +++ b/interface/app/$libraryId/Explorer/ContextMenu/FilePath/CutCopyItems.tsx @@ -1,6 +1,7 @@ -import { Copy, Scissors } from 'phosphor-react'; +import { Copy, Scissors } from '@phosphor-icons/react'; import { useLibraryMutation } from '@sd/client'; import { ContextMenu, ModifierKeys, toast } from '@sd/ui'; + import { useKeybindFactory } from '~/hooks/useKeybindFactory'; import { isNonEmpty } from '~/util'; import { useExplorerContext } from '../../Context'; diff --git a/interface/app/$libraryId/Explorer/ContextMenu/FilePath/Items.tsx b/interface/app/$libraryId/Explorer/ContextMenu/FilePath/Items.tsx index ee1d9e960..ed51277c4 100644 --- a/interface/app/$libraryId/Explorer/ContextMenu/FilePath/Items.tsx +++ b/interface/app/$libraryId/Explorer/ContextMenu/FilePath/Items.tsx @@ -1,6 +1,7 @@ -import { Image, Package, Trash, TrashSimple } from 'phosphor-react'; +import { Image, Package, Trash, TrashSimple } from '@phosphor-icons/react'; import { libraryClient, useLibraryContext, useLibraryMutation } from '@sd/client'; -import { ContextMenu, ModifierKeys, dialogManager, toast } from '@sd/ui'; +import { ContextMenu, dialogManager, ModifierKeys, toast } from '@sd/ui'; + import { Menu } from '~/components/Menu'; import { useKeybindFactory } from '~/hooks/useKeybindFactory'; import { isNonEmpty } from '~/util'; diff --git a/interface/app/$libraryId/Explorer/ContextMenu/FilePath/OpenWith.tsx b/interface/app/$libraryId/Explorer/ContextMenu/FilePath/OpenWith.tsx index 537bc2dfb..0a87006c4 100644 --- a/interface/app/$libraryId/Explorer/ContextMenu/FilePath/OpenWith.tsx +++ b/interface/app/$libraryId/Explorer/ContextMenu/FilePath/OpenWith.tsx @@ -2,6 +2,7 @@ import { useQuery } from '@tanstack/react-query'; import { Suspense } from 'react'; import { useLibraryContext } from '@sd/client'; import { toast } from '@sd/ui'; + import { Menu } from '~/components/Menu'; import { Platform, usePlatform } from '~/util/Platform'; import { ConditionalItem } from '../ConditionalItem'; diff --git a/interface/app/$libraryId/Explorer/ContextMenu/Object/Items.tsx b/interface/app/$libraryId/Explorer/ContextMenu/Object/Items.tsx index 719b3ed98..140789f4d 100644 --- a/interface/app/$libraryId/Explorer/ContextMenu/Object/Items.tsx +++ b/interface/app/$libraryId/Explorer/ContextMenu/Object/Items.tsx @@ -1,7 +1,8 @@ -import { ArrowBendUpRight, TagSimple } from 'phosphor-react'; +import { ArrowBendUpRight, TagSimple } from '@phosphor-icons/react'; import { useMemo } from 'react'; -import { ObjectKind, type ObjectKindEnum, useLibraryMutation } from '@sd/client'; +import { ObjectKind, useLibraryMutation, type ObjectKindEnum } from '@sd/client'; import { ContextMenu, toast } from '@sd/ui'; + import AssignTagMenuItems from '~/components/AssignTagMenuItems'; import { Menu } from '~/components/Menu'; import { isNonEmpty } from '~/util'; @@ -84,9 +85,7 @@ export const ConvertObject = new ConditionalItem({ }, Component: ({ kind }) => ( - {ObjectConversions[kind]?.map((ext) => ( - - ))} + {ObjectConversions[kind]?.map((ext) => )} ) }); diff --git a/interface/app/$libraryId/Explorer/ContextMenu/SharedItems.tsx b/interface/app/$libraryId/Explorer/ContextMenu/SharedItems.tsx index 5514dc78e..ea8be9e11 100644 --- a/interface/app/$libraryId/Explorer/ContextMenu/SharedItems.tsx +++ b/interface/app/$libraryId/Explorer/ContextMenu/SharedItems.tsx @@ -1,6 +1,7 @@ -import { FileX, Share as ShareIcon } from 'phosphor-react'; +import { FileX, Share as ShareIcon } from '@phosphor-icons/react'; import { useMemo } from 'react'; import { ContextMenu, ModifierKeys } from '@sd/ui'; + import { Menu } from '~/components/Menu'; import { useKeybindFactory } from '~/hooks/useKeybindFactory'; import { isNonEmpty } from '~/util'; @@ -8,8 +9,8 @@ import { type Platform } from '~/util/Platform'; import { useExplorerContext } from '../Context'; import { getQuickPreviewStore } from '../QuickPreview/store'; import { RevealInNativeExplorerBase } from '../RevealInNativeExplorer'; -import { useExplorerViewContext } from '../ViewContext'; import { getExplorerStore, useExplorerStore } from '../store'; +import { useExplorerViewContext } from '../ViewContext'; import { ConditionalItem } from './ConditionalItem'; import { useContextMenuContext } from './context'; diff --git a/interface/app/$libraryId/Explorer/ContextMenu/context.tsx b/interface/app/$libraryId/Explorer/ContextMenu/context.tsx index dd61bdc21..52409c763 100644 --- a/interface/app/$libraryId/Explorer/ContextMenu/context.tsx +++ b/interface/app/$libraryId/Explorer/ContextMenu/context.tsx @@ -1,5 +1,6 @@ -import { PropsWithChildren, createContext, useContext } from 'react'; +import { createContext, PropsWithChildren, useContext } from 'react'; import { ExplorerItem, FilePath, Object, useItemsAsFilePaths, useItemsAsObjects } from '@sd/client'; + import { NonEmptyArray } from '~/util'; const ContextMenuContext = createContext<{ diff --git a/interface/app/$libraryId/Explorer/ContextMenu/index.tsx b/interface/app/$libraryId/Explorer/ContextMenu/index.tsx index 5afeb902c..29e286ea3 100644 --- a/interface/app/$libraryId/Explorer/ContextMenu/index.tsx +++ b/interface/app/$libraryId/Explorer/ContextMenu/index.tsx @@ -1,14 +1,15 @@ -import { Plus } from 'phosphor-react'; -import { type PropsWithChildren, useMemo } from 'react'; +import { Plus } from '@phosphor-icons/react'; +import { useMemo, type PropsWithChildren } from 'react'; import { ExplorerItem } from '@sd/client'; import { ContextMenu } from '@sd/ui'; + import { isNonEmpty } from '~/util'; import { useExplorerContext } from '../Context'; import { Conditional, type ConditionalGroupProps } from './ConditionalItem'; +import { ContextMenuContextProvider } from './context'; import * as FilePathItems from './FilePath/Items'; import * as ObjectItems from './Object/Items'; import * as SharedItems from './SharedItems'; -import { ContextMenuContextProvider } from './context'; export * as FilePathItems from './FilePath/Items'; export * as ObjectItems from './Object/Items'; diff --git a/interface/app/$libraryId/Explorer/CopyAsPath.tsx b/interface/app/$libraryId/Explorer/CopyAsPath.tsx index 9bc68f338..9be8d9e3f 100644 --- a/interface/app/$libraryId/Explorer/CopyAsPath.tsx +++ b/interface/app/$libraryId/Explorer/CopyAsPath.tsx @@ -1,5 +1,6 @@ -import { ClipboardText } from 'phosphor-react'; +import { ClipboardText } from '@phosphor-icons/react'; import { toast } from '@sd/ui'; + import { Menu } from '~/components/Menu'; export const CopyAsPathBase = ( diff --git a/interface/app/$libraryId/Explorer/DismissibleNotice.tsx b/interface/app/$libraryId/Explorer/DismissibleNotice.tsx index b8b2afb03..d2d357de4 100644 --- a/interface/app/$libraryId/Explorer/DismissibleNotice.tsx +++ b/interface/app/$libraryId/Explorer/DismissibleNotice.tsx @@ -8,6 +8,7 @@ import { } from '@sd/assets/icons'; import { ReactNode } from 'react'; import { ExplorerLayout } from '@sd/client'; + import DismissibleNotice from '~/components/DismissibleNotice'; import { useIsDark } from '~/hooks'; import { dismissibleNoticeStore } from '~/hooks/useDismissibleNoticeStore'; diff --git a/interface/app/$libraryId/Explorer/FilePath/DecryptDialog.tsx b/interface/app/$libraryId/Explorer/FilePath/DecryptDialog.tsx index 995cee306..0f2cbbc2e 100644 --- a/interface/app/$libraryId/Explorer/FilePath/DecryptDialog.tsx +++ b/interface/app/$libraryId/Explorer/FilePath/DecryptDialog.tsx @@ -1,5 +1,5 @@ // import { RadioGroup } from '@headlessui/react'; -// import { Info } from 'phosphor-react'; +// import { Info } from '@phosphor-icons/react'; // import { useLibraryMutation, useLibraryQuery } from '@sd/client'; // import { Button, Dialog, Tooltip, UseDialogProps, useDialog } from '@sd/ui'; // import { PasswordInput, Switch, useZodForm, z } from '@sd/ui/src/forms'; diff --git a/interface/app/$libraryId/Explorer/FilePath/DeleteDialog.tsx b/interface/app/$libraryId/Explorer/FilePath/DeleteDialog.tsx index 49f50b6d6..21a68cefc 100644 --- a/interface/app/$libraryId/Explorer/FilePath/DeleteDialog.tsx +++ b/interface/app/$libraryId/Explorer/FilePath/DeleteDialog.tsx @@ -1,5 +1,5 @@ import { useLibraryMutation, useZodForm } from '@sd/client'; -import { CheckBox, Dialog, Tooltip, UseDialogProps, useDialog } from '@sd/ui'; +import { CheckBox, Dialog, Tooltip, useDialog, UseDialogProps } from '@sd/ui'; interface Props extends UseDialogProps { locationId: number; diff --git a/interface/app/$libraryId/Explorer/FilePath/EraseDialog.tsx b/interface/app/$libraryId/Explorer/FilePath/EraseDialog.tsx index 68324885d..a063972de 100644 --- a/interface/app/$libraryId/Explorer/FilePath/EraseDialog.tsx +++ b/interface/app/$libraryId/Explorer/FilePath/EraseDialog.tsx @@ -1,6 +1,6 @@ import { useState } from 'react'; import { FilePath, useLibraryMutation, useZodForm } from '@sd/client'; -import { Dialog, Slider, UseDialogProps, useDialog, z } from '@sd/ui'; +import { Dialog, Slider, useDialog, UseDialogProps, z } from '@sd/ui'; interface Props extends UseDialogProps { locationId: number; diff --git a/interface/app/$libraryId/Explorer/FilePath/RenameTextBox.tsx b/interface/app/$libraryId/Explorer/FilePath/RenameTextBox.tsx index fea6a3541..1bccdb5de 100644 --- a/interface/app/$libraryId/Explorer/FilePath/RenameTextBox.tsx +++ b/interface/app/$libraryId/Explorer/FilePath/RenameTextBox.tsx @@ -1,16 +1,17 @@ import clsx from 'clsx'; import { - type ComponentProps, forwardRef, useCallback, useEffect, useImperativeHandle, useRef, - useState + useState, + type ComponentProps } from 'react'; import { useKey } from 'rooks'; import { useLibraryMutation, useRspcLibraryContext } from '@sd/client'; -import { Tooltip, toast } from '@sd/ui'; +import { toast, Tooltip } from '@sd/ui'; + import { useIsTextTruncated, useOperatingSystem } from '~/hooks'; import { useExplorerViewContext } from '../ViewContext'; diff --git a/interface/app/$libraryId/Explorer/FilePath/Thumb.tsx b/interface/app/$libraryId/Explorer/FilePath/Thumb.tsx index 6fe03b2ed..97119d0dc 100644 --- a/interface/app/$libraryId/Explorer/FilePath/Thumb.tsx +++ b/interface/app/$libraryId/Explorer/FilePath/Thumb.tsx @@ -1,22 +1,23 @@ import { getIcon, iconNames } from '@sd/assets/util'; import clsx from 'clsx'; import { - type CSSProperties, - type ImgHTMLAttributes, - type RefObject, - type VideoHTMLAttributes, memo, useEffect, useLayoutEffect, useMemo, useRef, - useState + useState, + type CSSProperties, + type ImgHTMLAttributes, + type RefObject, + type VideoHTMLAttributes } from 'react'; -import { type ExplorerItem, getItemFilePath, useLibraryContext } from '@sd/client'; +import { getItemFilePath, useLibraryContext, type ExplorerItem } from '@sd/client'; + import { PDFViewer, TextViewer } from '~/components'; import { useCallbackToWatchResize, useIsDark } from '~/hooks'; -import { usePlatform } from '~/util/Platform'; import { pdfViewerEnabled } from '~/util/pdfViewer'; +import { usePlatform } from '~/util/Platform'; import { useExplorerContext } from '../Context'; import { getExplorerStore } from '../store'; import { useExplorerItemData } from '../util'; diff --git a/interface/app/$libraryId/Explorer/Inspector/FavoriteButton.tsx b/interface/app/$libraryId/Explorer/Inspector/FavoriteButton.tsx index 2bc25447c..772d1084f 100644 --- a/interface/app/$libraryId/Explorer/Inspector/FavoriteButton.tsx +++ b/interface/app/$libraryId/Explorer/Inspector/FavoriteButton.tsx @@ -1,4 +1,4 @@ -import { Heart } from 'phosphor-react'; +import { Heart } from '@phosphor-icons/react'; import { useEffect, useState } from 'react'; import { Object as SDObject, useLibraryMutation } from '@sd/client'; import { Button } from '@sd/ui'; diff --git a/interface/app/$libraryId/Explorer/Inspector/MediaData.tsx b/interface/app/$libraryId/Explorer/Inspector/MediaData.tsx index 6b48cb6ba..b6dd1cfd4 100644 --- a/interface/app/$libraryId/Explorer/Inspector/MediaData.tsx +++ b/interface/app/$libraryId/Explorer/Inspector/MediaData.tsx @@ -1,4 +1,5 @@ import { MediaLocation, MediaMetadata, MediaTime, Orientation } from '@sd/client'; + import Accordion from '~/components/Accordion'; import { usePlatform } from '~/util/Platform'; import { MetaData } from './index'; diff --git a/interface/app/$libraryId/Explorer/Inspector/Note.tsx b/interface/app/$libraryId/Explorer/Inspector/Note.tsx index dd5958c98..86cc5eddf 100644 --- a/interface/app/$libraryId/Explorer/Inspector/Note.tsx +++ b/interface/app/$libraryId/Explorer/Inspector/Note.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from 'react'; import { useDebouncedCallback } from 'use-debounce'; import { Object as SDObject, useLibraryMutation } from '@sd/client'; import { Divider, TextArea } from '@sd/ui'; + import { MetaContainer, MetaTitle } from '../Inspector'; import { useExplorerStore } from '../store'; diff --git a/interface/app/$libraryId/Explorer/Inspector/index.tsx b/interface/app/$libraryId/Explorer/Inspector/index.tsx index 5c5536c3a..4e45ce710 100644 --- a/interface/app/$libraryId/Explorer/Inspector/index.tsx +++ b/interface/app/$libraryId/Explorer/Inspector/index.tsx @@ -14,28 +14,29 @@ import { Lock, Path, Snowflake -} from 'phosphor-react'; +} from '@phosphor-icons/react'; import { - type HTMLAttributes, - type ReactNode, forwardRef, useCallback, useEffect, useMemo, - useState + useState, + type HTMLAttributes, + type ReactNode } from 'react'; import { - type ExplorerItem, - ObjectKindEnum, byteSize, getExplorerItemData, getItemFilePath, getItemObject, + ObjectKindEnum, useBridgeQuery, useItemsAsObjects, - useLibraryQuery + useLibraryQuery, + type ExplorerItem } from '@sd/client'; import { Button, Divider, DropdownMenu, Tooltip, tw } from '@sd/ui'; + import AssignTagMenuItems from '~/components/AssignTagMenuItems'; import { useIsDark } from '~/hooks'; import { isNonEmpty } from '~/util'; diff --git a/interface/app/$libraryId/Explorer/OptionsPanel.tsx b/interface/app/$libraryId/Explorer/OptionsPanel.tsx index d0732237b..6ad330839 100644 --- a/interface/app/$libraryId/Explorer/OptionsPanel.tsx +++ b/interface/app/$libraryId/Explorer/OptionsPanel.tsx @@ -1,4 +1,5 @@ import { RadixCheckbox, Select, SelectOption, Slider, tw, z } from '@sd/ui'; + import { SortOrderSchema } from '~/app/route-schemas'; import { useExplorerContext } from './Context'; import { diff --git a/interface/app/$libraryId/Explorer/ParentContextMenu.tsx b/interface/app/$libraryId/Explorer/ParentContextMenu.tsx index 543788493..3306f3147 100644 --- a/interface/app/$libraryId/Explorer/ParentContextMenu.tsx +++ b/interface/app/$libraryId/Explorer/ParentContextMenu.tsx @@ -1,7 +1,8 @@ -import { Clipboard, FileX, Image, Plus, Repeat, Share, ShieldCheck } from 'phosphor-react'; +import { Clipboard, FileX, Image, Plus, Repeat, Share, ShieldCheck } from '@phosphor-icons/react'; import { PropsWithChildren } from 'react'; import { useLibraryMutation } from '@sd/client'; import { ContextMenu as CM, ModifierKeys, toast } from '@sd/ui'; + import { useOperatingSystem } from '~/hooks'; import { keybindForOs } from '~/util/keybinds'; import { useExplorerContext } from './Context'; diff --git a/interface/app/$libraryId/Explorer/QuickPreview/Context.tsx b/interface/app/$libraryId/Explorer/QuickPreview/Context.tsx index 2c05bef4d..64043a005 100644 --- a/interface/app/$libraryId/Explorer/QuickPreview/Context.tsx +++ b/interface/app/$libraryId/Explorer/QuickPreview/Context.tsx @@ -1,4 +1,4 @@ -import { PropsWithChildren, createContext, useContext, useState } from 'react'; +import { createContext, PropsWithChildren, useContext, useState } from 'react'; interface QuickPreviewContext { ref: HTMLDivElement | null; diff --git a/interface/app/$libraryId/Explorer/QuickPreview/index.tsx b/interface/app/$libraryId/Explorer/QuickPreview/index.tsx index 4fae30866..9c84e0afe 100644 --- a/interface/app/$libraryId/Explorer/QuickPreview/index.tsx +++ b/interface/app/$libraryId/Explorer/QuickPreview/index.tsx @@ -1,7 +1,7 @@ import * as Dialog from '@radix-ui/react-dialog'; import { animated, useTransition } from '@react-spring/web'; import clsx from 'clsx'; -import { ArrowLeft, ArrowRight, DotsThree, Plus, SidebarSimple, X } from 'phosphor-react'; +import { ArrowLeft, ArrowRight, DotsThree, Plus, SidebarSimple, X } from '@phosphor-icons/react'; import { ButtonHTMLAttributes, createContext, @@ -13,15 +13,16 @@ import { useState } from 'react'; import { - ObjectKindKey, getExplorerItemData, getIndexedItemFilePath, + ObjectKindKey, useLibraryContext, useLibraryMutation, useRspcLibraryContext, useZodForm } from '@sd/client'; -import { DropdownMenu, Form, ModifierKeys, Tooltip, dialogManager, toast, z } from '@sd/ui'; +import { dialogManager, DropdownMenu, Form, ModifierKeys, toast, Tooltip, z } from '@sd/ui'; + import { useIsDark, useOperatingSystem } from '~/hooks'; import { useKeyBind } from '~/hooks/useKeyBind'; import { usePlatform } from '~/util/Platform'; diff --git a/interface/app/$libraryId/Explorer/RevealInNativeExplorer.tsx b/interface/app/$libraryId/Explorer/RevealInNativeExplorer.tsx index b0381657f..f5ed63355 100644 --- a/interface/app/$libraryId/Explorer/RevealInNativeExplorer.tsx +++ b/interface/app/$libraryId/Explorer/RevealInNativeExplorer.tsx @@ -1,5 +1,6 @@ import { useLibraryContext } from '@sd/client'; import { ModifierKeys } from '@sd/ui'; + import { Menu } from '~/components/Menu'; import { useOperatingSystem } from '~/hooks'; import { useKeybindFactory } from '~/hooks/useKeybindFactory'; diff --git a/interface/app/$libraryId/Explorer/TopBarOptions.tsx b/interface/app/$libraryId/Explorer/TopBarOptions.tsx index 9b63b0963..b9d534f8f 100644 --- a/interface/app/$libraryId/Explorer/TopBarOptions.tsx +++ b/interface/app/$libraryId/Explorer/TopBarOptions.tsx @@ -8,11 +8,12 @@ import { SlidersHorizontal, SquaresFour, Tag -} from 'phosphor-react'; +} from '@phosphor-icons/react'; import { useEffect, useRef } from 'react'; import { useRspcLibraryContext } from '@sd/client'; + import { KeyManager } from '../KeyManager'; -import TopBarOptions, { TOP_BAR_ICON_STYLE, ToolOption } from '../TopBar/TopBarOptions'; +import TopBarOptions, { ToolOption, TOP_BAR_ICON_STYLE } from '../TopBar/TopBarOptions'; import { useExplorerContext } from './Context'; import OptionsPanel from './OptionsPanel'; import { getExplorerStore, useExplorerStore } from './store'; diff --git a/interface/app/$libraryId/Explorer/View/GridList.tsx b/interface/app/$libraryId/Explorer/View/GridList.tsx index 80999ede6..7ace5b27e 100644 --- a/interface/app/$libraryId/Explorer/View/GridList.tsx +++ b/interface/app/$libraryId/Explorer/View/GridList.tsx @@ -1,22 +1,23 @@ import { - type ReactNode, createContext, useCallback, useContext, useEffect, useMemo, useRef, - useState + useState, + type ReactNode } from 'react'; import Selecto from 'react-selecto'; import { useKey } from 'rooks'; import { type ExplorerItem } from '@sd/client'; + import { GridList, useGridList } from '~/components'; import { useOperatingSystem } from '~/hooks'; import { useExplorerContext } from '../Context'; -import { useExplorerViewContext } from '../ViewContext'; import { getExplorerStore, isCut, useExplorerStore } from '../store'; import { uniqueId } from '../util'; +import { useExplorerViewContext } from '../ViewContext'; const SelectoContext = createContext<{ selecto: React.RefObject; diff --git a/interface/app/$libraryId/Explorer/View/GridView.tsx b/interface/app/$libraryId/Explorer/View/GridView.tsx index e025f1ad0..2bdc87959 100644 --- a/interface/app/$libraryId/Explorer/View/GridView.tsx +++ b/interface/app/$libraryId/Explorer/View/GridView.tsx @@ -1,6 +1,7 @@ import clsx from 'clsx'; import { memo } from 'react'; -import { type ExplorerItem, byteSize, getItemFilePath, getItemLocation } from '@sd/client'; +import { byteSize, getItemFilePath, getItemLocation, type ExplorerItem } from '@sd/client'; + import { ViewItem } from '.'; import { useExplorerContext } from '../Context'; import { FileThumb } from '../FilePath/Thumb'; diff --git a/interface/app/$libraryId/Explorer/View/ListView.tsx b/interface/app/$libraryId/Explorer/View/ListView.tsx index 5ee5e5a3b..d6ad2e140 100644 --- a/interface/app/$libraryId/Explorer/View/ListView.tsx +++ b/interface/app/$libraryId/Explorer/View/ListView.tsx @@ -1,30 +1,31 @@ import { - type ColumnDef, - type ColumnSizingState, - type Row, flexRender, getCoreRowModel, - useReactTable + useReactTable, + type ColumnDef, + type ColumnSizingState, + type Row } from '@tanstack/react-table'; import { useVirtualizer } from '@tanstack/react-virtual'; import clsx from 'clsx'; import dayjs from 'dayjs'; -import { CaretDown, CaretUp } from 'phosphor-react'; +import { CaretDown, CaretUp } from '@phosphor-icons/react'; import { memo, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'; import { ScrollSync, ScrollSyncPane } from 'react-scroll-sync'; import { useKey, useMutationObserver, useWindowEventListener } from 'rooks'; import useResizeObserver from 'use-resize-observer'; import { - type ExplorerItem, - type FilePath, - type NonIndexedPathItem, byteSize, getExplorerItemData, getItemFilePath, getItemLocation, - getItemObject + getItemObject, + type ExplorerItem, + type FilePath, + type NonIndexedPathItem } from '@sd/client'; import { Tooltip } from '@sd/ui'; + import { useIsTextTruncated, useScrolled } from '~/hooks'; import { stringify } from '~/util/uuid'; import { ViewItem } from '.'; @@ -32,10 +33,15 @@ import { useLayoutContext } from '../../Layout/Context'; import { useExplorerContext } from '../Context'; import { FileThumb } from '../FilePath/Thumb'; import { InfoPill } from '../Inspector'; -import { useExplorerViewContext } from '../ViewContext'; -import { createOrdering, getOrderingDirection, orderingKey, useExplorerStore } from '../store'; -import { isCut } from '../store'; +import { + createOrdering, + getOrderingDirection, + isCut, + orderingKey, + useExplorerStore +} from '../store'; import { uniqueId } from '../util'; +import { useExplorerViewContext } from '../ViewContext'; import RenamableItemText from './RenamableItemText'; interface ListViewItemProps { diff --git a/interface/app/$libraryId/Explorer/View/MediaView.tsx b/interface/app/$libraryId/Explorer/View/MediaView.tsx index f28f0c061..afe3579f3 100644 --- a/interface/app/$libraryId/Explorer/View/MediaView.tsx +++ b/interface/app/$libraryId/Explorer/View/MediaView.tsx @@ -1,8 +1,9 @@ import clsx from 'clsx'; -import { ArrowsOutSimple } from 'phosphor-react'; +import { ArrowsOutSimple } from '@phosphor-icons/react'; import { memo } from 'react'; import { ExplorerItem } from '@sd/client'; import { Button } from '@sd/ui'; + import { ViewItem } from '.'; import { useExplorerContext } from '../Context'; import { FileThumb } from '../FilePath/Thumb'; diff --git a/interface/app/$libraryId/Explorer/View/RenamableItemText.tsx b/interface/app/$libraryId/Explorer/View/RenamableItemText.tsx index b63977a14..80ac37bc7 100644 --- a/interface/app/$libraryId/Explorer/View/RenamableItemText.tsx +++ b/interface/app/$libraryId/Explorer/View/RenamableItemText.tsx @@ -1,6 +1,7 @@ /* eslint-disable no-case-declarations */ import clsx from 'clsx'; import { type ExplorerItem } from '@sd/client'; + import { RenameLocationTextBox, RenamePathTextBox } from '../FilePath/RenameTextBox'; export default function RenamableItemText(props: { diff --git a/interface/app/$libraryId/Explorer/View/index.tsx b/interface/app/$libraryId/Explorer/View/index.tsx index 58cbd2b3f..6827e4fac 100644 --- a/interface/app/$libraryId/Explorer/View/index.tsx +++ b/interface/app/$libraryId/Explorer/View/index.tsx @@ -1,43 +1,44 @@ import clsx from 'clsx'; -import { Columns, GridFour, type Icon, MonitorPlay, Rows } from 'phosphor-react'; +import { Columns, GridFour, MonitorPlay, Rows, type Icon } from '@phosphor-icons/react'; import { - type HTMLAttributes, - type PropsWithChildren, - type ReactNode, isValidElement, memo, useCallback, useEffect, useRef, - useState + useState, + type HTMLAttributes, + type PropsWithChildren, + type ReactNode } from 'react'; import { createPortal } from 'react-dom'; import { createSearchParams, useNavigate } from 'react-router-dom'; import { + getItemObject, + isPath, + useLibraryContext, + useLibraryMutation, type ExplorerItem, type FilePath, type Location, type NonIndexedPathItem, - type Object, - getItemObject, - isPath, - useLibraryContext, - useLibraryMutation + type Object } from '@sd/client'; -import { ContextMenu, ModifierKeys, dialogManager, toast } from '@sd/ui'; +import { ContextMenu, dialogManager, ModifierKeys, toast } from '@sd/ui'; + import { Loader } from '~/components'; import { useOperatingSystem } from '~/hooks'; import { isNonEmpty } from '~/util'; import { usePlatform } from '~/util/Platform'; import CreateDialog from '../../settings/library/tags/CreateDialog'; +import { useExplorerConfigStore } from '../config'; import { useExplorerContext } from '../Context'; import { QuickPreview } from '../QuickPreview'; import { useQuickPreviewContext } from '../QuickPreview/Context'; import { getQuickPreviewStore, useQuickPreviewStore } from '../QuickPreview/store'; -import { type ExplorerViewContext, ViewContext, useExplorerViewContext } from '../ViewContext'; -import { useExplorerConfigStore } from '../config'; import { getExplorerStore } from '../store'; import { uniqueId } from '../util'; +import { useExplorerViewContext, ViewContext, type ExplorerViewContext } from '../ViewContext'; import GridView from './GridView'; import ListView from './ListView'; import MediaView from './MediaView'; diff --git a/interface/app/$libraryId/Explorer/ViewContext.ts b/interface/app/$libraryId/Explorer/ViewContext.ts index 073b72520..300b6c125 100644 --- a/interface/app/$libraryId/Explorer/ViewContext.ts +++ b/interface/app/$libraryId/Explorer/ViewContext.ts @@ -1,4 +1,4 @@ -import { type ReactNode, type RefObject, createContext, useContext } from 'react'; +import { createContext, useContext, type ReactNode, type RefObject } from 'react'; export interface ExplorerViewContext { ref: RefObject; diff --git a/interface/app/$libraryId/Explorer/index.tsx b/interface/app/$libraryId/Explorer/index.tsx index e32fb02c5..7b16b88a3 100644 --- a/interface/app/$libraryId/Explorer/index.tsx +++ b/interface/app/$libraryId/Explorer/index.tsx @@ -1,15 +1,16 @@ -import { FolderNotchOpen } from 'phosphor-react'; -import { type PropsWithChildren, type ReactNode, useEffect } from 'react'; +import { FolderNotchOpen } from '@phosphor-icons/react'; +import { useEffect, type PropsWithChildren, type ReactNode } from 'react'; import { useLibrarySubscription } from '@sd/client'; + import { TOP_BAR_HEIGHT } from '../TopBar'; import { useExplorerContext } from './Context'; import ContextMenu from './ContextMenu'; import DismissibleNotice from './DismissibleNotice'; -import { INSPECTOR_WIDTH, Inspector } from './Inspector'; +import { Inspector, INSPECTOR_WIDTH } from './Inspector'; import ExplorerContextMenu from './ParentContextMenu'; -import View, { EmptyNotice, ExplorerViewProps } from './View'; import { useExplorerStore } from './store'; import { useExplorerSearchParams } from './util'; +import View, { EmptyNotice, ExplorerViewProps } from './View'; interface Props { emptyNotice?: ExplorerViewProps['emptyNotice']; diff --git a/interface/app/$libraryId/Explorer/queries/useExplorerInfiniteQuery.ts b/interface/app/$libraryId/Explorer/queries/useExplorerInfiniteQuery.ts index 7729008e2..781f94318 100644 --- a/interface/app/$libraryId/Explorer/queries/useExplorerInfiniteQuery.ts +++ b/interface/app/$libraryId/Explorer/queries/useExplorerInfiniteQuery.ts @@ -1,5 +1,6 @@ import { UseInfiniteQueryOptions } from '@tanstack/react-query'; import { ExplorerItem, LibraryConfigWrapped, SearchData } from '@sd/client'; + import { Ordering } from '../store'; import { UseExplorerSettings } from '../useExplorer'; diff --git a/interface/app/$libraryId/Explorer/queries/useObjectsInfiniteQuery.ts b/interface/app/$libraryId/Explorer/queries/useObjectsInfiniteQuery.ts index f7fbf94be..e51dd1f68 100644 --- a/interface/app/$libraryId/Explorer/queries/useObjectsInfiniteQuery.ts +++ b/interface/app/$libraryId/Explorer/queries/useObjectsInfiniteQuery.ts @@ -6,6 +6,7 @@ import { ObjectSearchArgs, useRspcLibraryContext } from '@sd/client'; + import { UseExplorerInfiniteQueryArgs } from './useExplorerInfiniteQuery'; export function useObjectsInfiniteQuery({ diff --git a/interface/app/$libraryId/Explorer/queries/usePathsInfiniteQuery.ts b/interface/app/$libraryId/Explorer/queries/usePathsInfiniteQuery.ts index 48cfaac2a..7598caa4e 100644 --- a/interface/app/$libraryId/Explorer/queries/usePathsInfiniteQuery.ts +++ b/interface/app/$libraryId/Explorer/queries/usePathsInfiniteQuery.ts @@ -7,6 +7,7 @@ import { FilePathSearchArgs, useRspcLibraryContext } from '@sd/client'; + import { getExplorerStore } from '../store'; import { UseExplorerInfiniteQueryArgs } from './useExplorerInfiniteQuery'; diff --git a/interface/app/$libraryId/Explorer/store.ts b/interface/app/$libraryId/Explorer/store.ts index fb76d2c07..3f5198871 100644 --- a/interface/app/$libraryId/Explorer/store.ts +++ b/interface/app/$libraryId/Explorer/store.ts @@ -3,12 +3,12 @@ import { proxy, useSnapshot } from 'valtio'; import { proxySet } from 'valtio/utils'; import { z } from 'zod'; import { + resetStore, type DoubleClickAction, type ExplorerItem, type ExplorerLayout, type ExplorerSettings, - type SortOrder, - resetStore + type SortOrder } from '@sd/client'; export enum ExplorerKind { diff --git a/interface/app/$libraryId/Explorer/useExplorer.ts b/interface/app/$libraryId/Explorer/useExplorer.ts index 37b7811ce..680656de7 100644 --- a/interface/app/$libraryId/Explorer/useExplorer.ts +++ b/interface/app/$libraryId/Explorer/useExplorer.ts @@ -1,4 +1,4 @@ -import { type RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState, type RefObject } from 'react'; import { proxy, snapshot, subscribe, useSnapshot } from 'valtio'; import { z } from 'zod'; import type { @@ -9,7 +9,8 @@ import type { NodeState, Tag } from '@sd/client'; -import { type Ordering, type OrderingKeys, createDefaultExplorerSettings } from './store'; + +import { createDefaultExplorerSettings, type Ordering, type OrderingKeys } from './store'; import { uniqueId } from './util'; export type ExplorerParent = diff --git a/interface/app/$libraryId/Explorer/util.ts b/interface/app/$libraryId/Explorer/util.ts index 1eaeab994..7c6e90e25 100644 --- a/interface/app/$libraryId/Explorer/util.ts +++ b/interface/app/$libraryId/Explorer/util.ts @@ -1,5 +1,6 @@ import { useMemo } from 'react'; -import { type ExplorerItem, getExplorerItemData } from '@sd/client'; +import { getExplorerItemData, type ExplorerItem } from '@sd/client'; + import { ExplorerParamsSchema } from '~/app/route-schemas'; import { useZodSearchParams } from '~/hooks'; import { flattenThumbnailKey, useExplorerStore } from './store'; diff --git a/interface/app/$libraryId/KeyManager/Key.tsx b/interface/app/$libraryId/KeyManager/Key.tsx index 2e598bf58..c72026472 100644 --- a/interface/app/$libraryId/KeyManager/Key.tsx +++ b/interface/app/$libraryId/KeyManager/Key.tsx @@ -1,7 +1,7 @@ // import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; // import { animated, useTransition } from '@react-spring/web'; // import clsx from 'clsx'; -// import { DotsThree, Eye, Key as KeyIcon } from 'phosphor-react'; +// import { DotsThree, Eye, Key as KeyIcon } from '@phosphor-icons/react'; // import { PropsWithChildren, useState } from 'react'; // import { useLibraryMutation } from '@sd/client'; // import { Button, Tooltip } from '@sd/ui'; diff --git a/interface/app/$libraryId/KeyManager/Mounter.tsx b/interface/app/$libraryId/KeyManager/Mounter.tsx index e8396851d..1e72b43ee 100644 --- a/interface/app/$libraryId/KeyManager/Mounter.tsx +++ b/interface/app/$libraryId/KeyManager/Mounter.tsx @@ -1,4 +1,4 @@ -// import { Info } from 'phosphor-react'; +// import { Info } from '@phosphor-icons/react'; // import { useEffect, useRef, useState } from 'react'; // import { Algorithm, HASHING_ALGOS, HashingAlgoSlug, useLibraryMutation } from '@sd/client'; // import { diff --git a/interface/app/$libraryId/KeyManager/NotSetup.tsx b/interface/app/$libraryId/KeyManager/NotSetup.tsx index 52cdded9a..aa1a4fec8 100644 --- a/interface/app/$libraryId/KeyManager/NotSetup.tsx +++ b/interface/app/$libraryId/KeyManager/NotSetup.tsx @@ -1,5 +1,5 @@ // import clsx from 'clsx'; -// import { CaretRight, Spinner } from 'phosphor-react'; +// import { CaretRight, Spinner } from '@phosphor-icons/react'; // import { useState } from 'react'; // import { // HASHING_ALGOS, diff --git a/interface/app/$libraryId/KeyManager/NotUnlocked.tsx b/interface/app/$libraryId/KeyManager/NotUnlocked.tsx index 7e7e43c28..bec79f0f9 100644 --- a/interface/app/$libraryId/KeyManager/NotUnlocked.tsx +++ b/interface/app/$libraryId/KeyManager/NotUnlocked.tsx @@ -1,4 +1,4 @@ -// import { Spinner } from 'phosphor-react'; +// import { Spinner } from '@phosphor-icons/react'; // import { useState } from 'react'; // import { useLibraryMutation, useLibraryQuery } from '@sd/client'; // import { Button, PasswordInput } from '@sd/ui'; diff --git a/interface/app/$libraryId/Layout/Context.tsx b/interface/app/$libraryId/Layout/Context.tsx index 0f5cba07d..7b8010c5e 100644 --- a/interface/app/$libraryId/Layout/Context.tsx +++ b/interface/app/$libraryId/Layout/Context.tsx @@ -1,4 +1,4 @@ -import { RefObject, createContext, useContext } from 'react'; +import { createContext, RefObject, useContext } from 'react'; /** * Context to hold the ref value of the layout for styling manipulation diff --git a/interface/app/$libraryId/Layout/Sidebar/Contents.tsx b/interface/app/$libraryId/Layout/Sidebar/Contents.tsx index 772f56fde..41fe38aff 100644 --- a/interface/app/$libraryId/Layout/Sidebar/Contents.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/Contents.tsx @@ -1,5 +1,6 @@ -import { ArrowsClockwise, CopySimple, Crosshair, Eraser, FilmStrip, Planet } from 'phosphor-react'; +import { ArrowsClockwise, CopySimple, Crosshair, Eraser, FilmStrip, Planet } from '@phosphor-icons/react'; import { LibraryContextProvider, useClientContext, useFeatureFlag } from '@sd/client'; + import { SubtleButton } from '~/components/SubtleButton'; import { EphemeralSection } from './EphemeralSection'; import Icon from './Icon'; diff --git a/interface/app/$libraryId/Layout/Sidebar/DebugPopover.tsx b/interface/app/$libraryId/Layout/Sidebar/DebugPopover.tsx index 7d2ccf834..d562a152d 100644 --- a/interface/app/$libraryId/Layout/Sidebar/DebugPopover.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/DebugPopover.tsx @@ -12,6 +12,7 @@ import { useLibraryMutation } from '@sd/client'; import { Button, Dropdown, DropdownMenu, Popover, Select, SelectOption, Switch } from '@sd/ui'; + import { usePlatform } from '~/util/Platform'; import Setting from '../../settings/Setting'; diff --git a/interface/app/$libraryId/Layout/Sidebar/EphemeralSection.tsx b/interface/app/$libraryId/Layout/Sidebar/EphemeralSection.tsx index 0935eb04c..c57a25e73 100644 --- a/interface/app/$libraryId/Layout/Sidebar/EphemeralSection.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/EphemeralSection.tsx @@ -1,5 +1,6 @@ import { useState } from 'react'; import { useBridgeQuery } from '@sd/client'; + import { Folder } from '~/components'; import { usePlatform } from '~/util/Platform'; import SidebarLink from './Link'; diff --git a/interface/app/$libraryId/Layout/Sidebar/FeedbackDialog.tsx b/interface/app/$libraryId/Layout/Sidebar/FeedbackDialog.tsx index 1fbf96ec6..57dc1a4a0 100644 --- a/interface/app/$libraryId/Layout/Sidebar/FeedbackDialog.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/FeedbackDialog.tsx @@ -1,7 +1,7 @@ import clsx from 'clsx'; import { useState } from 'react'; import { useZodForm } from '@sd/client'; -import { Dialog, TextAreaField, UseDialogProps, toast, useDialog, z } from '@sd/ui'; +import { Dialog, TextAreaField, toast, useDialog, UseDialogProps, z } from '@sd/ui'; const schema = z.object({ feedback: z.string().min(1, { message: 'Feedback is required' }), diff --git a/interface/app/$libraryId/Layout/Sidebar/Footer.tsx b/interface/app/$libraryId/Layout/Sidebar/Footer.tsx index 039a18877..e794e1896 100644 --- a/interface/app/$libraryId/Layout/Sidebar/Footer.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/Footer.tsx @@ -1,6 +1,7 @@ -import { Gear } from 'phosphor-react'; +import { Gear } from '@phosphor-icons/react'; import { JobManagerContextProvider, useClientContext, useDebugState } from '@sd/client'; -import { Button, ButtonLink, Popover, Tooltip, dialogManager } from '@sd/ui'; +import { Button, ButtonLink, dialogManager, Popover, Tooltip } from '@sd/ui'; + import DebugPopover from './DebugPopover'; import FeedbackDialog from './FeedbackDialog'; import { IsRunningJob, JobManager } from './JobManager'; diff --git a/interface/app/$libraryId/Layout/Sidebar/JobManager/IsRunningJob.tsx b/interface/app/$libraryId/Layout/Sidebar/JobManager/IsRunningJob.tsx index 56005e248..7854d208d 100644 --- a/interface/app/$libraryId/Layout/Sidebar/JobManager/IsRunningJob.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/JobManager/IsRunningJob.tsx @@ -1,5 +1,6 @@ -import { CheckCircle } from 'phosphor-react'; +import { CheckCircle } from '@phosphor-icons/react'; import { Loader } from '@sd/ui'; + import { useLibraryQuery } from '~/../packages/client/src'; export default () => { diff --git a/interface/app/$libraryId/Layout/Sidebar/JobManager/Job.tsx b/interface/app/$libraryId/Layout/Sidebar/JobManager/Job.tsx index 08090efad..3d3f58e2f 100644 --- a/interface/app/$libraryId/Layout/Sidebar/JobManager/Job.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/JobManager/Job.tsx @@ -1,7 +1,8 @@ -import { Copy, Fingerprint, Folder, Icon, Image, Info, Scissors, Trash } from 'phosphor-react'; +import { Copy, Fingerprint, Folder, Icon, Image, Info, Scissors, Trash } from '@phosphor-icons/react'; import { memo } from 'react'; import { JobProgressEvent, JobReport, useJobInfo } from '@sd/client'; import { ProgressBar, toast } from '@sd/ui'; + import { showAlertDialog } from '~/components'; import JobContainer from './JobContainer'; diff --git a/interface/app/$libraryId/Layout/Sidebar/JobManager/JobContainer.tsx b/interface/app/$libraryId/Layout/Sidebar/JobManager/JobContainer.tsx index ed4528b3a..83a041108 100644 --- a/interface/app/$libraryId/Layout/Sidebar/JobManager/JobContainer.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/JobManager/JobContainer.tsx @@ -1,7 +1,8 @@ import clsx from 'clsx'; -import { ForwardRefExoticComponent, Fragment, HTMLAttributes, ReactNode, forwardRef } from 'react'; +import { forwardRef, ForwardRefExoticComponent, Fragment, HTMLAttributes, ReactNode } from 'react'; import { TextItems } from '@sd/client'; import { Tooltip, tw } from '@sd/ui'; + import classes from './Job.module.scss'; interface JobContainerProps extends HTMLAttributes { diff --git a/interface/app/$libraryId/Layout/Sidebar/JobManager/JobGroup.tsx b/interface/app/$libraryId/Layout/Sidebar/JobManager/JobGroup.tsx index d74c1d6cb..392b63e80 100644 --- a/interface/app/$libraryId/Layout/Sidebar/JobManager/JobGroup.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/JobManager/JobGroup.tsx @@ -1,18 +1,19 @@ import { Folder } from '@sd/assets/icons'; import clsx from 'clsx'; import dayjs from 'dayjs'; -import { DotsThreeVertical, Pause, Play, Stop } from 'phosphor-react'; +import { DotsThreeVertical, Pause, Play, Stop } from '@phosphor-icons/react'; import { useMemo, useState } from 'react'; import { + getJobNiceActionName, + getTotalTasks, JobGroup, JobProgressEvent, JobReport, - getJobNiceActionName, - getTotalTasks, useLibraryMutation, useTotalElapsedTimeText } from '@sd/client'; import { Button, ProgressBar, Tooltip } from '@sd/ui'; + import Job from './Job'; import JobContainer from './JobContainer'; diff --git a/interface/app/$libraryId/Layout/Sidebar/JobManager/index.tsx b/interface/app/$libraryId/Layout/Sidebar/JobManager/index.tsx index 336e97308..1d83886c3 100644 --- a/interface/app/$libraryId/Layout/Sidebar/JobManager/index.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/JobManager/index.tsx @@ -1,8 +1,9 @@ import { useQueryClient } from '@tanstack/react-query'; -import { Check, Trash, X } from 'phosphor-react'; +import { Check, Trash, X } from '@phosphor-icons/react'; import { useMemo, useState } from 'react'; import { useBridgeQuery, useJobProgress, useLibraryMutation } from '@sd/client'; -import { Button, PopoverClose, Tooltip, toast } from '@sd/ui'; +import { Button, PopoverClose, toast, Tooltip } from '@sd/ui'; + import IsRunningJob from './IsRunningJob'; import JobGroup from './JobGroup'; diff --git a/interface/app/$libraryId/Layout/Sidebar/LibrariesDropdown.tsx b/interface/app/$libraryId/Layout/Sidebar/LibrariesDropdown.tsx index c30b23a93..97553f212 100644 --- a/interface/app/$libraryId/Layout/Sidebar/LibrariesDropdown.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/LibrariesDropdown.tsx @@ -1,7 +1,8 @@ import clsx from 'clsx'; -import { Gear, Lock, Plus } from 'phosphor-react'; +import { Gear, Lock, Plus } from '@phosphor-icons/react'; import { useClientContext } from '@sd/client'; -import { Dropdown, DropdownMenu, dialogManager } from '@sd/ui'; +import { dialogManager, Dropdown, DropdownMenu } from '@sd/ui'; + import CreateDialog from '../../settings/node/libraries/CreateDialog'; export default () => { diff --git a/interface/app/$libraryId/Layout/Sidebar/LibrarySection.tsx b/interface/app/$libraryId/Layout/Sidebar/LibrarySection.tsx index 6f8d4447d..800647c71 100644 --- a/interface/app/$libraryId/Layout/Sidebar/LibrarySection.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/LibrarySection.tsx @@ -11,6 +11,7 @@ import { useOnlineLocations } from '@sd/client'; import { Button, Tooltip } from '@sd/ui'; + import { AddLocationButton } from '~/app/$libraryId/settings/library/locations/AddLocationButton'; import { Folder, SubtleButton } from '~/components'; import SidebarLink from './Link'; diff --git a/interface/app/$libraryId/Layout/Sidebar/Link.tsx b/interface/app/$libraryId/Layout/Sidebar/Link.tsx index 5bd719f58..d09ffffb6 100644 --- a/interface/app/$libraryId/Layout/Sidebar/Link.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/Link.tsx @@ -1,7 +1,8 @@ import { cva } from 'class-variance-authority'; import clsx from 'clsx'; -import { PropsWithChildren, forwardRef } from 'react'; +import { forwardRef, PropsWithChildren } from 'react'; import { NavLink, NavLinkProps } from 'react-router-dom'; + import { useOperatingSystem } from '~/hooks/useOperatingSystem'; import { usePlatform } from '~/util/Platform'; diff --git a/interface/app/$libraryId/Layout/Sidebar/LocationsContextMenu.tsx b/interface/app/$libraryId/Layout/Sidebar/LocationsContextMenu.tsx index 13755b831..7266ed9b7 100644 --- a/interface/app/$libraryId/Layout/Sidebar/LocationsContextMenu.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/LocationsContextMenu.tsx @@ -1,6 +1,7 @@ -import { Pencil, Plus, Trash } from 'phosphor-react'; +import { Pencil, Plus, Trash } from '@phosphor-icons/react'; import { useNavigate } from 'react-router'; import { ContextMenu as CM, dialogManager, toast } from '@sd/ui'; + import { AddLocationDialog } from '~/app/$libraryId/settings/library/locations/AddLocationDialog'; import DeleteDialog from '~/app/$libraryId/settings/library/locations/DeleteDialog'; import { openDirectoryPickerDialog } from '~/app/$libraryId/settings/library/locations/openDirectoryPickerDialog'; diff --git a/interface/app/$libraryId/Layout/Sidebar/TagsContextMenu.tsx b/interface/app/$libraryId/Layout/Sidebar/TagsContextMenu.tsx index 5b416899a..26b3de038 100644 --- a/interface/app/$libraryId/Layout/Sidebar/TagsContextMenu.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/TagsContextMenu.tsx @@ -1,7 +1,8 @@ -import { Pencil, Plus, Trash } from 'phosphor-react'; +import { Pencil, Plus, Trash } from '@phosphor-icons/react'; import { useNavigate } from 'react-router'; import { Link } from 'react-router-dom'; import { ContextMenu as CM, dialogManager } from '@sd/ui'; + import CreateDialog from '~/app/$libraryId/settings/library/tags/CreateDialog'; import DeleteDialog from '~/app/$libraryId/settings/library/tags/DeleteDialog'; diff --git a/interface/app/$libraryId/Layout/Sidebar/WindowControls.tsx b/interface/app/$libraryId/Layout/Sidebar/WindowControls.tsx index 001c72d65..320408587 100644 --- a/interface/app/$libraryId/Layout/Sidebar/WindowControls.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/WindowControls.tsx @@ -1,4 +1,5 @@ import clsx from 'clsx'; + import { MacTrafficLights } from '~/components/TrafficLights'; import { useOperatingSystem } from '~/hooks/useOperatingSystem'; import { usePlatform } from '~/util/Platform'; diff --git a/interface/app/$libraryId/Layout/Sidebar/index.tsx b/interface/app/$libraryId/Layout/Sidebar/index.tsx index 914ae7521..3aff970e0 100644 --- a/interface/app/$libraryId/Layout/Sidebar/index.tsx +++ b/interface/app/$libraryId/Layout/Sidebar/index.tsx @@ -1,10 +1,11 @@ import clsx from 'clsx'; + import { MacTrafficLights } from '~/components'; import { useOperatingSystem } from '~/hooks'; import Contents from './Contents'; import Footer from './Footer'; -import LibrariesDropdown from './LibrariesDropdown'; import { macOnly } from './helpers'; +import LibrariesDropdown from './LibrariesDropdown'; export default () => { const os = useOperatingSystem(); diff --git a/interface/app/$libraryId/Layout/index.tsx b/interface/app/$libraryId/Layout/index.tsx index 1f13eab58..d30908239 100644 --- a/interface/app/$libraryId/Layout/index.tsx +++ b/interface/app/$libraryId/Layout/index.tsx @@ -3,13 +3,14 @@ import { Suspense, useCallback, useEffect, useMemo, useRef, useState } from 'rea import { Navigate, Outlet } from 'react-router-dom'; import { ClientContextProvider, - LibraryContextProvider, initPlausible, + LibraryContextProvider, useClientContext, usePlausibleEvent, usePlausiblePageViewMonitor, usePlausiblePingMonitor } from '@sd/client'; + import { useRootContext } from '~/app/RootContext'; import { LibraryIdParamsSchema } from '~/app/route-schemas'; import { useOperatingSystem, useZodRouteParams } from '~/hooks'; diff --git a/interface/app/$libraryId/PageLayout/Context.tsx b/interface/app/$libraryId/PageLayout/Context.tsx index 62b29ed08..ef882cdf5 100644 --- a/interface/app/$libraryId/PageLayout/Context.tsx +++ b/interface/app/$libraryId/PageLayout/Context.tsx @@ -1,4 +1,4 @@ -import { RefObject, createContext, useContext } from 'react'; +import { createContext, RefObject, useContext } from 'react'; /** * Context to hold the ref value of the page layout diff --git a/interface/app/$libraryId/PageLayout/index.tsx b/interface/app/$libraryId/PageLayout/index.tsx index 176ad99b8..5152321f9 100644 --- a/interface/app/$libraryId/PageLayout/index.tsx +++ b/interface/app/$libraryId/PageLayout/index.tsx @@ -1,5 +1,6 @@ import { useRef } from 'react'; import { Outlet } from 'react-router'; + import { TOP_BAR_HEIGHT } from '../TopBar'; import { PageLayoutContext } from './Context'; diff --git a/interface/app/$libraryId/TopBar/Layout.tsx b/interface/app/$libraryId/TopBar/Layout.tsx index 0752b3200..72ed40aa3 100644 --- a/interface/app/$libraryId/TopBar/Layout.tsx +++ b/interface/app/$libraryId/TopBar/Layout.tsx @@ -1,5 +1,6 @@ import { createContext, useContext, useState } from 'react'; import { Outlet } from 'react-router'; + import TopBar from '.'; interface TopBarContext { diff --git a/interface/app/$libraryId/TopBar/NavigationButtons.tsx b/interface/app/$libraryId/TopBar/NavigationButtons.tsx index b5a52c009..2a035a02e 100644 --- a/interface/app/$libraryId/TopBar/NavigationButtons.tsx +++ b/interface/app/$libraryId/TopBar/NavigationButtons.tsx @@ -1,6 +1,7 @@ -import { ArrowLeft, ArrowRight } from 'phosphor-react'; +import { ArrowLeft, ArrowRight } from '@phosphor-icons/react'; import { useNavigate } from 'react-router'; import { Tooltip } from '@sd/ui'; + import { useSearchStore } from '~/hooks'; import TopBarButton from './TopBarButton'; diff --git a/interface/app/$libraryId/TopBar/Portal.tsx b/interface/app/$libraryId/TopBar/Portal.tsx index 922a0c4c0..006113b26 100644 --- a/interface/app/$libraryId/TopBar/Portal.tsx +++ b/interface/app/$libraryId/TopBar/Portal.tsx @@ -1,5 +1,6 @@ -import { type ReactNode, useEffect } from 'react'; +import { useEffect, type ReactNode } from 'react'; import { createPortal } from 'react-dom'; + import { useTopBarContext } from './Layout'; interface Props { diff --git a/interface/app/$libraryId/TopBar/SearchBar.tsx b/interface/app/$libraryId/TopBar/SearchBar.tsx index 51923a9ee..ea7013d2f 100644 --- a/interface/app/$libraryId/TopBar/SearchBar.tsx +++ b/interface/app/$libraryId/TopBar/SearchBar.tsx @@ -4,6 +4,7 @@ import { useLocation, useNavigate, useResolvedPath } from 'react-router'; import { createSearchParams } from 'react-router-dom'; import { useDebouncedCallback } from 'use-debounce'; import { Input, ModifierKeys, Shortcut } from '@sd/ui'; + import { SearchParamsSchema } from '~/app/route-schemas'; import { getSearchStore, useOperatingSystem, useZodSearchParams } from '~/hooks'; import { keybindForOs } from '~/util/keybinds'; diff --git a/interface/app/$libraryId/TopBar/TopBarButton.tsx b/interface/app/$libraryId/TopBar/TopBarButton.tsx index 44afda6aa..5a40a18b2 100644 --- a/interface/app/$libraryId/TopBar/TopBarButton.tsx +++ b/interface/app/$libraryId/TopBar/TopBarButton.tsx @@ -1,5 +1,5 @@ import { cva } from 'class-variance-authority'; -import { Check } from 'phosphor-react'; +import { Check } from '@phosphor-icons/react'; import { forwardRef } from 'react'; import { Button } from '@sd/ui'; diff --git a/interface/app/$libraryId/TopBar/TopBarMobile.tsx b/interface/app/$libraryId/TopBar/TopBarMobile.tsx index 3bef75bf4..87c54abe2 100644 --- a/interface/app/$libraryId/TopBar/TopBarMobile.tsx +++ b/interface/app/$libraryId/TopBar/TopBarMobile.tsx @@ -1,8 +1,9 @@ -import { DotsThreeCircle } from 'phosphor-react'; -import React, { HTMLAttributes, forwardRef } from 'react'; +import { DotsThreeCircle } from '@phosphor-icons/react'; +import React, { forwardRef, HTMLAttributes } from 'react'; import { Popover } from '@sd/ui'; + import TopBarButton, { TopBarButtonProps } from './TopBarButton'; -import { TOP_BAR_ICON_STYLE, ToolOption } from './TopBarOptions'; +import { ToolOption, TOP_BAR_ICON_STYLE } from './TopBarOptions'; const GroupTool = forwardRef< HTMLButtonElement, diff --git a/interface/app/$libraryId/TopBar/TopBarOptions.tsx b/interface/app/$libraryId/TopBar/TopBarOptions.tsx index 7ed1ebf66..75b856e5b 100644 --- a/interface/app/$libraryId/TopBar/TopBarOptions.tsx +++ b/interface/app/$libraryId/TopBar/TopBarOptions.tsx @@ -1,6 +1,7 @@ import clsx from 'clsx'; import { useLayoutEffect, useState } from 'react'; import { Popover, Tooltip } from '@sd/ui'; + import TopBarButton from './TopBarButton'; import TopBarMobile from './TopBarMobile'; diff --git a/interface/app/$libraryId/TopBar/index.tsx b/interface/app/$libraryId/TopBar/index.tsx index 8285d69d4..d01b1890e 100644 --- a/interface/app/$libraryId/TopBar/index.tsx +++ b/interface/app/$libraryId/TopBar/index.tsx @@ -1,5 +1,6 @@ import clsx from 'clsx'; import type { Ref } from 'react'; + import { useExplorerStore } from '../Explorer/store'; import { NavigationButtons } from './NavigationButtons'; import SearchBar from './SearchBar'; diff --git a/interface/app/$libraryId/debug.tsx b/interface/app/$libraryId/debug.tsx index 89a701ce5..a55e05d44 100644 --- a/interface/app/$libraryId/debug.tsx +++ b/interface/app/$libraryId/debug.tsx @@ -1,4 +1,5 @@ import { useBridgeQuery, useLibraryQuery } from '@sd/client'; + import { CodeBlock } from '~/components/Codeblock'; // TODO: Bring this back with a button in the sidebar near settings at the bottom diff --git a/interface/app/$libraryId/ephemeral.tsx b/interface/app/$libraryId/ephemeral.tsx index 94121319c..cd6cb72bc 100644 --- a/interface/app/$libraryId/ephemeral.tsx +++ b/interface/app/$libraryId/ephemeral.tsx @@ -1,19 +1,20 @@ -import { Suspense, memo, useDeferredValue, useMemo } from 'react'; -import { type EphemeralPathOrder, getExplorerItemData, useLibraryQuery } from '@sd/client'; +import { memo, Suspense, useDeferredValue, useMemo } from 'react'; +import { getExplorerItemData, useLibraryQuery, type EphemeralPathOrder } from '@sd/client'; import { Tooltip } from '@sd/ui'; -import { type PathParams, PathParamsSchema } from '~/app/route-schemas'; + +import { PathParamsSchema, type PathParams } from '~/app/route-schemas'; import { useOperatingSystem, useZodSearchParams } from '~/hooks'; import Explorer from './Explorer'; import { ExplorerContextProvider } from './Explorer/Context'; -import { DefaultTopBarOptions } from './Explorer/TopBarOptions'; import { createDefaultExplorerSettings, getExplorerStore, nonIndexedPathOrderingSchema } from './Explorer/store'; +import { DefaultTopBarOptions } from './Explorer/TopBarOptions'; import { useExplorer, useExplorerSettings } from './Explorer/useExplorer'; -import { TopBarPortal } from './TopBar/Portal'; import { AddLocationButton } from './settings/library/locations/AddLocationButton'; +import { TopBarPortal } from './TopBar/Portal'; const EphemeralExplorer = memo((props: { args: PathParams }) => { const os = useOperatingSystem(); diff --git a/interface/app/$libraryId/index.tsx b/interface/app/$libraryId/index.tsx index e52a09356..b7435cb43 100644 --- a/interface/app/$libraryId/index.tsx +++ b/interface/app/$libraryId/index.tsx @@ -1,4 +1,5 @@ import type { RouteObject } from 'react-router-dom'; + import settingsRoutes from './settings'; // Routes that should be contained within the standard Page layout diff --git a/interface/app/$libraryId/location/$id.tsx b/interface/app/$libraryId/location/$id.tsx index d1290d57c..9954cbe13 100644 --- a/interface/app/$libraryId/location/$id.tsx +++ b/interface/app/$libraryId/location/$id.tsx @@ -12,15 +12,16 @@ import { useLibraryQuery, useLibrarySubscription } from '@sd/client'; + import { LocationIdParamsSchema } from '~/app/route-schemas'; import { Folder } from '~/components'; import { useKeyDeleteFile, useZodRouteParams } from '~/hooks'; import Explorer from '../Explorer'; import { ExplorerContextProvider } from '../Explorer/Context'; -import { DefaultTopBarOptions } from '../Explorer/TopBarOptions'; import { usePathsInfiniteQuery } from '../Explorer/queries'; import { createDefaultExplorerSettings, filePathOrderingKeysSchema } from '../Explorer/store'; -import { UseExplorerSettings, useExplorer, useExplorerSettings } from '../Explorer/useExplorer'; +import { DefaultTopBarOptions } from '../Explorer/TopBarOptions'; +import { useExplorer, UseExplorerSettings, useExplorerSettings } from '../Explorer/useExplorer'; import { useExplorerSearchParams } from '../Explorer/util'; import { TopBarPortal } from '../TopBar/Portal'; import LocationOptions from './LocationOptions'; diff --git a/interface/app/$libraryId/location/LocationOptions.tsx b/interface/app/$libraryId/location/LocationOptions.tsx index aaa985534..871dfe916 100644 --- a/interface/app/$libraryId/location/LocationOptions.tsx +++ b/interface/app/$libraryId/location/LocationOptions.tsx @@ -1,8 +1,8 @@ import { ReactComponent as Ellipsis } from '@sd/assets/svgs/ellipsis.svg'; -import { Archive, Check, Copy, FolderDotted, Gear, IconContext, Image } from 'phosphor-react'; +import { Archive, Check, Copy, FolderDotted, Gear, IconContext, Image } from '@phosphor-icons/react'; import { useState } from 'react'; import { useNavigate } from 'react-router'; -import { type Location, useLibraryMutation } from '@sd/client'; +import { useLibraryMutation, type Location } from '@sd/client'; import { Button, Input, @@ -10,11 +10,12 @@ import { PopoverContainer, PopoverDivider, PopoverSection, + toast, TOAST_TIMEOUT, Tooltip, - toast, tw } from '@sd/ui'; + import TopBarButton from '../TopBar/TopBarButton'; const OptionButton = tw(TopBarButton)`w-full gap-1 !px-1.5 !py-1`; diff --git a/interface/app/$libraryId/node/$id.tsx b/interface/app/$libraryId/node/$id.tsx index da5cc5414..8b1c783fd 100644 --- a/interface/app/$libraryId/node/$id.tsx +++ b/interface/app/$libraryId/node/$id.tsx @@ -1,12 +1,13 @@ import { Laptop } from '@sd/assets/icons'; import { useMemo } from 'react'; import { useBridgeQuery, useLibraryQuery } from '@sd/client'; + import { NodeIdParamsSchema } from '~/app/route-schemas'; import { useZodRouteParams } from '~/hooks'; import Explorer from '../Explorer'; import { ExplorerContextProvider } from '../Explorer/Context'; -import { DefaultTopBarOptions } from '../Explorer/TopBarOptions'; import { createDefaultExplorerSettings } from '../Explorer/store'; +import { DefaultTopBarOptions } from '../Explorer/TopBarOptions'; import { useExplorer, useExplorerSettings } from '../Explorer/useExplorer'; import { TopBarPortal } from '../TopBar/Portal'; diff --git a/interface/app/$libraryId/overview/Categories.tsx b/interface/app/$libraryId/overview/Categories.tsx index 1ebbd42e3..c03a7553e 100644 --- a/interface/app/$libraryId/overview/Categories.tsx +++ b/interface/app/$libraryId/overview/Categories.tsx @@ -1,12 +1,13 @@ import { getIcon } from '@sd/assets/util'; import clsx from 'clsx'; import { motion } from 'framer-motion'; -import { ArrowLeft, ArrowRight } from 'phosphor-react'; +import { ArrowLeft, ArrowRight } from '@phosphor-icons/react'; import { RefObject, useEffect, useRef, useState } from 'react'; import Sticky from 'react-sticky-el'; import { useDraggable } from 'react-use-draggable-scroll'; import { Category, useLibraryQuery } from '@sd/client'; import { tw } from '@sd/ui'; + import { useIsDark } from '~/hooks'; import { useLayoutContext } from '../Layout/Context'; import { usePageLayoutContext } from '../PageLayout/Context'; diff --git a/interface/app/$libraryId/overview/Inspector.tsx b/interface/app/$libraryId/overview/Inspector.tsx index 705c9f4ad..ea36b6d8d 100644 --- a/interface/app/$libraryId/overview/Inspector.tsx +++ b/interface/app/$libraryId/overview/Inspector.tsx @@ -1,5 +1,6 @@ import { useCallback, useEffect, useRef, useState } from 'react'; import { useSnapshot } from 'valtio'; + import { useCallbackToWatchResize } from '~/hooks'; import { useExplorerContext } from '../Explorer/Context'; import { Inspector } from '../Explorer/Inspector'; diff --git a/interface/app/$libraryId/overview/Statistics.tsx b/interface/app/$libraryId/overview/Statistics.tsx index 90d789508..c5445a549 100644 --- a/interface/app/$libraryId/overview/Statistics.tsx +++ b/interface/app/$libraryId/overview/Statistics.tsx @@ -1,9 +1,12 @@ import clsx from 'clsx'; -import { Info } from 'phosphor-react'; +import { Info } from '@phosphor-icons/react'; import Skeleton from 'react-loading-skeleton'; + import 'react-loading-skeleton/dist/skeleton.css'; -import { Statistics, byteSize, useLibraryContext, useLibraryQuery } from '@sd/client'; + +import { byteSize, Statistics, useLibraryContext, useLibraryQuery } from '@sd/client'; import { Tooltip } from '@sd/ui'; + import { useCounter } from '~/hooks'; import { usePlatform } from '~/util/Platform'; diff --git a/interface/app/$libraryId/overview/data.ts b/interface/app/$libraryId/overview/data.ts index 63b8e943b..f4e8e6793 100644 --- a/interface/app/$libraryId/overview/data.ts +++ b/interface/app/$libraryId/overview/data.ts @@ -11,6 +11,7 @@ import { useLibraryQuery, useRspcLibraryContext } from '@sd/client'; + import { useObjectsInfiniteQuery, usePathsInfiniteQuery } from '../Explorer/queries'; import { createDefaultExplorerSettings, diff --git a/interface/app/$libraryId/overview/index.tsx b/interface/app/$libraryId/overview/index.tsx index 7516c1e83..567088e91 100644 --- a/interface/app/$libraryId/overview/index.tsx +++ b/interface/app/$libraryId/overview/index.tsx @@ -1,20 +1,23 @@ import { getIcon } from '@sd/assets/util'; import { useEffect, useState } from 'react'; + import 'react-loading-skeleton/dist/skeleton.css'; + import { useSnapshot } from 'valtio'; import { Category } from '@sd/client'; + import { useIsDark } from '../../../hooks'; import { ExplorerContextProvider } from '../Explorer/Context'; import ContextMenu, { ObjectItems } from '../Explorer/ContextMenu'; import { Conditional } from '../Explorer/ContextMenu/ConditionalItem'; import { DefaultTopBarOptions } from '../Explorer/TopBarOptions'; import View from '../Explorer/View'; +import Statistics from '../overview/Statistics'; import { usePageLayoutContext } from '../PageLayout/Context'; import { TopBarPortal } from '../TopBar/Portal'; -import Statistics from '../overview/Statistics'; import { Categories } from './Categories'; -import Inspector from './Inspector'; import { IconForCategory, IconToDescription, useCategoryExplorer } from './data'; +import Inspector from './Inspector'; export const Component = () => { const isDark = useIsDark(); diff --git a/interface/app/$libraryId/search.tsx b/interface/app/$libraryId/search.tsx index 17c2e2163..ed90f151f 100644 --- a/interface/app/$libraryId/search.tsx +++ b/interface/app/$libraryId/search.tsx @@ -1,18 +1,19 @@ -import { MagnifyingGlass } from 'phosphor-react'; -import { Suspense, memo, useDeferredValue, useMemo } from 'react'; +import { MagnifyingGlass } from '@phosphor-icons/react'; +import { memo, Suspense, useDeferredValue, useMemo } from 'react'; import { FilePathOrder, getExplorerItemData, useLibraryQuery } from '@sd/client'; -import { type SearchParams, SearchParamsSchema } from '~/app/route-schemas'; + +import { SearchParamsSchema, type SearchParams } from '~/app/route-schemas'; import { useZodSearchParams } from '~/hooks'; import Explorer from './Explorer'; import { ExplorerContextProvider } from './Explorer/Context'; -import { DefaultTopBarOptions } from './Explorer/TopBarOptions'; -import { EmptyNotice } from './Explorer/View'; import { createDefaultExplorerSettings, filePathOrderingKeysSchema, getExplorerStore } from './Explorer/store'; +import { DefaultTopBarOptions } from './Explorer/TopBarOptions'; import { useExplorer, useExplorerSettings } from './Explorer/useExplorer'; +import { EmptyNotice } from './Explorer/View'; import { TopBarPortal } from './TopBar/Portal'; const SearchExplorer = memo((props: { args: SearchParams }) => { diff --git a/interface/app/$libraryId/settings/Layout.tsx b/interface/app/$libraryId/settings/Layout.tsx index 1eae2646d..bf99d9f98 100644 --- a/interface/app/$libraryId/settings/Layout.tsx +++ b/interface/app/$libraryId/settings/Layout.tsx @@ -1,5 +1,6 @@ import { PropsWithChildren, ReactNode, Suspense } from 'react'; import { Outlet } from 'react-router'; + import { useOperatingSystem } from '~/hooks/useOperatingSystem'; import DragRegion from '../../../components/DragRegion'; import Sidebar from './Sidebar'; diff --git a/interface/app/$libraryId/settings/ModalLayout.tsx b/interface/app/$libraryId/settings/ModalLayout.tsx index f67c0fb7c..afcef9c80 100644 --- a/interface/app/$libraryId/settings/ModalLayout.tsx +++ b/interface/app/$libraryId/settings/ModalLayout.tsx @@ -1,4 +1,4 @@ -import { CaretLeft } from 'phosphor-react'; +import { CaretLeft } from '@phosphor-icons/react'; import { PropsWithChildren } from 'react'; import { useNavigate } from 'react-router'; import { Button, Divider, tw } from '@sd/ui'; diff --git a/interface/app/$libraryId/settings/Setting.tsx b/interface/app/$libraryId/settings/Setting.tsx index 7f8a9fd0d..eedffe363 100644 --- a/interface/app/$libraryId/settings/Setting.tsx +++ b/interface/app/$libraryId/settings/Setting.tsx @@ -1,5 +1,5 @@ import clsx from 'clsx'; -import { Info } from 'phosphor-react'; +import { Info } from '@phosphor-icons/react'; import { PropsWithChildren } from 'react'; import { Tooltip } from '@sd/ui'; diff --git a/interface/app/$libraryId/settings/Sidebar.tsx b/interface/app/$libraryId/settings/Sidebar.tsx index 1f04799e8..261a27a56 100644 --- a/interface/app/$libraryId/settings/Sidebar.tsx +++ b/interface/app/$libraryId/settings/Sidebar.tsx @@ -12,9 +12,10 @@ import { Receipt, ShieldCheck, TagSimple -} from 'phosphor-react'; +} from '@phosphor-icons/react'; import { useFeatureFlag } from '@sd/client'; import { tw } from '@sd/ui'; + import { useOperatingSystem } from '~/hooks/useOperatingSystem'; import Icon from '../Layout/Sidebar/Icon'; import SidebarLink from '../Layout/Sidebar/Link'; diff --git a/interface/app/$libraryId/settings/client/appearance.tsx b/interface/app/$libraryId/settings/client/appearance.tsx index 6908ae857..2b291049a 100644 --- a/interface/app/$libraryId/settings/client/appearance.tsx +++ b/interface/app/$libraryId/settings/client/appearance.tsx @@ -1,9 +1,10 @@ import clsx from 'clsx'; import { useMotionValueEvent, useScroll } from 'framer-motion'; -import { CheckCircle } from 'phosphor-react'; +import { CheckCircle } from '@phosphor-icons/react'; import { useEffect, useRef, useState } from 'react'; -import { Themes, getThemeStore, useThemeStore, useZodForm } from '@sd/client'; +import { getThemeStore, Themes, useThemeStore, useZodForm } from '@sd/client'; import { Button, Form, SwitchField, z } from '@sd/ui'; + import { usePlatform } from '~/util/Platform'; import { Heading } from '../Layout'; import Setting from '../Setting'; diff --git a/interface/app/$libraryId/settings/client/backups.tsx b/interface/app/$libraryId/settings/client/backups.tsx index 6255ad2a4..3480c4a6b 100644 --- a/interface/app/$libraryId/settings/client/backups.tsx +++ b/interface/app/$libraryId/settings/client/backups.tsx @@ -1,6 +1,7 @@ import dayjs from 'dayjs'; import { useBridgeMutation, useBridgeQuery, useLibraryMutation } from '@sd/client'; import { Button, Card } from '@sd/ui'; + import { Database } from '~/components'; import { usePlatform } from '~/util/Platform'; import { Heading } from '../Layout'; diff --git a/interface/app/$libraryId/settings/client/extensions.tsx b/interface/app/$libraryId/settings/client/extensions.tsx index ed7c3f2b1..849855af5 100644 --- a/interface/app/$libraryId/settings/client/extensions.tsx +++ b/interface/app/$libraryId/settings/client/extensions.tsx @@ -1,4 +1,5 @@ import { Button, Card, GridLayout, SearchInput } from '@sd/ui'; + import { Heading } from '../Layout'; // extensions should cache their logos in the app data folder diff --git a/interface/app/$libraryId/settings/client/general.tsx b/interface/app/$libraryId/settings/client/general.tsx index 9c2f85870..4a9ba28d1 100644 --- a/interface/app/$libraryId/settings/client/general.tsx +++ b/interface/app/$libraryId/settings/client/general.tsx @@ -7,6 +7,7 @@ import { useZodForm } from '@sd/client'; import { Button, Card, Input, Switch, tw, z } from '@sd/ui'; + import { useDebouncedFormWatch } from '~/hooks'; import { usePlatform } from '~/util/Platform'; import { Heading } from '../Layout'; diff --git a/interface/app/$libraryId/settings/client/keybindings.tsx b/interface/app/$libraryId/settings/client/keybindings.tsx index 75ff78672..f24d673e4 100644 --- a/interface/app/$libraryId/settings/client/keybindings.tsx +++ b/interface/app/$libraryId/settings/client/keybindings.tsx @@ -1,5 +1,6 @@ import { useState } from 'react'; import { Switch } from '@sd/ui'; + import { Heading } from '../Layout'; import Setting from '../Setting'; diff --git a/interface/app/$libraryId/settings/client/privacy.tsx b/interface/app/$libraryId/settings/client/privacy.tsx index 4b64e2f92..3f9162746 100644 --- a/interface/app/$libraryId/settings/client/privacy.tsx +++ b/interface/app/$libraryId/settings/client/privacy.tsx @@ -1,5 +1,6 @@ import { telemetryStore, useTelemetryState } from '@sd/client'; import { Switch } from '@sd/ui'; + import { Heading } from '../Layout'; import Setting from '../Setting'; diff --git a/interface/app/$libraryId/settings/index.tsx b/interface/app/$libraryId/settings/index.tsx index 74d10433d..826f0dfd9 100644 --- a/interface/app/$libraryId/settings/index.tsx +++ b/interface/app/$libraryId/settings/index.tsx @@ -1,4 +1,5 @@ import { RouteObject } from 'react-router-dom'; + import clientRoutes from './client'; import libraryRoutes from './library'; import nodeRoutes from './node'; diff --git a/interface/app/$libraryId/settings/library/general.tsx b/interface/app/$libraryId/settings/library/general.tsx index a30721d3f..21d1b32ee 100644 --- a/interface/app/$libraryId/settings/library/general.tsx +++ b/interface/app/$libraryId/settings/library/general.tsx @@ -1,9 +1,10 @@ import { MaybeUndefined, useBridgeMutation, useLibraryContext, useZodForm } from '@sd/client'; -import { Button, Form, InputField, Switch, Tooltip, dialogManager, z } from '@sd/ui'; +import { Button, dialogManager, Form, InputField, Switch, Tooltip, z } from '@sd/ui'; + import { useDebouncedFormWatch } from '~/hooks'; import { Heading } from '../Layout'; -import Setting from '../Setting'; import DeleteLibraryDialog from '../node/libraries/DeleteDialog'; +import Setting from '../Setting'; const schema = z.object({ id: z.string(), diff --git a/interface/app/$libraryId/settings/library/keys/BackupRestoreDialog.tsx b/interface/app/$libraryId/settings/library/keys/BackupRestoreDialog.tsx index a4b7b293d..8735c084a 100644 --- a/interface/app/$libraryId/settings/library/keys/BackupRestoreDialog.tsx +++ b/interface/app/$libraryId/settings/library/keys/BackupRestoreDialog.tsx @@ -1,4 +1,4 @@ -// import { Eye, EyeSlash } from 'phosphor-react'; +// import { Eye, EyeSlash } from '@phosphor-icons/react'; // import { useState } from 'react'; // import { useLibraryMutation } from '@sd/client'; // import { Button, Dialog, UseDialogProps, forms, useDialog } from '@sd/ui'; diff --git a/interface/app/$libraryId/settings/library/keys/KeyViewerDialog.tsx b/interface/app/$libraryId/settings/library/keys/KeyViewerDialog.tsx index e38b6e565..9fe44cbac 100644 --- a/interface/app/$libraryId/settings/library/keys/KeyViewerDialog.tsx +++ b/interface/app/$libraryId/settings/library/keys/KeyViewerDialog.tsx @@ -1,5 +1,5 @@ // import { Buffer } from 'buffer'; -// import { Clipboard } from 'phosphor-react'; +// import { Clipboard } from '@phosphor-icons/react'; // import { useState } from 'react'; // import { slugFromHashingAlgo, useLibraryQuery } from '@sd/client'; // import { Button, Dialog, Input, Select, SelectOption, UseDialogProps, useDialog } from '@sd/ui'; diff --git a/interface/app/$libraryId/settings/library/keys/MasterPasswordDialog.tsx b/interface/app/$libraryId/settings/library/keys/MasterPasswordDialog.tsx index 184a43bb2..7b07a3135 100644 --- a/interface/app/$libraryId/settings/library/keys/MasterPasswordDialog.tsx +++ b/interface/app/$libraryId/settings/library/keys/MasterPasswordDialog.tsx @@ -1,4 +1,4 @@ -// import { ArrowsClockwise, Clipboard, Eye, EyeSlash } from 'phosphor-react'; +// import { ArrowsClockwise, Clipboard, Eye, EyeSlash } from '@phosphor-icons/react'; // import { useState } from 'react'; // import { // Algorithm, diff --git a/interface/app/$libraryId/settings/library/keys/index.tsx b/interface/app/$libraryId/settings/library/keys/index.tsx index 03b9a998e..e0c3bc314 100644 --- a/interface/app/$libraryId/settings/library/keys/index.tsx +++ b/interface/app/$libraryId/settings/library/keys/index.tsx @@ -1,7 +1,7 @@ // import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; // import { animated, useTransition } from '@react-spring/web'; // import clsx from 'clsx'; -// import { Lock, Plus } from 'phosphor-react'; +// import { Lock, Plus } from '@phosphor-icons/react'; // import { PropsWithChildren, ReactNode, useState } from 'react'; // import QRCode from 'react-qr-code'; // import { useLibraryMutation, useLibraryQuery } from '@sd/client'; diff --git a/interface/app/$libraryId/settings/library/locations/$id.tsx b/interface/app/$libraryId/settings/library/locations/$id.tsx index b70122b00..8d6737910 100644 --- a/interface/app/$libraryId/settings/library/locations/$id.tsx +++ b/interface/app/$libraryId/settings/library/locations/$id.tsx @@ -1,5 +1,5 @@ import { useQueryClient } from '@tanstack/react-query'; -import { Archive, ArrowsClockwise, Info, Trash } from 'phosphor-react'; +import { Archive, ArrowsClockwise, Info, Trash } from '@phosphor-icons/react'; import { Suspense, useEffect } from 'react'; import { Controller } from 'react-hook-form'; import { useLibraryMutation, useLibraryQuery, useZodForm } from '@sd/client'; @@ -12,11 +12,12 @@ import { Label, RadioGroupField, SwitchField, - Tooltip, toast, + Tooltip, tw, z } from '@sd/ui'; + import ModalLayout from '~/app/$libraryId/settings/ModalLayout'; import { LocationIdParamsSchema } from '~/app/route-schemas'; import { useZodRouteParams } from '~/hooks'; diff --git a/interface/app/$libraryId/settings/library/locations/AddLocationButton.tsx b/interface/app/$libraryId/settings/library/locations/AddLocationButton.tsx index 44c79fa64..2f744de6e 100644 --- a/interface/app/$libraryId/settings/library/locations/AddLocationButton.tsx +++ b/interface/app/$libraryId/settings/library/locations/AddLocationButton.tsx @@ -1,8 +1,9 @@ import clsx from 'clsx'; import { motion } from 'framer-motion'; -import { FolderSimplePlus } from 'phosphor-react'; +import { FolderSimplePlus } from '@phosphor-icons/react'; import { useRef, useState } from 'react'; -import { Button, type ButtonProps, dialogManager } from '@sd/ui'; +import { Button, dialogManager, type ButtonProps } from '@sd/ui'; + import { useCallbackToWatchResize } from '~/hooks'; import { usePlatform } from '~/util/Platform'; import { AddLocationDialog } from './AddLocationDialog'; diff --git a/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx b/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx index 5d9d505d2..a29c3b355 100644 --- a/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx +++ b/interface/app/$libraryId/settings/library/locations/AddLocationDialog.tsx @@ -2,14 +2,15 @@ import { useCallback, useEffect, useMemo } from 'react'; import { Controller, get } from 'react-hook-form'; import { useDebouncedCallback } from 'use-debounce'; import { - UnionToTuple, extractInfoRSPCError, + UnionToTuple, useLibraryMutation, useLibraryQuery, usePlausibleEvent, useZodForm } from '@sd/client'; -import { Dialog, ErrorMessage, UseDialogProps, toast, useDialog, z } from '@sd/ui'; +import { Dialog, ErrorMessage, toast, useDialog, UseDialogProps, z } from '@sd/ui'; + import Accordion from '~/components/Accordion'; import { useCallbackToWatchForm } from '~/hooks'; import { usePlatform } from '~/util/Platform'; diff --git a/interface/app/$libraryId/settings/library/locations/DeleteDialog.tsx b/interface/app/$libraryId/settings/library/locations/DeleteDialog.tsx index b8d910695..a3c8e7bcb 100644 --- a/interface/app/$libraryId/settings/library/locations/DeleteDialog.tsx +++ b/interface/app/$libraryId/settings/library/locations/DeleteDialog.tsx @@ -1,5 +1,5 @@ import { useLibraryMutation, usePlausibleEvent, useZodForm } from '@sd/client'; -import { Dialog, UseDialogProps, useDialog } from '@sd/ui'; +import { Dialog, useDialog, UseDialogProps } from '@sd/ui'; interface Props extends UseDialogProps { onSuccess: () => void; diff --git a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleButton.tsx b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleButton.tsx index 878e5cf89..e25652e3f 100644 --- a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleButton.tsx +++ b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleButton.tsx @@ -1,6 +1,7 @@ import clsx from 'clsx'; import { useRef } from 'react'; import { IndexerRule } from '@sd/client'; + import { InfoPill } from '~/app/$libraryId/Explorer/Inspector'; import { IndexerRuleIdFieldType } from '.'; diff --git a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleInput.tsx b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleInput.tsx index f41d75d1a..510cd7199 100644 --- a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleInput.tsx +++ b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RuleInput.tsx @@ -1,6 +1,7 @@ import clsx from 'clsx'; import { ChangeEvent, ChangeEventHandler, forwardRef, memo } from 'react'; import { Input, toast } from '@sd/ui'; + import { useOperatingSystem } from '~/hooks'; import { usePlatform } from '~/util/Platform'; import { openDirectoryPickerDialog } from '../openDirectoryPickerDialog'; diff --git a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RulesForm.tsx b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RulesForm.tsx index 694129729..f6c4b077c 100644 --- a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RulesForm.tsx +++ b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/RulesForm.tsx @@ -1,18 +1,19 @@ import clsx from 'clsx'; -import { Info, Trash } from 'phosphor-react'; +import { Info, Trash } from '@phosphor-icons/react'; import { ChangeEvent, useCallback, useEffect, useId } from 'react'; import { createPortal } from 'react-dom'; import { Controller, FormProvider, useFieldArray } from 'react-hook-form'; import { + extractInfoRSPCError, IndexerRuleCreateArgs, RuleKind, UnionToTuple, - extractInfoRSPCError, useLibraryMutation, useZodForm } from '@sd/client'; import { Button, Card, Divider, Input, Select, SelectOption, Tooltip } from '@sd/ui'; import { ErrorMessage, Form, z } from '@sd/ui/src/forms'; + import { InputKinds, RuleInput, validateInput } from './RuleInput'; const ruleKinds: UnionToTuple = [ diff --git a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/index.tsx b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/index.tsx index d61793adf..8bd518e98 100644 --- a/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/index.tsx +++ b/interface/app/$libraryId/settings/library/locations/IndexerRuleEditor/index.tsx @@ -1,10 +1,11 @@ import clsx from 'clsx'; -import { Trash } from 'phosphor-react'; +import { Trash } from '@phosphor-icons/react'; import { MouseEventHandler, useState } from 'react'; import { ControllerRenderProps } from 'react-hook-form'; import { IndexerRule, useLibraryMutation, useLibraryQuery } from '@sd/client'; import { Button, Divider, Label, toast } from '@sd/ui'; import { InfoText } from '@sd/ui/src/forms'; + import { showAlertDialog } from '~/components'; import RuleButton from './RuleButton'; import RulesForm from './RulesForm'; diff --git a/interface/app/$libraryId/settings/library/locations/ListItem.tsx b/interface/app/$libraryId/settings/library/locations/ListItem.tsx index 35cd77ccc..7feb683f0 100644 --- a/interface/app/$libraryId/settings/library/locations/ListItem.tsx +++ b/interface/app/$libraryId/settings/library/locations/ListItem.tsx @@ -1,9 +1,10 @@ import clsx from 'clsx'; -import { Repeat, Trash } from 'phosphor-react'; +import { Repeat, Trash } from '@phosphor-icons/react'; import { useState } from 'react'; import { useNavigate } from 'react-router'; -import { Location, arraysEqual, useLibraryMutation, useOnlineLocations } from '@sd/client'; -import { Button, Card, Tooltip, dialogManager } from '@sd/ui'; +import { arraysEqual, Location, useLibraryMutation, useOnlineLocations } from '@sd/client'; +import { Button, Card, dialogManager, Tooltip } from '@sd/ui'; + import { Folder } from '~/components'; import { useIsDark } from '~/hooks'; import DeleteDialog from './DeleteDialog'; diff --git a/interface/app/$libraryId/settings/library/locations/PathInput.tsx b/interface/app/$libraryId/settings/library/locations/PathInput.tsx index 68ac45eed..0299bc797 100644 --- a/interface/app/$libraryId/settings/library/locations/PathInput.tsx +++ b/interface/app/$libraryId/settings/library/locations/PathInput.tsx @@ -2,6 +2,7 @@ import clsx from 'clsx'; import { forwardRef } from 'react'; import { useFormContext } from 'react-hook-form'; import { InputField, InputFieldProps, toast } from '@sd/ui'; + import { usePlatform } from '~/util/Platform'; import { openDirectoryPickerDialog } from './openDirectoryPickerDialog'; diff --git a/interface/app/$libraryId/settings/library/locations/index.tsx b/interface/app/$libraryId/settings/library/locations/index.tsx index f6a52979a..41bb1ea99 100644 --- a/interface/app/$libraryId/settings/library/locations/index.tsx +++ b/interface/app/$libraryId/settings/library/locations/index.tsx @@ -2,6 +2,7 @@ import { useMemo, useState } from 'react'; import { useDebounce } from 'use-debounce'; import { useLibraryQuery } from '@sd/client'; import { SearchInput } from '@sd/ui'; + import { Heading } from '../../Layout'; import { AddLocationButton } from './AddLocationButton'; import ListItem from './ListItem'; diff --git a/interface/app/$libraryId/settings/library/nodes.tsx b/interface/app/$libraryId/settings/library/nodes.tsx index 9636d85d2..eee88e566 100644 --- a/interface/app/$libraryId/settings/library/nodes.tsx +++ b/interface/app/$libraryId/settings/library/nodes.tsx @@ -7,6 +7,7 @@ import { useFeatureFlag } from '@sd/client'; import { Button } from '@sd/ui'; + import { startPairing } from '~/app/p2p/pairing'; import { Heading } from '../Layout'; diff --git a/interface/app/$libraryId/settings/library/tags/CreateDialog.tsx b/interface/app/$libraryId/settings/library/tags/CreateDialog.tsx index 7deaad6cb..480be1c49 100644 --- a/interface/app/$libraryId/settings/library/tags/CreateDialog.tsx +++ b/interface/app/$libraryId/settings/library/tags/CreateDialog.tsx @@ -1,5 +1,6 @@ import { Object, useLibraryMutation, usePlausibleEvent, useZodForm } from '@sd/client'; -import { Dialog, InputField, UseDialogProps, useDialog, z } from '@sd/ui'; +import { Dialog, InputField, useDialog, UseDialogProps, z } from '@sd/ui'; + import { ColorPicker } from '~/components'; const schema = z.object({ diff --git a/interface/app/$libraryId/settings/library/tags/DeleteDialog.tsx b/interface/app/$libraryId/settings/library/tags/DeleteDialog.tsx index f8693da41..d6fbf3f9e 100644 --- a/interface/app/$libraryId/settings/library/tags/DeleteDialog.tsx +++ b/interface/app/$libraryId/settings/library/tags/DeleteDialog.tsx @@ -1,5 +1,5 @@ import { useLibraryMutation, usePlausibleEvent, useZodForm } from '@sd/client'; -import { Dialog, UseDialogProps, useDialog } from '@sd/ui'; +import { Dialog, useDialog, UseDialogProps } from '@sd/ui'; interface Props extends UseDialogProps { tagId: number; diff --git a/interface/app/$libraryId/settings/library/tags/EditForm.tsx b/interface/app/$libraryId/settings/library/tags/EditForm.tsx index 95655cf8f..a18da5812 100644 --- a/interface/app/$libraryId/settings/library/tags/EditForm.tsx +++ b/interface/app/$libraryId/settings/library/tags/EditForm.tsx @@ -1,6 +1,7 @@ -import { Trash } from 'phosphor-react'; +import { Trash } from '@phosphor-icons/react'; import { Tag, useLibraryMutation, useZodForm } from '@sd/client'; -import { Button, Form, InputField, Switch, Tooltip, dialogManager, z } from '@sd/ui'; +import { Button, dialogManager, Form, InputField, Switch, Tooltip, z } from '@sd/ui'; + import { ColorPicker } from '~/components'; import { useDebouncedFormWatch } from '~/hooks'; import Setting from '../../Setting'; diff --git a/interface/app/$libraryId/settings/library/tags/index.tsx b/interface/app/$libraryId/settings/library/tags/index.tsx index fad2be352..635844369 100644 --- a/interface/app/$libraryId/settings/library/tags/index.tsx +++ b/interface/app/$libraryId/settings/library/tags/index.tsx @@ -2,6 +2,7 @@ import clsx from 'clsx'; import { useEffect, useState } from 'react'; import { Tag, useLibraryQuery } from '@sd/client'; import { Button, Card, dialogManager } from '@sd/ui'; + import { Heading } from '~/app/$libraryId/settings/Layout'; import { TagsSettingsParamsSchema } from '~/app/route-schemas'; import { useZodRouteParams } from '~/hooks'; diff --git a/interface/app/$libraryId/settings/node/libraries/CreateDialog.tsx b/interface/app/$libraryId/settings/node/libraries/CreateDialog.tsx index 518431f22..794a551a1 100644 --- a/interface/app/$libraryId/settings/node/libraries/CreateDialog.tsx +++ b/interface/app/$libraryId/settings/node/libraries/CreateDialog.tsx @@ -1,7 +1,7 @@ import { useQueryClient } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; import { LibraryConfigWrapped, useBridgeMutation, usePlausibleEvent, useZodForm } from '@sd/client'; -import { Dialog, InputField, UseDialogProps, useDialog, z } from '@sd/ui'; +import { Dialog, InputField, useDialog, UseDialogProps, z } from '@sd/ui'; const schema = z.object({ name: z diff --git a/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx b/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx index 1be212f4c..db13d4e05 100644 --- a/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx +++ b/interface/app/$libraryId/settings/node/libraries/DeleteDialog.tsx @@ -1,6 +1,6 @@ import { useQueryClient } from '@tanstack/react-query'; import { useBridgeMutation, usePlausibleEvent, useZodForm } from '@sd/client'; -import { Dialog, UseDialogProps, useDialog } from '@sd/ui'; +import { Dialog, useDialog, UseDialogProps } from '@sd/ui'; interface Props extends UseDialogProps { libraryUuid: string; diff --git a/interface/app/$libraryId/settings/node/libraries/ListItem.tsx b/interface/app/$libraryId/settings/node/libraries/ListItem.tsx index fdbc890b8..d3ee1c9ab 100644 --- a/interface/app/$libraryId/settings/node/libraries/ListItem.tsx +++ b/interface/app/$libraryId/settings/node/libraries/ListItem.tsx @@ -1,7 +1,8 @@ import { Database, Database_Light } from '@sd/assets/icons'; -import { Pencil, Trash } from 'phosphor-react'; +import { Pencil, Trash } from '@phosphor-icons/react'; import { LibraryConfigWrapped } from '@sd/client'; -import { Button, ButtonLink, Card, Tooltip, dialogManager } from '@sd/ui'; +import { Button, ButtonLink, Card, dialogManager, Tooltip } from '@sd/ui'; + import { useIsDark } from '~/hooks'; import DeleteDialog from './DeleteDialog'; diff --git a/interface/app/$libraryId/settings/node/libraries/index.tsx b/interface/app/$libraryId/settings/node/libraries/index.tsx index 3aee483f3..1889f2adb 100644 --- a/interface/app/$libraryId/settings/node/libraries/index.tsx +++ b/interface/app/$libraryId/settings/node/libraries/index.tsx @@ -1,5 +1,6 @@ import { useBridgeQuery, useLibraryContext } from '@sd/client'; import { Button, dialogManager } from '@sd/ui'; + import { Heading } from '../../Layout'; import CreateDialog from './CreateDialog'; import ListItem from './ListItem'; diff --git a/interface/app/$libraryId/settings/node/p2p.tsx b/interface/app/$libraryId/settings/node/p2p.tsx index 32689591d..9857455a7 100644 --- a/interface/app/$libraryId/settings/node/p2p.tsx +++ b/interface/app/$libraryId/settings/node/p2p.tsx @@ -1,4 +1,5 @@ import { Input, Switch } from '@sd/ui'; + import { Heading } from '../Layout'; import Setting from '../Setting'; diff --git a/interface/app/$libraryId/settings/resources/about.tsx b/interface/app/$libraryId/settings/resources/about.tsx index f9b90ec5d..e3347fab0 100644 --- a/interface/app/$libraryId/settings/resources/about.tsx +++ b/interface/app/$libraryId/settings/resources/about.tsx @@ -1,8 +1,9 @@ import { AppLogo } from '@sd/assets/images'; import { Discord, Github } from '@sd/assets/svgs/brands'; -import { Globe } from 'phosphor-react'; +import { Globe } from '@phosphor-icons/react'; import { useBridgeQuery, useDebugStateEnabler } from '@sd/client'; import { Button, Divider } from '@sd/ui'; + import { useOperatingSystem } from '~/hooks/useOperatingSystem'; import { usePlatform } from '~/util/Platform'; diff --git a/interface/app/$libraryId/settings/resources/dependencies.tsx b/interface/app/$libraryId/settings/resources/dependencies.tsx index f05bfa703..a972131e6 100644 --- a/interface/app/$libraryId/settings/resources/dependencies.tsx +++ b/interface/app/$libraryId/settings/resources/dependencies.tsx @@ -1,5 +1,6 @@ import { useQuery } from '@tanstack/react-query'; import { ScreenHeading } from '@sd/ui'; + import { usePlatform } from '~/util/Platform'; export const Component = () => { diff --git a/interface/app/$libraryId/spacedrop.tsx b/interface/app/$libraryId/spacedrop.tsx index 6c1e7cd63..113606fa3 100644 --- a/interface/app/$libraryId/spacedrop.tsx +++ b/interface/app/$libraryId/spacedrop.tsx @@ -1,7 +1,8 @@ -import { GoogleDrive, Mega, iCloud } from '@sd/assets/images'; +import { GoogleDrive, iCloud, Mega } from '@sd/assets/images'; import clsx from 'clsx'; -import { Icon, User } from 'phosphor-react'; +import { Icon, User } from '@phosphor-icons/react'; import { tw } from '@sd/ui'; + import { SubtleButton, SubtleButtonContainer } from '~/components'; import { OperatingSystem } from '~/util/Platform'; import classes from './spacedrop.module.scss'; diff --git a/interface/app/$libraryId/tag/$id.tsx b/interface/app/$libraryId/tag/$id.tsx index 8ece38635..46837b99a 100644 --- a/interface/app/$libraryId/tag/$id.tsx +++ b/interface/app/$libraryId/tag/$id.tsx @@ -1,14 +1,15 @@ import { getIcon, iconNames } from '@sd/assets/util'; import { useMemo } from 'react'; import { ObjectOrder, useLibraryQuery } from '@sd/client'; + import { LocationIdParamsSchema } from '~/app/route-schemas'; import { useZodRouteParams } from '~/hooks'; import Explorer from '../Explorer'; import { ExplorerContextProvider } from '../Explorer/Context'; -import { DefaultTopBarOptions } from '../Explorer/TopBarOptions'; -import { EmptyNotice } from '../Explorer/View'; import { createDefaultExplorerSettings, objectOrderingKeysSchema } from '../Explorer/store'; +import { DefaultTopBarOptions } from '../Explorer/TopBarOptions'; import { useExplorer, useExplorerSettings } from '../Explorer/useExplorer'; +import { EmptyNotice } from '../Explorer/View'; import { TopBarPortal } from '../TopBar/Portal'; export const Component = () => { diff --git a/interface/app/index.tsx b/interface/app/index.tsx index 5b0b6ce6d..976706398 100644 --- a/interface/app/index.tsx +++ b/interface/app/index.tsx @@ -1,12 +1,14 @@ import { useMemo } from 'react'; -import { Navigate, Outlet, type RouteObject, useMatches } from 'react-router-dom'; +import { Navigate, Outlet, useMatches, type RouteObject } from 'react-router-dom'; import { currentLibraryCache, useCachedLibraries, useInvalidateQuery } from '@sd/client'; import { Dialogs, Toaster } from '@sd/ui'; + import { RouterErrorBoundary } from '~/ErrorFallback'; import { useKeybindHandler, useTheme } from '~/hooks'; import libraryRoutes from './$libraryId'; -import { RootContext } from './RootContext'; import onboardingRoutes from './onboarding'; +import { RootContext } from './RootContext'; + import './style.scss'; const Index = () => { diff --git a/interface/app/onboarding/Layout.tsx b/interface/app/onboarding/Layout.tsx index 1220652b4..5736befe9 100644 --- a/interface/app/onboarding/Layout.tsx +++ b/interface/app/onboarding/Layout.tsx @@ -3,12 +3,13 @@ import clsx from 'clsx'; import { Navigate, Outlet } from 'react-router'; import { useDebugState } from '@sd/client'; import { tw } from '@sd/ui'; + import DragRegion from '~/components/DragRegion'; import { useOperatingSystem } from '~/hooks/useOperatingSystem'; import DebugPopover from '../$libraryId/Layout/Sidebar/DebugPopover'; import { macOnly } from '../$libraryId/Layout/Sidebar/helpers'; -import Progress from './Progress'; import { OnboardingContext, useContextValue } from './context'; +import Progress from './Progress'; export const OnboardingContainer = tw.div`flex flex-col items-center`; export const OnboardingTitle = tw.h2`mb-2 text-3xl font-bold`; diff --git a/interface/app/onboarding/Progress.tsx b/interface/app/onboarding/Progress.tsx index c44a7aeef..f5b85717c 100644 --- a/interface/app/onboarding/Progress.tsx +++ b/interface/app/onboarding/Progress.tsx @@ -2,6 +2,7 @@ import clsx from 'clsx'; import { useEffect } from 'react'; import { useMatch, useNavigate } from 'react-router'; import { getOnboardingStore, unlockOnboardingScreen, useOnboardingStore } from '@sd/client'; + import routes from '.'; export default function OnboardingProgress() { diff --git a/interface/app/onboarding/alpha.tsx b/interface/app/onboarding/alpha.tsx index d0223aa22..220ba8519 100644 --- a/interface/app/onboarding/alpha.tsx +++ b/interface/app/onboarding/alpha.tsx @@ -1,6 +1,7 @@ import { AlphaBg, AlphaBg_Light, AppLogo } from '@sd/assets/images'; import { Discord } from '@sd/assets/svgs/brands'; import { Button, ButtonLink } from '@sd/ui'; + import { useIsDark } from '~/hooks'; import { usePlatform } from '~/util/Platform'; import { OnboardingContainer } from './Layout'; diff --git a/interface/app/onboarding/creating-library.tsx b/interface/app/onboarding/creating-library.tsx index 818561869..11789200d 100644 --- a/interface/app/onboarding/creating-library.tsx +++ b/interface/app/onboarding/creating-library.tsx @@ -1,4 +1,5 @@ import { Loader } from '@sd/ui'; + import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './Layout'; export default function OnboardingCreatingLibrary() { diff --git a/interface/app/onboarding/index.tsx b/interface/app/onboarding/index.tsx index 5668f3ba6..aa8bd0c02 100644 --- a/interface/app/onboarding/index.tsx +++ b/interface/app/onboarding/index.tsx @@ -1,5 +1,6 @@ import { Navigate, RouteObject } from 'react-router'; import { getOnboardingStore } from '@sd/client'; + import Alpha from './alpha'; import { useOnboardingContext } from './context'; import CreatingLibrary from './creating-library'; diff --git a/interface/app/onboarding/new-library.tsx b/interface/app/onboarding/new-library.tsx index dad8d7964..62d16aa21 100644 --- a/interface/app/onboarding/new-library.tsx +++ b/interface/app/onboarding/new-library.tsx @@ -2,13 +2,14 @@ import { Database } from '@sd/assets/icons'; import { useState } from 'react'; import { useNavigate } from 'react-router'; import { Button, Form, InputField } from '@sd/ui'; + +import { useOnboardingContext } from './context'; import { OnboardingContainer, OnboardingDescription, OnboardingImg, OnboardingTitle } from './Layout'; -import { useOnboardingContext } from './context'; export default function OnboardingNewLibrary() { const navigate = useNavigate(); diff --git a/interface/app/onboarding/privacy.tsx b/interface/app/onboarding/privacy.tsx index dac7a256c..7bc23db73 100644 --- a/interface/app/onboarding/privacy.tsx +++ b/interface/app/onboarding/privacy.tsx @@ -1,6 +1,7 @@ import { Button, Form, RadioGroupField } from '@sd/ui'; -import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './Layout'; + import { shareTelemetry, useOnboardingContext } from './context'; +import { OnboardingContainer, OnboardingDescription, OnboardingTitle } from './Layout'; export default function OnboardingPrivacy() { const { forms, submit } = useOnboardingContext(); diff --git a/interface/app/p2p/Spacedrop.tsx b/interface/app/p2p/Spacedrop.tsx index 9f503501f..7430e374f 100644 --- a/interface/app/p2p/Spacedrop.tsx +++ b/interface/app/p2p/Spacedrop.tsx @@ -8,17 +8,18 @@ import { } from '@sd/client'; import { Dialog, + dialogManager, Input, ProgressBar, SelectField, SelectOption, - ToastId, - UseDialogProps, - dialogManager, toast, + ToastId, useDialog, + UseDialogProps, z } from '@sd/ui'; + import { usePlatform } from '~/util/Platform'; import { getSpacedropState, subscribeSpacedropState } from '../../hooks/useSpacedropState'; diff --git a/interface/app/p2p/index.tsx b/interface/app/p2p/index.tsx index ea4a0ae49..2a7bf2f2c 100644 --- a/interface/app/p2p/index.tsx +++ b/interface/app/p2p/index.tsx @@ -1,6 +1,7 @@ import { useFeatureFlag, useP2PEvents, withFeatureFlag } from '@sd/client'; -import { SpacedropUI } from './Spacedrop'; + import { startPairing } from './pairing'; +import { SpacedropUI } from './Spacedrop'; export const SpacedropUI2 = withFeatureFlag('spacedrop', SpacedropUI); diff --git a/interface/app/p2p/pairing.tsx b/interface/app/p2p/pairing.tsx index ecf69488b..57a2c93be 100644 --- a/interface/app/p2p/pairing.tsx +++ b/interface/app/p2p/pairing.tsx @@ -1,5 +1,5 @@ import { useState } from 'react'; -import { P, match } from 'ts-pattern'; +import { match, P } from 'ts-pattern'; import { OperatingSystem, useBridgeMutation, @@ -10,12 +10,12 @@ import { import { Button, Dialog, + dialogManager, Loader, Select, SelectOption, - UseDialogProps, - dialogManager, useDialog, + UseDialogProps, z } from '@sd/ui'; diff --git a/interface/components/Accordion.tsx b/interface/components/Accordion.tsx index 8c1a3e666..dbb64b91b 100644 --- a/interface/components/Accordion.tsx +++ b/interface/components/Accordion.tsx @@ -1,5 +1,5 @@ import clsx from 'clsx'; -import { CaretDown } from 'phosphor-react'; +import { CaretDown } from '@phosphor-icons/react'; import { PropsWithChildren, useState } from 'react'; interface Props { diff --git a/interface/components/AlertDialog.tsx b/interface/components/AlertDialog.tsx index eb111c98d..c989cc09a 100644 --- a/interface/components/AlertDialog.tsx +++ b/interface/components/AlertDialog.tsx @@ -1,7 +1,7 @@ -import { Clipboard } from 'phosphor-react'; +import { Clipboard } from '@phosphor-icons/react'; import { ReactNode } from 'react'; import { useZodForm } from '@sd/client'; -import { Button, Dialog, Input, UseDialogProps, dialogManager, useDialog } from '@sd/ui'; +import { Button, Dialog, dialogManager, Input, useDialog, UseDialogProps } from '@sd/ui'; interface Props extends UseDialogProps { title: string; // dialog title diff --git a/interface/components/AssignTagMenuItems.tsx b/interface/components/AssignTagMenuItems.tsx index 449f89a3b..36f7240e6 100644 --- a/interface/components/AssignTagMenuItems.tsx +++ b/interface/components/AssignTagMenuItems.tsx @@ -1,9 +1,10 @@ +import { Plus } from '@phosphor-icons/react'; import { useVirtualizer } from '@tanstack/react-virtual'; import clsx from 'clsx'; -import { Plus } from 'phosphor-react'; import { useRef } from 'react'; import { Object, useLibraryMutation, useLibraryQuery, usePlausibleEvent } from '@sd/client'; -import { ModifierKeys, dialogManager } from '@sd/ui'; +import { dialogManager, ModifierKeys } from '@sd/ui'; + import CreateDialog from '~/app/$libraryId/settings/library/tags/CreateDialog'; import { useOperatingSystem } from '~/hooks'; import { useScrolled } from '~/hooks/useScrolled'; diff --git a/interface/components/ColorPicker.tsx b/interface/components/ColorPicker.tsx index f6ec30125..44caa1c17 100644 --- a/interface/components/ColorPicker.tsx +++ b/interface/components/ColorPicker.tsx @@ -1,7 +1,7 @@ import clsx from 'clsx'; import { HexColorInput, HexColorPicker } from 'react-colorful'; -import { FieldValues, UseControllerProps, useController } from 'react-hook-form'; -import { Popover, inputStyles } from '@sd/ui'; +import { FieldValues, useController, UseControllerProps } from 'react-hook-form'; +import { inputStyles, Popover } from '@sd/ui'; interface Props extends UseControllerProps { className?: string; diff --git a/interface/components/DismissibleNotice.tsx b/interface/components/DismissibleNotice.tsx index 6568f0808..efcfabc90 100644 --- a/interface/components/DismissibleNotice.tsx +++ b/interface/components/DismissibleNotice.tsx @@ -1,6 +1,7 @@ import clsx from 'clsx'; import { ReactNode } from 'react'; import { Button } from '@sd/ui'; + import { dismissibleNoticeStore, getDismissibleNoticeStore, diff --git a/interface/components/DragRegion.tsx b/interface/components/DragRegion.tsx index 86561865d..6cfde608b 100644 --- a/interface/components/DragRegion.tsx +++ b/interface/components/DragRegion.tsx @@ -1,4 +1,4 @@ -import { PropsWithChildren, forwardRef } from 'react'; +import { forwardRef, PropsWithChildren } from 'react'; import { cx } from '@sd/ui'; export default forwardRef( diff --git a/interface/components/Folder.tsx b/interface/components/Folder.tsx index 480c5f058..e06ab3768 100644 --- a/interface/components/Folder.tsx +++ b/interface/components/Folder.tsx @@ -4,6 +4,7 @@ import { Folder as Folder_Dark, Folder_Light } from '@sd/assets/icons'; + import { useIsDark } from '~/hooks'; interface Props { diff --git a/interface/components/Loader.tsx b/interface/components/Loader.tsx index f8fda2b1e..66fd1cbd3 100644 --- a/interface/components/Loader.tsx +++ b/interface/components/Loader.tsx @@ -1,5 +1,6 @@ import clsx from 'clsx'; import { Puff } from 'react-loading-icons'; + import { useIsDark } from '~/hooks'; interface Props { diff --git a/interface/components/PDFViewer.tsx b/interface/components/PDFViewer.tsx index 881837e76..4204f91d8 100644 --- a/interface/components/PDFViewer.tsx +++ b/interface/components/PDFViewer.tsx @@ -1,4 +1,5 @@ import { memo, useLayoutEffect, useMemo } from 'react'; + import { useOperatingSystem } from '~/hooks'; export interface PDFViewerProps { diff --git a/interface/components/TextViewer/index.tsx b/interface/components/TextViewer/index.tsx index 2998ffee0..ef239a285 100644 --- a/interface/components/TextViewer/index.tsx +++ b/interface/components/TextViewer/index.tsx @@ -1,5 +1,6 @@ import clsx from 'clsx'; import { memo, useEffect, useRef, useState } from 'react'; + import './prism.css'; export interface TextViewerProps { diff --git a/interface/components/TextViewer/worker.ts b/interface/components/TextViewer/worker.ts index a17ffd230..128ef66c9 100644 --- a/interface/components/TextViewer/worker.ts +++ b/interface/components/TextViewer/worker.ts @@ -1,4 +1,5 @@ import Prism from 'prismjs'; + import './prism'; // if you are intending to use Prism functions manually, you will need to set: diff --git a/interface/components/TrafficLights.tsx b/interface/components/TrafficLights.tsx index 7519ac20f..9c7a754ba 100644 --- a/interface/components/TrafficLights.tsx +++ b/interface/components/TrafficLights.tsx @@ -3,6 +3,7 @@ import fullscreenIconPath from '@sd/assets/svgs/macos_fullscreen.svg'; import minimizeIconPath from '@sd/assets/svgs/macos_minimize.svg'; import clsx from 'clsx'; import { ComponentProps, HTMLAttributes, useEffect, useRef } from 'react'; + import { useFocusState } from '~/hooks/useFocusState'; export interface TrafficLightsProps extends ComponentProps<'div'> { diff --git a/interface/hooks/useKeyDeleteFile.tsx b/interface/hooks/useKeyDeleteFile.tsx index 55b5e575e..2f1f8a2f4 100644 --- a/interface/hooks/useKeyDeleteFile.tsx +++ b/interface/hooks/useKeyDeleteFile.tsx @@ -1,6 +1,7 @@ import { useKey } from 'rooks'; import type { ExplorerItem } from '@sd/client'; import { dialogManager } from '@sd/ui'; + import DeleteDialog from '~/app/$libraryId/Explorer/FilePath/DeleteDialog'; export const useKeyDeleteFile = (selectedItems: Set, locationId?: number | null) => { diff --git a/interface/hooks/useKeyboardHandler.ts b/interface/hooks/useKeyboardHandler.ts index 852bb2773..82e848636 100644 --- a/interface/hooks/useKeyboardHandler.ts +++ b/interface/hooks/useKeyboardHandler.ts @@ -1,5 +1,6 @@ import { useEffect } from 'react'; import { useNavigate } from 'react-router'; + import { KeybindEvent } from '../util/keybind'; export function useKeybindHandler() { diff --git a/interface/hooks/useOperatingSystem.ts b/interface/hooks/useOperatingSystem.ts index 941915165..c5797661e 100644 --- a/interface/hooks/useOperatingSystem.ts +++ b/interface/hooks/useOperatingSystem.ts @@ -1,4 +1,5 @@ import { useQuery } from '@tanstack/react-query'; + import { OperatingSystem, usePlatform } from '../util/Platform'; export function guessOperatingSystem(): OperatingSystem { diff --git a/interface/hooks/useTheme.ts b/interface/hooks/useTheme.ts index 1ca4b109d..4b6a594cc 100644 --- a/interface/hooks/useTheme.ts +++ b/interface/hooks/useTheme.ts @@ -1,5 +1,6 @@ import { useEffect } from 'react'; import { getThemeStore, useThemeStore } from '@sd/client'; + import { usePlatform } from '..'; export function useTheme() { diff --git a/interface/index.tsx b/interface/index.tsx index c76d26617..f323c0656 100644 --- a/interface/index.tsx +++ b/interface/index.tsx @@ -1,5 +1,7 @@ -import { Integrations, init } from '@sentry/browser'; +import { init, Integrations } from '@sentry/browser'; + import '@fontsource/inter/variable.css'; + import { defaultContext } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import dayjs from 'dayjs'; @@ -14,8 +16,9 @@ import { useDebugState, useLoadBackendFeatureFlags } from '@sd/client'; -import ErrorFallback from './ErrorFallback'; + import { P2P } from './app/p2p'; +import ErrorFallback from './ErrorFallback'; export { ErrorPage } from './ErrorFallback'; export * from './app'; diff --git a/interface/package.json b/interface/package.json index fbb37c350..164c3aca1 100644 --- a/interface/package.json +++ b/interface/package.json @@ -46,7 +46,7 @@ "dayjs": "^1.11.8", "dragselect": "^2.7.4", "framer-motion": "^10.11.5", - "phosphor-react": "^1.4.1", + "@phosphor-icons/react": "^2.0.10", "prismjs": "^1.29.0", "react": "^18.2.0", "react-colorful": "^5.6.1", diff --git a/interface/tailwind.config.js b/interface/tailwind.config.js new file mode 100644 index 000000000..8aa40b61a --- /dev/null +++ b/interface/tailwind.config.js @@ -0,0 +1 @@ +module.exports = require('@sd/ui/tailwind')('interface'); diff --git a/interface/util/Platform.tsx b/interface/util/Platform.tsx index b2576a44e..699d03921 100644 --- a/interface/util/Platform.tsx +++ b/interface/util/Platform.tsx @@ -1,4 +1,4 @@ -import { type PropsWithChildren, createContext, useContext } from 'react'; +import { createContext, useContext, type PropsWithChildren } from 'react'; export type OperatingSystem = 'browser' | 'linux' | 'macOS' | 'windows' | 'unknown'; diff --git a/interface/util/keybinds.ts b/interface/util/keybinds.ts index 6bd04f9e1..799657a2d 100644 --- a/interface/util/keybinds.ts +++ b/interface/util/keybinds.ts @@ -1,4 +1,5 @@ -import { ModifierKeys, keySymbols, modifierSymbols } from '@sd/ui'; +import { keySymbols, ModifierKeys, modifierSymbols } from '@sd/ui'; + import { OperatingSystem } from '../util/Platform'; function capitalize(string: T): Capitalize { diff --git a/package.json b/package.json index a3d25209a..f5fa68168 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "@cspell/dict-rust": "^2.0.1", "@cspell/dict-typescript": "^2.0.2", "@storybook/react-vite": "^7.0.20", - "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@ianvs/prettier-plugin-sort-imports": "^4.1.0", "cspell": "^6.31.1", "prettier": "^3.0.3", "prettier-plugin-tailwindcss": "^0.5.3", diff --git a/packages/assets/icons/index.ts b/packages/assets/icons/index.ts index cd55b1d32..3658ac68d 100644 --- a/packages/assets/icons/index.ts +++ b/packages/assets/icons/index.ts @@ -2,98 +2,98 @@ * This file was automatically generated by a script. * To regenerate this file, run: pnpm assets gen */ -import Album from './Album.png'; import Album_Light from './Album_Light.png'; -import Alias from './Alias.png'; +import Album from './Album.png'; import Alias_Light from './Alias_Light.png'; -import Application from './Application.png'; +import Alias from './Alias.png'; import Application_Light from './Application_Light.png'; -import Archive from './Archive.png'; +import Application from './Application.png'; import Archive_Light from './Archive_Light.png'; -import Audio from './Audio.png'; +import Archive from './Archive.png'; import Audio_Light from './Audio_Light.png'; +import Audio from './Audio.png'; import Ball from './Ball.png'; +import Book_Light from './Book_Light.png'; import Book from './Book.png'; import BookBlue from './BookBlue.png'; -import Book_Light from './Book_Light.png'; -import Collection from './Collection.png'; import Collection_Light from './Collection_Light.png'; -import Database from './Database.png'; +import Collection from './Collection.png'; import Database_Light from './Database_Light.png'; -import Document from './Document.png'; -import Document_Light from './Document_Light.png'; -import Document_doc from './Document_doc.png'; +import Database from './Database.png'; import Document_doc_Light from './Document_doc_Light.png'; -import Document_pdf from './Document_pdf.png'; +import Document_doc from './Document_doc.png'; +import Document_Light from './Document_Light.png'; import Document_pdf_Light from './Document_pdf_Light.png'; -import Document_xls from './Document_xls.png'; +import Document_pdf from './Document_pdf.png'; import Document_xls_Light from './Document_xls_Light.png'; -import Drive from './Drive.png'; +import Document_xls from './Document_xls.png'; +import Document from './Document.png'; import Drive_Light from './Drive_Light.png'; -import Encrypted from './Encrypted.png'; +import Drive from './Drive.png'; import Encrypted_Light from './Encrypted_Light.png'; -import Entity from './Entity.png'; +import Encrypted from './Encrypted.png'; import Entity_Light from './Entity_Light.png'; -import Executable from './Executable.png'; -import Executable_Light from './Executable_Light.png'; +import Entity from './Entity.png'; import Executable_Light_old from './Executable_Light_old.png'; +import Executable_Light from './Executable_Light.png'; import Executable_old from './Executable_old.png'; +import Executable from './Executable.png'; import Face_Light from './Face_Light.png'; -import Folder from './Folder.png'; -import FolderGrey from './FolderGrey.png'; -import FolderGrey_Light from './FolderGrey_Light.png'; import Folder_Light from './Folder_Light.png'; -import Game from './Game.png'; +import Folder from './Folder.png'; +import FolderGrey_Light from './FolderGrey_Light.png'; +import FolderGrey from './FolderGrey.png'; import Game_Light from './Game_Light.png'; -import Heart from './Heart.png'; +import Game from './Game.png'; import Heart_Light from './Heart_Light.png'; -import Image from './Image.png'; +import Heart from './Heart.png'; import Image_Light from './Image_Light.png'; -import Key from './Key.png'; +import Image from './Image.png'; import Key_Light from './Key_Light.png'; -import Keys from './Keys.png'; +import Key from './Key.png'; import Keys_Light from './Keys_Light.png'; -import Laptop from './Laptop.png'; +import Keys from './Keys.png'; import Laptop_Light from './Laptop_Light.png'; -import Link from './Link.png'; +import Laptop from './Laptop.png'; import Link_Light from './Link_Light.png'; -import Lock from './Lock.png'; +import Link from './Link.png'; import Lock_Light from './Lock_Light.png'; -import Mesh from './Mesh.png'; +import Lock from './Lock.png'; import Mesh_Light from './Mesh_Light.png'; -import Mobile from './Mobile.png'; +import Mesh from './Mesh.png'; import Mobile_Light from './Mobile_Light.png'; -import Movie from './Movie.png'; +import Mobile from './Mobile.png'; import Movie_Light from './Movie_Light.png'; -import Node from './Node.png'; +import Movie from './Movie.png'; import Node_Light from './Node_Light.png'; -import Package from './Package.png'; +import Node from './Node.png'; import Package_Light from './Package_Light.png'; -import Scrapbook from './Scrapbook.png'; +import Package from './Package.png'; import Scrapbook_Light from './Scrapbook_Light.png'; -import Server from './Server.png'; +import Scrapbook from './Scrapbook.png'; import Server_Light from './Server_Light.png'; -import Tablet from './Tablet.png'; +import Server from './Server.png'; import Tablet_Light from './Tablet_Light.png'; -import Tags from './Tags.png'; +import Tablet from './Tablet.png'; import Tags_Light from './Tags_Light.png'; -import Terminal from './Terminal.png'; +import Tags from './Tags.png'; import Terminal_Light from './Terminal_Light.png'; -import Text from './Text.png'; -import TextAlt from './TextAlt.png'; -import TextAlt_Light from './TextAlt_Light.png'; +import Terminal from './Terminal.png'; import Text_Light from './Text_Light.png'; import Text_txt from './Text_txt.png'; -import TexturedMesh from './TexturedMesh.png'; +import Text from './Text.png'; +import TextAlt_Light from './TextAlt_Light.png'; +import TextAlt from './TextAlt.png'; import TexturedMesh_Light from './TexturedMesh_Light.png'; -import Trash from './Trash.png'; +import TexturedMesh from './TexturedMesh.png'; import Trash_Light from './Trash_Light.png'; -import Undefined from './Undefined.png'; +import Trash from './Trash.png'; import Undefined_Light from './Undefined_Light.png'; -import Video from './Video.png'; +import Undefined from './Undefined.png'; import Video_Light from './Video_Light.png'; -import Widget from './Widget.png'; +import Video from './Video.png'; import Widget_Light from './Widget_Light.png'; +import Widget from './Widget.png'; export { Album, diff --git a/packages/assets/images/index.ts b/packages/assets/images/index.ts index 857c45688..837f5ea12 100644 --- a/packages/assets/images/index.ts +++ b/packages/assets/images/index.ts @@ -2,16 +2,16 @@ * This file was automatically generated by a script. * To regenerate this file, run: pnpm assets gen */ -import AlphaBg from './AlphaBg.png'; import AlphaBg_Light from './AlphaBg_Light.png'; +import AlphaBg from './AlphaBg.png'; import AppLogo from './AppLogo.png'; import Ball from './Ball.png'; import BloomOne from './BloomOne.png'; import BloomThree from './BloomThree.png'; import BloomTwo from './BloomTwo.png'; import GoogleDrive from './GoogleDrive.png'; -import Mega from './Mega.png'; import iCloud from './iCloud.png'; +import Mega from './Mega.png'; export { AlphaBg, diff --git a/packages/assets/svgs/ext/Extras/index.ts b/packages/assets/svgs/ext/Extras/index.ts index 698588e5f..d23fcb33f 100644 --- a/packages/assets/svgs/ext/Extras/index.ts +++ b/packages/assets/svgs/ext/Extras/index.ts @@ -81,8 +81,8 @@ import { ReactComponent as flutterpackage } from './flutterpackage.svg'; import { ReactComponent as fonteot } from './fonteot.svg'; import { ReactComponent as fontotf } from './fontotf.svg'; import { ReactComponent as fontttf } from './fontttf.svg'; -import { ReactComponent as fontwoff2 } from './fontwoff2.svg'; import { ReactComponent as fontwoff } from './fontwoff.svg'; +import { ReactComponent as fontwoff2 } from './fontwoff2.svg'; import { ReactComponent as freemarker } from './freemarker.svg'; import { ReactComponent as fsharp } from './fsharp.svg'; import { ReactComponent as gbl } from './gbl.svg'; diff --git a/packages/assets/svgs/ext/index.ts b/packages/assets/svgs/ext/index.ts index a0aabfeec..f14a1b681 100644 --- a/packages/assets/svgs/ext/index.ts +++ b/packages/assets/svgs/ext/index.ts @@ -2,6 +2,7 @@ * This file exports a object which contains Different Kinds of Icons. */ import { type FC as FunctionComponent, type SVGProps } from 'react'; + import * as Code from './Code'; import * as Extras from './Extras'; diff --git a/packages/client/src/form.ts b/packages/client/src/form.ts index 86b7f1c28..a51877728 100644 --- a/packages/client/src/form.ts +++ b/packages/client/src/form.ts @@ -1,6 +1,6 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { useCallback, useRef } from 'react'; -import { UseFormProps, useForm } from 'react-hook-form'; +import { useForm, UseFormProps } from 'react-hook-form'; import { z } from 'zod'; export interface UseZodFormProps> diff --git a/packages/client/src/hooks/useClientContext.tsx b/packages/client/src/hooks/useClientContext.tsx index 60db29c6b..02c42697e 100644 --- a/packages/client/src/hooks/useClientContext.tsx +++ b/packages/client/src/hooks/useClientContext.tsx @@ -1,4 +1,5 @@ -import { PropsWithChildren, createContext, useContext, useMemo } from 'react'; +import { createContext, PropsWithChildren, useContext, useMemo } from 'react'; + import { LibraryConfigWrapped } from '../core'; import { valtioPersist } from '../lib'; import { useBridgeQuery } from '../rspc'; diff --git a/packages/client/src/hooks/useDebugState.ts b/packages/client/src/hooks/useDebugState.ts index 6f6faafb5..797c80a17 100644 --- a/packages/client/src/hooks/useDebugState.ts +++ b/packages/client/src/hooks/useDebugState.ts @@ -1,5 +1,6 @@ import { useEffect, useState } from 'react'; import { useSnapshot } from 'valtio'; + import { valtioPersist } from '../lib/valito'; export interface DebugState { diff --git a/packages/client/src/hooks/useFeatureFlag.tsx b/packages/client/src/hooks/useFeatureFlag.tsx index e6b379c6c..c547317df 100644 --- a/packages/client/src/hooks/useFeatureFlag.tsx +++ b/packages/client/src/hooks/useFeatureFlag.tsx @@ -1,5 +1,6 @@ import { useEffect } from 'react'; import { subscribe, useSnapshot } from 'valtio'; + import type { BackendFeature } from '../core'; import { valtioPersist } from '../lib/valito'; import { nonLibraryClient, useBridgeQuery } from '../rspc'; diff --git a/packages/client/src/hooks/useLibraryContext.tsx b/packages/client/src/hooks/useLibraryContext.tsx index b3963d564..79f4c7e1e 100644 --- a/packages/client/src/hooks/useLibraryContext.tsx +++ b/packages/client/src/hooks/useLibraryContext.tsx @@ -1,4 +1,5 @@ -import { PropsWithChildren, createContext, useContext } from 'react'; +import { createContext, PropsWithChildren, useContext } from 'react'; + import { LibraryConfigWrapped } from '../core'; import { useBridgeSubscription } from '../rspc'; import { ClientContext, useClientContext } from './useClientContext'; diff --git a/packages/client/src/hooks/useNotifications.tsx b/packages/client/src/hooks/useNotifications.tsx index 3c77d8543..44ce1fae8 100644 --- a/packages/client/src/hooks/useNotifications.tsx +++ b/packages/client/src/hooks/useNotifications.tsx @@ -1,4 +1,5 @@ -import { PropsWithChildren, createContext, useState } from 'react'; +import { createContext, PropsWithChildren, useState } from 'react'; + import { Notification } from '../core'; import { useBridgeSubscription } from '../rspc'; diff --git a/packages/client/src/hooks/useOnboardingStore.ts b/packages/client/src/hooks/useOnboardingStore.ts index a13b20b4e..59e7d7722 100644 --- a/packages/client/src/hooks/useOnboardingStore.ts +++ b/packages/client/src/hooks/useOnboardingStore.ts @@ -1,4 +1,5 @@ import { useSnapshot } from 'valtio'; + import { valtioPersist } from '../lib'; export enum UseCase { diff --git a/packages/client/src/hooks/useP2PEvents.tsx b/packages/client/src/hooks/useP2PEvents.tsx index c8219078e..69bc05c0f 100644 --- a/packages/client/src/hooks/useP2PEvents.tsx +++ b/packages/client/src/hooks/useP2PEvents.tsx @@ -1,12 +1,13 @@ import { + createContext, MutableRefObject, PropsWithChildren, - createContext, useContext, useEffect, useRef, useState } from 'react'; + import { P2PEvent, PairingStatus, PeerMetadata } from '../core'; import { useBridgeSubscription } from '../rspc'; diff --git a/packages/client/src/hooks/usePlausible.tsx b/packages/client/src/hooks/usePlausible.tsx index d0cbc29c8..764e5180d 100644 --- a/packages/client/src/hooks/usePlausible.tsx +++ b/packages/client/src/hooks/usePlausible.tsx @@ -1,5 +1,6 @@ import Plausible, { PlausibleOptions as PlausibleTrackerOptions } from 'plausible-tracker'; import { useCallback, useEffect, useRef } from 'react'; + import { useDebugState } from './useDebugState'; import { PlausiblePlatformType, telemetryStore, useTelemetryState } from './useTelemetryState'; diff --git a/packages/client/src/hooks/useTelemetryState.tsx b/packages/client/src/hooks/useTelemetryState.tsx index 8e8da9a1d..56bf7b6ad 100644 --- a/packages/client/src/hooks/useTelemetryState.tsx +++ b/packages/client/src/hooks/useTelemetryState.tsx @@ -1,4 +1,5 @@ import { useSnapshot } from 'valtio'; + import { valtioPersist } from '../lib'; /** diff --git a/packages/client/src/hooks/useThemeStore.ts b/packages/client/src/hooks/useThemeStore.ts index dc8fbabd4..aa66ad212 100644 --- a/packages/client/src/hooks/useThemeStore.ts +++ b/packages/client/src/hooks/useThemeStore.ts @@ -1,4 +1,5 @@ import { useSnapshot } from 'valtio'; + import { valtioPersist } from '../lib'; export type Themes = 'vanilla' | 'dark'; diff --git a/packages/client/src/rspc.tsx b/packages/client/src/rspc.tsx index 08093a10c..269da036f 100644 --- a/packages/client/src/rspc.tsx +++ b/packages/client/src/rspc.tsx @@ -2,8 +2,9 @@ import { ProcedureDef } from '@rspc/client'; import { AlphaRSPCError, initRspc } from '@rspc/client/v2'; import { Context, createReactQueryHooks } from '@rspc/react/v2'; import { QueryClient } from '@tanstack/react-query'; -import { PropsWithChildren, createContext, useContext } from 'react'; -import { P, match } from 'ts-pattern'; +import { createContext, PropsWithChildren, useContext } from 'react'; +import { match, P } from 'ts-pattern'; + import { LibraryArgs, Procedures } from './core'; import { currentLibraryCache } from './hooks'; diff --git a/packages/client/src/utils/explorerItem.ts b/packages/client/src/utils/explorerItem.ts index 7eb8cf331..87b5d40a2 100644 --- a/packages/client/src/utils/explorerItem.ts +++ b/packages/client/src/utils/explorerItem.ts @@ -1,4 +1,5 @@ import { useMemo } from 'react'; + import type { ExplorerItem, FilePath, Object } from '../core'; import { byteSize } from '../lib'; import { ObjectKind } from './objectKind'; diff --git a/packages/client/src/utils/jobs/context.tsx b/packages/client/src/utils/jobs/context.tsx index 300727376..a1629758a 100644 --- a/packages/client/src/utils/jobs/context.tsx +++ b/packages/client/src/utils/jobs/context.tsx @@ -1,4 +1,5 @@ -import { PropsWithChildren, createContext, useContext, useRef } from 'react'; +import { createContext, PropsWithChildren, useContext, useRef } from 'react'; + import { JobProgressEvent } from '../../core'; const JobManagerContext = createContext | null>(null); diff --git a/packages/client/src/utils/jobs/index.ts b/packages/client/src/utils/jobs/index.ts index c375e0fbf..b55ef0c9a 100644 --- a/packages/client/src/utils/jobs/index.ts +++ b/packages/client/src/utils/jobs/index.ts @@ -1,4 +1,5 @@ import { ForwardRefExoticComponent } from 'react'; + import { JobReport } from '../../core'; export * from './useGroupJobTimeText'; diff --git a/packages/client/src/utils/jobs/useGroupJobTimeText.tsx b/packages/client/src/utils/jobs/useGroupJobTimeText.tsx index b4585d5bb..f725416e8 100644 --- a/packages/client/src/utils/jobs/useGroupJobTimeText.tsx +++ b/packages/client/src/utils/jobs/useGroupJobTimeText.tsx @@ -1,6 +1,7 @@ import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import { useEffect, useMemo } from 'react'; + import { JobReport } from '../../core'; import { useForceUpdate } from '../../hooks'; diff --git a/packages/client/src/utils/jobs/useJobProgress.tsx b/packages/client/src/utils/jobs/useJobProgress.tsx index 7a519ba29..99e419f22 100644 --- a/packages/client/src/utils/jobs/useJobProgress.tsx +++ b/packages/client/src/utils/jobs/useJobProgress.tsx @@ -1,4 +1,5 @@ import { useEffect, useState } from 'react'; + import { JobGroup, JobProgressEvent } from '../../core'; import { useLibrarySubscription } from '../../rspc'; import { useJobManagerContext } from './context'; diff --git a/packages/config/vite/index.ts b/packages/config/vite/index.ts index 07b592b00..9f0f2909a 100644 --- a/packages/config/vite/index.ts +++ b/packages/config/vite/index.ts @@ -4,6 +4,7 @@ import { comlink } from 'vite-plugin-comlink'; import { createHtmlPlugin } from 'vite-plugin-html'; import svg from 'vite-plugin-svgr'; import tsconfigPaths from 'vite-tsconfig-paths'; + import relativeAliasResolver from './relativeAliasResolver'; export default defineConfig({ diff --git a/packages/ui/package.json b/packages/ui/package.json index 2e953976f..c45027320 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -36,7 +36,7 @@ "@tailwindcss/forms": "^0.5.3", "class-variance-authority": "^0.5.3", "clsx": "^1.2.1", - "phosphor-react": "^1.4.1", + "@phosphor-icons/react": "^2.0.10", "postcss": "^8.4.17", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/packages/ui/src/Button.stories.tsx b/packages/ui/src/Button.stories.tsx index 434168362..2ce1ee176 100644 --- a/packages/ui/src/Button.stories.tsx +++ b/packages/ui/src/Button.stories.tsx @@ -1,4 +1,5 @@ import { Meta } from '@storybook/react'; + import { Button } from './Button'; const meta: Meta = { diff --git a/packages/ui/src/Button.tsx b/packages/ui/src/Button.tsx index 7e34ac0a3..ce94cdf88 100644 --- a/packages/ui/src/Button.tsx +++ b/packages/ui/src/Button.tsx @@ -1,4 +1,4 @@ -import { VariantProps, cva, cx } from 'class-variance-authority'; +import { cva, cx, VariantProps } from 'class-variance-authority'; import clsx from 'clsx'; import { ComponentProps, forwardRef } from 'react'; import { Link } from 'react-router-dom'; diff --git a/packages/ui/src/CheckBox.tsx b/packages/ui/src/CheckBox.tsx index afad9b046..0f1c899f7 100644 --- a/packages/ui/src/CheckBox.tsx +++ b/packages/ui/src/CheckBox.tsx @@ -1,7 +1,7 @@ import * as Checkbox from '@radix-ui/react-checkbox'; -import { VariantProps, cva } from 'class-variance-authority'; +import { cva, VariantProps } from 'class-variance-authority'; import clsx from 'clsx'; -import { Check } from 'phosphor-react'; +import { Check } from '@phosphor-icons/react'; import { ComponentProps, forwardRef } from 'react'; const styles = cva( diff --git a/packages/ui/src/ContextMenu.tsx b/packages/ui/src/ContextMenu.tsx index c2064833d..87cae989a 100644 --- a/packages/ui/src/ContextMenu.tsx +++ b/packages/ui/src/ContextMenu.tsx @@ -1,8 +1,8 @@ import * as RadixCM from '@radix-ui/react-context-menu'; -import { VariantProps, cva } from 'class-variance-authority'; +import { cva, VariantProps } from 'class-variance-authority'; import clsx from 'clsx'; -import { CaretRight, Icon, IconProps } from 'phosphor-react'; -import { ContextType, PropsWithChildren, Suspense, createContext, useContext } from 'react'; +import { CaretRight, Icon, IconProps } from '@phosphor-icons/react'; +import { ContextType, createContext, PropsWithChildren, Suspense, useContext } from 'react'; interface ContextMenuProps extends RadixCM.MenuContentProps { trigger: React.ReactNode; diff --git a/packages/ui/src/Dialog.tsx b/packages/ui/src/Dialog.tsx index acf9ff3e7..44aca69ae 100644 --- a/packages/ui/src/Dialog.tsx +++ b/packages/ui/src/Dialog.tsx @@ -4,6 +4,7 @@ import clsx from 'clsx'; import { ReactElement, ReactNode, useEffect } from 'react'; import { FieldValues, UseFormHandleSubmit } from 'react-hook-form'; import { proxy, ref, subscribe, useSnapshot } from 'valtio'; + import { Button, Loader } from '../'; import { Form, FormProps } from './forms/Form'; diff --git a/packages/ui/src/Dropdown.stories.tsx b/packages/ui/src/Dropdown.stories.tsx index d2bf9dc00..60629330c 100644 --- a/packages/ui/src/Dropdown.stories.tsx +++ b/packages/ui/src/Dropdown.stories.tsx @@ -1,4 +1,5 @@ import { Meta, StoryFn } from '@storybook/react'; + import { Root } from './Dropdown'; const meta: Meta = { diff --git a/packages/ui/src/Dropdown.tsx b/packages/ui/src/Dropdown.tsx index 10ba2c788..13654280e 100644 --- a/packages/ui/src/Dropdown.tsx +++ b/packages/ui/src/Dropdown.tsx @@ -1,9 +1,10 @@ -import { ReactComponent as CaretDown } from '@sd/assets/svgs/caret.svg'; import { Menu, Transition } from '@headlessui/react'; -import { VariantProps, cva } from 'class-variance-authority'; +import { ReactComponent as CaretDown } from '@sd/assets/svgs/caret.svg'; +import { cva, VariantProps } from 'class-variance-authority'; import clsx from 'clsx'; -import { Fragment, PropsWithChildren, forwardRef } from 'react'; +import { forwardRef, Fragment, PropsWithChildren } from 'react'; import { Link } from 'react-router-dom'; + import * as UI from '.'; import { tw } from './utils'; diff --git a/packages/ui/src/DropdownMenu.tsx b/packages/ui/src/DropdownMenu.tsx index 43eb206a2..cb1151d6f 100644 --- a/packages/ui/src/DropdownMenu.tsx +++ b/packages/ui/src/DropdownMenu.tsx @@ -2,20 +2,21 @@ import * as RadixDM from '@radix-ui/react-dropdown-menu'; import clsx from 'clsx'; import React, { ContextType, + createContext, PropsWithChildren, Suspense, - createContext, useCallback, useContext, useRef, useState } from 'react'; import { Link } from 'react-router-dom'; + import { - ContextMenuDivItem, - ContextMenuItemProps, contextMenuClassNames, + ContextMenuDivItem, contextMenuItemClassNames, + ContextMenuItemProps, contextMenuSeparatorClassNames } from './ContextMenu'; diff --git a/packages/ui/src/Input.stories.tsx b/packages/ui/src/Input.stories.tsx index de8441eab..db981a8ae 100644 --- a/packages/ui/src/Input.stories.tsx +++ b/packages/ui/src/Input.stories.tsx @@ -1,5 +1,6 @@ import { Meta } from '@storybook/react'; import { useState } from 'react'; + import { Input } from './Input'; const meta: Meta = { diff --git a/packages/ui/src/Input.tsx b/packages/ui/src/Input.tsx index 9ad86b505..fcaa08cb2 100644 --- a/packages/ui/src/Input.tsx +++ b/packages/ui/src/Input.tsx @@ -1,7 +1,8 @@ -import { VariantProps, cva } from 'class-variance-authority'; +import { cva, VariantProps } from 'class-variance-authority'; import clsx from 'clsx'; -import { Eye, EyeSlash, Icon, IconProps, MagnifyingGlass } from 'phosphor-react'; +import { Eye, EyeSlash, Icon, IconProps, MagnifyingGlass } from '@phosphor-icons/react'; import { createElement, forwardRef, isValidElement, useState } from 'react'; + import { Button } from './Button'; export interface InputBaseProps extends VariantProps { diff --git a/packages/ui/src/Popover.tsx b/packages/ui/src/Popover.tsx index 672193b73..b85880b04 100644 --- a/packages/ui/src/Popover.tsx +++ b/packages/ui/src/Popover.tsx @@ -1,6 +1,7 @@ import * as Radix from '@radix-ui/react-popover'; import clsx from 'clsx'; import React, { useEffect, useRef, useState } from 'react'; + import { tw } from './utils'; interface Props extends Radix.PopoverContentProps { diff --git a/packages/ui/src/Select.stories.tsx b/packages/ui/src/Select.stories.tsx index 14683fd72..3f864ca28 100644 --- a/packages/ui/src/Select.stories.tsx +++ b/packages/ui/src/Select.stories.tsx @@ -1,5 +1,6 @@ import { Meta } from '@storybook/react'; import { useState } from 'react'; + import { Select, SelectOption } from './Select'; const meta: Meta = { diff --git a/packages/ui/src/Select.tsx b/packages/ui/src/Select.tsx index 130f8ef9e..45e1180b4 100644 --- a/packages/ui/src/Select.tsx +++ b/packages/ui/src/Select.tsx @@ -1,9 +1,9 @@ -import { ReactComponent as ChevronDouble } from '@sd/assets/svgs/chevron-double.svg'; import * as RS from '@radix-ui/react-select'; -import { VariantProps, cva } from 'class-variance-authority'; +import { ReactComponent as ChevronDouble } from '@sd/assets/svgs/chevron-double.svg'; +import { cva, VariantProps } from 'class-variance-authority'; import clsx from 'clsx'; -import { Check } from 'phosphor-react'; -import { PropsWithChildren, forwardRef } from 'react'; +import { Check } from '@phosphor-icons/react'; +import { forwardRef, PropsWithChildren } from 'react'; export const selectStyles = cva( [ diff --git a/packages/ui/src/Switch.stories.tsx b/packages/ui/src/Switch.stories.tsx index 83b44191d..dc2d3e559 100644 --- a/packages/ui/src/Switch.stories.tsx +++ b/packages/ui/src/Switch.stories.tsx @@ -1,4 +1,5 @@ import { Meta } from '@storybook/react'; + import { Switch } from './Switch'; const meta: Meta = { @@ -9,18 +10,17 @@ const meta: Meta = { backgrounds: { default: 'dark' } - }, + } }; export default meta; - export const Default = () => { return ( -
+

Switch

-
- +
+
); diff --git a/packages/ui/src/Switch.tsx b/packages/ui/src/Switch.tsx index 634119c8e..21b43269f 100644 --- a/packages/ui/src/Switch.tsx +++ b/packages/ui/src/Switch.tsx @@ -1,5 +1,5 @@ import * as SwitchPrimitive from '@radix-ui/react-switch'; -import { VariantProps, cva } from 'class-variance-authority'; +import { cva, VariantProps } from 'class-variance-authority'; import { forwardRef } from 'react'; export interface SwitchProps diff --git a/packages/ui/src/Tabs.tsx b/packages/ui/src/Tabs.tsx index cf56f7cf3..4b5503c55 100644 --- a/packages/ui/src/Tabs.tsx +++ b/packages/ui/src/Tabs.tsx @@ -1,4 +1,5 @@ import * as TabsPrimitive from '@radix-ui/react-tabs'; + import { tw } from './utils'; export const Root = tw(TabsPrimitive.Root)` diff --git a/packages/ui/src/Toast.tsx b/packages/ui/src/Toast.tsx index 25422cf97..0aaa3bd6c 100644 --- a/packages/ui/src/Toast.tsx +++ b/packages/ui/src/Toast.tsx @@ -1,7 +1,8 @@ import clsx from 'clsx'; -import { CheckCircle, Icon, Info, Warning, WarningCircle, X } from 'phosphor-react'; +import { CheckCircle, Icon, Info, Warning, WarningCircle, X } from '@phosphor-icons/react'; import { CSSProperties, ReactNode, useEffect, useState } from 'react'; import { toast as SonnerToast } from 'sonner'; + import { Button } from './Button'; import { Loader } from './Loader'; diff --git a/packages/ui/src/forms/CheckBoxField.tsx b/packages/ui/src/forms/CheckBoxField.tsx index 8518d8165..a2ad9891e 100644 --- a/packages/ui/src/forms/CheckBoxField.tsx +++ b/packages/ui/src/forms/CheckBoxField.tsx @@ -1,6 +1,7 @@ import { forwardRef } from 'react'; + import { CheckBox as Root } from '../CheckBox'; -import { FormField, UseFormFieldProps, useFormField } from './FormField'; +import { FormField, useFormField, UseFormFieldProps } from './FormField'; export interface CheckBoxFieldProps extends UseFormFieldProps {} diff --git a/packages/ui/src/forms/Form.tsx b/packages/ui/src/forms/Form.tsx index b85c26775..832ba001f 100644 --- a/packages/ui/src/forms/Form.tsx +++ b/packages/ui/src/forms/Form.tsx @@ -1,15 +1,15 @@ import { animated, useTransition } from '@react-spring/web'; -import { VariantProps, cva } from 'class-variance-authority'; -import { Warning } from 'phosphor-react'; +import { cva, VariantProps } from 'class-variance-authority'; +import { Warning } from '@phosphor-icons/react'; import { ComponentProps } from 'react'; import { FieldErrors, FieldValues, FormProvider, - UseFormHandleSubmit, - UseFormReturn, get, - useFormContext + useFormContext, + UseFormHandleSubmit, + UseFormReturn } from 'react-hook-form'; export interface FormProps extends Omit, 'onSubmit'> { diff --git a/packages/ui/src/forms/FormField.tsx b/packages/ui/src/forms/FormField.tsx index 6d8b7eef2..bad00f567 100644 --- a/packages/ui/src/forms/FormField.tsx +++ b/packages/ui/src/forms/FormField.tsx @@ -1,5 +1,6 @@ import { PropsWithChildren, ReactNode, useId } from 'react'; import { useFormContext } from 'react-hook-form'; + import { Label } from '../Input'; import { tw } from '../utils'; import { ErrorMessage } from './Form'; diff --git a/packages/ui/src/forms/InputField.tsx b/packages/ui/src/forms/InputField.tsx index c2187c8e2..80cff0065 100644 --- a/packages/ui/src/forms/InputField.tsx +++ b/packages/ui/src/forms/InputField.tsx @@ -5,8 +5,9 @@ import clsx from 'clsx'; import { forwardRef, useEffect, useState } from 'react'; import { useFormContext } from 'react-hook-form'; import { useDebouncedCallback } from 'use-debounce'; + import * as Root from '../Input'; -import { FormField, UseFormFieldProps, useFormField } from './FormField'; +import { FormField, useFormField, UseFormFieldProps } from './FormField'; export interface InputFieldProps extends UseFormFieldProps, Root.InputProps { name: string; diff --git a/packages/ui/src/forms/RadioGroupField.tsx b/packages/ui/src/forms/RadioGroupField.tsx index ae6d16e69..3f49ff139 100644 --- a/packages/ui/src/forms/RadioGroupField.tsx +++ b/packages/ui/src/forms/RadioGroupField.tsx @@ -1,8 +1,9 @@ import { forwardRef } from 'react'; import { useController } from 'react-hook-form'; import { z } from 'zod'; + import * as RadioGroup from '../RadioGroup'; -import { FormField, UseFormFieldProps, useFormField } from './FormField'; +import { FormField, useFormField, UseFormFieldProps } from './FormField'; export interface RootProps extends UseFormFieldProps, RadioGroup.RootProps { name: string; diff --git a/packages/ui/src/forms/SelectField.tsx b/packages/ui/src/forms/SelectField.tsx index 43b968ded..9a95c9bfd 100644 --- a/packages/ui/src/forms/SelectField.tsx +++ b/packages/ui/src/forms/SelectField.tsx @@ -1,6 +1,7 @@ -import { FieldValues, UseControllerProps, useController } from 'react-hook-form'; +import { FieldValues, useController, UseControllerProps } from 'react-hook-form'; + import * as Root from '../Select'; -import { FormField, UseFormFieldProps, useFormField } from './FormField'; +import { FormField, useFormField, UseFormFieldProps } from './FormField'; export interface SelectFieldProps extends Omit, diff --git a/packages/ui/src/forms/SwitchField.tsx b/packages/ui/src/forms/SwitchField.tsx index 5d9455ed4..6e7aaa5fd 100644 --- a/packages/ui/src/forms/SwitchField.tsx +++ b/packages/ui/src/forms/SwitchField.tsx @@ -1,8 +1,9 @@ import clsx from 'clsx'; import { forwardRef } from 'react'; import { useController } from 'react-hook-form'; + import { Switch, SwitchProps } from '../Switch'; -import { FormField, UseFormFieldProps, useFormField } from './FormField'; +import { FormField, useFormField, UseFormFieldProps } from './FormField'; export interface SwitchFieldProps extends UseFormFieldProps, SwitchProps { name: string; diff --git a/packages/ui/src/forms/TextAreaField.tsx b/packages/ui/src/forms/TextAreaField.tsx index 220ee2c82..d6cd3a7f9 100644 --- a/packages/ui/src/forms/TextAreaField.tsx +++ b/packages/ui/src/forms/TextAreaField.tsx @@ -1,7 +1,7 @@ import { forwardRef } from 'react'; + import * as Root from '../Input'; -import { useFormField } from './FormField'; -import { FormField, UseFormFieldProps } from './FormField'; +import { FormField, useFormField, UseFormFieldProps } from './FormField'; export interface TextAreaFieldProps extends UseFormFieldProps, Root.TextareaProps { name: string; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a292210c6..bcaa6187c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,12 +20,12 @@ importers: '@cspell/dict-typescript': specifier: ^2.0.2 version: 2.0.2 + '@ianvs/prettier-plugin-sort-imports': + specifier: ^4.1.0 + version: 4.1.0(prettier@3.0.3) '@storybook/react-vite': specifier: ^7.0.20 version: 7.0.20(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.9) - '@trivago/prettier-plugin-sort-imports': - specifier: ^4.2.0 - version: 4.2.0(prettier@3.0.3) cspell: specifier: ^6.31.1 version: 6.31.1 @@ -34,7 +34,7 @@ importers: version: 3.0.3 prettier-plugin-tailwindcss: specifier: ^0.5.3 - version: 0.5.3(@trivago/prettier-plugin-sort-imports@4.2.0)(prettier@3.0.3) + version: 0.5.3(@ianvs/prettier-plugin-sort-imports@4.1.0)(prettier@3.0.3) rimraf: specifier: ^4.4.1 version: 4.4.1 @@ -49,7 +49,7 @@ importers: version: 5.0.4 vite: specifier: ^4.3.9 - version: 4.3.9(less@4.2.0) + version: 4.3.9(@types/node@18.15.1) apps/desktop: dependencies: @@ -138,6 +138,9 @@ importers: '@aws-sdk/client-ses': specifier: ^3.337.0 version: 3.337.0 + '@phosphor-icons/react': + specifier: ^2.0.10 + version: 2.0.10(react-dom@18.2.0)(react@18.2.0) '@planetscale/database': specifier: ^1.7.0 version: 1.7.0 @@ -183,9 +186,6 @@ importers: next-contentlayer: specifier: ^0.3.2 version: 0.3.2(esbuild@0.19.2)(next@13.4.3)(react-dom@18.2.0)(react@18.2.0) - phosphor-react: - specifier: ^1.4.1 - version: 1.4.1(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -569,7 +569,7 @@ importers: version: 5.0.4 vite: specifier: ^4.0.4 - version: 4.3.9(less@4.2.0) + version: 4.3.9(@types/node@18.15.1) vite-plugin-html: specifier: ^3.2.0 version: 3.2.0(vite@4.3.9) @@ -609,7 +609,7 @@ importers: version: 4.8.2 vite: specifier: ^4.0.4 - version: 4.3.9(less@4.2.0) + version: 4.3.9(@types/node@18.15.1) interface: dependencies: @@ -622,6 +622,9 @@ importers: '@icons-pack/react-simple-icons': specifier: ^7.2.0 version: 7.2.0(react@18.2.0) + '@phosphor-icons/react': + specifier: ^2.0.10 + version: 2.0.10(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-progress': specifier: ^1.0.1 version: 1.0.1(react-dom@18.2.0)(react@18.2.0) @@ -700,9 +703,6 @@ importers: framer-motion: specifier: ^10.11.5 version: 10.11.5(react-dom@18.2.0)(react@18.2.0) - phosphor-react: - specifier: ^1.4.1 - version: 1.4.1(react@18.2.0) prismjs: specifier: ^1.29.0 version: 1.29.0 @@ -932,6 +932,9 @@ importers: '@hookform/resolvers': specifier: ^3.1.0 version: 3.1.0(react-hook-form@7.45.2) + '@phosphor-icons/react': + specifier: ^2.0.10 + version: 2.0.10(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-checkbox': specifier: ^1.0.3 version: 1.0.3(react-dom@18.2.0)(react@18.2.0) @@ -974,9 +977,6 @@ importers: clsx: specifier: ^1.2.1 version: 1.2.1 - phosphor-react: - specifier: ^1.4.1 - version: 1.4.1(react@18.2.0) postcss: specifier: ^8.4.17 version: 8.4.23 @@ -1864,15 +1864,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.17.7: - resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.11 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - /@babel/generator@7.21.9: resolution: {integrity: sha512-F3fZga2uv09wFdEjEQIJxXALXfz0+JaOb7SabvVMmjHxeVTuGW8wgE8Vp1Hd7O+zMTYtcfEISGRzPkeiaPPsvg==} engines: {node: '>=6.9.0'} @@ -4093,24 +4084,6 @@ packages: '@babel/parser': 7.22.13 '@babel/types': 7.22.11 - /@babel/traverse@7.17.3: - resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.22.10 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.13 - '@babel/types': 7.22.11 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.21.5: resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} engines: {node: '>=6.9.0'} @@ -4145,14 +4118,6 @@ packages: transitivePeerDependencies: - supports-color - /@babel/types@7.17.0: - resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.5 - to-fast-properties: 2.0.0 - dev: true - /@babel/types@7.21.5: resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} engines: {node: '>=6.9.0'} @@ -5704,6 +5669,26 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@ianvs/prettier-plugin-sort-imports@4.1.0(prettier@3.0.3): + resolution: {integrity: sha512-IAXeTLU24k6mRPa6mFbW1qZJ/j0m3OeH44wyijWyr+YqqdNtBnfHxAntOAATS9iDfrT01NesKGsdzqnXdDQa/A==} + peerDependencies: + '@vue/compiler-sfc': '>=3.0.0' + prettier: 2 || 3 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@babel/core': 7.22.11 + '@babel/generator': 7.22.10 + '@babel/parser': 7.22.13 + '@babel/traverse': 7.22.11 + '@babel/types': 7.22.11 + prettier: 3.0.3 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /@iarna/toml@2.2.5: resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} dev: true @@ -6307,6 +6292,17 @@ packages: engines: {node: '>=14'} dev: false + /@phosphor-icons/react@2.0.10(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-q5ITPNFhmEiYZLZOvEhjo2phlfxoOmit7vE1tBYMxcMqnZX2vdbMw3deDE7wCegpBKM/q/p39BJmhhoPcjZyCg==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8' + react-dom: '>= 16.8' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@planetscale/database@1.7.0: resolution: {integrity: sha512-lWR6biXChUyQnxsT4RT1CIeR3ZJvwTQXiQ+158MnY3VjLwjHEGakDzdH9kwUGPk6CHvu6UeqRXp1DgUOVHJFTw==} engines: {node: '>=16'} @@ -10242,26 +10238,6 @@ packages: '@testing-library/dom': 8.20.1 dev: false - /@trivago/prettier-plugin-sort-imports@4.2.0(prettier@3.0.3): - resolution: {integrity: sha512-YBepjbt+ZNBVmN3ev1amQH3lWCmHyt5qTbLCp/syXJRu/Kw2koXh44qayB1gMRxcL/gV8egmjN5xWSrYyfUtyw==} - peerDependencies: - '@vue/compiler-sfc': 3.x - prettier: 2.x - 3.x - peerDependenciesMeta: - '@vue/compiler-sfc': - optional: true - dependencies: - '@babel/generator': 7.17.7 - '@babel/parser': 7.22.13 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - javascript-natural-sort: 0.7.1 - lodash: 4.17.21 - prettier: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -10877,7 +10853,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.11) magic-string: 0.26.7 react-refresh: 0.14.0 - vite: 4.3.9(@types/node@18.15.1) + vite: 4.3.9(sass@1.55.0) transitivePeerDependencies: - supports-color @@ -15733,7 +15709,6 @@ packages: /immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} - dev: true /import-fresh@2.0.0: resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} @@ -16243,10 +16218,6 @@ packages: minimatch: 3.1.2 dev: true - /javascript-natural-sort@0.7.1: - resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} - dev: true - /jest-environment-node@29.6.4: resolution: {integrity: sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -19214,15 +19185,6 @@ packages: react-native-svg: 13.10.0(react-native@0.72.3)(react@18.2.0) dev: false - /phosphor-react@1.4.1(react@18.2.0): - resolution: {integrity: sha512-gO5j7U0xZrdglTAYDYPACU4xDOFBTJmptrrB/GeR+tHhCZF3nUMyGmV/0hnloKjuTrOmpSFlbfOY78H39rgjUQ==} - engines: {node: '>=10'} - peerDependencies: - react: '>=16' - dependencies: - react: 18.2.0 - dev: false - /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -19540,7 +19502,7 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-tailwindcss@0.5.3(@trivago/prettier-plugin-sort-imports@4.2.0)(prettier@3.0.3): + /prettier-plugin-tailwindcss@0.5.3(@ianvs/prettier-plugin-sort-imports@4.1.0)(prettier@3.0.3): resolution: {integrity: sha512-M5K80V21yM+CTm/FEFYRv9/9LyInYbCSXpIoPAKMm8zy89IOwdiA2e4JVbcO7tvRtAQWz32zdj7/WKcsmFyAVg==} engines: {node: '>=14.21.3'} peerDependencies: @@ -19592,7 +19554,7 @@ packages: prettier-plugin-twig-melody: optional: true dependencies: - '@trivago/prettier-plugin-sort-imports': 4.2.0(prettier@3.0.3) + '@ianvs/prettier-plugin-sort-imports': 4.1.0(prettier@3.0.3) prettier: 3.0.3 dev: true @@ -21162,7 +21124,6 @@ packages: chokidar: 3.5.3 immutable: 4.3.4 source-map-js: 1.0.2 - dev: true /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -23464,7 +23425,7 @@ packages: dependencies: '@rollup/pluginutils': 4.2.1 '@svgr/core': 6.5.1 - vite: 4.3.9(@types/node@18.15.1) + vite: 4.3.9(sass@1.55.0) transitivePeerDependencies: - supports-color dev: true @@ -23478,7 +23439,7 @@ packages: globrex: 0.1.2 recrawl-sync: 2.2.3 tsconfig-paths: 4.2.0 - vite: 4.3.9(less@4.2.0) + vite: 4.3.9(@types/node@18.15.1) transitivePeerDependencies: - supports-color dev: true @@ -23626,7 +23587,6 @@ packages: sass: 1.55.0 optionalDependencies: fsevents: 2.3.3 - dev: true /vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}