Assets Export Script (#608)
* asset script * Add commonjs vite plugin * Use the index file and rename some images * Delete unsued files and imports * Change require to import * Remove @ts-nocheck bcs why not
|
@ -17,7 +17,7 @@ export default defineConfig({
|
|||
svg({ svgrOptions: { icon: true } }),
|
||||
createHtmlPlugin({
|
||||
minify: true
|
||||
})
|
||||
}),
|
||||
],
|
||||
css: {
|
||||
modules: {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import AppLogo from '@sd/assets/images/logo.png';
|
||||
import { AppLogo } from '@sd/assets/images';
|
||||
import {
|
||||
Discord,
|
||||
Github,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import AppLogo from '@sd/assets/images/logo.png';
|
||||
import { AppLogo } from '@sd/assets/images';
|
||||
import { Academia, Discord, Github } from '@icons-pack/react-simple-icons';
|
||||
import clsx from 'clsx';
|
||||
import { Book, Chat, DotsThreeVertical, MapPin, User } from 'phosphor-react';
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
import folderSvg from '@sd/assets/svgs/folder.svg';
|
||||
import clsx from 'clsx';
|
||||
import { Helmet } from 'react-helmet';
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import react from '@vitejs/plugin-react';
|
|||
import path from 'path';
|
||||
import { visualizer } from 'rollup-plugin-visualizer';
|
||||
import { defineConfig } from 'vite';
|
||||
import esm from 'vite-plugin-esmodule';
|
||||
// import esm from 'vite-plugin-esmodule';
|
||||
import md, { Mode } from 'vite-plugin-markdown';
|
||||
import ssr from 'vite-plugin-ssr/plugin';
|
||||
import svg from 'vite-plugin-svgr';
|
||||
|
@ -15,7 +15,7 @@ export default defineConfig({
|
|||
ssr({ prerender: true }),
|
||||
svg(),
|
||||
md({ mode: [Mode.REACT] }),
|
||||
visualizer()
|
||||
visualizer(),
|
||||
],
|
||||
css: {
|
||||
modules: {
|
||||
|
|
|
@ -1,347 +0,0 @@
|
|||
import ai from '@sd/assets/icons/ai.svg';
|
||||
import angular from '@sd/assets/icons/angular.svg';
|
||||
import audiomp3 from '@sd/assets/icons/audio-mp3.svg';
|
||||
import audioogg from '@sd/assets/icons/audio-ogg.svg';
|
||||
import audiowav from '@sd/assets/icons/audio-wav.svg';
|
||||
import audio from '@sd/assets/icons/audio.svg';
|
||||
import babel from '@sd/assets/icons/babel.svg';
|
||||
import bat from '@sd/assets/icons/bat.svg';
|
||||
import bicep from '@sd/assets/icons/bicep.svg';
|
||||
import binary from '@sd/assets/icons/binary.svg';
|
||||
import blade from '@sd/assets/icons/blade.svg';
|
||||
import browserslist from '@sd/assets/icons/browserslist.svg';
|
||||
import bsconfig from '@sd/assets/icons/bsconfig.svg';
|
||||
import bundler from '@sd/assets/icons/bundler.svg';
|
||||
import c from '@sd/assets/icons/c.svg';
|
||||
import cert from '@sd/assets/icons/cert.svg';
|
||||
import cheader from '@sd/assets/icons/cheader.svg';
|
||||
import cli from '@sd/assets/icons/cli.svg';
|
||||
import compodoc from '@sd/assets/icons/compodoc.svg';
|
||||
import composer from '@sd/assets/icons/composer.svg';
|
||||
import conf from '@sd/assets/icons/conf.svg';
|
||||
import cpp from '@sd/assets/icons/cpp.svg';
|
||||
import csharp from '@sd/assets/icons/csharp.svg';
|
||||
import cshtml from '@sd/assets/icons/cshtml.svg';
|
||||
import cssmap from '@sd/assets/icons/css-map.svg';
|
||||
import css from '@sd/assets/icons/css.svg';
|
||||
import csv from '@sd/assets/icons/csv.svg';
|
||||
import dartlang from '@sd/assets/icons/dartlang.svg';
|
||||
import dockerdebug from '@sd/assets/icons/docker-debug.svg';
|
||||
import dockerignore from '@sd/assets/icons/docker-ignore.svg';
|
||||
import docker from '@sd/assets/icons/docker.svg';
|
||||
import editorconfig from '@sd/assets/icons/editorconfig.svg';
|
||||
import eex from '@sd/assets/icons/eex.svg';
|
||||
import elixir from '@sd/assets/icons/elixir.svg';
|
||||
import elm from '@sd/assets/icons/elm.svg';
|
||||
import env from '@sd/assets/icons/env.svg';
|
||||
import erb from '@sd/assets/icons/erb.svg';
|
||||
import erlang from '@sd/assets/icons/erlang.svg';
|
||||
import eslint from '@sd/assets/icons/eslint.svg';
|
||||
import exs from '@sd/assets/icons/exs.svg';
|
||||
import exx from '@sd/assets/icons/exx.svg';
|
||||
import file from '@sd/assets/icons/file.svg';
|
||||
import folderlight from '@sd/assets/icons/folder-light.svg';
|
||||
import folderopen from '@sd/assets/icons/folder-open.svg';
|
||||
import folder from '@sd/assets/icons/folder.svg';
|
||||
import fontotf from '@sd/assets/icons/font-otf.svg';
|
||||
import fontttf from '@sd/assets/icons/font-ttf.svg';
|
||||
import fontwoff2 from '@sd/assets/icons/font-woff2.svg';
|
||||
import fontwoff from '@sd/assets/icons/font-woff.svg';
|
||||
import git from '@sd/assets/icons/git.svg';
|
||||
import gopackage from '@sd/assets/icons/go-package.svg';
|
||||
import go from '@sd/assets/icons/go.svg';
|
||||
import gradle from '@sd/assets/icons/gradle.svg';
|
||||
import graphql from '@sd/assets/icons/graphql.svg';
|
||||
import groovy from '@sd/assets/icons/groovy.svg';
|
||||
import grunt from '@sd/assets/icons/grunt.svg';
|
||||
import gulp from '@sd/assets/icons/gulp.svg';
|
||||
import haml from '@sd/assets/icons/haml.svg';
|
||||
import handlebars from '@sd/assets/icons/handlebars.svg';
|
||||
import haskell from '@sd/assets/icons/haskell.svg';
|
||||
import html from '@sd/assets/icons/html.svg';
|
||||
import imagegif from '@sd/assets/icons/image-gif.svg';
|
||||
import imageico from '@sd/assets/icons/image-ico.svg';
|
||||
import imagejpg from '@sd/assets/icons/image-jpg.svg';
|
||||
import imagepng from '@sd/assets/icons/image-png.svg';
|
||||
import imagewebp from '@sd/assets/icons/image-webp.svg';
|
||||
import image from '@sd/assets/icons/image.svg';
|
||||
import info from '@sd/assets/icons/info.svg';
|
||||
import ipynb from '@sd/assets/icons/ipynb.svg';
|
||||
import java from '@sd/assets/icons/java.svg';
|
||||
import jenkins from '@sd/assets/icons/jenkins.svg';
|
||||
import jest from '@sd/assets/icons/jest.svg';
|
||||
import jinja from '@sd/assets/icons/jinja.svg';
|
||||
import jsmap from '@sd/assets/icons/js-map.svg';
|
||||
import js from '@sd/assets/icons/js.svg';
|
||||
import json from '@sd/assets/icons/json.svg';
|
||||
import jsp from '@sd/assets/icons/jsp.svg';
|
||||
import julia from '@sd/assets/icons/julia.svg';
|
||||
import karma from '@sd/assets/icons/karma.svg';
|
||||
import key from '@sd/assets/icons/key.svg';
|
||||
import less from '@sd/assets/icons/less.svg';
|
||||
import license from '@sd/assets/icons/license.svg';
|
||||
import lighteditorconfig from '@sd/assets/icons/lighteditorconfig.svg';
|
||||
import liquid from '@sd/assets/icons/liquid.svg';
|
||||
import llvm from '@sd/assets/icons/llvm.svg';
|
||||
import log from '@sd/assets/icons/log.svg';
|
||||
import lua from '@sd/assets/icons/lua.svg';
|
||||
import m from '@sd/assets/icons/m.svg';
|
||||
import markdown from '@sd/assets/icons/markdown.svg';
|
||||
import mint from '@sd/assets/icons/mint.svg';
|
||||
import mov from '@sd/assets/icons/mov.svg';
|
||||
import mp4 from '@sd/assets/icons/mp4.svg';
|
||||
import nestjscontroller from '@sd/assets/icons/nestjs-controller.svg';
|
||||
import nestjsdecorator from '@sd/assets/icons/nestjs-decorator.svg';
|
||||
import nestjsfilter from '@sd/assets/icons/nestjs-filter.svg';
|
||||
import nestjsguard from '@sd/assets/icons/nestjs-guard.svg';
|
||||
import nestjsmodule from '@sd/assets/icons/nestjs-module.svg';
|
||||
import nestjsservice from '@sd/assets/icons/nestjs-service.svg';
|
||||
import nestjs from '@sd/assets/icons/nestjs.svg';
|
||||
import netlify from '@sd/assets/icons/netlify.svg';
|
||||
import nginx from '@sd/assets/icons/nginx.svg';
|
||||
import nim from '@sd/assets/icons/nim.svg';
|
||||
import njk from '@sd/assets/icons/njk.svg';
|
||||
import nodemon from '@sd/assets/icons/nodemon.svg';
|
||||
import npmlock from '@sd/assets/icons/npm-lock.svg';
|
||||
import npm from '@sd/assets/icons/npm.svg';
|
||||
import nuxt from '@sd/assets/icons/nuxt.svg';
|
||||
import nvm from '@sd/assets/icons/nvm.svg';
|
||||
import opengl from '@sd/assets/icons/opengl.svg';
|
||||
import pdf from '@sd/assets/icons/pdf.svg';
|
||||
import photoshop from '@sd/assets/icons/photoshop.svg';
|
||||
import php from '@sd/assets/icons/php.svg';
|
||||
import postcssconfig from '@sd/assets/icons/postcss-config.svg';
|
||||
import powershelldata from '@sd/assets/icons/powershell-data.svg';
|
||||
import powershellmodule from '@sd/assets/icons/powershell-module.svg';
|
||||
import powershell from '@sd/assets/icons/powershell.svg';
|
||||
import prettier from '@sd/assets/icons/prettier.svg';
|
||||
import prisma from '@sd/assets/icons/prisma.svg';
|
||||
import prolog from '@sd/assets/icons/prolog.svg';
|
||||
import pug from '@sd/assets/icons/pug.svg';
|
||||
import python from '@sd/assets/icons/python.svg';
|
||||
import qt from '@sd/assets/icons/qt.svg';
|
||||
import razor from '@sd/assets/icons/razor.svg';
|
||||
import reactjs from '@sd/assets/icons/react-js.svg';
|
||||
import reactts from '@sd/assets/icons/react-ts.svg';
|
||||
import readme from '@sd/assets/icons/readme.svg';
|
||||
import rescript from '@sd/assets/icons/rescript.svg';
|
||||
import rjson from '@sd/assets/icons/rjson.svg';
|
||||
import robots from '@sd/assets/icons/robots.svg';
|
||||
import rollup from '@sd/assets/icons/rollup.svg';
|
||||
import ruby from '@sd/assets/icons/ruby.svg';
|
||||
import rust from '@sd/assets/icons/rust.svg';
|
||||
import sass from '@sd/assets/icons/sass.svg';
|
||||
import scss from '@sd/assets/icons/scss.svg';
|
||||
import shell from '@sd/assets/icons/shell.svg';
|
||||
import smarty from '@sd/assets/icons/smarty.svg';
|
||||
import sol from '@sd/assets/icons/sol.svg';
|
||||
import sql from '@sd/assets/icons/sql.svg';
|
||||
import storybook from '@sd/assets/icons/storybook.svg';
|
||||
import stylelint from '@sd/assets/icons/stylelint.svg';
|
||||
import stylus from '@sd/assets/icons/stylus.svg';
|
||||
import svelte from '@sd/assets/icons/svelte.svg';
|
||||
import svg from '@sd/assets/icons/svg.svg';
|
||||
import swift from '@sd/assets/icons/swift.svg';
|
||||
import symfony from '@sd/assets/icons/symfony.svg';
|
||||
import tailwind from '@sd/assets/icons/tailwind.svg';
|
||||
import testjs from '@sd/assets/icons/test-js.svg';
|
||||
import testts from '@sd/assets/icons/test-ts.svg';
|
||||
import tmpl from '@sd/assets/icons/tmpl.svg';
|
||||
import toml from '@sd/assets/icons/toml.svg';
|
||||
import travis from '@sd/assets/icons/travis.svg';
|
||||
import tsconfig from '@sd/assets/icons/tsconfig.svg';
|
||||
import tsx from '@sd/assets/icons/tsx.svg';
|
||||
import twig from '@sd/assets/icons/twig.svg';
|
||||
import txt from '@sd/assets/icons/txt.svg';
|
||||
import typescriptdef from '@sd/assets/icons/typescript-def.svg';
|
||||
import typescript from '@sd/assets/icons/typescript.svg';
|
||||
import ui from '@sd/assets/icons/ui.svg';
|
||||
import user from '@sd/assets/icons/user.svg';
|
||||
import vercel from '@sd/assets/icons/vercel.svg';
|
||||
import video from '@sd/assets/icons/video.svg';
|
||||
import vite from '@sd/assets/icons/vite.svg';
|
||||
import vscode from '@sd/assets/icons/vscode.svg';
|
||||
import vue from '@sd/assets/icons/vue.svg';
|
||||
import wasm from '@sd/assets/icons/wasm.svg';
|
||||
import webpack from '@sd/assets/icons/webpack.svg';
|
||||
import windi from '@sd/assets/icons/windi.svg';
|
||||
import xml from '@sd/assets/icons/xml.svg';
|
||||
import yaml from '@sd/assets/icons/yaml.svg';
|
||||
import yarnerror from '@sd/assets/icons/yarn-error.svg';
|
||||
import yarn from '@sd/assets/icons/yarn.svg';
|
||||
import zip from '@sd/assets/icons/zip.svg';
|
||||
|
||||
export default {
|
||||
ai,
|
||||
angular,
|
||||
audiomp3,
|
||||
audioogg,
|
||||
audiowav,
|
||||
audio,
|
||||
babel,
|
||||
bat,
|
||||
bicep,
|
||||
binary,
|
||||
blade,
|
||||
browserslist,
|
||||
bsconfig,
|
||||
bundler,
|
||||
c,
|
||||
cert,
|
||||
cheader,
|
||||
cli,
|
||||
compodoc,
|
||||
composer,
|
||||
conf,
|
||||
cpp,
|
||||
csharp,
|
||||
cshtml,
|
||||
cssmap,
|
||||
css,
|
||||
csv,
|
||||
dartlang,
|
||||
dockerdebug,
|
||||
dockerignore,
|
||||
docker,
|
||||
editorconfig,
|
||||
eex,
|
||||
elixir,
|
||||
elm,
|
||||
env,
|
||||
erb,
|
||||
erlang,
|
||||
eslint,
|
||||
exs,
|
||||
exx,
|
||||
file,
|
||||
folderlight,
|
||||
folderopen,
|
||||
folder,
|
||||
fontotf,
|
||||
fontttf,
|
||||
fontwoff,
|
||||
fontwoff2,
|
||||
git,
|
||||
gopackage,
|
||||
go,
|
||||
gradle,
|
||||
graphql,
|
||||
groovy,
|
||||
grunt,
|
||||
gulp,
|
||||
haml,
|
||||
handlebars,
|
||||
haskell,
|
||||
html,
|
||||
imagegif,
|
||||
imageico,
|
||||
imagejpg,
|
||||
imagepng,
|
||||
imagewebp,
|
||||
image,
|
||||
info,
|
||||
ipynb,
|
||||
java,
|
||||
jenkins,
|
||||
jest,
|
||||
jinja,
|
||||
jsmap,
|
||||
js,
|
||||
json,
|
||||
jsp,
|
||||
julia,
|
||||
karma,
|
||||
key,
|
||||
less,
|
||||
license,
|
||||
lighteditorconfig,
|
||||
liquid,
|
||||
llvm,
|
||||
log,
|
||||
lua,
|
||||
m,
|
||||
markdown,
|
||||
mint,
|
||||
mov,
|
||||
mp4,
|
||||
nestjscontroller,
|
||||
nestjsdecorator,
|
||||
nestjsfilter,
|
||||
nestjsguard,
|
||||
nestjsmodule,
|
||||
nestjsservice,
|
||||
nestjs,
|
||||
netlify,
|
||||
nginx,
|
||||
nim,
|
||||
njk,
|
||||
nodemon,
|
||||
npmlock,
|
||||
npm,
|
||||
nuxt,
|
||||
nvm,
|
||||
opengl,
|
||||
pdf,
|
||||
photoshop,
|
||||
php,
|
||||
postcssconfig,
|
||||
powershelldata,
|
||||
powershellmodule,
|
||||
powershell,
|
||||
prettier,
|
||||
prisma,
|
||||
prolog,
|
||||
pug,
|
||||
python,
|
||||
qt,
|
||||
razor,
|
||||
reactjs,
|
||||
reactts,
|
||||
readme,
|
||||
rescript,
|
||||
rjson,
|
||||
robots,
|
||||
rollup,
|
||||
ruby,
|
||||
rust,
|
||||
sass,
|
||||
scss,
|
||||
shell,
|
||||
smarty,
|
||||
sol,
|
||||
sql,
|
||||
storybook,
|
||||
stylelint,
|
||||
stylus,
|
||||
svelte,
|
||||
svg,
|
||||
swift,
|
||||
symfony,
|
||||
tailwind,
|
||||
testjs,
|
||||
testts,
|
||||
tmpl,
|
||||
toml,
|
||||
travis,
|
||||
tsconfig,
|
||||
tsx,
|
||||
twig,
|
||||
txt,
|
||||
typescriptdef,
|
||||
typescript,
|
||||
ui,
|
||||
user,
|
||||
vercel,
|
||||
video,
|
||||
vite,
|
||||
vscode,
|
||||
vue,
|
||||
wasm,
|
||||
webpack,
|
||||
windi,
|
||||
xml,
|
||||
yaml,
|
||||
yarnerror,
|
||||
yarn,
|
||||
zip
|
||||
};
|
|
@ -1,3 +0,0 @@
|
|||
Anything here is copied from some other app/package and should be moved to `assets` package for consistency.
|
||||
|
||||
- Make sure sure to fix imports throughout the monorepo when you do such action.
|
|
@ -1,3 +1,4 @@
|
|||
import { AppLogo } from '@sd/assets/images';
|
||||
import { DrawerContentScrollView } from '@react-navigation/drawer';
|
||||
import { DrawerContentComponentProps } from '@react-navigation/drawer/lib/typescript/src/types';
|
||||
import { Gear } from 'phosphor-react-native';
|
||||
|
@ -22,7 +23,7 @@ const DrawerContent = ({ navigation, state }: DrawerContentComponentProps) => {
|
|||
<View style={twStyle('justify-between', { height: drawerHeight })}>
|
||||
<View>
|
||||
<View style={tw`flex flex-row items-center`}>
|
||||
<Image source={require('@sd/assets/images/logo.png')} style={tw`h-[40px] w-[40px]`} />
|
||||
<Image source={AppLogo} style={tw`h-[40px] w-[40px]`} />
|
||||
<Text style={tw`text-ink ml-2 text-lg font-bold`}>Spacedrive</Text>
|
||||
</View>
|
||||
<View style={tw`mt-6`} />
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { AppLogo } from '@sd/assets/images';
|
||||
import { Image, Text, View } from 'react-native';
|
||||
import { FadeInUpAnimation, LogoAnimation } from '~/components/animation/layout';
|
||||
import { AnimatedButton } from '~/components/primitive/Button';
|
||||
|
@ -10,7 +11,7 @@ const OnboardingScreen = ({ navigation }: OnboardingStackScreenProps<'Onboarding
|
|||
{/* Logo */}
|
||||
<LogoAnimation>
|
||||
<View style={tw`mt-2 items-center`}>
|
||||
<Image source={require('@sd/assets/images/logo.png')} style={tw`h-24 w-24`} />
|
||||
<Image source={AppLogo} style={tw`h-24 w-24`} />
|
||||
</View>
|
||||
</LogoAnimation>
|
||||
{/* Text */}
|
||||
|
|
5
apps/mobile/src/types/declarations.d.ts
vendored
|
@ -4,3 +4,8 @@ declare module '*.svg' {
|
|||
const content: React.FC<SvgProps>;
|
||||
export default content;
|
||||
}
|
||||
|
||||
declare module '*.png' {
|
||||
const content: any;
|
||||
export default content;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ export default defineConfig({
|
|||
visualizer({
|
||||
gzipSize: true,
|
||||
brotliSize: true
|
||||
})
|
||||
}),
|
||||
],
|
||||
css: {
|
||||
modules: {
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import * as icons from '@sd/assets/icons';
|
||||
import clsx from 'clsx';
|
||||
import { CSSProperties } from 'react';
|
||||
import { ExplorerItem } from '@sd/client';
|
||||
|
@ -5,15 +6,6 @@ import { usePlatform } from '~/util/Platform';
|
|||
import { getExplorerItemData } from '../util';
|
||||
import classes from './Thumb.module.scss';
|
||||
|
||||
const icons = import.meta.glob('../../../../../packages/assets/icons/*.png', { eager: true });
|
||||
// extract icons by their name
|
||||
const iconsMap: Record<string, string> = {};
|
||||
for (const [key, value] of Object.entries(icons)) {
|
||||
const split = key.split('/');
|
||||
const iconName = split[split.length - 1]?.replace('.png', '');
|
||||
if (iconName) iconsMap[iconName] = (value as { default: string }).default;
|
||||
}
|
||||
|
||||
interface Props {
|
||||
data: ExplorerItem;
|
||||
size: number;
|
||||
|
@ -104,14 +96,18 @@ export function FileThumbImg({
|
|||
}
|
||||
|
||||
// Render an img component with an image based on kind
|
||||
let icon = iconsMap['Document'];
|
||||
let icon = icons['Document'];
|
||||
|
||||
if (isDir) {
|
||||
icon = iconsMap['Folder'];
|
||||
} else if (kind && extension && iconsMap[`${kind}_${extension.toLowerCase()}`]) {
|
||||
icon = iconsMap[`${kind}_${extension.toLowerCase()}`];
|
||||
} else if (kind && iconsMap[kind] && kind !== 'Unknown') {
|
||||
icon = iconsMap[kind];
|
||||
icon = icons['Folder'];
|
||||
} else if (
|
||||
kind &&
|
||||
extension &&
|
||||
icons[`${kind}_${extension.toLowerCase()}` as keyof typeof icons]
|
||||
) {
|
||||
icon = icons[`${kind}_${extension.toLowerCase()}` as keyof typeof icons];
|
||||
} else if (kind !== 'Unknown' && kind && icons[kind as keyof typeof icons]) {
|
||||
icon = icons[kind as keyof typeof icons];
|
||||
}
|
||||
|
||||
return <img src={icon} className={clsx('h-full overflow-hidden')} />;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import Logo from '@sd/assets/images/logo.png';
|
||||
import { AppLogo } from '@sd/assets/images';
|
||||
import { useBridgeQuery } from '@sd/client';
|
||||
import { useOperatingSystem } from '~/hooks/useOperatingSystem';
|
||||
|
||||
|
@ -13,7 +13,7 @@ export default function AboutSpacedrive() {
|
|||
return (
|
||||
<>
|
||||
<div className="flex flex-row items-center">
|
||||
<img src={Logo} className="mr-8 h-[88px] w-[88px]" />
|
||||
<img src={AppLogo} className="mr-8 h-[88px] w-[88px]" />
|
||||
<div className="flex flex-col">
|
||||
<h1 className="text-2xl font-bold">
|
||||
Spacedrive {os !== 'unknown' && <>for {currentPlatformNiceName}</>}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
import GoogleDrive from '@sd/assets/images/GoogleDrive.png';
|
||||
import Mega from '@sd/assets/images/Mega.png';
|
||||
import iCloud from '@sd/assets/images/iCloud.png';
|
||||
import { GoogleDrive, Mega, iCloud } from '@sd/assets/images';
|
||||
import clsx from 'clsx';
|
||||
import { DeviceMobile, HardDrives, Icon, Laptop, Star, User } from 'phosphor-react';
|
||||
import { DeviceMobile, HardDrives, Icon, Laptop, User } from 'phosphor-react';
|
||||
import { useRef, useState } from 'react';
|
||||
import { tw } from '@sd/ui';
|
||||
import { PeerMetadata, useBridgeMutation, useBridgeSubscription } from '~/../packages/client/src';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import BloomOne from '@sd/assets/images/bloom-one.png';
|
||||
import { BloomOne } from '@sd/assets/images';
|
||||
import clsx from 'clsx';
|
||||
import { useEffect } from 'react';
|
||||
import { Outlet, useNavigate } from 'react-router';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import Database from '@sd/assets/icons/Database.png';
|
||||
import { Database } from '@sd/assets/icons';
|
||||
import { useState } from 'react';
|
||||
import { useNavigate } from 'react-router';
|
||||
import { getOnboardingStore, useOnboardingStore } from '@sd/client';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import AppLogo from '@sd/assets/images/logo.png';
|
||||
import { AppLogo } from '@sd/assets/images';
|
||||
import { ButtonLink } from '@sd/ui';
|
||||
import { OnboardingContainer, OnboardingDescription, OnboardingImg } from './Layout';
|
||||
|
||||
|
|
|
@ -1,347 +0,0 @@
|
|||
import { ReactComponent as ai } from '@sd/assets/icons/ai.svg';
|
||||
import { ReactComponent as angular } from '@sd/assets/icons/angular.svg';
|
||||
import { ReactComponent as audiomp3 } from '@sd/assets/icons/audio-mp3.svg';
|
||||
import { ReactComponent as audioogg } from '@sd/assets/icons/audio-ogg.svg';
|
||||
import { ReactComponent as audiowav } from '@sd/assets/icons/audio-wav.svg';
|
||||
import { ReactComponent as audio } from '@sd/assets/icons/audio.svg';
|
||||
import { ReactComponent as babel } from '@sd/assets/icons/babel.svg';
|
||||
import { ReactComponent as bat } from '@sd/assets/icons/bat.svg';
|
||||
import { ReactComponent as bicep } from '@sd/assets/icons/bicep.svg';
|
||||
import { ReactComponent as binary } from '@sd/assets/icons/binary.svg';
|
||||
import { ReactComponent as blade } from '@sd/assets/icons/blade.svg';
|
||||
import { ReactComponent as browserslist } from '@sd/assets/icons/browserslist.svg';
|
||||
import { ReactComponent as bsconfig } from '@sd/assets/icons/bsconfig.svg';
|
||||
import { ReactComponent as bundler } from '@sd/assets/icons/bundler.svg';
|
||||
import { ReactComponent as c } from '@sd/assets/icons/c.svg';
|
||||
import { ReactComponent as cert } from '@sd/assets/icons/cert.svg';
|
||||
import { ReactComponent as cheader } from '@sd/assets/icons/cheader.svg';
|
||||
import { ReactComponent as cli } from '@sd/assets/icons/cli.svg';
|
||||
import { ReactComponent as compodoc } from '@sd/assets/icons/compodoc.svg';
|
||||
import { ReactComponent as composer } from '@sd/assets/icons/composer.svg';
|
||||
import { ReactComponent as conf } from '@sd/assets/icons/conf.svg';
|
||||
import { ReactComponent as cpp } from '@sd/assets/icons/cpp.svg';
|
||||
import { ReactComponent as csharp } from '@sd/assets/icons/csharp.svg';
|
||||
import { ReactComponent as cshtml } from '@sd/assets/icons/cshtml.svg';
|
||||
import { ReactComponent as cssmap } from '@sd/assets/icons/css-map.svg';
|
||||
import { ReactComponent as css } from '@sd/assets/icons/css.svg';
|
||||
import { ReactComponent as csv } from '@sd/assets/icons/csv.svg';
|
||||
import { ReactComponent as dartlang } from '@sd/assets/icons/dartlang.svg';
|
||||
import { ReactComponent as dockerdebug } from '@sd/assets/icons/docker-debug.svg';
|
||||
import { ReactComponent as dockerignore } from '@sd/assets/icons/docker-ignore.svg';
|
||||
import { ReactComponent as docker } from '@sd/assets/icons/docker.svg';
|
||||
import { ReactComponent as editorconfig } from '@sd/assets/icons/editorconfig.svg';
|
||||
import { ReactComponent as eex } from '@sd/assets/icons/eex.svg';
|
||||
import { ReactComponent as elixir } from '@sd/assets/icons/elixir.svg';
|
||||
import { ReactComponent as elm } from '@sd/assets/icons/elm.svg';
|
||||
import { ReactComponent as env } from '@sd/assets/icons/env.svg';
|
||||
import { ReactComponent as erb } from '@sd/assets/icons/erb.svg';
|
||||
import { ReactComponent as erlang } from '@sd/assets/icons/erlang.svg';
|
||||
import { ReactComponent as eslint } from '@sd/assets/icons/eslint.svg';
|
||||
import { ReactComponent as exs } from '@sd/assets/icons/exs.svg';
|
||||
import { ReactComponent as exx } from '@sd/assets/icons/exx.svg';
|
||||
import { ReactComponent as file } from '@sd/assets/icons/file.svg';
|
||||
import { ReactComponent as folderlight } from '@sd/assets/icons/folder-light.svg';
|
||||
import { ReactComponent as folderopen } from '@sd/assets/icons/folder-open.svg';
|
||||
import { ReactComponent as folder } from '@sd/assets/icons/folder.svg';
|
||||
import { ReactComponent as fontotf } from '@sd/assets/icons/font-otf.svg';
|
||||
import { ReactComponent as fontttf } from '@sd/assets/icons/font-ttf.svg';
|
||||
import { ReactComponent as fontwoff2 } from '@sd/assets/icons/font-woff2.svg';
|
||||
import { ReactComponent as fontwoff } from '@sd/assets/icons/font-woff.svg';
|
||||
import { ReactComponent as git } from '@sd/assets/icons/git.svg';
|
||||
import { ReactComponent as gopackage } from '@sd/assets/icons/go-package.svg';
|
||||
import { ReactComponent as go } from '@sd/assets/icons/go.svg';
|
||||
import { ReactComponent as gradle } from '@sd/assets/icons/gradle.svg';
|
||||
import { ReactComponent as graphql } from '@sd/assets/icons/graphql.svg';
|
||||
import { ReactComponent as groovy } from '@sd/assets/icons/groovy.svg';
|
||||
import { ReactComponent as grunt } from '@sd/assets/icons/grunt.svg';
|
||||
import { ReactComponent as gulp } from '@sd/assets/icons/gulp.svg';
|
||||
import { ReactComponent as haml } from '@sd/assets/icons/haml.svg';
|
||||
import { ReactComponent as handlebars } from '@sd/assets/icons/handlebars.svg';
|
||||
import { ReactComponent as haskell } from '@sd/assets/icons/haskell.svg';
|
||||
import { ReactComponent as html } from '@sd/assets/icons/html.svg';
|
||||
import { ReactComponent as imagegif } from '@sd/assets/icons/image-gif.svg';
|
||||
import { ReactComponent as imageico } from '@sd/assets/icons/image-ico.svg';
|
||||
import { ReactComponent as imagejpg } from '@sd/assets/icons/image-jpg.svg';
|
||||
import { ReactComponent as imagepng } from '@sd/assets/icons/image-png.svg';
|
||||
import { ReactComponent as imagewebp } from '@sd/assets/icons/image-webp.svg';
|
||||
import { ReactComponent as image } from '@sd/assets/icons/image.svg';
|
||||
import { ReactComponent as info } from '@sd/assets/icons/info.svg';
|
||||
import { ReactComponent as ipynb } from '@sd/assets/icons/ipynb.svg';
|
||||
import { ReactComponent as java } from '@sd/assets/icons/java.svg';
|
||||
import { ReactComponent as jenkins } from '@sd/assets/icons/jenkins.svg';
|
||||
import { ReactComponent as jest } from '@sd/assets/icons/jest.svg';
|
||||
import { ReactComponent as jinja } from '@sd/assets/icons/jinja.svg';
|
||||
import { ReactComponent as jsmap } from '@sd/assets/icons/js-map.svg';
|
||||
import { ReactComponent as js } from '@sd/assets/icons/js.svg';
|
||||
import { ReactComponent as json } from '@sd/assets/icons/json.svg';
|
||||
import { ReactComponent as jsp } from '@sd/assets/icons/jsp.svg';
|
||||
import { ReactComponent as julia } from '@sd/assets/icons/julia.svg';
|
||||
import { ReactComponent as karma } from '@sd/assets/icons/karma.svg';
|
||||
import { ReactComponent as key } from '@sd/assets/icons/key.svg';
|
||||
import { ReactComponent as less } from '@sd/assets/icons/less.svg';
|
||||
import { ReactComponent as license } from '@sd/assets/icons/license.svg';
|
||||
import { ReactComponent as lighteditorconfig } from '@sd/assets/icons/lighteditorconfig.svg';
|
||||
import { ReactComponent as liquid } from '@sd/assets/icons/liquid.svg';
|
||||
import { ReactComponent as llvm } from '@sd/assets/icons/llvm.svg';
|
||||
import { ReactComponent as log } from '@sd/assets/icons/log.svg';
|
||||
import { ReactComponent as lua } from '@sd/assets/icons/lua.svg';
|
||||
import { ReactComponent as m } from '@sd/assets/icons/m.svg';
|
||||
import { ReactComponent as markdown } from '@sd/assets/icons/markdown.svg';
|
||||
import { ReactComponent as mint } from '@sd/assets/icons/mint.svg';
|
||||
import { ReactComponent as mov } from '@sd/assets/icons/mov.svg';
|
||||
import { ReactComponent as mp4 } from '@sd/assets/icons/mp4.svg';
|
||||
import { ReactComponent as nestjscontroller } from '@sd/assets/icons/nestjs-controller.svg';
|
||||
import { ReactComponent as nestjsdecorator } from '@sd/assets/icons/nestjs-decorator.svg';
|
||||
import { ReactComponent as nestjsfilter } from '@sd/assets/icons/nestjs-filter.svg';
|
||||
import { ReactComponent as nestjsguard } from '@sd/assets/icons/nestjs-guard.svg';
|
||||
import { ReactComponent as nestjsmodule } from '@sd/assets/icons/nestjs-module.svg';
|
||||
import { ReactComponent as nestjsservice } from '@sd/assets/icons/nestjs-service.svg';
|
||||
import { ReactComponent as nestjs } from '@sd/assets/icons/nestjs.svg';
|
||||
import { ReactComponent as netlify } from '@sd/assets/icons/netlify.svg';
|
||||
import { ReactComponent as nginx } from '@sd/assets/icons/nginx.svg';
|
||||
import { ReactComponent as nim } from '@sd/assets/icons/nim.svg';
|
||||
import { ReactComponent as njk } from '@sd/assets/icons/njk.svg';
|
||||
import { ReactComponent as nodemon } from '@sd/assets/icons/nodemon.svg';
|
||||
import { ReactComponent as npmlock } from '@sd/assets/icons/npm-lock.svg';
|
||||
import { ReactComponent as npm } from '@sd/assets/icons/npm.svg';
|
||||
import { ReactComponent as nuxt } from '@sd/assets/icons/nuxt.svg';
|
||||
import { ReactComponent as nvm } from '@sd/assets/icons/nvm.svg';
|
||||
import { ReactComponent as opengl } from '@sd/assets/icons/opengl.svg';
|
||||
import { ReactComponent as pdf } from '@sd/assets/icons/pdf.svg';
|
||||
import { ReactComponent as photoshop } from '@sd/assets/icons/photoshop.svg';
|
||||
import { ReactComponent as php } from '@sd/assets/icons/php.svg';
|
||||
import { ReactComponent as postcssconfig } from '@sd/assets/icons/postcss-config.svg';
|
||||
import { ReactComponent as powershelldata } from '@sd/assets/icons/powershell-data.svg';
|
||||
import { ReactComponent as powershellmodule } from '@sd/assets/icons/powershell-module.svg';
|
||||
import { ReactComponent as powershell } from '@sd/assets/icons/powershell.svg';
|
||||
import { ReactComponent as prettier } from '@sd/assets/icons/prettier.svg';
|
||||
import { ReactComponent as prisma } from '@sd/assets/icons/prisma.svg';
|
||||
import { ReactComponent as prolog } from '@sd/assets/icons/prolog.svg';
|
||||
import { ReactComponent as pug } from '@sd/assets/icons/pug.svg';
|
||||
import { ReactComponent as python } from '@sd/assets/icons/python.svg';
|
||||
import { ReactComponent as qt } from '@sd/assets/icons/qt.svg';
|
||||
import { ReactComponent as razor } from '@sd/assets/icons/razor.svg';
|
||||
import { ReactComponent as reactjs } from '@sd/assets/icons/react-js.svg';
|
||||
import { ReactComponent as reactts } from '@sd/assets/icons/react-ts.svg';
|
||||
import { ReactComponent as readme } from '@sd/assets/icons/readme.svg';
|
||||
import { ReactComponent as rescript } from '@sd/assets/icons/rescript.svg';
|
||||
import { ReactComponent as rjson } from '@sd/assets/icons/rjson.svg';
|
||||
import { ReactComponent as robots } from '@sd/assets/icons/robots.svg';
|
||||
import { ReactComponent as rollup } from '@sd/assets/icons/rollup.svg';
|
||||
import { ReactComponent as ruby } from '@sd/assets/icons/ruby.svg';
|
||||
import { ReactComponent as rust } from '@sd/assets/icons/rust.svg';
|
||||
import { ReactComponent as sass } from '@sd/assets/icons/sass.svg';
|
||||
import { ReactComponent as scss } from '@sd/assets/icons/scss.svg';
|
||||
import { ReactComponent as shell } from '@sd/assets/icons/shell.svg';
|
||||
import { ReactComponent as smarty } from '@sd/assets/icons/smarty.svg';
|
||||
import { ReactComponent as sol } from '@sd/assets/icons/sol.svg';
|
||||
import { ReactComponent as sql } from '@sd/assets/icons/sql.svg';
|
||||
import { ReactComponent as storybook } from '@sd/assets/icons/storybook.svg';
|
||||
import { ReactComponent as stylelint } from '@sd/assets/icons/stylelint.svg';
|
||||
import { ReactComponent as stylus } from '@sd/assets/icons/stylus.svg';
|
||||
import { ReactComponent as svelte } from '@sd/assets/icons/svelte.svg';
|
||||
import { ReactComponent as svg } from '@sd/assets/icons/svg.svg';
|
||||
import { ReactComponent as swift } from '@sd/assets/icons/swift.svg';
|
||||
import { ReactComponent as symfony } from '@sd/assets/icons/symfony.svg';
|
||||
import { ReactComponent as tailwind } from '@sd/assets/icons/tailwind.svg';
|
||||
import { ReactComponent as testjs } from '@sd/assets/icons/test-js.svg';
|
||||
import { ReactComponent as testts } from '@sd/assets/icons/test-ts.svg';
|
||||
import { ReactComponent as tmpl } from '@sd/assets/icons/tmpl.svg';
|
||||
import { ReactComponent as toml } from '@sd/assets/icons/toml.svg';
|
||||
import { ReactComponent as travis } from '@sd/assets/icons/travis.svg';
|
||||
import { ReactComponent as tsconfig } from '@sd/assets/icons/tsconfig.svg';
|
||||
import { ReactComponent as tsx } from '@sd/assets/icons/tsx.svg';
|
||||
import { ReactComponent as twig } from '@sd/assets/icons/twig.svg';
|
||||
import { ReactComponent as txt } from '@sd/assets/icons/txt.svg';
|
||||
import { ReactComponent as typescriptdef } from '@sd/assets/icons/typescript-def.svg';
|
||||
import { ReactComponent as typescript } from '@sd/assets/icons/typescript.svg';
|
||||
import { ReactComponent as ui } from '@sd/assets/icons/ui.svg';
|
||||
import { ReactComponent as user } from '@sd/assets/icons/user.svg';
|
||||
import { ReactComponent as vercel } from '@sd/assets/icons/vercel.svg';
|
||||
import { ReactComponent as video } from '@sd/assets/icons/video.svg';
|
||||
import { ReactComponent as vite } from '@sd/assets/icons/vite.svg';
|
||||
import { ReactComponent as vscode } from '@sd/assets/icons/vscode.svg';
|
||||
import { ReactComponent as vue } from '@sd/assets/icons/vue.svg';
|
||||
import { ReactComponent as wasm } from '@sd/assets/icons/wasm.svg';
|
||||
import { ReactComponent as webpack } from '@sd/assets/icons/webpack.svg';
|
||||
import { ReactComponent as windi } from '@sd/assets/icons/windi.svg';
|
||||
import { ReactComponent as xml } from '@sd/assets/icons/xml.svg';
|
||||
import { ReactComponent as yaml } from '@sd/assets/icons/yaml.svg';
|
||||
import { ReactComponent as yarnerror } from '@sd/assets/icons/yarn-error.svg';
|
||||
import { ReactComponent as yarn } from '@sd/assets/icons/yarn.svg';
|
||||
import { ReactComponent as zip } from '@sd/assets/icons/zip.svg';
|
||||
|
||||
export default {
|
||||
ai,
|
||||
angular,
|
||||
audiomp3,
|
||||
audioogg,
|
||||
audiowav,
|
||||
audio,
|
||||
babel,
|
||||
bat,
|
||||
bicep,
|
||||
binary,
|
||||
blade,
|
||||
browserslist,
|
||||
bsconfig,
|
||||
bundler,
|
||||
c,
|
||||
cert,
|
||||
cheader,
|
||||
cli,
|
||||
compodoc,
|
||||
composer,
|
||||
conf,
|
||||
cpp,
|
||||
csharp,
|
||||
cshtml,
|
||||
cssmap,
|
||||
css,
|
||||
csv,
|
||||
dartlang,
|
||||
dockerdebug,
|
||||
dockerignore,
|
||||
docker,
|
||||
editorconfig,
|
||||
eex,
|
||||
elixir,
|
||||
elm,
|
||||
env,
|
||||
erb,
|
||||
erlang,
|
||||
eslint,
|
||||
exs,
|
||||
exx,
|
||||
file,
|
||||
folderlight,
|
||||
folderopen,
|
||||
folder,
|
||||
fontotf,
|
||||
fontttf,
|
||||
fontwoff,
|
||||
fontwoff2,
|
||||
git,
|
||||
gopackage,
|
||||
go,
|
||||
gradle,
|
||||
graphql,
|
||||
groovy,
|
||||
grunt,
|
||||
gulp,
|
||||
haml,
|
||||
handlebars,
|
||||
haskell,
|
||||
html,
|
||||
imagegif,
|
||||
imageico,
|
||||
imagejpg,
|
||||
imagepng,
|
||||
imagewebp,
|
||||
image,
|
||||
info,
|
||||
ipynb,
|
||||
java,
|
||||
jenkins,
|
||||
jest,
|
||||
jinja,
|
||||
jsmap,
|
||||
js,
|
||||
json,
|
||||
jsp,
|
||||
julia,
|
||||
karma,
|
||||
key,
|
||||
less,
|
||||
license,
|
||||
lighteditorconfig,
|
||||
liquid,
|
||||
llvm,
|
||||
log,
|
||||
lua,
|
||||
m,
|
||||
markdown,
|
||||
mint,
|
||||
mov,
|
||||
mp4,
|
||||
nestjscontroller,
|
||||
nestjsdecorator,
|
||||
nestjsfilter,
|
||||
nestjsguard,
|
||||
nestjsmodule,
|
||||
nestjsservice,
|
||||
nestjs,
|
||||
netlify,
|
||||
nginx,
|
||||
nim,
|
||||
njk,
|
||||
nodemon,
|
||||
npmlock,
|
||||
npm,
|
||||
nuxt,
|
||||
nvm,
|
||||
opengl,
|
||||
pdf,
|
||||
photoshop,
|
||||
php,
|
||||
postcssconfig,
|
||||
powershelldata,
|
||||
powershellmodule,
|
||||
powershell,
|
||||
prettier,
|
||||
prisma,
|
||||
prolog,
|
||||
pug,
|
||||
python,
|
||||
qt,
|
||||
razor,
|
||||
reactjs,
|
||||
reactts,
|
||||
readme,
|
||||
rescript,
|
||||
rjson,
|
||||
robots,
|
||||
rollup,
|
||||
ruby,
|
||||
rust,
|
||||
sass,
|
||||
scss,
|
||||
shell,
|
||||
smarty,
|
||||
sol,
|
||||
sql,
|
||||
storybook,
|
||||
stylelint,
|
||||
stylus,
|
||||
svelte,
|
||||
svg,
|
||||
swift,
|
||||
symfony,
|
||||
tailwind,
|
||||
testjs,
|
||||
testts,
|
||||
tmpl,
|
||||
toml,
|
||||
travis,
|
||||
tsconfig,
|
||||
tsx,
|
||||
twig,
|
||||
txt,
|
||||
typescriptdef,
|
||||
typescript,
|
||||
ui,
|
||||
user,
|
||||
vercel,
|
||||
video,
|
||||
vite,
|
||||
vscode,
|
||||
vue,
|
||||
wasm,
|
||||
webpack,
|
||||
windi,
|
||||
xml,
|
||||
yaml,
|
||||
yarnerror,
|
||||
yarn,
|
||||
zip
|
||||
};
|
|
@ -11,7 +11,6 @@
|
|||
"./components/*": "./components/*"
|
||||
},
|
||||
"scripts": {
|
||||
"icons": "./scripts/generateSvgImports.mjs",
|
||||
"lint": "eslint .",
|
||||
"typecheck": "tsc -b",
|
||||
"build": "tsc"
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
#!/usr/bin/env node
|
||||
import * as fs from 'node:fs/promises';
|
||||
import * as path from 'node:path';
|
||||
import { format as prettierFormat } from 'prettier';
|
||||
import prettierConfig from '../../../.prettierrc.json' assert { type: 'json' };
|
||||
|
||||
/**
|
||||
* Make a friendly name from an svg filename
|
||||
*
|
||||
* @example `folder-light` => `FolderLight`
|
||||
* @example `folder-open` => `FolderOpen`
|
||||
* @param {string} iconName Icon name to convert
|
||||
*/
|
||||
function iconFriendlyName(iconName, delimeter = '-') {
|
||||
return iconName
|
||||
.split(delimeter)
|
||||
.map((seg) => seg.toLowerCase())
|
||||
.join('');
|
||||
}
|
||||
|
||||
function iconBaseName(filePath) {
|
||||
return path.basename(filePath, path.extname(filePath));
|
||||
}
|
||||
|
||||
async function exists(path) {
|
||||
try {
|
||||
await fs.access(path);
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Do the same for mobile app too, potentially with the 1 script.
|
||||
(async function main() {
|
||||
const files = await fs.readdir('./packages/assets/icons');
|
||||
const icons = files.filter((path) => path.endsWith('.svg'));
|
||||
|
||||
const generatedCode = `\
|
||||
${icons
|
||||
.map((path) => iconBaseName(path))
|
||||
.map(
|
||||
(baseName) =>
|
||||
`import { ReactComponent as ${iconFriendlyName(
|
||||
baseName
|
||||
)} } from '@sd/assets/icons/${baseName}.svg';`
|
||||
)
|
||||
.join('\n')}
|
||||
|
||||
export default {
|
||||
${icons
|
||||
.map((path) => iconFriendlyName(iconBaseName(path)))
|
||||
.map((baseName) => `\t${iconFriendlyName(baseName)},`)
|
||||
.join('\n')}
|
||||
};
|
||||
`;
|
||||
|
||||
const outPath = path.resolve('./packages/interface/src/assets/icons/index.ts');
|
||||
|
||||
if (await exists(outPath)) {
|
||||
await fs.rm(outPath);
|
||||
}
|
||||
|
||||
await fs.writeFile(outPath, prettierFormat(generatedCode, prettierConfig));
|
||||
})();
|
|
@ -14,6 +14,7 @@
|
|||
"landing": "pnpm --filter @sd/landing -- ",
|
||||
"ui": "pnpm --filter @sd/ui -- ",
|
||||
"interface": "pnpm --filter @sd/interface -- ",
|
||||
"assets": "pnpm --filter @sd/assets -- ",
|
||||
"docs": "pnpm --filter @sd/docs -- ",
|
||||
"client": "pnpm --filter @sd/client -- ",
|
||||
"prisma": "cd core && cargo prisma",
|
||||
|
|
59
packages/assets/icons/index.ts
Normal file
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
* This file was automatically generated by a script.
|
||||
* To regenerate this file, run: pnpm assets gen
|
||||
*/
|
||||
import Alias from './Alias.png';
|
||||
import Archive from './Archive.png';
|
||||
import Collection from './Collection.png';
|
||||
import Database from './Database.png';
|
||||
import Document from './Document.png';
|
||||
import Document_doc from './Document_doc.png';
|
||||
import Document_pdf from './Document_pdf.png';
|
||||
import Document_xls from './Document_xls.png';
|
||||
import Drive from './Drive.png';
|
||||
import Encrypted from './Encrypted.png';
|
||||
import Executable from './Executable.png';
|
||||
import Folder from './Folder.png';
|
||||
import FolderGrey from './FolderGrey.png';
|
||||
import Image from './Image.png';
|
||||
import Laptop from './Laptop.png';
|
||||
import Mesh from './Mesh.png';
|
||||
import Mobile from './Mobile.png';
|
||||
import Node from './Node.png';
|
||||
import Package from './Package.png';
|
||||
import Scrapbook from './Scrapbook.png';
|
||||
import Server from './Server.png';
|
||||
import Tablet from './Tablet.png';
|
||||
import Text from './Text.png';
|
||||
import TexturedMesh from './TexturedMesh.png';
|
||||
import Video from './Video.png';
|
||||
import Widget from './Widget.png';
|
||||
|
||||
export {
|
||||
Alias,
|
||||
Archive,
|
||||
Collection,
|
||||
Database,
|
||||
Document,
|
||||
Document_doc,
|
||||
Document_pdf,
|
||||
Document_xls,
|
||||
Drive,
|
||||
Encrypted,
|
||||
Executable,
|
||||
Folder,
|
||||
FolderGrey,
|
||||
Image,
|
||||
Laptop,
|
||||
Mesh,
|
||||
Mobile,
|
||||
Node,
|
||||
Package,
|
||||
Scrapbook,
|
||||
Server,
|
||||
Tablet,
|
||||
Text,
|
||||
TexturedMesh,
|
||||
Video,
|
||||
Widget
|
||||
};
|
Before Width: | Height: | Size: 126 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 243 KiB |
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 272 KiB |
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 273 KiB |
14
packages/assets/images/index.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* This file was automatically generated by a script.
|
||||
* To regenerate this file, run: pnpm assets gen
|
||||
*/
|
||||
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';
|
||||
|
||||
export { AppLogo, Ball, BloomOne, BloomThree, BloomTwo, GoogleDrive, Mega, iCloud };
|
|
@ -2,5 +2,8 @@
|
|||
"name": "@sd/assets",
|
||||
"version": "1.0.0",
|
||||
"license": "GPL-3.0-only",
|
||||
"private": true
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"gen": "node ./scripts/generate.mjs"
|
||||
}
|
||||
}
|
||||
|
|
66
packages/assets/scripts/generate.mjs
Normal file
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* This script generates an index file for each asset folder specified in `assetFolders`.
|
||||
* The index file will export all assets in the folder as an object.
|
||||
*
|
||||
* Usage:
|
||||
* 1. Add the names of your asset folders to the `assetFolders` array.
|
||||
* 2. Run `pnpm assets gen` to generate the index files.
|
||||
*
|
||||
* The generated index files will have the name `index.ts` and will be located in the root of each asset folder.
|
||||
*/
|
||||
import fs from 'fs';
|
||||
import { dirname, join } from 'path';
|
||||
import prettier from 'prettier';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const assetFolders = ['icons', 'images'];
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
|
||||
assetFolders.forEach((folder) => {
|
||||
const indexFilePath = join(__dirname, '..', folder, 'index.ts');
|
||||
const assetsFolderPath = join(__dirname, '..', folder);
|
||||
|
||||
// Delete the index file if it already exists.
|
||||
if (fs.existsSync(indexFilePath)) {
|
||||
fs.unlinkSync(indexFilePath);
|
||||
}
|
||||
|
||||
const fileNames = fs.readdirSync(assetsFolderPath);
|
||||
|
||||
// Generate the import statements for each asset.
|
||||
const assetImports = fileNames
|
||||
.filter((fileName) => fileName !== 'index.ts')
|
||||
.map((fileName) => {
|
||||
const variableName = fileName.split('.')[0].replace(/-/g, '');
|
||||
return `import ${variableName} from './${fileName}';`;
|
||||
})
|
||||
.join('\n');
|
||||
|
||||
// Generate the export statements for each asset.
|
||||
const assetExports = fileNames
|
||||
.filter((fileName) => fileName !== 'index.ts')
|
||||
.map((fileName) => {
|
||||
const variableName = fileName.split('.')[0].replace(/-/g, '');
|
||||
return `${variableName},`;
|
||||
})
|
||||
.join('\n');
|
||||
|
||||
// Generate the index file content.
|
||||
const indexFileContent = `
|
||||
/*
|
||||
* This file was automatically generated by a script.
|
||||
* To regenerate this file, run: pnpm assets gen
|
||||
*/
|
||||
|
||||
${assetImports}\n\nexport {\n ${assetExports}\n};\n`;
|
||||
|
||||
// Write the index file.
|
||||
prettier.resolveConfig(join(__dirname, '..', '..', '..', '.prettierrc.js')).then((options) => {
|
||||
fs.writeFileSync(
|
||||
indexFilePath,
|
||||
prettier.format(indexFileContent, { ...options, parser: 'typescript' })
|
||||
);
|
||||
});
|
||||
});
|
|
@ -67,19 +67,19 @@ importers:
|
|||
'@tauri-apps/api': 1.2.0
|
||||
react: 18.2.0
|
||||
react-dom: 18.2.0_react@18.2.0
|
||||
vite-plugin-html: 3.2.0_vite@4.0.4
|
||||
vite-plugin-html: 3.2.0_vite@4.1.4
|
||||
devDependencies:
|
||||
'@sd/config': link:../../packages/config
|
||||
'@tauri-apps/cli': 1.2.3
|
||||
'@types/babel-core': 6.25.7
|
||||
'@types/react': 18.0.27
|
||||
'@types/react-dom': 18.0.10
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.0.4
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.1.4
|
||||
prettier: 2.8.3
|
||||
sass: 1.57.1
|
||||
typescript: 4.9.4
|
||||
vite: 4.0.4_sass@1.57.1
|
||||
vite-plugin-svgr: 2.4.0_vite@4.0.4
|
||||
vite: 4.1.4_sass@1.57.1
|
||||
vite-plugin-svgr: 2.4.0_vite@4.1.4
|
||||
vite-tsconfig-paths: 4.0.5_typescript@4.9.4
|
||||
|
||||
apps/landing:
|
||||
|
@ -137,7 +137,7 @@ importers:
|
|||
'@sd/assets': link:../../packages/assets
|
||||
'@sd/docs': link:../../docs
|
||||
'@tryghost/content-api': 1.11.5
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.0.4
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.1.4
|
||||
clsx: 1.2.1
|
||||
compression: 1.7.4
|
||||
cross-env: 7.0.3
|
||||
|
@ -156,8 +156,8 @@ importers:
|
|||
ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq
|
||||
tsparticles: 2.8.0
|
||||
typescript: 4.9.4
|
||||
vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
vite-plugin-ssr: 0.4.70_vite@4.0.4
|
||||
vite: 4.1.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
vite-plugin-ssr: 0.4.70_vite@4.1.4
|
||||
devDependencies:
|
||||
'@sd/config': link:../../packages/config
|
||||
'@sd/ui': link:../../packages/ui
|
||||
|
@ -177,9 +177,9 @@ importers:
|
|||
rollup-plugin-visualizer: 5.9.0
|
||||
sass: 1.57.1
|
||||
vite-plugin-esmodule: 1.4.4
|
||||
vite-plugin-markdown: 2.1.0_vite@4.0.4
|
||||
vite-plugin-svgr: 2.4.0_vite@4.0.4
|
||||
vite-tsconfig-paths: 3.6.0_vite@4.0.4
|
||||
vite-plugin-markdown: 2.1.0_vite@4.1.4
|
||||
vite-plugin-svgr: 2.4.0_vite@4.1.4
|
||||
vite-tsconfig-paths: 3.6.0_vite@4.1.4
|
||||
|
||||
apps/mobile:
|
||||
specifiers:
|
||||
|
@ -326,15 +326,15 @@ importers:
|
|||
'@sd/ui': link:../../packages/ui
|
||||
'@types/react': 18.0.27
|
||||
'@types/react-dom': 18.0.10
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.0.4
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.1.4
|
||||
autoprefixer: 10.4.13_postcss@8.4.21
|
||||
postcss: 8.4.21
|
||||
rollup-plugin-visualizer: 5.9.0
|
||||
typescript: 4.9.4
|
||||
vite: 4.0.4
|
||||
vite-plugin-html: 3.2.0_vite@4.0.4
|
||||
vite-plugin-svgr: 2.4.0_vite@4.0.4
|
||||
vite-tsconfig-paths: 3.6.0_vite@4.0.4
|
||||
vite: 4.1.4
|
||||
vite-plugin-html: 3.2.0_vite@4.1.4
|
||||
vite-plugin-svgr: 2.4.0_vite@4.1.4
|
||||
vite-tsconfig-paths: 3.6.0_vite@4.1.4
|
||||
|
||||
crates/sync/example/web:
|
||||
specifiers:
|
||||
|
@ -359,9 +359,9 @@ importers:
|
|||
'@rspc/client': 0.0.0-main-7c0a67c1
|
||||
'@rspc/react': 0.0.0-main-7c0a67c1_ews3p2w6ewwkufep3giz5zum7m
|
||||
'@tanstack/react-query': 4.22.0_biqbaboplfbrettd7655fr4n2y
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.0.4
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.1.4
|
||||
typescript: 4.9.4
|
||||
vite: 4.0.4
|
||||
vite: 4.1.4
|
||||
|
||||
docs:
|
||||
specifiers: {}
|
||||
|
@ -443,7 +443,7 @@ importers:
|
|||
'@tanstack/react-query': 4.24.4_biqbaboplfbrettd7655fr4n2y
|
||||
'@tanstack/react-query-devtools': 4.22.0_pkeil6ml7pq7xvil3imldjs2sa
|
||||
'@tanstack/react-virtual': 3.0.0-beta.18_react@18.2.0
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.0.4
|
||||
'@vitejs/plugin-react': 2.2.0_vite@4.1.4
|
||||
'@zxcvbn-ts/core': 2.1.0
|
||||
'@zxcvbn-ts/language-common': 2.0.1
|
||||
'@zxcvbn-ts/language-en': 2.1.0
|
||||
|
@ -480,8 +480,8 @@ importers:
|
|||
'@types/react-router-dom': 5.3.3
|
||||
prettier: 2.8.3
|
||||
typescript: 4.9.4
|
||||
vite: 4.0.4_@types+node@18.11.18
|
||||
vite-plugin-svgr: 2.4.0_vite@4.0.4
|
||||
vite: 4.1.4_@types+node@18.11.18
|
||||
vite-plugin-svgr: 2.4.0_vite@4.1.4
|
||||
|
||||
packages/assets:
|
||||
specifiers: {}
|
||||
|
@ -8403,7 +8403,7 @@ packages:
|
|||
wonka: 4.0.15
|
||||
dev: false
|
||||
|
||||
/@vitejs/plugin-react/2.2.0_vite@4.0.4:
|
||||
/@vitejs/plugin-react/2.2.0_vite@4.1.4:
|
||||
resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
|
@ -8416,7 +8416,7 @@ packages:
|
|||
'@babel/plugin-transform-react-jsx-source': 7.19.6_@babel+core@7.20.12
|
||||
magic-string: 0.26.7
|
||||
react-refresh: 0.14.0
|
||||
vite: 4.0.4_sass@1.57.1
|
||||
vite: 4.1.4_sass@1.57.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
@ -20758,7 +20758,7 @@ packages:
|
|||
- webpack-cli
|
||||
dev: true
|
||||
|
||||
/vite-plugin-html/3.2.0_vite@4.0.4:
|
||||
/vite-plugin-html/3.2.0_vite@4.1.4:
|
||||
resolution: {integrity: sha512-2VLCeDiHmV/BqqNn5h2V+4280KRgQzCFN47cst3WiNK848klESPQnzuC3okH5XHtgwHH/6s1Ho/YV6yIO0pgoQ==}
|
||||
peerDependencies:
|
||||
vite: '>=2.0.0'
|
||||
|
@ -20775,9 +20775,9 @@ packages:
|
|||
html-minifier-terser: 6.1.0
|
||||
node-html-parser: 5.4.2
|
||||
pathe: 0.2.0
|
||||
vite: 4.0.4_sass@1.57.1
|
||||
vite: 4.1.4_sass@1.57.1
|
||||
|
||||
/vite-plugin-markdown/2.1.0_vite@4.0.4:
|
||||
/vite-plugin-markdown/2.1.0_vite@4.1.4:
|
||||
resolution: {integrity: sha512-eWLlrWzYZXEX3/HaXZo/KLjRpO72IUhbgaoFrbwB07ueXi6QfwqrgdZQfUcXTSofJCkN7GhErMC1K1RTAE0gGQ==}
|
||||
peerDependencies:
|
||||
vite: ^2.0.0 || ^3.0.0
|
||||
|
@ -20785,14 +20785,14 @@ packages:
|
|||
front-matter: 4.0.2
|
||||
htmlparser2: 6.1.0
|
||||
markdown-it: 12.3.2
|
||||
vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
vite: 4.1.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
dev: true
|
||||
|
||||
/vite-plugin-optimizer/1.4.2:
|
||||
resolution: {integrity: sha512-UNQy+J31b+DeEc2NCxV+WIkwyYPWGPjYsnXO4+gM26CKY5KJ47JeRjchR11F3qfR8MWDX1+425LZfkUyXOfGFA==}
|
||||
dev: true
|
||||
|
||||
/vite-plugin-ssr/0.4.70_vite@4.0.4:
|
||||
/vite-plugin-ssr/0.4.70_vite@4.1.4:
|
||||
resolution: {integrity: sha512-qcAqNss7phJnfK8QwT0KIotwvTuJLZhEA6jZiAYfS++HOLffEqUVSx620LfAr9j1H1MCoTwGd82zAbspOKnEHQ==}
|
||||
engines: {node: '>=12.19.0'}
|
||||
hasBin: true
|
||||
|
@ -20811,23 +20811,23 @@ packages:
|
|||
fast-glob: 3.2.12
|
||||
picocolors: 1.0.0
|
||||
sirv: 2.0.2
|
||||
vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
vite: 4.1.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
dev: false
|
||||
|
||||
/vite-plugin-svgr/2.4.0_vite@4.0.4:
|
||||
/vite-plugin-svgr/2.4.0_vite@4.1.4:
|
||||
resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==}
|
||||
peerDependencies:
|
||||
vite: ^2.6.0 || 3 || 4
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.0.2
|
||||
'@svgr/core': 6.5.1
|
||||
vite: 4.0.4_sass@1.57.1
|
||||
vite: 4.1.4_sass@1.57.1
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vite-tsconfig-paths/3.6.0_vite@4.0.4:
|
||||
/vite-tsconfig-paths/3.6.0_vite@4.1.4:
|
||||
resolution: {integrity: sha512-UfsPYonxLqPD633X8cWcPFVuYzx/CMNHAjZTasYwX69sXpa4gNmQkR0XCjj82h7zhLGdTWagMjC1qfb9S+zv0A==}
|
||||
peerDependencies:
|
||||
vite: '>2.0.0-0'
|
||||
|
@ -20836,7 +20836,7 @@ packages:
|
|||
globrex: 0.1.2
|
||||
recrawl-sync: 2.2.3
|
||||
tsconfig-paths: 4.1.2
|
||||
vite: 4.0.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
vite: 4.1.4_ovmyjmuuyckt3r3gpaexj2onji
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
@ -20852,8 +20852,8 @@ packages:
|
|||
- typescript
|
||||
dev: true
|
||||
|
||||
/vite/4.0.4:
|
||||
resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
|
||||
/vite/4.1.4:
|
||||
resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
@ -20885,8 +20885,8 @@ packages:
|
|||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/vite/4.0.4_@types+node@18.11.18:
|
||||
resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
|
||||
/vite/4.1.4_@types+node@18.11.18:
|
||||
resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
@ -20919,8 +20919,8 @@ packages:
|
|||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/vite/4.0.4_ovmyjmuuyckt3r3gpaexj2onji:
|
||||
resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
|
||||
/vite/4.1.4_ovmyjmuuyckt3r3gpaexj2onji:
|
||||
resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
@ -20953,8 +20953,8 @@ packages:
|
|||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
|
||||
/vite/4.0.4_sass@1.57.1:
|
||||
resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
|
||||
/vite/4.1.4_sass@1.57.1:
|
||||
resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|