From 3fa280d21878ae391674a21758199df3d2d8c3b5 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 3 Oct 2025 09:04:28 -0500 Subject: chore: app -> desktop --- packages/desktop/src/assets/favicon.svg | 5 + packages/desktop/src/assets/file-icons/3d.svg | 1 + packages/desktop/src/assets/file-icons/abap.svg | 1 + packages/desktop/src/assets/file-icons/abc.svg | 1 + .../desktop/src/assets/file-icons/actionscript.svg | 1 + packages/desktop/src/assets/file-icons/ada.svg | 1 + .../src/assets/file-icons/adobe-illustrator.svg | 1 + .../assets/file-icons/adobe-illustrator_light.svg | 1 + .../src/assets/file-icons/adobe-photoshop.svg | 1 + .../assets/file-icons/adobe-photoshop_light.svg | 1 + .../desktop/src/assets/file-icons/adobe-swc.svg | 1 + packages/desktop/src/assets/file-icons/adonis.svg | 1 + packages/desktop/src/assets/file-icons/advpl.svg | 1 + packages/desktop/src/assets/file-icons/amplify.svg | 1 + packages/desktop/src/assets/file-icons/android.svg | 1 + packages/desktop/src/assets/file-icons/angular.svg | 1 + packages/desktop/src/assets/file-icons/antlr.svg | 1 + .../desktop/src/assets/file-icons/apiblueprint.svg | 1 + packages/desktop/src/assets/file-icons/apollo.svg | 1 + .../desktop/src/assets/file-icons/applescript.svg | 1 + .../desktop/src/assets/file-icons/apps-script.svg | 1 + .../desktop/src/assets/file-icons/appveyor.svg | 1 + .../desktop/src/assets/file-icons/architecture.svg | 1 + packages/desktop/src/assets/file-icons/arduino.svg | 1 + .../desktop/src/assets/file-icons/asciidoc.svg | 1 + .../desktop/src/assets/file-icons/assembly.svg | 1 + .../desktop/src/assets/file-icons/astro-config.svg | 1 + packages/desktop/src/assets/file-icons/astro.svg | 1 + packages/desktop/src/assets/file-icons/astyle.svg | 1 + packages/desktop/src/assets/file-icons/audio.svg | 1 + packages/desktop/src/assets/file-icons/aurelia.svg | 1 + packages/desktop/src/assets/file-icons/authors.svg | 1 + packages/desktop/src/assets/file-icons/auto.svg | 1 + .../desktop/src/assets/file-icons/auto_light.svg | 12 + .../desktop/src/assets/file-icons/autohotkey.svg | 1 + packages/desktop/src/assets/file-icons/autoit.svg | 1 + .../src/assets/file-icons/azure-pipelines.svg | 1 + packages/desktop/src/assets/file-icons/azure.svg | 1 + packages/desktop/src/assets/file-icons/babel.svg | 1 + .../desktop/src/assets/file-icons/ballerina.svg | 1 + packages/desktop/src/assets/file-icons/bazel.svg | 1 + packages/desktop/src/assets/file-icons/bbx.svg | 1 + .../desktop/src/assets/file-icons/beancount.svg | 1 + .../desktop/src/assets/file-icons/bench-js.svg | 1 + .../desktop/src/assets/file-icons/bench-jsx.svg | 1 + .../desktop/src/assets/file-icons/bench-ts.svg | 1 + .../desktop/src/assets/file-icons/bibliography.svg | 1 + .../desktop/src/assets/file-icons/bibtex-style.svg | 1 + packages/desktop/src/assets/file-icons/bicep.svg | 1 + packages/desktop/src/assets/file-icons/biome.svg | 1 + .../desktop/src/assets/file-icons/bitbucket.svg | 1 + .../desktop/src/assets/file-icons/bithound.svg | 1 + packages/desktop/src/assets/file-icons/blender.svg | 1 + packages/desktop/src/assets/file-icons/blink.svg | 1 + .../desktop/src/assets/file-icons/blink_light.svg | 1 + packages/desktop/src/assets/file-icons/blitz.svg | 1 + packages/desktop/src/assets/file-icons/bower.svg | 1 + .../desktop/src/assets/file-icons/brainfuck.svg | 1 + .../desktop/src/assets/file-icons/browserlist.svg | 1 + .../src/assets/file-icons/browserlist_light.svg | 1 + packages/desktop/src/assets/file-icons/bruno.svg | 1 + packages/desktop/src/assets/file-icons/buck.svg | 1 + .../desktop/src/assets/file-icons/bucklescript.svg | 1 + .../desktop/src/assets/file-icons/buildkite.svg | 1 + packages/desktop/src/assets/file-icons/bun.svg | 1 + .../desktop/src/assets/file-icons/bun_light.svg | 1 + packages/desktop/src/assets/file-icons/c.svg | 1 + packages/desktop/src/assets/file-icons/c3.svg | 1 + packages/desktop/src/assets/file-icons/cabal.svg | 1 + packages/desktop/src/assets/file-icons/caddy.svg | 1 + packages/desktop/src/assets/file-icons/cadence.svg | 1 + packages/desktop/src/assets/file-icons/cairo.svg | 1 + packages/desktop/src/assets/file-icons/cake.svg | 1 + .../desktop/src/assets/file-icons/capacitor.svg | 1 + packages/desktop/src/assets/file-icons/capnp.svg | 1 + packages/desktop/src/assets/file-icons/cbx.svg | 1 + packages/desktop/src/assets/file-icons/cds.svg | 1 + .../desktop/src/assets/file-icons/certificate.svg | 1 + .../desktop/src/assets/file-icons/changelog.svg | 1 + packages/desktop/src/assets/file-icons/chess.svg | 1 + .../desktop/src/assets/file-icons/chess_light.svg | 1 + packages/desktop/src/assets/file-icons/chrome.svg | 1 + .../desktop/src/assets/file-icons/circleci.svg | 1 + .../src/assets/file-icons/circleci_light.svg | 1 + .../desktop/src/assets/file-icons/citation.svg | 1 + packages/desktop/src/assets/file-icons/clangd.svg | 1 + packages/desktop/src/assets/file-icons/claude.svg | 1 + packages/desktop/src/assets/file-icons/cline.svg | 1 + packages/desktop/src/assets/file-icons/clojure.svg | 1 + .../desktop/src/assets/file-icons/cloudfoundry.svg | 1 + packages/desktop/src/assets/file-icons/cmake.svg | 1 + packages/desktop/src/assets/file-icons/coala.svg | 1 + packages/desktop/src/assets/file-icons/cobol.svg | 1 + packages/desktop/src/assets/file-icons/coconut.svg | 1 + .../desktop/src/assets/file-icons/code-climate.svg | 1 + .../src/assets/file-icons/code-climate_light.svg | 1 + packages/desktop/src/assets/file-icons/codecov.svg | 1 + .../desktop/src/assets/file-icons/codeowners.svg | 1 + .../src/assets/file-icons/coderabbit-ai.svg | 1 + packages/desktop/src/assets/file-icons/coffee.svg | 1 + .../desktop/src/assets/file-icons/coldfusion.svg | 1 + .../src/assets/file-icons/coloredpetrinets.svg | 1 + packages/desktop/src/assets/file-icons/command.svg | 1 + .../desktop/src/assets/file-icons/commitizen.svg | 1 + .../desktop/src/assets/file-icons/commitlint.svg | 1 + .../desktop/src/assets/file-icons/concourse.svg | 1 + packages/desktop/src/assets/file-icons/conduct.svg | 1 + packages/desktop/src/assets/file-icons/console.svg | 1 + .../desktop/src/assets/file-icons/contentlayer.svg | 1 + packages/desktop/src/assets/file-icons/context.svg | 1 + .../desktop/src/assets/file-icons/contributing.svg | 1 + .../desktop/src/assets/file-icons/controller.svg | 1 + packages/desktop/src/assets/file-icons/copilot.svg | 1 + .../src/assets/file-icons/copilot_light.svg | 1 + packages/desktop/src/assets/file-icons/cpp.svg | 1 + packages/desktop/src/assets/file-icons/craco.svg | 1 + packages/desktop/src/assets/file-icons/credits.svg | 1 + packages/desktop/src/assets/file-icons/crystal.svg | 1 + .../src/assets/file-icons/crystal_light.svg | 1 + packages/desktop/src/assets/file-icons/csharp.svg | 1 + packages/desktop/src/assets/file-icons/css-map.svg | 1 + packages/desktop/src/assets/file-icons/css.svg | 1 + .../desktop/src/assets/file-icons/cucumber.svg | 1 + packages/desktop/src/assets/file-icons/cuda.svg | 1 + packages/desktop/src/assets/file-icons/cursor.svg | 1 + .../desktop/src/assets/file-icons/cursor_light.svg | 1 + packages/desktop/src/assets/file-icons/cypress.svg | 1 + packages/desktop/src/assets/file-icons/d.svg | 1 + packages/desktop/src/assets/file-icons/dart.svg | 1 + .../src/assets/file-icons/dart_generated.svg | 1 + .../desktop/src/assets/file-icons/database.svg | 1 + .../desktop/src/assets/file-icons/deepsource.svg | 1 + .../src/assets/file-icons/denizenscript.svg | 1 + packages/desktop/src/assets/file-icons/deno.svg | 1 + .../desktop/src/assets/file-icons/deno_light.svg | 1 + .../desktop/src/assets/file-icons/dependabot.svg | 1 + .../src/assets/file-icons/dependencies-update.svg | 1 + packages/desktop/src/assets/file-icons/dhall.svg | 1 + packages/desktop/src/assets/file-icons/diff.svg | 1 + packages/desktop/src/assets/file-icons/dinophp.svg | 1 + packages/desktop/src/assets/file-icons/disc.svg | 1 + packages/desktop/src/assets/file-icons/django.svg | 1 + packages/desktop/src/assets/file-icons/dll.svg | 1 + packages/desktop/src/assets/file-icons/docker.svg | 1 + .../src/assets/file-icons/doctex-installer.svg | 1 + .../desktop/src/assets/file-icons/document.svg | 1 + packages/desktop/src/assets/file-icons/dotjs.svg | 1 + packages/desktop/src/assets/file-icons/drawio.svg | 1 + packages/desktop/src/assets/file-icons/drizzle.svg | 1 + packages/desktop/src/assets/file-icons/drone.svg | 1 + .../desktop/src/assets/file-icons/drone_light.svg | 4 + packages/desktop/src/assets/file-icons/duc.svg | 1 + packages/desktop/src/assets/file-icons/dune.svg | 1 + packages/desktop/src/assets/file-icons/edge.svg | 1 + .../desktop/src/assets/file-icons/editorconfig.svg | 1 + packages/desktop/src/assets/file-icons/ejs.svg | 1 + packages/desktop/src/assets/file-icons/elixir.svg | 1 + packages/desktop/src/assets/file-icons/elm.svg | 1 + packages/desktop/src/assets/file-icons/email.svg | 1 + packages/desktop/src/assets/file-icons/ember.svg | 1 + packages/desktop/src/assets/file-icons/epub.svg | 1 + packages/desktop/src/assets/file-icons/erlang.svg | 1 + packages/desktop/src/assets/file-icons/esbuild.svg | 1 + packages/desktop/src/assets/file-icons/eslint.svg | 1 + .../desktop/src/assets/file-icons/excalidraw.svg | 1 + packages/desktop/src/assets/file-icons/exe.svg | 1 + .../desktop/src/assets/file-icons/fastlane.svg | 1 + packages/desktop/src/assets/file-icons/favicon.svg | 1 + packages/desktop/src/assets/file-icons/figma.svg | 1 + .../desktop/src/assets/file-icons/firebase.svg | 1 + packages/desktop/src/assets/file-icons/flash.svg | 1 + packages/desktop/src/assets/file-icons/flow.svg | 1 + .../src/assets/file-icons/folder-admin-open.svg | 6 + .../desktop/src/assets/file-icons/folder-admin.svg | 6 + .../src/assets/file-icons/folder-android-open.svg | 1 + .../src/assets/file-icons/folder-android.svg | 1 + .../src/assets/file-icons/folder-angular-open.svg | 1 + .../src/assets/file-icons/folder-angular.svg | 1 + .../assets/file-icons/folder-animation-open.svg | 1 + .../src/assets/file-icons/folder-animation.svg | 1 + .../src/assets/file-icons/folder-ansible-open.svg | 1 + .../src/assets/file-icons/folder-ansible.svg | 1 + .../src/assets/file-icons/folder-api-open.svg | 1 + .../desktop/src/assets/file-icons/folder-api.svg | 1 + .../src/assets/file-icons/folder-apollo-open.svg | 1 + .../src/assets/file-icons/folder-apollo.svg | 1 + .../src/assets/file-icons/folder-app-open.svg | 1 + .../desktop/src/assets/file-icons/folder-app.svg | 1 + .../src/assets/file-icons/folder-archive-open.svg | 1 + .../src/assets/file-icons/folder-archive.svg | 1 + .../src/assets/file-icons/folder-astro-open.svg | 1 + .../desktop/src/assets/file-icons/folder-astro.svg | 1 + .../src/assets/file-icons/folder-atom-open.svg | 1 + .../desktop/src/assets/file-icons/folder-atom.svg | 1 + .../assets/file-icons/folder-attachment-open.svg | 1 + .../src/assets/file-icons/folder-attachment.svg | 1 + .../src/assets/file-icons/folder-audio-open.svg | 1 + .../desktop/src/assets/file-icons/folder-audio.svg | 1 + .../src/assets/file-icons/folder-aurelia-open.svg | 1 + .../src/assets/file-icons/folder-aurelia.svg | 1 + .../src/assets/file-icons/folder-aws-open.svg | 1 + .../desktop/src/assets/file-icons/folder-aws.svg | 1 + .../file-icons/folder-azure-pipelines-open.svg | 1 + .../assets/file-icons/folder-azure-pipelines.svg | 1 + .../src/assets/file-icons/folder-backup-open.svg | 1 + .../src/assets/file-icons/folder-backup.svg | 1 + .../src/assets/file-icons/folder-base-open.svg | 1 + .../desktop/src/assets/file-icons/folder-base.svg | 1 + .../src/assets/file-icons/folder-batch-open.svg | 1 + .../desktop/src/assets/file-icons/folder-batch.svg | 1 + .../assets/file-icons/folder-benchmark-open.svg | 1 + .../src/assets/file-icons/folder-benchmark.svg | 1 + .../assets/file-icons/folder-bibliography-open.svg | 1 + .../src/assets/file-icons/folder-bibliography.svg | 1 + .../src/assets/file-icons/folder-bicep-open.svg | 1 + .../desktop/src/assets/file-icons/folder-bicep.svg | 1 + .../src/assets/file-icons/folder-blender-open.svg | 1 + .../src/assets/file-icons/folder-blender.svg | 1 + .../src/assets/file-icons/folder-bloc-open.svg | 1 + .../desktop/src/assets/file-icons/folder-bloc.svg | 1 + .../src/assets/file-icons/folder-bower-open.svg | 1 + .../desktop/src/assets/file-icons/folder-bower.svg | 1 + .../assets/file-icons/folder-buildkite-open.svg | 1 + .../src/assets/file-icons/folder-buildkite.svg | 1 + .../src/assets/file-icons/folder-cart-open.svg | 1 + .../desktop/src/assets/file-icons/folder-cart.svg | 1 + .../assets/file-icons/folder-changesets-open.svg | 1 + .../src/assets/file-icons/folder-changesets.svg | 1 + .../src/assets/file-icons/folder-ci-open.svg | 1 + .../desktop/src/assets/file-icons/folder-ci.svg | 1 + .../src/assets/file-icons/folder-circleci-open.svg | 7 + .../src/assets/file-icons/folder-circleci.svg | 7 + .../src/assets/file-icons/folder-class-open.svg | 1 + .../desktop/src/assets/file-icons/folder-class.svg | 1 + .../src/assets/file-icons/folder-claude-open.svg | 1 + .../src/assets/file-icons/folder-claude.svg | 1 + .../src/assets/file-icons/folder-client-open.svg | 1 + .../src/assets/file-icons/folder-client.svg | 1 + .../src/assets/file-icons/folder-cline-open.svg | 1 + .../desktop/src/assets/file-icons/folder-cline.svg | 1 + .../file-icons/folder-cloud-functions-open.svg | 1 + .../assets/file-icons/folder-cloud-functions.svg | 1 + .../assets/file-icons/folder-cloudflare-open.svg | 1 + .../src/assets/file-icons/folder-cloudflare.svg | 1 + .../src/assets/file-icons/folder-cluster-open.svg | 1 + .../src/assets/file-icons/folder-cluster.svg | 1 + .../src/assets/file-icons/folder-cobol-open.svg | 1 + .../desktop/src/assets/file-icons/folder-cobol.svg | 1 + .../src/assets/file-icons/folder-command-open.svg | 1 + .../src/assets/file-icons/folder-command.svg | 1 + .../assets/file-icons/folder-components-open.svg | 1 + .../src/assets/file-icons/folder-components.svg | 1 + .../src/assets/file-icons/folder-config-open.svg | 1 + .../src/assets/file-icons/folder-config.svg | 1 + .../assets/file-icons/folder-connection-open.svg | 1 + .../src/assets/file-icons/folder-connection.svg | 1 + .../src/assets/file-icons/folder-console-open.svg | 1 + .../src/assets/file-icons/folder-console.svg | 1 + .../src/assets/file-icons/folder-constant-open.svg | 1 + .../src/assets/file-icons/folder-constant.svg | 1 + .../assets/file-icons/folder-container-open.svg | 1 + .../src/assets/file-icons/folder-container.svg | 1 + .../src/assets/file-icons/folder-content-open.svg | 1 + .../src/assets/file-icons/folder-content.svg | 1 + .../src/assets/file-icons/folder-context-open.svg | 1 + .../src/assets/file-icons/folder-context.svg | 1 + .../src/assets/file-icons/folder-contract-open.svg | 1 + .../src/assets/file-icons/folder-contract.svg | 1 + .../assets/file-icons/folder-controller-open.svg | 1 + .../src/assets/file-icons/folder-controller.svg | 1 + .../src/assets/file-icons/folder-core-open.svg | 1 + .../desktop/src/assets/file-icons/folder-core.svg | 1 + .../src/assets/file-icons/folder-coverage-open.svg | 1 + .../src/assets/file-icons/folder-coverage.svg | 1 + .../src/assets/file-icons/folder-css-open.svg | 1 + .../desktop/src/assets/file-icons/folder-css.svg | 1 + .../src/assets/file-icons/folder-cursor-open.svg | 1 + .../assets/file-icons/folder-cursor-open_light.svg | 1 + .../src/assets/file-icons/folder-cursor.svg | 1 + .../src/assets/file-icons/folder-cursor_light.svg | 1 + .../src/assets/file-icons/folder-custom-open.svg | 1 + .../src/assets/file-icons/folder-custom.svg | 1 + .../src/assets/file-icons/folder-cypress-open.svg | 1 + .../src/assets/file-icons/folder-cypress.svg | 1 + .../src/assets/file-icons/folder-dart-open.svg | 1 + .../desktop/src/assets/file-icons/folder-dart.svg | 1 + .../src/assets/file-icons/folder-database-open.svg | 1 + .../src/assets/file-icons/folder-database.svg | 1 + .../src/assets/file-icons/folder-debug-open.svg | 1 + .../desktop/src/assets/file-icons/folder-debug.svg | 1 + .../assets/file-icons/folder-decorators-open.svg | 1 + .../src/assets/file-icons/folder-decorators.svg | 1 + .../src/assets/file-icons/folder-delta-open.svg | 1 + .../desktop/src/assets/file-icons/folder-delta.svg | 1 + .../src/assets/file-icons/folder-desktop-open.svg | 1 + .../src/assets/file-icons/folder-desktop.svg | 1 + .../assets/file-icons/folder-directive-open.svg | 1 + .../src/assets/file-icons/folder-directive.svg | 1 + .../src/assets/file-icons/folder-dist-open.svg | 1 + .../desktop/src/assets/file-icons/folder-dist.svg | 1 + .../src/assets/file-icons/folder-docker-open.svg | 1 + .../src/assets/file-icons/folder-docker.svg | 1 + .../src/assets/file-icons/folder-docs-open.svg | 1 + .../desktop/src/assets/file-icons/folder-docs.svg | 1 + .../src/assets/file-icons/folder-download-open.svg | 1 + .../src/assets/file-icons/folder-download.svg | 1 + .../src/assets/file-icons/folder-drizzle-open.svg | 1 + .../src/assets/file-icons/folder-drizzle.svg | 1 + .../src/assets/file-icons/folder-dump-open.svg | 1 + .../desktop/src/assets/file-icons/folder-dump.svg | 1 + .../src/assets/file-icons/folder-element-open.svg | 1 + .../src/assets/file-icons/folder-element.svg | 1 + .../src/assets/file-icons/folder-enum-open.svg | 1 + .../desktop/src/assets/file-icons/folder-enum.svg | 1 + .../assets/file-icons/folder-environment-open.svg | 1 + .../src/assets/file-icons/folder-environment.svg | 1 + .../src/assets/file-icons/folder-error-open.svg | 1 + .../desktop/src/assets/file-icons/folder-error.svg | 1 + .../src/assets/file-icons/folder-event-open.svg | 1 + .../desktop/src/assets/file-icons/folder-event.svg | 1 + .../src/assets/file-icons/folder-examples-open.svg | 1 + .../src/assets/file-icons/folder-examples.svg | 1 + .../src/assets/file-icons/folder-expo-open.svg | 1 + .../desktop/src/assets/file-icons/folder-expo.svg | 1 + .../src/assets/file-icons/folder-export-open.svg | 1 + .../src/assets/file-icons/folder-export.svg | 1 + .../src/assets/file-icons/folder-fastlane-open.svg | 1 + .../src/assets/file-icons/folder-fastlane.svg | 1 + .../src/assets/file-icons/folder-favicon-open.svg | 1 + .../src/assets/file-icons/folder-favicon.svg | 1 + .../src/assets/file-icons/folder-firebase-open.svg | 1 + .../src/assets/file-icons/folder-firebase.svg | 1 + .../assets/file-icons/folder-firestore-open.svg | 1 + .../src/assets/file-icons/folder-firestore.svg | 1 + .../src/assets/file-icons/folder-flow-open.svg | 6 + .../desktop/src/assets/file-icons/folder-flow.svg | 6 + .../src/assets/file-icons/folder-flutter-open.svg | 1 + .../src/assets/file-icons/folder-flutter.svg | 1 + .../src/assets/file-icons/folder-font-open.svg | 1 + .../desktop/src/assets/file-icons/folder-font.svg | 1 + .../src/assets/file-icons/folder-forgejo-open.svg | 1 + .../src/assets/file-icons/folder-forgejo.svg | 1 + .../assets/file-icons/folder-functions-open.svg | 1 + .../src/assets/file-icons/folder-functions.svg | 1 + .../assets/file-icons/folder-gamemaker-open.svg | 1 + .../src/assets/file-icons/folder-gamemaker.svg | 1 + .../assets/file-icons/folder-generator-open.svg | 1 + .../src/assets/file-icons/folder-generator.svg | 1 + .../assets/file-icons/folder-gh-workflows-open.svg | 6 + .../src/assets/file-icons/folder-gh-workflows.svg | 6 + .../src/assets/file-icons/folder-git-open.svg | 1 + .../desktop/src/assets/file-icons/folder-git.svg | 1 + .../src/assets/file-icons/folder-gitea-open.svg | 1 + .../desktop/src/assets/file-icons/folder-gitea.svg | 1 + .../src/assets/file-icons/folder-github-open.svg | 6 + .../src/assets/file-icons/folder-github.svg | 6 + .../src/assets/file-icons/folder-gitlab-open.svg | 1 + .../src/assets/file-icons/folder-gitlab.svg | 1 + .../src/assets/file-icons/folder-global-open.svg | 1 + .../src/assets/file-icons/folder-global.svg | 1 + .../src/assets/file-icons/folder-godot-open.svg | 1 + .../desktop/src/assets/file-icons/folder-godot.svg | 1 + .../src/assets/file-icons/folder-gradle-open.svg | 1 + .../src/assets/file-icons/folder-gradle.svg | 1 + .../src/assets/file-icons/folder-graphql-open.svg | 1 + .../src/assets/file-icons/folder-graphql.svg | 1 + .../src/assets/file-icons/folder-guard-open.svg | 1 + .../desktop/src/assets/file-icons/folder-guard.svg | 1 + .../src/assets/file-icons/folder-gulp-open.svg | 1 + .../desktop/src/assets/file-icons/folder-gulp.svg | 1 + .../src/assets/file-icons/folder-helm-open.svg | 1 + .../desktop/src/assets/file-icons/folder-helm.svg | 1 + .../src/assets/file-icons/folder-helper-open.svg | 1 + .../src/assets/file-icons/folder-helper.svg | 1 + .../src/assets/file-icons/folder-home-open.svg | 1 + .../desktop/src/assets/file-icons/folder-home.svg | 1 + .../src/assets/file-icons/folder-hook-open.svg | 1 + .../desktop/src/assets/file-icons/folder-hook.svg | 1 + .../src/assets/file-icons/folder-husky-open.svg | 1 + .../desktop/src/assets/file-icons/folder-husky.svg | 1 + .../src/assets/file-icons/folder-i18n-open.svg | 1 + .../desktop/src/assets/file-icons/folder-i18n.svg | 1 + .../src/assets/file-icons/folder-images-open.svg | 1 + .../src/assets/file-icons/folder-images.svg | 1 + .../src/assets/file-icons/folder-import-open.svg | 1 + .../src/assets/file-icons/folder-import.svg | 1 + .../src/assets/file-icons/folder-include-open.svg | 1 + .../src/assets/file-icons/folder-include.svg | 1 + .../src/assets/file-icons/folder-intellij-open.svg | 39 + .../file-icons/folder-intellij-open_light.svg | 1 + .../src/assets/file-icons/folder-intellij.svg | 39 + .../assets/file-icons/folder-intellij_light.svg | 1 + .../assets/file-icons/folder-interceptor-open.svg | 1 + .../src/assets/file-icons/folder-interceptor.svg | 1 + .../assets/file-icons/folder-interface-open.svg | 1 + .../src/assets/file-icons/folder-interface.svg | 1 + .../src/assets/file-icons/folder-ios-open.svg | 1 + .../desktop/src/assets/file-icons/folder-ios.svg | 1 + .../src/assets/file-icons/folder-java-open.svg | 1 + .../desktop/src/assets/file-icons/folder-java.svg | 1 + .../assets/file-icons/folder-javascript-open.svg | 1 + .../src/assets/file-icons/folder-javascript.svg | 1 + .../src/assets/file-icons/folder-jinja-open.svg | 1 + .../assets/file-icons/folder-jinja-open_light.svg | 1 + .../desktop/src/assets/file-icons/folder-jinja.svg | 1 + .../src/assets/file-icons/folder-jinja_light.svg | 1 + .../src/assets/file-icons/folder-job-open.svg | 1 + .../desktop/src/assets/file-icons/folder-job.svg | 1 + .../src/assets/file-icons/folder-json-open.svg | 1 + .../desktop/src/assets/file-icons/folder-json.svg | 1 + .../src/assets/file-icons/folder-jupyter-open.svg | 1 + .../src/assets/file-icons/folder-jupyter.svg | 1 + .../src/assets/file-icons/folder-keys-open.svg | 1 + .../desktop/src/assets/file-icons/folder-keys.svg | 1 + .../assets/file-icons/folder-kubernetes-open.svg | 1 + .../src/assets/file-icons/folder-kubernetes.svg | 1 + .../src/assets/file-icons/folder-kusto-open.svg | 1 + .../desktop/src/assets/file-icons/folder-kusto.svg | 1 + .../src/assets/file-icons/folder-layout-open.svg | 1 + .../src/assets/file-icons/folder-layout.svg | 1 + .../src/assets/file-icons/folder-lefthook-open.svg | 1 + .../src/assets/file-icons/folder-lefthook.svg | 1 + .../src/assets/file-icons/folder-less-open.svg | 1 + .../desktop/src/assets/file-icons/folder-less.svg | 1 + .../src/assets/file-icons/folder-lib-open.svg | 1 + .../desktop/src/assets/file-icons/folder-lib.svg | 1 + .../src/assets/file-icons/folder-link-open.svg | 1 + .../desktop/src/assets/file-icons/folder-link.svg | 1 + .../src/assets/file-icons/folder-linux-open.svg | 1 + .../desktop/src/assets/file-icons/folder-linux.svg | 1 + .../assets/file-icons/folder-liquibase-open.svg | 1 + .../src/assets/file-icons/folder-liquibase.svg | 1 + .../src/assets/file-icons/folder-log-open.svg | 1 + .../desktop/src/assets/file-icons/folder-log.svg | 1 + .../src/assets/file-icons/folder-lottie-open.svg | 1 + .../src/assets/file-icons/folder-lottie.svg | 1 + .../src/assets/file-icons/folder-lua-open.svg | 1 + .../desktop/src/assets/file-icons/folder-lua.svg | 1 + .../src/assets/file-icons/folder-luau-open.svg | 1 + .../desktop/src/assets/file-icons/folder-luau.svg | 1 + .../src/assets/file-icons/folder-macos-open.svg | 6 + .../desktop/src/assets/file-icons/folder-macos.svg | 6 + .../src/assets/file-icons/folder-mail-open.svg | 1 + .../desktop/src/assets/file-icons/folder-mail.svg | 1 + .../src/assets/file-icons/folder-mappings-open.svg | 1 + .../src/assets/file-icons/folder-mappings.svg | 1 + .../src/assets/file-icons/folder-markdown-open.svg | 1 + .../src/assets/file-icons/folder-markdown.svg | 1 + .../assets/file-icons/folder-mercurial-open.svg | 1 + .../src/assets/file-icons/folder-mercurial.svg | 1 + .../src/assets/file-icons/folder-messages-open.svg | 1 + .../src/assets/file-icons/folder-messages.svg | 1 + .../src/assets/file-icons/folder-meta-open.svg | 1 + .../desktop/src/assets/file-icons/folder-meta.svg | 1 + .../assets/file-icons/folder-middleware-open.svg | 1 + .../src/assets/file-icons/folder-middleware.svg | 1 + .../src/assets/file-icons/folder-mjml-open.svg | 1 + .../desktop/src/assets/file-icons/folder-mjml.svg | 1 + .../src/assets/file-icons/folder-mobile-open.svg | 1 + .../src/assets/file-icons/folder-mobile.svg | 1 + .../src/assets/file-icons/folder-mock-open.svg | 1 + .../desktop/src/assets/file-icons/folder-mock.svg | 1 + .../src/assets/file-icons/folder-mojo-open.svg | 1 + .../desktop/src/assets/file-icons/folder-mojo.svg | 1 + .../src/assets/file-icons/folder-molecule-open.svg | 1 + .../src/assets/file-icons/folder-molecule.svg | 1 + .../src/assets/file-icons/folder-moon-open.svg | 1 + .../desktop/src/assets/file-icons/folder-moon.svg | 1 + .../src/assets/file-icons/folder-netlify-open.svg | 1 + .../src/assets/file-icons/folder-netlify.svg | 1 + .../src/assets/file-icons/folder-next-open.svg | 6 + .../desktop/src/assets/file-icons/folder-next.svg | 6 + .../assets/file-icons/folder-ngrx-store-open.svg | 1 + .../src/assets/file-icons/folder-ngrx-store.svg | 1 + .../src/assets/file-icons/folder-node-open.svg | 1 + .../desktop/src/assets/file-icons/folder-node.svg | 1 + .../src/assets/file-icons/folder-nuxt-open.svg | 6 + .../desktop/src/assets/file-icons/folder-nuxt.svg | 6 + .../src/assets/file-icons/folder-obsidian-open.svg | 1 + .../src/assets/file-icons/folder-obsidian.svg | 1 + .../desktop/src/assets/file-icons/folder-open.svg | 5 + .../src/assets/file-icons/folder-organism-open.svg | 1 + .../src/assets/file-icons/folder-organism.svg | 1 + .../src/assets/file-icons/folder-other-open.svg | 1 + .../desktop/src/assets/file-icons/folder-other.svg | 1 + .../src/assets/file-icons/folder-packages-open.svg | 1 + .../src/assets/file-icons/folder-packages.svg | 1 + .../src/assets/file-icons/folder-pdf-open.svg | 1 + .../desktop/src/assets/file-icons/folder-pdf.svg | 1 + .../src/assets/file-icons/folder-pdm-open.svg | 1 + .../desktop/src/assets/file-icons/folder-pdm.svg | 1 + .../src/assets/file-icons/folder-php-open.svg | 1 + .../desktop/src/assets/file-icons/folder-php.svg | 1 + .../assets/file-icons/folder-phpmailer-open.svg | 1 + .../src/assets/file-icons/folder-phpmailer.svg | 1 + .../src/assets/file-icons/folder-pipe-open.svg | 1 + .../desktop/src/assets/file-icons/folder-pipe.svg | 1 + .../src/assets/file-icons/folder-plastic-open.svg | 1 + .../src/assets/file-icons/folder-plastic.svg | 1 + .../src/assets/file-icons/folder-plugin-open.svg | 1 + .../src/assets/file-icons/folder-plugin.svg | 1 + .../src/assets/file-icons/folder-policy-open.svg | 1 + .../src/assets/file-icons/folder-policy.svg | 1 + .../assets/file-icons/folder-powershell-open.svg | 1 + .../src/assets/file-icons/folder-powershell.svg | 1 + .../src/assets/file-icons/folder-prisma-open.svg | 1 + .../src/assets/file-icons/folder-prisma.svg | 1 + .../src/assets/file-icons/folder-private-open.svg | 1 + .../src/assets/file-icons/folder-private.svg | 1 + .../src/assets/file-icons/folder-project-open.svg | 1 + .../src/assets/file-icons/folder-project.svg | 1 + .../src/assets/file-icons/folder-prompts-open.svg | 1 + .../src/assets/file-icons/folder-prompts.svg | 1 + .../src/assets/file-icons/folder-proto-open.svg | 1 + .../desktop/src/assets/file-icons/folder-proto.svg | 1 + .../src/assets/file-icons/folder-public-open.svg | 1 + .../src/assets/file-icons/folder-public.svg | 1 + .../src/assets/file-icons/folder-python-open.svg | 1 + .../src/assets/file-icons/folder-python.svg | 1 + .../src/assets/file-icons/folder-pytorch-open.svg | 1 + .../src/assets/file-icons/folder-pytorch.svg | 1 + .../src/assets/file-icons/folder-quasar-open.svg | 1 + .../src/assets/file-icons/folder-quasar.svg | 1 + .../src/assets/file-icons/folder-queue-open.svg | 1 + .../desktop/src/assets/file-icons/folder-queue.svg | 1 + .../file-icons/folder-react-components-open.svg | 1 + .../assets/file-icons/folder-react-components.svg | 1 + .../file-icons/folder-redux-reducer-open.svg | 1 + .../src/assets/file-icons/folder-redux-reducer.svg | 1 + .../assets/file-icons/folder-repository-open.svg | 1 + .../src/assets/file-icons/folder-repository.svg | 1 + .../src/assets/file-icons/folder-resolver-open.svg | 1 + .../src/assets/file-icons/folder-resolver.svg | 1 + .../src/assets/file-icons/folder-resource-open.svg | 1 + .../src/assets/file-icons/folder-resource.svg | 1 + .../src/assets/file-icons/folder-review-open.svg | 1 + .../src/assets/file-icons/folder-review.svg | 1 + .../src/assets/file-icons/folder-robot-open.svg | 1 + .../desktop/src/assets/file-icons/folder-robot.svg | 1 + .../src/assets/file-icons/folder-routes-open.svg | 1 + .../src/assets/file-icons/folder-routes.svg | 1 + .../src/assets/file-icons/folder-rules-open.svg | 1 + .../desktop/src/assets/file-icons/folder-rules.svg | 1 + .../src/assets/file-icons/folder-rust-open.svg | 1 + .../desktop/src/assets/file-icons/folder-rust.svg | 1 + .../src/assets/file-icons/folder-sandbox-open.svg | 1 + .../src/assets/file-icons/folder-sandbox.svg | 1 + .../src/assets/file-icons/folder-sass-open.svg | 1 + .../desktop/src/assets/file-icons/folder-sass.svg | 1 + .../src/assets/file-icons/folder-scala-open.svg | 1 + .../desktop/src/assets/file-icons/folder-scala.svg | 1 + .../src/assets/file-icons/folder-scons-open.svg | 1 + .../desktop/src/assets/file-icons/folder-scons.svg | 1 + .../src/assets/file-icons/folder-scripts-open.svg | 6 + .../src/assets/file-icons/folder-scripts.svg | 6 + .../src/assets/file-icons/folder-secure-open.svg | 1 + .../src/assets/file-icons/folder-secure.svg | 1 + .../src/assets/file-icons/folder-seeders-open.svg | 1 + .../src/assets/file-icons/folder-seeders.svg | 1 + .../src/assets/file-icons/folder-server-open.svg | 1 + .../src/assets/file-icons/folder-server.svg | 1 + .../assets/file-icons/folder-serverless-open.svg | 1 + .../src/assets/file-icons/folder-serverless.svg | 1 + .../src/assets/file-icons/folder-shader-open.svg | 1 + .../src/assets/file-icons/folder-shader.svg | 1 + .../src/assets/file-icons/folder-shared-open.svg | 1 + .../src/assets/file-icons/folder-shared.svg | 1 + .../assets/file-icons/folder-snapcraft-open.svg | 1 + .../src/assets/file-icons/folder-snapcraft.svg | 1 + .../src/assets/file-icons/folder-snippet-open.svg | 1 + .../src/assets/file-icons/folder-snippet.svg | 1 + .../src/assets/file-icons/folder-src-open.svg | 1 + .../assets/file-icons/folder-src-tauri-open.svg | 1 + .../src/assets/file-icons/folder-src-tauri.svg | 1 + .../desktop/src/assets/file-icons/folder-src.svg | 1 + .../src/assets/file-icons/folder-stack-open.svg | 1 + .../desktop/src/assets/file-icons/folder-stack.svg | 1 + .../src/assets/file-icons/folder-stencil-open.svg | 1 + .../src/assets/file-icons/folder-stencil.svg | 1 + .../src/assets/file-icons/folder-store-open.svg | 1 + .../desktop/src/assets/file-icons/folder-store.svg | 1 + .../assets/file-icons/folder-storybook-open.svg | 1 + .../src/assets/file-icons/folder-storybook.svg | 1 + .../src/assets/file-icons/folder-stylus-open.svg | 1 + .../src/assets/file-icons/folder-stylus.svg | 1 + .../src/assets/file-icons/folder-sublime-open.svg | 1 + .../src/assets/file-icons/folder-sublime.svg | 1 + .../src/assets/file-icons/folder-supabase-open.svg | 1 + .../src/assets/file-icons/folder-supabase.svg | 1 + .../src/assets/file-icons/folder-svelte-open.svg | 1 + .../src/assets/file-icons/folder-svelte.svg | 1 + .../src/assets/file-icons/folder-svg-open.svg | 1 + .../desktop/src/assets/file-icons/folder-svg.svg | 1 + .../src/assets/file-icons/folder-syntax-open.svg | 1 + .../src/assets/file-icons/folder-syntax.svg | 1 + .../src/assets/file-icons/folder-target-open.svg | 10 + .../src/assets/file-icons/folder-target.svg | 10 + .../src/assets/file-icons/folder-taskfile-open.svg | 1 + .../src/assets/file-icons/folder-taskfile.svg | 1 + .../src/assets/file-icons/folder-tasks-open.svg | 1 + .../desktop/src/assets/file-icons/folder-tasks.svg | 1 + .../assets/file-icons/folder-television-open.svg | 1 + .../src/assets/file-icons/folder-television.svg | 1 + .../src/assets/file-icons/folder-temp-open.svg | 1 + .../desktop/src/assets/file-icons/folder-temp.svg | 1 + .../src/assets/file-icons/folder-template-open.svg | 1 + .../src/assets/file-icons/folder-template.svg | 1 + .../assets/file-icons/folder-terraform-open.svg | 1 + .../src/assets/file-icons/folder-terraform.svg | 1 + .../src/assets/file-icons/folder-test-open.svg | 1 + .../desktop/src/assets/file-icons/folder-test.svg | 1 + .../src/assets/file-icons/folder-theme-open.svg | 1 + .../desktop/src/assets/file-icons/folder-theme.svg | 1 + .../src/assets/file-icons/folder-tools-open.svg | 1 + .../desktop/src/assets/file-icons/folder-tools.svg | 1 + .../src/assets/file-icons/folder-trash-open.svg | 1 + .../desktop/src/assets/file-icons/folder-trash.svg | 1 + .../src/assets/file-icons/folder-trigger-open.svg | 1 + .../src/assets/file-icons/folder-trigger.svg | 1 + .../assets/file-icons/folder-turborepo-open.svg | 15 + .../src/assets/file-icons/folder-turborepo.svg | 15 + .../assets/file-icons/folder-typescript-open.svg | 1 + .../src/assets/file-icons/folder-typescript.svg | 1 + .../src/assets/file-icons/folder-ui-open.svg | 1 + .../desktop/src/assets/file-icons/folder-ui.svg | 1 + .../src/assets/file-icons/folder-unity-open.svg | 1 + .../desktop/src/assets/file-icons/folder-unity.svg | 1 + .../src/assets/file-icons/folder-update-open.svg | 1 + .../src/assets/file-icons/folder-update.svg | 1 + .../src/assets/file-icons/folder-upload-open.svg | 1 + .../src/assets/file-icons/folder-upload.svg | 1 + .../src/assets/file-icons/folder-utils-open.svg | 1 + .../desktop/src/assets/file-icons/folder-utils.svg | 1 + .../src/assets/file-icons/folder-vercel-open.svg | 5 + .../src/assets/file-icons/folder-vercel.svg | 5 + .../assets/file-icons/folder-verdaccio-open.svg | 1 + .../src/assets/file-icons/folder-verdaccio.svg | 1 + .../src/assets/file-icons/folder-video-open.svg | 1 + .../desktop/src/assets/file-icons/folder-video.svg | 1 + .../src/assets/file-icons/folder-views-open.svg | 1 + .../desktop/src/assets/file-icons/folder-views.svg | 1 + .../src/assets/file-icons/folder-vm-open.svg | 1 + .../desktop/src/assets/file-icons/folder-vm.svg | 1 + .../src/assets/file-icons/folder-vscode-open.svg | 1 + .../src/assets/file-icons/folder-vscode.svg | 1 + .../file-icons/folder-vue-directives-open.svg | 1 + .../assets/file-icons/folder-vue-directives.svg | 1 + .../src/assets/file-icons/folder-vue-open.svg | 1 + .../desktop/src/assets/file-icons/folder-vue.svg | 1 + .../src/assets/file-icons/folder-vuepress-open.svg | 1 + .../src/assets/file-icons/folder-vuepress.svg | 1 + .../assets/file-icons/folder-vuex-store-open.svg | 1 + .../src/assets/file-icons/folder-vuex-store.svg | 1 + .../src/assets/file-icons/folder-wakatime-open.svg | 1 + .../src/assets/file-icons/folder-wakatime.svg | 1 + .../src/assets/file-icons/folder-webpack-open.svg | 1 + .../src/assets/file-icons/folder-webpack.svg | 1 + .../src/assets/file-icons/folder-windows-open.svg | 1 + .../src/assets/file-icons/folder-windows.svg | 1 + .../assets/file-icons/folder-wordpress-open.svg | 1 + .../src/assets/file-icons/folder-wordpress.svg | 1 + .../src/assets/file-icons/folder-yarn-open.svg | 1 + .../desktop/src/assets/file-icons/folder-yarn.svg | 1 + .../src/assets/file-icons/folder-zeabur-open.svg | 1 + .../src/assets/file-icons/folder-zeabur.svg | 1 + packages/desktop/src/assets/file-icons/folder.svg | 5 + packages/desktop/src/assets/file-icons/font.svg | 1 + packages/desktop/src/assets/file-icons/forth.svg | 1 + packages/desktop/src/assets/file-icons/fortran.svg | 1 + packages/desktop/src/assets/file-icons/foxpro.svg | 1 + .../desktop/src/assets/file-icons/freemarker.svg | 1 + packages/desktop/src/assets/file-icons/fsharp.svg | 1 + packages/desktop/src/assets/file-icons/fusebox.svg | 1 + .../desktop/src/assets/file-icons/gamemaker.svg | 1 + packages/desktop/src/assets/file-icons/garden.svg | 1 + packages/desktop/src/assets/file-icons/gatsby.svg | 1 + packages/desktop/src/assets/file-icons/gcp.svg | 1 + packages/desktop/src/assets/file-icons/gemfile.svg | 1 + .../desktop/src/assets/file-icons/gemini-ai.svg | 1 + packages/desktop/src/assets/file-icons/gemini.svg | 1 + packages/desktop/src/assets/file-icons/git.svg | 1 + .../assets/file-icons/github-actions-workflow.svg | 1 + .../src/assets/file-icons/github-sponsors.svg | 1 + packages/desktop/src/assets/file-icons/gitlab.svg | 1 + packages/desktop/src/assets/file-icons/gitpod.svg | 1 + packages/desktop/src/assets/file-icons/gleam.svg | 1 + packages/desktop/src/assets/file-icons/gnuplot.svg | 1 + packages/desktop/src/assets/file-icons/go-mod.svg | 1 + packages/desktop/src/assets/file-icons/go.svg | 1 + .../desktop/src/assets/file-icons/go_gopher.svg | 35 + .../desktop/src/assets/file-icons/godot-assets.svg | 1 + packages/desktop/src/assets/file-icons/godot.svg | 1 + packages/desktop/src/assets/file-icons/gradle.svg | 1 + .../src/assets/file-icons/grafana-alloy.svg | 1 + packages/desktop/src/assets/file-icons/grain.svg | 1 + .../desktop/src/assets/file-icons/graphcool.svg | 1 + packages/desktop/src/assets/file-icons/graphql.svg | 1 + .../desktop/src/assets/file-icons/gridsome.svg | 1 + packages/desktop/src/assets/file-icons/groovy.svg | 1 + packages/desktop/src/assets/file-icons/grunt.svg | 1 + packages/desktop/src/assets/file-icons/gulp.svg | 1 + packages/desktop/src/assets/file-icons/h.svg | 1 + packages/desktop/src/assets/file-icons/hack.svg | 1 + .../desktop/src/assets/file-icons/hadolint.svg | 1 + packages/desktop/src/assets/file-icons/haml.svg | 1 + .../desktop/src/assets/file-icons/handlebars.svg | 1 + packages/desktop/src/assets/file-icons/hardhat.svg | 1 + .../desktop/src/assets/file-icons/harmonix.svg | 1 + packages/desktop/src/assets/file-icons/haskell.svg | 1 + packages/desktop/src/assets/file-icons/haxe.svg | 1 + packages/desktop/src/assets/file-icons/hcl.svg | 1 + .../desktop/src/assets/file-icons/hcl_light.svg | 1 + packages/desktop/src/assets/file-icons/helm.svg | 1 + packages/desktop/src/assets/file-icons/heroku.svg | 1 + packages/desktop/src/assets/file-icons/hex.svg | 1 + .../desktop/src/assets/file-icons/histoire.svg | 1 + packages/desktop/src/assets/file-icons/hjson.svg | 1 + packages/desktop/src/assets/file-icons/horusec.svg | 1 + packages/desktop/src/assets/file-icons/hosts.svg | 1 + .../desktop/src/assets/file-icons/hosts_light.svg | 1 + packages/desktop/src/assets/file-icons/hpp.svg | 1 + packages/desktop/src/assets/file-icons/html.svg | 1 + packages/desktop/src/assets/file-icons/http.svg | 1 + packages/desktop/src/assets/file-icons/huff.svg | 1 + .../desktop/src/assets/file-icons/huff_light.svg | 1 + packages/desktop/src/assets/file-icons/hurl.svg | 1 + packages/desktop/src/assets/file-icons/husky.svg | 1 + packages/desktop/src/assets/file-icons/i18n.svg | 1 + packages/desktop/src/assets/file-icons/idris.svg | 1 + .../desktop/src/assets/file-icons/ifanr-cloud.svg | 1 + packages/desktop/src/assets/file-icons/image.svg | 1 + packages/desktop/src/assets/file-icons/imba.svg | 1 + .../desktop/src/assets/file-icons/installation.svg | 1 + packages/desktop/src/assets/file-icons/ionic.svg | 1 + .../desktop/src/assets/file-icons/istanbul.svg | 1 + packages/desktop/src/assets/file-icons/jar.svg | 1 + packages/desktop/src/assets/file-icons/java.svg | 1 + .../desktop/src/assets/file-icons/javaclass.svg | 1 + .../src/assets/file-icons/javascript-map.svg | 1 + .../desktop/src/assets/file-icons/javascript.svg | 1 + packages/desktop/src/assets/file-icons/jenkins.svg | 1 + packages/desktop/src/assets/file-icons/jest.svg | 1 + packages/desktop/src/assets/file-icons/jinja.svg | 1 + .../desktop/src/assets/file-icons/jinja_light.svg | 1 + .../desktop/src/assets/file-icons/jsconfig.svg | 1 + packages/desktop/src/assets/file-icons/json.svg | 1 + packages/desktop/src/assets/file-icons/jsr.svg | 1 + .../desktop/src/assets/file-icons/jsr_light.svg | 1 + packages/desktop/src/assets/file-icons/julia.svg | 1 + packages/desktop/src/assets/file-icons/jupyter.svg | 1 + packages/desktop/src/assets/file-icons/just.svg | 1 + packages/desktop/src/assets/file-icons/karma.svg | 1 + packages/desktop/src/assets/file-icons/kcl.svg | 1 + packages/desktop/src/assets/file-icons/key.svg | 1 + .../desktop/src/assets/file-icons/keystatic.svg | 1 + packages/desktop/src/assets/file-icons/kivy.svg | 1 + packages/desktop/src/assets/file-icons/kl.svg | 1 + packages/desktop/src/assets/file-icons/knip.svg | 1 + packages/desktop/src/assets/file-icons/kotlin.svg | 1 + .../desktop/src/assets/file-icons/kubernetes.svg | 1 + packages/desktop/src/assets/file-icons/kusto.svg | 1 + packages/desktop/src/assets/file-icons/label.svg | 1 + packages/desktop/src/assets/file-icons/laravel.svg | 1 + packages/desktop/src/assets/file-icons/latexmk.svg | 1 + packages/desktop/src/assets/file-icons/lbx.svg | 1 + .../desktop/src/assets/file-icons/lefthook.svg | 1 + packages/desktop/src/assets/file-icons/lerna.svg | 1 + packages/desktop/src/assets/file-icons/less.svg | 1 + packages/desktop/src/assets/file-icons/liara.svg | 1 + packages/desktop/src/assets/file-icons/lib.svg | 1 + .../desktop/src/assets/file-icons/lighthouse.svg | 1 + .../desktop/src/assets/file-icons/lilypond.svg | 1 + .../desktop/src/assets/file-icons/lintstaged.svg | 1 + packages/desktop/src/assets/file-icons/liquid.svg | 1 + packages/desktop/src/assets/file-icons/lisp.svg | 1 + .../desktop/src/assets/file-icons/livescript.svg | 1 + packages/desktop/src/assets/file-icons/lock.svg | 1 + packages/desktop/src/assets/file-icons/log.svg | 1 + packages/desktop/src/assets/file-icons/lolcode.svg | 1 + packages/desktop/src/assets/file-icons/lottie.svg | 1 + packages/desktop/src/assets/file-icons/lua.svg | 1 + packages/desktop/src/assets/file-icons/luau.svg | 1 + packages/desktop/src/assets/file-icons/lyric.svg | 1 + .../desktop/src/assets/file-icons/makefile.svg | 1 + .../src/assets/file-icons/markdoc-config.svg | 1 + packages/desktop/src/assets/file-icons/markdoc.svg | 1 + .../desktop/src/assets/file-icons/markdown.svg | 1 + .../desktop/src/assets/file-icons/markdownlint.svg | 1 + packages/desktop/src/assets/file-icons/markojs.svg | 1 + .../desktop/src/assets/file-icons/mathematica.svg | 1 + packages/desktop/src/assets/file-icons/matlab.svg | 1 + packages/desktop/src/assets/file-icons/maven.svg | 1 + packages/desktop/src/assets/file-icons/mdsvex.svg | 1 + packages/desktop/src/assets/file-icons/mdx.svg | 1 + .../desktop/src/assets/file-icons/mercurial.svg | 1 + packages/desktop/src/assets/file-icons/merlin.svg | 1 + packages/desktop/src/assets/file-icons/mermaid.svg | 1 + packages/desktop/src/assets/file-icons/meson.svg | 1 + .../src/assets/file-icons/minecraft-fabric.svg | 1 + .../desktop/src/assets/file-icons/minecraft.svg | 1 + packages/desktop/src/assets/file-icons/mint.svg | 1 + packages/desktop/src/assets/file-icons/mjml.svg | 1 + packages/desktop/src/assets/file-icons/mocha.svg | 1 + .../desktop/src/assets/file-icons/modernizr.svg | 1 + packages/desktop/src/assets/file-icons/mojo.svg | 1 + packages/desktop/src/assets/file-icons/moon.svg | 1 + .../desktop/src/assets/file-icons/moonscript.svg | 1 + packages/desktop/src/assets/file-icons/mxml.svg | 1 + .../desktop/src/assets/file-icons/nano-staged.svg | 1 + .../src/assets/file-icons/nano-staged_light.svg | 4 + packages/desktop/src/assets/file-icons/ndst.svg | 1 + packages/desktop/src/assets/file-icons/nest.svg | 1 + packages/desktop/src/assets/file-icons/netlify.svg | 1 + .../src/assets/file-icons/netlify_light.svg | 1 + packages/desktop/src/assets/file-icons/next.svg | 1 + .../desktop/src/assets/file-icons/next_light.svg | 1 + packages/desktop/src/assets/file-icons/nginx.svg | 1 + .../desktop/src/assets/file-icons/ngrx-actions.svg | 1 + .../desktop/src/assets/file-icons/ngrx-effects.svg | 1 + .../desktop/src/assets/file-icons/ngrx-entity.svg | 1 + .../desktop/src/assets/file-icons/ngrx-reducer.svg | 1 + .../src/assets/file-icons/ngrx-selectors.svg | 1 + .../desktop/src/assets/file-icons/ngrx-state.svg | 1 + packages/desktop/src/assets/file-icons/nim.svg | 1 + packages/desktop/src/assets/file-icons/nix.svg | 1 + packages/desktop/src/assets/file-icons/nodejs.svg | 1 + .../desktop/src/assets/file-icons/nodejs_alt.svg | 1 + packages/desktop/src/assets/file-icons/nodemon.svg | 1 + packages/desktop/src/assets/file-icons/npm.svg | 1 + packages/desktop/src/assets/file-icons/nuget.svg | 1 + .../desktop/src/assets/file-icons/nunjucks.svg | 1 + packages/desktop/src/assets/file-icons/nuxt.svg | 1 + packages/desktop/src/assets/file-icons/nx.svg | 1 + .../desktop/src/assets/file-icons/objective-c.svg | 1 + .../src/assets/file-icons/objective-cpp.svg | 1 + packages/desktop/src/assets/file-icons/ocaml.svg | 1 + packages/desktop/src/assets/file-icons/odin.svg | 1 + packages/desktop/src/assets/file-icons/opa.svg | 9 + packages/desktop/src/assets/file-icons/opam.svg | 1 + packages/desktop/src/assets/file-icons/openapi.svg | 1 + .../src/assets/file-icons/openapi_light.svg | 1 + packages/desktop/src/assets/file-icons/otne.svg | 1 + packages/desktop/src/assets/file-icons/oxlint.svg | 1 + .../desktop/src/assets/file-icons/packship.svg | 1 + packages/desktop/src/assets/file-icons/palette.svg | 1 + packages/desktop/src/assets/file-icons/panda.svg | 1 + packages/desktop/src/assets/file-icons/parcel.svg | 1 + packages/desktop/src/assets/file-icons/pascal.svg | 1 + packages/desktop/src/assets/file-icons/pawn.svg | 1 + packages/desktop/src/assets/file-icons/payload.svg | 1 + .../src/assets/file-icons/payload_light.svg | 1 + packages/desktop/src/assets/file-icons/pdf.svg | 1 + packages/desktop/src/assets/file-icons/pdm.svg | 1 + packages/desktop/src/assets/file-icons/percy.svg | 1 + packages/desktop/src/assets/file-icons/perl.svg | 1 + .../desktop/src/assets/file-icons/php-cs-fixer.svg | 1 + packages/desktop/src/assets/file-icons/php.svg | 1 + .../desktop/src/assets/file-icons/php_elephant.svg | 1 + .../src/assets/file-icons/php_elephant_pink.svg | 1 + packages/desktop/src/assets/file-icons/phpstan.svg | 1 + packages/desktop/src/assets/file-icons/phpunit.svg | 1 + packages/desktop/src/assets/file-icons/pinejs.svg | 1 + .../desktop/src/assets/file-icons/pipeline.svg | 1 + packages/desktop/src/assets/file-icons/pkl.svg | 1 + packages/desktop/src/assets/file-icons/plastic.svg | 1 + .../desktop/src/assets/file-icons/playwright.svg | 1 + packages/desktop/src/assets/file-icons/plop.svg | 1 + .../src/assets/file-icons/pm2-ecosystem.svg | 1 + packages/desktop/src/assets/file-icons/pnpm.svg | 1 + .../desktop/src/assets/file-icons/pnpm_light.svg | 1 + packages/desktop/src/assets/file-icons/poetry.svg | 1 + packages/desktop/src/assets/file-icons/postcss.svg | 1 + .../desktop/src/assets/file-icons/posthtml.svg | 1 + .../desktop/src/assets/file-icons/powerpoint.svg | 1 + .../desktop/src/assets/file-icons/powershell.svg | 1 + .../desktop/src/assets/file-icons/pre-commit.svg | 1 + .../desktop/src/assets/file-icons/prettier.svg | 1 + packages/desktop/src/assets/file-icons/prisma.svg | 1 + .../desktop/src/assets/file-icons/processing.svg | 1 + packages/desktop/src/assets/file-icons/prolog.svg | 1 + packages/desktop/src/assets/file-icons/prompt.svg | 1 + packages/desktop/src/assets/file-icons/proto.svg | 1 + .../desktop/src/assets/file-icons/protractor.svg | 1 + packages/desktop/src/assets/file-icons/pug.svg | 1 + packages/desktop/src/assets/file-icons/puppet.svg | 1 + .../desktop/src/assets/file-icons/puppeteer.svg | 1 + .../desktop/src/assets/file-icons/purescript.svg | 1 + .../desktop/src/assets/file-icons/python-misc.svg | 1 + packages/desktop/src/assets/file-icons/python.svg | 1 + packages/desktop/src/assets/file-icons/pytorch.svg | 1 + packages/desktop/src/assets/file-icons/qsharp.svg | 1 + packages/desktop/src/assets/file-icons/quarto.svg | 5 + packages/desktop/src/assets/file-icons/quasar.svg | 1 + packages/desktop/src/assets/file-icons/quokka.svg | 1 + packages/desktop/src/assets/file-icons/qwik.svg | 1 + packages/desktop/src/assets/file-icons/r.svg | 1 + packages/desktop/src/assets/file-icons/racket.svg | 1 + packages/desktop/src/assets/file-icons/raml.svg | 1 + packages/desktop/src/assets/file-icons/razor.svg | 1 + packages/desktop/src/assets/file-icons/rbxmk.svg | 1 + packages/desktop/src/assets/file-icons/rc.svg | 1 + packages/desktop/src/assets/file-icons/react.svg | 1 + .../desktop/src/assets/file-icons/react_ts.svg | 1 + packages/desktop/src/assets/file-icons/readme.svg | 1 + packages/desktop/src/assets/file-icons/reason.svg | 1 + packages/desktop/src/assets/file-icons/red.svg | 1 + .../desktop/src/assets/file-icons/redux-action.svg | 1 + .../src/assets/file-icons/redux-reducer.svg | 1 + .../src/assets/file-icons/redux-selector.svg | 1 + .../desktop/src/assets/file-icons/redux-store.svg | 1 + packages/desktop/src/assets/file-icons/regedit.svg | 1 + packages/desktop/src/assets/file-icons/remark.svg | 1 + packages/desktop/src/assets/file-icons/remix.svg | 1 + .../desktop/src/assets/file-icons/remix_light.svg | 1 + .../desktop/src/assets/file-icons/renovate.svg | 1 + packages/desktop/src/assets/file-icons/replit.svg | 1 + .../src/assets/file-icons/rescript-interface.svg | 1 + .../desktop/src/assets/file-icons/rescript.svg | 1 + packages/desktop/src/assets/file-icons/restql.svg | 1 + packages/desktop/src/assets/file-icons/riot.svg | 1 + packages/desktop/src/assets/file-icons/roadmap.svg | 1 + packages/desktop/src/assets/file-icons/roblox.svg | 1 + packages/desktop/src/assets/file-icons/robot.svg | 1 + packages/desktop/src/assets/file-icons/robots.svg | 1 + packages/desktop/src/assets/file-icons/rocket.svg | 1 + packages/desktop/src/assets/file-icons/rojo.svg | 1 + packages/desktop/src/assets/file-icons/rollup.svg | 1 + packages/desktop/src/assets/file-icons/rome.svg | 6 + packages/desktop/src/assets/file-icons/routing.svg | 1 + packages/desktop/src/assets/file-icons/rspec.svg | 1 + packages/desktop/src/assets/file-icons/rubocop.svg | 1 + .../src/assets/file-icons/rubocop_light.svg | 1 + packages/desktop/src/assets/file-icons/ruby.svg | 1 + packages/desktop/src/assets/file-icons/ruff.svg | 1 + packages/desktop/src/assets/file-icons/rust.svg | 1 + .../desktop/src/assets/file-icons/salesforce.svg | 1 + packages/desktop/src/assets/file-icons/san.svg | 1 + packages/desktop/src/assets/file-icons/sas.svg | 1 + packages/desktop/src/assets/file-icons/sass.svg | 1 + packages/desktop/src/assets/file-icons/sbt.svg | 1 + packages/desktop/src/assets/file-icons/scala.svg | 1 + packages/desktop/src/assets/file-icons/scheme.svg | 1 + packages/desktop/src/assets/file-icons/scons.svg | 1 + .../desktop/src/assets/file-icons/scons_light.svg | 1 + .../desktop/src/assets/file-icons/screwdriver.svg | 1 + packages/desktop/src/assets/file-icons/search.svg | 1 + .../src/assets/file-icons/semantic-release.svg | 1 + .../assets/file-icons/semantic-release_light.svg | 1 + packages/desktop/src/assets/file-icons/semgrep.svg | 1 + packages/desktop/src/assets/file-icons/sentry.svg | 1 + .../desktop/src/assets/file-icons/sequelize.svg | 1 + .../desktop/src/assets/file-icons/serverless.svg | 1 + .../desktop/src/assets/file-icons/settings.svg | 1 + packages/desktop/src/assets/file-icons/shader.svg | 1 + .../desktop/src/assets/file-icons/silverstripe.svg | 1 + .../desktop/src/assets/file-icons/simulink.svg | 1 + packages/desktop/src/assets/file-icons/siyuan.svg | 1 + packages/desktop/src/assets/file-icons/sketch.svg | 1 + packages/desktop/src/assets/file-icons/slim.svg | 1 + packages/desktop/src/assets/file-icons/slint.svg | 1 + packages/desktop/src/assets/file-icons/slug.svg | 1 + packages/desktop/src/assets/file-icons/smarty.svg | 1 + packages/desktop/src/assets/file-icons/sml.svg | 1 + .../desktop/src/assets/file-icons/snakemake.svg | 1 + .../desktop/src/assets/file-icons/snapcraft.svg | 1 + .../desktop/src/assets/file-icons/snowpack.svg | 1 + .../src/assets/file-icons/snowpack_light.svg | 1 + packages/desktop/src/assets/file-icons/snyk.svg | 1 + .../desktop/src/assets/file-icons/solidity.svg | 1 + .../desktop/src/assets/file-icons/sonarcloud.svg | 1 + packages/desktop/src/assets/file-icons/spwn.svg | 1 + .../desktop/src/assets/file-icons/stackblitz.svg | 1 + packages/desktop/src/assets/file-icons/stan.svg | 1 + .../desktop/src/assets/file-icons/steadybit.svg | 1 + packages/desktop/src/assets/file-icons/stencil.svg | 1 + .../desktop/src/assets/file-icons/stitches.svg | 1 + .../src/assets/file-icons/stitches_light.svg | 10 + .../desktop/src/assets/file-icons/storybook.svg | 1 + packages/desktop/src/assets/file-icons/stryker.svg | 1 + .../desktop/src/assets/file-icons/stylable.svg | 1 + .../desktop/src/assets/file-icons/stylelint.svg | 1 + .../src/assets/file-icons/stylelint_light.svg | 13 + packages/desktop/src/assets/file-icons/stylus.svg | 1 + packages/desktop/src/assets/file-icons/sublime.svg | 1 + .../desktop/src/assets/file-icons/subtitles.svg | 1 + .../desktop/src/assets/file-icons/supabase.svg | 1 + packages/desktop/src/assets/file-icons/svelte.svg | 1 + packages/desktop/src/assets/file-icons/svg.svg | 1 + packages/desktop/src/assets/file-icons/svgo.svg | 1 + packages/desktop/src/assets/file-icons/svgr.svg | 1 + packages/desktop/src/assets/file-icons/swagger.svg | 1 + packages/desktop/src/assets/file-icons/sway.svg | 1 + packages/desktop/src/assets/file-icons/swc.svg | 1 + packages/desktop/src/assets/file-icons/swift.svg | 1 + .../desktop/src/assets/file-icons/syncpack.svg | 1 + packages/desktop/src/assets/file-icons/systemd.svg | 1 + .../src/assets/file-icons/systemd_light.svg | 1 + packages/desktop/src/assets/file-icons/table.svg | 1 + .../desktop/src/assets/file-icons/tailwindcss.svg | 1 + .../desktop/src/assets/file-icons/taskfile.svg | 1 + packages/desktop/src/assets/file-icons/tauri.svg | 1 + packages/desktop/src/assets/file-icons/taze.svg | 1 + packages/desktop/src/assets/file-icons/tcl.svg | 1 + packages/desktop/src/assets/file-icons/teal.svg | 1 + packages/desktop/src/assets/file-icons/templ.svg | 1 + .../desktop/src/assets/file-icons/template.svg | 1 + .../desktop/src/assets/file-icons/terraform.svg | 1 + packages/desktop/src/assets/file-icons/test-js.svg | 1 + .../desktop/src/assets/file-icons/test-jsx.svg | 1 + packages/desktop/src/assets/file-icons/test-ts.svg | 1 + packages/desktop/src/assets/file-icons/tex.svg | 1 + .../desktop/src/assets/file-icons/textlint.svg | 1 + packages/desktop/src/assets/file-icons/tilt.svg | 1 + packages/desktop/src/assets/file-icons/tldraw.svg | 1 + .../desktop/src/assets/file-icons/tldraw_light.svg | 1 + packages/desktop/src/assets/file-icons/tobi.svg | 1 + .../desktop/src/assets/file-icons/tobimake.svg | 1 + packages/desktop/src/assets/file-icons/todo.svg | 1 + packages/desktop/src/assets/file-icons/toml.svg | 1 + .../desktop/src/assets/file-icons/toml_light.svg | 1 + packages/desktop/src/assets/file-icons/travis.svg | 1 + packages/desktop/src/assets/file-icons/tree.svg | 1 + packages/desktop/src/assets/file-icons/trigger.svg | 1 + .../desktop/src/assets/file-icons/tsconfig.svg | 1 + packages/desktop/src/assets/file-icons/tsdoc.svg | 1 + packages/desktop/src/assets/file-icons/tsil.svg | 1 + packages/desktop/src/assets/file-icons/tune.svg | 1 + .../desktop/src/assets/file-icons/turborepo.svg | 1 + .../src/assets/file-icons/turborepo_light.svg | 1 + packages/desktop/src/assets/file-icons/twig.svg | 1 + packages/desktop/src/assets/file-icons/twine.svg | 1 + .../src/assets/file-icons/typescript-def.svg | 1 + .../desktop/src/assets/file-icons/typescript.svg | 1 + packages/desktop/src/assets/file-icons/typst.svg | 1 + packages/desktop/src/assets/file-icons/umi.svg | 1 + packages/desktop/src/assets/file-icons/uml.svg | 1 + .../desktop/src/assets/file-icons/uml_light.svg | 1 + packages/desktop/src/assets/file-icons/unity.svg | 1 + packages/desktop/src/assets/file-icons/unocss.svg | 5 + packages/desktop/src/assets/file-icons/url.svg | 1 + packages/desktop/src/assets/file-icons/uv.svg | 1 + packages/desktop/src/assets/file-icons/vagrant.svg | 1 + packages/desktop/src/assets/file-icons/vala.svg | 1 + .../src/assets/file-icons/vanilla-extract.svg | 1 + packages/desktop/src/assets/file-icons/varnish.svg | 1 + packages/desktop/src/assets/file-icons/vedic.svg | 1 + packages/desktop/src/assets/file-icons/velite.svg | 1 + .../desktop/src/assets/file-icons/velocity.svg | 1 + packages/desktop/src/assets/file-icons/vercel.svg | 1 + .../desktop/src/assets/file-icons/vercel_light.svg | 1 + .../desktop/src/assets/file-icons/verdaccio.svg | 1 + .../desktop/src/assets/file-icons/verified.svg | 1 + packages/desktop/src/assets/file-icons/verilog.svg | 1 + packages/desktop/src/assets/file-icons/vfl.svg | 1 + packages/desktop/src/assets/file-icons/video.svg | 1 + packages/desktop/src/assets/file-icons/vim.svg | 1 + packages/desktop/src/assets/file-icons/virtual.svg | 1 + .../desktop/src/assets/file-icons/visualstudio.svg | 1 + packages/desktop/src/assets/file-icons/vite.svg | 1 + packages/desktop/src/assets/file-icons/vitest.svg | 1 + packages/desktop/src/assets/file-icons/vlang.svg | 6 + packages/desktop/src/assets/file-icons/vscode.svg | 1 + .../desktop/src/assets/file-icons/vue-config.svg | 1 + packages/desktop/src/assets/file-icons/vue.svg | 1 + .../desktop/src/assets/file-icons/vuex-store.svg | 1 + .../desktop/src/assets/file-icons/wakatime.svg | 1 + .../src/assets/file-icons/wakatime_light.svg | 1 + packages/desktop/src/assets/file-icons/wallaby.svg | 1 + packages/desktop/src/assets/file-icons/wally.svg | 1 + .../desktop/src/assets/file-icons/watchman.svg | 1 + .../desktop/src/assets/file-icons/webassembly.svg | 1 + packages/desktop/src/assets/file-icons/webhint.svg | 1 + packages/desktop/src/assets/file-icons/webpack.svg | 1 + packages/desktop/src/assets/file-icons/wepy.svg | 1 + packages/desktop/src/assets/file-icons/werf.svg | 1 + .../desktop/src/assets/file-icons/windicss.svg | 1 + .../src/assets/file-icons/wolframlanguage.svg | 1 + packages/desktop/src/assets/file-icons/word.svg | 1 + .../desktop/src/assets/file-icons/wrangler.svg | 1 + packages/desktop/src/assets/file-icons/wxt.svg | 1 + packages/desktop/src/assets/file-icons/xaml.svg | 1 + packages/desktop/src/assets/file-icons/xmake.svg | 1 + packages/desktop/src/assets/file-icons/xml.svg | 1 + packages/desktop/src/assets/file-icons/yaml.svg | 1 + packages/desktop/src/assets/file-icons/yang.svg | 1 + packages/desktop/src/assets/file-icons/yarn.svg | 1 + packages/desktop/src/assets/file-icons/zeabur.svg | 1 + .../desktop/src/assets/file-icons/zeabur_light.svg | 1 + packages/desktop/src/assets/file-icons/zig.svg | 1 + packages/desktop/src/assets/file-icons/zip.svg | 1 + packages/desktop/src/components/code.tsx | 846 ++ packages/desktop/src/components/editor-pane.tsx | 381 + packages/desktop/src/components/file-tree.tsx | 110 + packages/desktop/src/components/markdown.tsx | 23 + packages/desktop/src/components/prompt-form.tsx | 295 + .../desktop/src/components/resizeable-pane.tsx | 217 + packages/desktop/src/components/select-dialog.tsx | 225 + packages/desktop/src/components/select.tsx | 107 + packages/desktop/src/components/session-list.tsx | 28 + .../desktop/src/components/session-timeline.tsx | 459 + packages/desktop/src/components/sidebar-nav.tsx | 48 + packages/desktop/src/context/event.tsx | 34 + packages/desktop/src/context/index.ts | 7 + packages/desktop/src/context/local.tsx | 537 + packages/desktop/src/context/marked.tsx | 43 + packages/desktop/src/context/sdk.tsx | 29 + packages/desktop/src/context/shiki.tsx | 582 + packages/desktop/src/context/sync.tsx | 174 + packages/desktop/src/context/theme.tsx | 92 + packages/desktop/src/env.d.ts | 8 + packages/desktop/src/index.css | 168 + packages/desktop/src/index.tsx | 48 + packages/desktop/src/pages/index.tsx | 278 + packages/desktop/src/pages/layout.tsx | 5 + packages/desktop/src/sst-env.d.ts | 10 + packages/desktop/src/ui/button.tsx | 36 + packages/desktop/src/ui/collapsible.tsx | 62 + packages/desktop/src/ui/file-icon.tsx | 582 + packages/desktop/src/ui/file-icons/sprite.svg | 11707 +++++++++++++++++++ packages/desktop/src/ui/file-icons/types.ts | 1095 ++ packages/desktop/src/ui/icon-button.tsx | 38 + packages/desktop/src/ui/icon.tsx | 155 + packages/desktop/src/ui/index.ts | 13 + packages/desktop/src/ui/link.tsx | 13 + packages/desktop/src/ui/logo.tsx | 125 + packages/desktop/src/ui/tabs.tsx | 71 + packages/desktop/src/ui/tooltip.tsx | 58 + packages/desktop/src/utils/binary.ts | 41 + packages/desktop/src/utils/dom.ts | 51 + packages/desktop/src/utils/index.ts | 2 + packages/desktop/src/utils/path.ts | 14 + packages/desktop/src/utils/speech.ts | 302 + 1132 files changed, 20541 insertions(+) create mode 100644 packages/desktop/src/assets/favicon.svg create mode 100644 packages/desktop/src/assets/file-icons/3d.svg create mode 100644 packages/desktop/src/assets/file-icons/abap.svg create mode 100644 packages/desktop/src/assets/file-icons/abc.svg create mode 100644 packages/desktop/src/assets/file-icons/actionscript.svg create mode 100644 packages/desktop/src/assets/file-icons/ada.svg create mode 100644 packages/desktop/src/assets/file-icons/adobe-illustrator.svg create mode 100644 packages/desktop/src/assets/file-icons/adobe-illustrator_light.svg create mode 100644 packages/desktop/src/assets/file-icons/adobe-photoshop.svg create mode 100644 packages/desktop/src/assets/file-icons/adobe-photoshop_light.svg create mode 100644 packages/desktop/src/assets/file-icons/adobe-swc.svg create mode 100644 packages/desktop/src/assets/file-icons/adonis.svg create mode 100644 packages/desktop/src/assets/file-icons/advpl.svg create mode 100644 packages/desktop/src/assets/file-icons/amplify.svg create mode 100644 packages/desktop/src/assets/file-icons/android.svg create mode 100644 packages/desktop/src/assets/file-icons/angular.svg create mode 100644 packages/desktop/src/assets/file-icons/antlr.svg create mode 100644 packages/desktop/src/assets/file-icons/apiblueprint.svg create mode 100644 packages/desktop/src/assets/file-icons/apollo.svg create mode 100644 packages/desktop/src/assets/file-icons/applescript.svg create mode 100644 packages/desktop/src/assets/file-icons/apps-script.svg create mode 100644 packages/desktop/src/assets/file-icons/appveyor.svg create mode 100644 packages/desktop/src/assets/file-icons/architecture.svg create mode 100644 packages/desktop/src/assets/file-icons/arduino.svg create mode 100644 packages/desktop/src/assets/file-icons/asciidoc.svg create mode 100644 packages/desktop/src/assets/file-icons/assembly.svg create mode 100644 packages/desktop/src/assets/file-icons/astro-config.svg create mode 100644 packages/desktop/src/assets/file-icons/astro.svg create mode 100644 packages/desktop/src/assets/file-icons/astyle.svg create mode 100644 packages/desktop/src/assets/file-icons/audio.svg create mode 100644 packages/desktop/src/assets/file-icons/aurelia.svg create mode 100644 packages/desktop/src/assets/file-icons/authors.svg create mode 100644 packages/desktop/src/assets/file-icons/auto.svg create mode 100644 packages/desktop/src/assets/file-icons/auto_light.svg create mode 100644 packages/desktop/src/assets/file-icons/autohotkey.svg create mode 100644 packages/desktop/src/assets/file-icons/autoit.svg create mode 100644 packages/desktop/src/assets/file-icons/azure-pipelines.svg create mode 100644 packages/desktop/src/assets/file-icons/azure.svg create mode 100644 packages/desktop/src/assets/file-icons/babel.svg create mode 100644 packages/desktop/src/assets/file-icons/ballerina.svg create mode 100644 packages/desktop/src/assets/file-icons/bazel.svg create mode 100644 packages/desktop/src/assets/file-icons/bbx.svg create mode 100644 packages/desktop/src/assets/file-icons/beancount.svg create mode 100644 packages/desktop/src/assets/file-icons/bench-js.svg create mode 100644 packages/desktop/src/assets/file-icons/bench-jsx.svg create mode 100644 packages/desktop/src/assets/file-icons/bench-ts.svg create mode 100644 packages/desktop/src/assets/file-icons/bibliography.svg create mode 100644 packages/desktop/src/assets/file-icons/bibtex-style.svg create mode 100644 packages/desktop/src/assets/file-icons/bicep.svg create mode 100644 packages/desktop/src/assets/file-icons/biome.svg create mode 100644 packages/desktop/src/assets/file-icons/bitbucket.svg create mode 100644 packages/desktop/src/assets/file-icons/bithound.svg create mode 100644 packages/desktop/src/assets/file-icons/blender.svg create mode 100644 packages/desktop/src/assets/file-icons/blink.svg create mode 100644 packages/desktop/src/assets/file-icons/blink_light.svg create mode 100644 packages/desktop/src/assets/file-icons/blitz.svg create mode 100644 packages/desktop/src/assets/file-icons/bower.svg create mode 100644 packages/desktop/src/assets/file-icons/brainfuck.svg create mode 100644 packages/desktop/src/assets/file-icons/browserlist.svg create mode 100644 packages/desktop/src/assets/file-icons/browserlist_light.svg create mode 100644 packages/desktop/src/assets/file-icons/bruno.svg create mode 100644 packages/desktop/src/assets/file-icons/buck.svg create mode 100644 packages/desktop/src/assets/file-icons/bucklescript.svg create mode 100644 packages/desktop/src/assets/file-icons/buildkite.svg create mode 100644 packages/desktop/src/assets/file-icons/bun.svg create mode 100644 packages/desktop/src/assets/file-icons/bun_light.svg create mode 100644 packages/desktop/src/assets/file-icons/c.svg create mode 100644 packages/desktop/src/assets/file-icons/c3.svg create mode 100644 packages/desktop/src/assets/file-icons/cabal.svg create mode 100644 packages/desktop/src/assets/file-icons/caddy.svg create mode 100644 packages/desktop/src/assets/file-icons/cadence.svg create mode 100644 packages/desktop/src/assets/file-icons/cairo.svg create mode 100644 packages/desktop/src/assets/file-icons/cake.svg create mode 100644 packages/desktop/src/assets/file-icons/capacitor.svg create mode 100644 packages/desktop/src/assets/file-icons/capnp.svg create mode 100644 packages/desktop/src/assets/file-icons/cbx.svg create mode 100644 packages/desktop/src/assets/file-icons/cds.svg create mode 100644 packages/desktop/src/assets/file-icons/certificate.svg create mode 100644 packages/desktop/src/assets/file-icons/changelog.svg create mode 100644 packages/desktop/src/assets/file-icons/chess.svg create mode 100644 packages/desktop/src/assets/file-icons/chess_light.svg create mode 100644 packages/desktop/src/assets/file-icons/chrome.svg create mode 100644 packages/desktop/src/assets/file-icons/circleci.svg create mode 100644 packages/desktop/src/assets/file-icons/circleci_light.svg create mode 100644 packages/desktop/src/assets/file-icons/citation.svg create mode 100644 packages/desktop/src/assets/file-icons/clangd.svg create mode 100644 packages/desktop/src/assets/file-icons/claude.svg create mode 100644 packages/desktop/src/assets/file-icons/cline.svg create mode 100644 packages/desktop/src/assets/file-icons/clojure.svg create mode 100644 packages/desktop/src/assets/file-icons/cloudfoundry.svg create mode 100644 packages/desktop/src/assets/file-icons/cmake.svg create mode 100644 packages/desktop/src/assets/file-icons/coala.svg create mode 100644 packages/desktop/src/assets/file-icons/cobol.svg create mode 100644 packages/desktop/src/assets/file-icons/coconut.svg create mode 100644 packages/desktop/src/assets/file-icons/code-climate.svg create mode 100644 packages/desktop/src/assets/file-icons/code-climate_light.svg create mode 100644 packages/desktop/src/assets/file-icons/codecov.svg create mode 100644 packages/desktop/src/assets/file-icons/codeowners.svg create mode 100644 packages/desktop/src/assets/file-icons/coderabbit-ai.svg create mode 100644 packages/desktop/src/assets/file-icons/coffee.svg create mode 100644 packages/desktop/src/assets/file-icons/coldfusion.svg create mode 100644 packages/desktop/src/assets/file-icons/coloredpetrinets.svg create mode 100644 packages/desktop/src/assets/file-icons/command.svg create mode 100644 packages/desktop/src/assets/file-icons/commitizen.svg create mode 100644 packages/desktop/src/assets/file-icons/commitlint.svg create mode 100644 packages/desktop/src/assets/file-icons/concourse.svg create mode 100644 packages/desktop/src/assets/file-icons/conduct.svg create mode 100644 packages/desktop/src/assets/file-icons/console.svg create mode 100644 packages/desktop/src/assets/file-icons/contentlayer.svg create mode 100644 packages/desktop/src/assets/file-icons/context.svg create mode 100644 packages/desktop/src/assets/file-icons/contributing.svg create mode 100644 packages/desktop/src/assets/file-icons/controller.svg create mode 100644 packages/desktop/src/assets/file-icons/copilot.svg create mode 100644 packages/desktop/src/assets/file-icons/copilot_light.svg create mode 100644 packages/desktop/src/assets/file-icons/cpp.svg create mode 100644 packages/desktop/src/assets/file-icons/craco.svg create mode 100644 packages/desktop/src/assets/file-icons/credits.svg create mode 100644 packages/desktop/src/assets/file-icons/crystal.svg create mode 100644 packages/desktop/src/assets/file-icons/crystal_light.svg create mode 100644 packages/desktop/src/assets/file-icons/csharp.svg create mode 100644 packages/desktop/src/assets/file-icons/css-map.svg create mode 100644 packages/desktop/src/assets/file-icons/css.svg create mode 100644 packages/desktop/src/assets/file-icons/cucumber.svg create mode 100644 packages/desktop/src/assets/file-icons/cuda.svg create mode 100644 packages/desktop/src/assets/file-icons/cursor.svg create mode 100644 packages/desktop/src/assets/file-icons/cursor_light.svg create mode 100644 packages/desktop/src/assets/file-icons/cypress.svg create mode 100644 packages/desktop/src/assets/file-icons/d.svg create mode 100644 packages/desktop/src/assets/file-icons/dart.svg create mode 100644 packages/desktop/src/assets/file-icons/dart_generated.svg create mode 100644 packages/desktop/src/assets/file-icons/database.svg create mode 100644 packages/desktop/src/assets/file-icons/deepsource.svg create mode 100644 packages/desktop/src/assets/file-icons/denizenscript.svg create mode 100644 packages/desktop/src/assets/file-icons/deno.svg create mode 100644 packages/desktop/src/assets/file-icons/deno_light.svg create mode 100644 packages/desktop/src/assets/file-icons/dependabot.svg create mode 100644 packages/desktop/src/assets/file-icons/dependencies-update.svg create mode 100644 packages/desktop/src/assets/file-icons/dhall.svg create mode 100644 packages/desktop/src/assets/file-icons/diff.svg create mode 100644 packages/desktop/src/assets/file-icons/dinophp.svg create mode 100644 packages/desktop/src/assets/file-icons/disc.svg create mode 100644 packages/desktop/src/assets/file-icons/django.svg create mode 100644 packages/desktop/src/assets/file-icons/dll.svg create mode 100644 packages/desktop/src/assets/file-icons/docker.svg create mode 100644 packages/desktop/src/assets/file-icons/doctex-installer.svg create mode 100644 packages/desktop/src/assets/file-icons/document.svg create mode 100644 packages/desktop/src/assets/file-icons/dotjs.svg create mode 100644 packages/desktop/src/assets/file-icons/drawio.svg create mode 100644 packages/desktop/src/assets/file-icons/drizzle.svg create mode 100644 packages/desktop/src/assets/file-icons/drone.svg create mode 100644 packages/desktop/src/assets/file-icons/drone_light.svg create mode 100644 packages/desktop/src/assets/file-icons/duc.svg create mode 100644 packages/desktop/src/assets/file-icons/dune.svg create mode 100644 packages/desktop/src/assets/file-icons/edge.svg create mode 100644 packages/desktop/src/assets/file-icons/editorconfig.svg create mode 100644 packages/desktop/src/assets/file-icons/ejs.svg create mode 100644 packages/desktop/src/assets/file-icons/elixir.svg create mode 100644 packages/desktop/src/assets/file-icons/elm.svg create mode 100644 packages/desktop/src/assets/file-icons/email.svg create mode 100644 packages/desktop/src/assets/file-icons/ember.svg create mode 100644 packages/desktop/src/assets/file-icons/epub.svg create mode 100644 packages/desktop/src/assets/file-icons/erlang.svg create mode 100644 packages/desktop/src/assets/file-icons/esbuild.svg create mode 100644 packages/desktop/src/assets/file-icons/eslint.svg create mode 100644 packages/desktop/src/assets/file-icons/excalidraw.svg create mode 100644 packages/desktop/src/assets/file-icons/exe.svg create mode 100644 packages/desktop/src/assets/file-icons/fastlane.svg create mode 100644 packages/desktop/src/assets/file-icons/favicon.svg create mode 100644 packages/desktop/src/assets/file-icons/figma.svg create mode 100644 packages/desktop/src/assets/file-icons/firebase.svg create mode 100644 packages/desktop/src/assets/file-icons/flash.svg create mode 100644 packages/desktop/src/assets/file-icons/flow.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-admin-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-admin.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-android-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-android.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-angular-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-angular.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-animation-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-animation.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ansible-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ansible.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-api-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-api.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-apollo-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-apollo.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-app-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-app.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-archive-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-archive.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-astro-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-astro.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-atom-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-atom.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-attachment-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-attachment.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-audio-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-audio.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-aurelia-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-aurelia.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-aws-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-aws.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-azure-pipelines-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-azure-pipelines.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-backup-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-backup.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-base-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-base.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-batch-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-batch.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-benchmark-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-benchmark.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bibliography-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bibliography.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bicep-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bicep.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-blender-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-blender.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bloc-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bloc.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bower-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-bower.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-buildkite-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-buildkite.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cart-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cart.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-changesets-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-changesets.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ci-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ci.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-circleci-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-circleci.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-class-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-class.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-claude-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-claude.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-client-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-client.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cline-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cline.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cloud-functions-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cloud-functions.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cloudflare-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cloudflare.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cluster-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cluster.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cobol-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cobol.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-command-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-command.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-components-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-components.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-config-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-config.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-connection-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-connection.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-console-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-console.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-constant-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-constant.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-container-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-container.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-content-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-content.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-context-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-context.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-contract-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-contract.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-controller-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-controller.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-core-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-core.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-coverage-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-coverage.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-css-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-css.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cursor-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cursor-open_light.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cursor.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cursor_light.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-custom-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-custom.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cypress-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-cypress.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-dart-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-dart.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-database-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-database.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-debug-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-debug.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-decorators-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-decorators.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-delta-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-delta.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-desktop-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-desktop.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-directive-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-directive.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-dist-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-dist.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-docker-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-docker.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-docs-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-docs.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-download-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-download.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-drizzle-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-drizzle.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-dump-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-dump.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-element-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-element.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-enum-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-enum.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-environment-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-environment.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-error-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-error.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-event-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-event.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-examples-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-examples.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-expo-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-expo.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-export-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-export.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-fastlane-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-fastlane.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-favicon-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-favicon.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-firebase-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-firebase.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-firestore-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-firestore.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-flow-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-flow.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-flutter-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-flutter.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-font-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-font.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-forgejo-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-forgejo.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-functions-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-functions.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gamemaker-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gamemaker.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-generator-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-generator.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gh-workflows-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gh-workflows.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-git-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-git.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gitea-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gitea.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-github-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-github.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gitlab-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gitlab.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-global-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-global.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-godot-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-godot.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gradle-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gradle.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-graphql-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-graphql.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-guard-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-guard.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gulp-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-gulp.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-helm-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-helm.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-helper-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-helper.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-home-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-home.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-hook-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-hook.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-husky-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-husky.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-i18n-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-i18n.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-images-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-images.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-import-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-import.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-include-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-include.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-intellij-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-intellij-open_light.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-intellij.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-intellij_light.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-interceptor-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-interceptor.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-interface-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-interface.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ios-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ios.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-java-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-java.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-javascript-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-javascript.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-jinja-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-jinja-open_light.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-jinja.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-jinja_light.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-job-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-job.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-json-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-json.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-jupyter-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-jupyter.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-keys-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-keys.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-kubernetes-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-kubernetes.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-kusto-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-kusto.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-layout-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-layout.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lefthook-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lefthook.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-less-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-less.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lib-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lib.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-link-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-link.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-linux-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-linux.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-liquibase-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-liquibase.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-log-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-log.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lottie-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lottie.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lua-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-lua.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-luau-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-luau.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-macos-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-macos.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mail-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mail.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mappings-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mappings.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-markdown-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-markdown.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mercurial-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mercurial.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-messages-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-messages.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-meta-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-meta.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-middleware-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-middleware.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mjml-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mjml.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mobile-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mobile.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mock-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mock.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mojo-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-mojo.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-molecule-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-molecule.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-moon-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-moon.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-netlify-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-netlify.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-next-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-next.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ngrx-store-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ngrx-store.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-node-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-node.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-nuxt-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-nuxt.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-obsidian-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-obsidian.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-organism-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-organism.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-other-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-other.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-packages-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-packages.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pdf-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pdf.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pdm-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pdm.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-php-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-php.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-phpmailer-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-phpmailer.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pipe-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pipe.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-plastic-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-plastic.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-plugin-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-plugin.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-policy-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-policy.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-powershell-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-powershell.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-prisma-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-prisma.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-private-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-private.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-project-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-project.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-prompts-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-prompts.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-proto-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-proto.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-public-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-public.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-python-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-python.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pytorch-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-pytorch.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-quasar-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-quasar.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-queue-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-queue.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-react-components-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-react-components.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-redux-reducer-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-redux-reducer.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-repository-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-repository.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-resolver-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-resolver.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-resource-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-resource.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-review-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-review.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-robot-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-robot.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-routes-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-routes.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-rules-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-rules.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-rust-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-rust.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-sandbox-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-sandbox.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-sass-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-sass.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-scala-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-scala.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-scons-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-scons.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-scripts-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-scripts.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-secure-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-secure.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-seeders-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-seeders.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-server-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-server.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-serverless-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-serverless.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-shader-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-shader.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-shared-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-shared.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-snapcraft-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-snapcraft.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-snippet-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-snippet.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-src-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-src-tauri-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-src-tauri.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-src.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-stack-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-stack.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-stencil-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-stencil.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-store-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-store.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-storybook-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-storybook.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-stylus-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-stylus.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-sublime-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-sublime.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-supabase-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-supabase.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-svelte-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-svelte.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-svg-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-svg.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-syntax-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-syntax.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-target-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-target.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-taskfile-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-taskfile.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-tasks-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-tasks.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-television-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-television.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-temp-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-temp.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-template-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-template.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-terraform-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-terraform.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-test-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-test.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-theme-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-theme.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-tools-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-tools.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-trash-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-trash.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-trigger-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-trigger.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-turborepo-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-turborepo.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-typescript-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-typescript.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ui-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-ui.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-unity-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-unity.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-update-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-update.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-upload-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-upload.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-utils-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-utils.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vercel-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vercel.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-verdaccio-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-verdaccio.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-video-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-video.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-views-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-views.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vm-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vm.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vscode-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vscode.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vue-directives-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vue-directives.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vue-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vue.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vuepress-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vuepress.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vuex-store-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-vuex-store.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-wakatime-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-wakatime.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-webpack-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-webpack.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-windows-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-windows.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-wordpress-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-wordpress.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-yarn-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-yarn.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-zeabur-open.svg create mode 100644 packages/desktop/src/assets/file-icons/folder-zeabur.svg create mode 100644 packages/desktop/src/assets/file-icons/folder.svg create mode 100644 packages/desktop/src/assets/file-icons/font.svg create mode 100644 packages/desktop/src/assets/file-icons/forth.svg create mode 100644 packages/desktop/src/assets/file-icons/fortran.svg create mode 100644 packages/desktop/src/assets/file-icons/foxpro.svg create mode 100644 packages/desktop/src/assets/file-icons/freemarker.svg create mode 100644 packages/desktop/src/assets/file-icons/fsharp.svg create mode 100644 packages/desktop/src/assets/file-icons/fusebox.svg create mode 100644 packages/desktop/src/assets/file-icons/gamemaker.svg create mode 100644 packages/desktop/src/assets/file-icons/garden.svg create mode 100644 packages/desktop/src/assets/file-icons/gatsby.svg create mode 100644 packages/desktop/src/assets/file-icons/gcp.svg create mode 100644 packages/desktop/src/assets/file-icons/gemfile.svg create mode 100644 packages/desktop/src/assets/file-icons/gemini-ai.svg create mode 100644 packages/desktop/src/assets/file-icons/gemini.svg create mode 100644 packages/desktop/src/assets/file-icons/git.svg create mode 100644 packages/desktop/src/assets/file-icons/github-actions-workflow.svg create mode 100644 packages/desktop/src/assets/file-icons/github-sponsors.svg create mode 100644 packages/desktop/src/assets/file-icons/gitlab.svg create mode 100644 packages/desktop/src/assets/file-icons/gitpod.svg create mode 100644 packages/desktop/src/assets/file-icons/gleam.svg create mode 100644 packages/desktop/src/assets/file-icons/gnuplot.svg create mode 100644 packages/desktop/src/assets/file-icons/go-mod.svg create mode 100644 packages/desktop/src/assets/file-icons/go.svg create mode 100644 packages/desktop/src/assets/file-icons/go_gopher.svg create mode 100644 packages/desktop/src/assets/file-icons/godot-assets.svg create mode 100644 packages/desktop/src/assets/file-icons/godot.svg create mode 100644 packages/desktop/src/assets/file-icons/gradle.svg create mode 100644 packages/desktop/src/assets/file-icons/grafana-alloy.svg create mode 100644 packages/desktop/src/assets/file-icons/grain.svg create mode 100644 packages/desktop/src/assets/file-icons/graphcool.svg create mode 100644 packages/desktop/src/assets/file-icons/graphql.svg create mode 100644 packages/desktop/src/assets/file-icons/gridsome.svg create mode 100644 packages/desktop/src/assets/file-icons/groovy.svg create mode 100644 packages/desktop/src/assets/file-icons/grunt.svg create mode 100644 packages/desktop/src/assets/file-icons/gulp.svg create mode 100644 packages/desktop/src/assets/file-icons/h.svg create mode 100644 packages/desktop/src/assets/file-icons/hack.svg create mode 100644 packages/desktop/src/assets/file-icons/hadolint.svg create mode 100644 packages/desktop/src/assets/file-icons/haml.svg create mode 100644 packages/desktop/src/assets/file-icons/handlebars.svg create mode 100644 packages/desktop/src/assets/file-icons/hardhat.svg create mode 100644 packages/desktop/src/assets/file-icons/harmonix.svg create mode 100644 packages/desktop/src/assets/file-icons/haskell.svg create mode 100644 packages/desktop/src/assets/file-icons/haxe.svg create mode 100644 packages/desktop/src/assets/file-icons/hcl.svg create mode 100644 packages/desktop/src/assets/file-icons/hcl_light.svg create mode 100644 packages/desktop/src/assets/file-icons/helm.svg create mode 100644 packages/desktop/src/assets/file-icons/heroku.svg create mode 100644 packages/desktop/src/assets/file-icons/hex.svg create mode 100644 packages/desktop/src/assets/file-icons/histoire.svg create mode 100644 packages/desktop/src/assets/file-icons/hjson.svg create mode 100644 packages/desktop/src/assets/file-icons/horusec.svg create mode 100644 packages/desktop/src/assets/file-icons/hosts.svg create mode 100644 packages/desktop/src/assets/file-icons/hosts_light.svg create mode 100644 packages/desktop/src/assets/file-icons/hpp.svg create mode 100644 packages/desktop/src/assets/file-icons/html.svg create mode 100644 packages/desktop/src/assets/file-icons/http.svg create mode 100644 packages/desktop/src/assets/file-icons/huff.svg create mode 100644 packages/desktop/src/assets/file-icons/huff_light.svg create mode 100644 packages/desktop/src/assets/file-icons/hurl.svg create mode 100644 packages/desktop/src/assets/file-icons/husky.svg create mode 100644 packages/desktop/src/assets/file-icons/i18n.svg create mode 100644 packages/desktop/src/assets/file-icons/idris.svg create mode 100644 packages/desktop/src/assets/file-icons/ifanr-cloud.svg create mode 100644 packages/desktop/src/assets/file-icons/image.svg create mode 100644 packages/desktop/src/assets/file-icons/imba.svg create mode 100644 packages/desktop/src/assets/file-icons/installation.svg create mode 100644 packages/desktop/src/assets/file-icons/ionic.svg create mode 100644 packages/desktop/src/assets/file-icons/istanbul.svg create mode 100644 packages/desktop/src/assets/file-icons/jar.svg create mode 100644 packages/desktop/src/assets/file-icons/java.svg create mode 100644 packages/desktop/src/assets/file-icons/javaclass.svg create mode 100644 packages/desktop/src/assets/file-icons/javascript-map.svg create mode 100644 packages/desktop/src/assets/file-icons/javascript.svg create mode 100644 packages/desktop/src/assets/file-icons/jenkins.svg create mode 100644 packages/desktop/src/assets/file-icons/jest.svg create mode 100644 packages/desktop/src/assets/file-icons/jinja.svg create mode 100644 packages/desktop/src/assets/file-icons/jinja_light.svg create mode 100644 packages/desktop/src/assets/file-icons/jsconfig.svg create mode 100644 packages/desktop/src/assets/file-icons/json.svg create mode 100644 packages/desktop/src/assets/file-icons/jsr.svg create mode 100644 packages/desktop/src/assets/file-icons/jsr_light.svg create mode 100644 packages/desktop/src/assets/file-icons/julia.svg create mode 100644 packages/desktop/src/assets/file-icons/jupyter.svg create mode 100644 packages/desktop/src/assets/file-icons/just.svg create mode 100644 packages/desktop/src/assets/file-icons/karma.svg create mode 100644 packages/desktop/src/assets/file-icons/kcl.svg create mode 100644 packages/desktop/src/assets/file-icons/key.svg create mode 100644 packages/desktop/src/assets/file-icons/keystatic.svg create mode 100644 packages/desktop/src/assets/file-icons/kivy.svg create mode 100644 packages/desktop/src/assets/file-icons/kl.svg create mode 100644 packages/desktop/src/assets/file-icons/knip.svg create mode 100644 packages/desktop/src/assets/file-icons/kotlin.svg create mode 100644 packages/desktop/src/assets/file-icons/kubernetes.svg create mode 100644 packages/desktop/src/assets/file-icons/kusto.svg create mode 100644 packages/desktop/src/assets/file-icons/label.svg create mode 100644 packages/desktop/src/assets/file-icons/laravel.svg create mode 100644 packages/desktop/src/assets/file-icons/latexmk.svg create mode 100644 packages/desktop/src/assets/file-icons/lbx.svg create mode 100644 packages/desktop/src/assets/file-icons/lefthook.svg create mode 100644 packages/desktop/src/assets/file-icons/lerna.svg create mode 100644 packages/desktop/src/assets/file-icons/less.svg create mode 100644 packages/desktop/src/assets/file-icons/liara.svg create mode 100644 packages/desktop/src/assets/file-icons/lib.svg create mode 100644 packages/desktop/src/assets/file-icons/lighthouse.svg create mode 100644 packages/desktop/src/assets/file-icons/lilypond.svg create mode 100644 packages/desktop/src/assets/file-icons/lintstaged.svg create mode 100644 packages/desktop/src/assets/file-icons/liquid.svg create mode 100644 packages/desktop/src/assets/file-icons/lisp.svg create mode 100644 packages/desktop/src/assets/file-icons/livescript.svg create mode 100644 packages/desktop/src/assets/file-icons/lock.svg create mode 100644 packages/desktop/src/assets/file-icons/log.svg create mode 100644 packages/desktop/src/assets/file-icons/lolcode.svg create mode 100644 packages/desktop/src/assets/file-icons/lottie.svg create mode 100644 packages/desktop/src/assets/file-icons/lua.svg create mode 100644 packages/desktop/src/assets/file-icons/luau.svg create mode 100644 packages/desktop/src/assets/file-icons/lyric.svg create mode 100644 packages/desktop/src/assets/file-icons/makefile.svg create mode 100644 packages/desktop/src/assets/file-icons/markdoc-config.svg create mode 100644 packages/desktop/src/assets/file-icons/markdoc.svg create mode 100644 packages/desktop/src/assets/file-icons/markdown.svg create mode 100644 packages/desktop/src/assets/file-icons/markdownlint.svg create mode 100644 packages/desktop/src/assets/file-icons/markojs.svg create mode 100644 packages/desktop/src/assets/file-icons/mathematica.svg create mode 100644 packages/desktop/src/assets/file-icons/matlab.svg create mode 100644 packages/desktop/src/assets/file-icons/maven.svg create mode 100644 packages/desktop/src/assets/file-icons/mdsvex.svg create mode 100644 packages/desktop/src/assets/file-icons/mdx.svg create mode 100644 packages/desktop/src/assets/file-icons/mercurial.svg create mode 100644 packages/desktop/src/assets/file-icons/merlin.svg create mode 100644 packages/desktop/src/assets/file-icons/mermaid.svg create mode 100644 packages/desktop/src/assets/file-icons/meson.svg create mode 100644 packages/desktop/src/assets/file-icons/minecraft-fabric.svg create mode 100644 packages/desktop/src/assets/file-icons/minecraft.svg create mode 100644 packages/desktop/src/assets/file-icons/mint.svg create mode 100644 packages/desktop/src/assets/file-icons/mjml.svg create mode 100644 packages/desktop/src/assets/file-icons/mocha.svg create mode 100644 packages/desktop/src/assets/file-icons/modernizr.svg create mode 100644 packages/desktop/src/assets/file-icons/mojo.svg create mode 100644 packages/desktop/src/assets/file-icons/moon.svg create mode 100644 packages/desktop/src/assets/file-icons/moonscript.svg create mode 100644 packages/desktop/src/assets/file-icons/mxml.svg create mode 100644 packages/desktop/src/assets/file-icons/nano-staged.svg create mode 100644 packages/desktop/src/assets/file-icons/nano-staged_light.svg create mode 100644 packages/desktop/src/assets/file-icons/ndst.svg create mode 100644 packages/desktop/src/assets/file-icons/nest.svg create mode 100644 packages/desktop/src/assets/file-icons/netlify.svg create mode 100644 packages/desktop/src/assets/file-icons/netlify_light.svg create mode 100644 packages/desktop/src/assets/file-icons/next.svg create mode 100644 packages/desktop/src/assets/file-icons/next_light.svg create mode 100644 packages/desktop/src/assets/file-icons/nginx.svg create mode 100644 packages/desktop/src/assets/file-icons/ngrx-actions.svg create mode 100644 packages/desktop/src/assets/file-icons/ngrx-effects.svg create mode 100644 packages/desktop/src/assets/file-icons/ngrx-entity.svg create mode 100644 packages/desktop/src/assets/file-icons/ngrx-reducer.svg create mode 100644 packages/desktop/src/assets/file-icons/ngrx-selectors.svg create mode 100644 packages/desktop/src/assets/file-icons/ngrx-state.svg create mode 100644 packages/desktop/src/assets/file-icons/nim.svg create mode 100644 packages/desktop/src/assets/file-icons/nix.svg create mode 100644 packages/desktop/src/assets/file-icons/nodejs.svg create mode 100644 packages/desktop/src/assets/file-icons/nodejs_alt.svg create mode 100644 packages/desktop/src/assets/file-icons/nodemon.svg create mode 100644 packages/desktop/src/assets/file-icons/npm.svg create mode 100644 packages/desktop/src/assets/file-icons/nuget.svg create mode 100644 packages/desktop/src/assets/file-icons/nunjucks.svg create mode 100644 packages/desktop/src/assets/file-icons/nuxt.svg create mode 100644 packages/desktop/src/assets/file-icons/nx.svg create mode 100644 packages/desktop/src/assets/file-icons/objective-c.svg create mode 100644 packages/desktop/src/assets/file-icons/objective-cpp.svg create mode 100644 packages/desktop/src/assets/file-icons/ocaml.svg create mode 100644 packages/desktop/src/assets/file-icons/odin.svg create mode 100644 packages/desktop/src/assets/file-icons/opa.svg create mode 100644 packages/desktop/src/assets/file-icons/opam.svg create mode 100644 packages/desktop/src/assets/file-icons/openapi.svg create mode 100644 packages/desktop/src/assets/file-icons/openapi_light.svg create mode 100644 packages/desktop/src/assets/file-icons/otne.svg create mode 100644 packages/desktop/src/assets/file-icons/oxlint.svg create mode 100644 packages/desktop/src/assets/file-icons/packship.svg create mode 100644 packages/desktop/src/assets/file-icons/palette.svg create mode 100644 packages/desktop/src/assets/file-icons/panda.svg create mode 100644 packages/desktop/src/assets/file-icons/parcel.svg create mode 100644 packages/desktop/src/assets/file-icons/pascal.svg create mode 100644 packages/desktop/src/assets/file-icons/pawn.svg create mode 100644 packages/desktop/src/assets/file-icons/payload.svg create mode 100644 packages/desktop/src/assets/file-icons/payload_light.svg create mode 100644 packages/desktop/src/assets/file-icons/pdf.svg create mode 100644 packages/desktop/src/assets/file-icons/pdm.svg create mode 100644 packages/desktop/src/assets/file-icons/percy.svg create mode 100644 packages/desktop/src/assets/file-icons/perl.svg create mode 100644 packages/desktop/src/assets/file-icons/php-cs-fixer.svg create mode 100644 packages/desktop/src/assets/file-icons/php.svg create mode 100644 packages/desktop/src/assets/file-icons/php_elephant.svg create mode 100644 packages/desktop/src/assets/file-icons/php_elephant_pink.svg create mode 100644 packages/desktop/src/assets/file-icons/phpstan.svg create mode 100644 packages/desktop/src/assets/file-icons/phpunit.svg create mode 100644 packages/desktop/src/assets/file-icons/pinejs.svg create mode 100644 packages/desktop/src/assets/file-icons/pipeline.svg create mode 100644 packages/desktop/src/assets/file-icons/pkl.svg create mode 100644 packages/desktop/src/assets/file-icons/plastic.svg create mode 100644 packages/desktop/src/assets/file-icons/playwright.svg create mode 100644 packages/desktop/src/assets/file-icons/plop.svg create mode 100644 packages/desktop/src/assets/file-icons/pm2-ecosystem.svg create mode 100644 packages/desktop/src/assets/file-icons/pnpm.svg create mode 100644 packages/desktop/src/assets/file-icons/pnpm_light.svg create mode 100644 packages/desktop/src/assets/file-icons/poetry.svg create mode 100644 packages/desktop/src/assets/file-icons/postcss.svg create mode 100644 packages/desktop/src/assets/file-icons/posthtml.svg create mode 100644 packages/desktop/src/assets/file-icons/powerpoint.svg create mode 100644 packages/desktop/src/assets/file-icons/powershell.svg create mode 100644 packages/desktop/src/assets/file-icons/pre-commit.svg create mode 100644 packages/desktop/src/assets/file-icons/prettier.svg create mode 100644 packages/desktop/src/assets/file-icons/prisma.svg create mode 100644 packages/desktop/src/assets/file-icons/processing.svg create mode 100644 packages/desktop/src/assets/file-icons/prolog.svg create mode 100644 packages/desktop/src/assets/file-icons/prompt.svg create mode 100644 packages/desktop/src/assets/file-icons/proto.svg create mode 100644 packages/desktop/src/assets/file-icons/protractor.svg create mode 100644 packages/desktop/src/assets/file-icons/pug.svg create mode 100644 packages/desktop/src/assets/file-icons/puppet.svg create mode 100644 packages/desktop/src/assets/file-icons/puppeteer.svg create mode 100644 packages/desktop/src/assets/file-icons/purescript.svg create mode 100644 packages/desktop/src/assets/file-icons/python-misc.svg create mode 100644 packages/desktop/src/assets/file-icons/python.svg create mode 100644 packages/desktop/src/assets/file-icons/pytorch.svg create mode 100644 packages/desktop/src/assets/file-icons/qsharp.svg create mode 100644 packages/desktop/src/assets/file-icons/quarto.svg create mode 100644 packages/desktop/src/assets/file-icons/quasar.svg create mode 100644 packages/desktop/src/assets/file-icons/quokka.svg create mode 100644 packages/desktop/src/assets/file-icons/qwik.svg create mode 100644 packages/desktop/src/assets/file-icons/r.svg create mode 100644 packages/desktop/src/assets/file-icons/racket.svg create mode 100644 packages/desktop/src/assets/file-icons/raml.svg create mode 100644 packages/desktop/src/assets/file-icons/razor.svg create mode 100644 packages/desktop/src/assets/file-icons/rbxmk.svg create mode 100644 packages/desktop/src/assets/file-icons/rc.svg create mode 100644 packages/desktop/src/assets/file-icons/react.svg create mode 100644 packages/desktop/src/assets/file-icons/react_ts.svg create mode 100644 packages/desktop/src/assets/file-icons/readme.svg create mode 100644 packages/desktop/src/assets/file-icons/reason.svg create mode 100644 packages/desktop/src/assets/file-icons/red.svg create mode 100644 packages/desktop/src/assets/file-icons/redux-action.svg create mode 100644 packages/desktop/src/assets/file-icons/redux-reducer.svg create mode 100644 packages/desktop/src/assets/file-icons/redux-selector.svg create mode 100644 packages/desktop/src/assets/file-icons/redux-store.svg create mode 100644 packages/desktop/src/assets/file-icons/regedit.svg create mode 100644 packages/desktop/src/assets/file-icons/remark.svg create mode 100644 packages/desktop/src/assets/file-icons/remix.svg create mode 100644 packages/desktop/src/assets/file-icons/remix_light.svg create mode 100644 packages/desktop/src/assets/file-icons/renovate.svg create mode 100644 packages/desktop/src/assets/file-icons/replit.svg create mode 100644 packages/desktop/src/assets/file-icons/rescript-interface.svg create mode 100644 packages/desktop/src/assets/file-icons/rescript.svg create mode 100644 packages/desktop/src/assets/file-icons/restql.svg create mode 100644 packages/desktop/src/assets/file-icons/riot.svg create mode 100644 packages/desktop/src/assets/file-icons/roadmap.svg create mode 100644 packages/desktop/src/assets/file-icons/roblox.svg create mode 100644 packages/desktop/src/assets/file-icons/robot.svg create mode 100644 packages/desktop/src/assets/file-icons/robots.svg create mode 100644 packages/desktop/src/assets/file-icons/rocket.svg create mode 100644 packages/desktop/src/assets/file-icons/rojo.svg create mode 100644 packages/desktop/src/assets/file-icons/rollup.svg create mode 100644 packages/desktop/src/assets/file-icons/rome.svg create mode 100644 packages/desktop/src/assets/file-icons/routing.svg create mode 100644 packages/desktop/src/assets/file-icons/rspec.svg create mode 100644 packages/desktop/src/assets/file-icons/rubocop.svg create mode 100644 packages/desktop/src/assets/file-icons/rubocop_light.svg create mode 100644 packages/desktop/src/assets/file-icons/ruby.svg create mode 100644 packages/desktop/src/assets/file-icons/ruff.svg create mode 100644 packages/desktop/src/assets/file-icons/rust.svg create mode 100644 packages/desktop/src/assets/file-icons/salesforce.svg create mode 100644 packages/desktop/src/assets/file-icons/san.svg create mode 100644 packages/desktop/src/assets/file-icons/sas.svg create mode 100644 packages/desktop/src/assets/file-icons/sass.svg create mode 100644 packages/desktop/src/assets/file-icons/sbt.svg create mode 100644 packages/desktop/src/assets/file-icons/scala.svg create mode 100644 packages/desktop/src/assets/file-icons/scheme.svg create mode 100644 packages/desktop/src/assets/file-icons/scons.svg create mode 100644 packages/desktop/src/assets/file-icons/scons_light.svg create mode 100644 packages/desktop/src/assets/file-icons/screwdriver.svg create mode 100644 packages/desktop/src/assets/file-icons/search.svg create mode 100644 packages/desktop/src/assets/file-icons/semantic-release.svg create mode 100644 packages/desktop/src/assets/file-icons/semantic-release_light.svg create mode 100644 packages/desktop/src/assets/file-icons/semgrep.svg create mode 100644 packages/desktop/src/assets/file-icons/sentry.svg create mode 100644 packages/desktop/src/assets/file-icons/sequelize.svg create mode 100644 packages/desktop/src/assets/file-icons/serverless.svg create mode 100644 packages/desktop/src/assets/file-icons/settings.svg create mode 100644 packages/desktop/src/assets/file-icons/shader.svg create mode 100644 packages/desktop/src/assets/file-icons/silverstripe.svg create mode 100644 packages/desktop/src/assets/file-icons/simulink.svg create mode 100644 packages/desktop/src/assets/file-icons/siyuan.svg create mode 100644 packages/desktop/src/assets/file-icons/sketch.svg create mode 100644 packages/desktop/src/assets/file-icons/slim.svg create mode 100644 packages/desktop/src/assets/file-icons/slint.svg create mode 100644 packages/desktop/src/assets/file-icons/slug.svg create mode 100644 packages/desktop/src/assets/file-icons/smarty.svg create mode 100644 packages/desktop/src/assets/file-icons/sml.svg create mode 100644 packages/desktop/src/assets/file-icons/snakemake.svg create mode 100644 packages/desktop/src/assets/file-icons/snapcraft.svg create mode 100644 packages/desktop/src/assets/file-icons/snowpack.svg create mode 100644 packages/desktop/src/assets/file-icons/snowpack_light.svg create mode 100644 packages/desktop/src/assets/file-icons/snyk.svg create mode 100644 packages/desktop/src/assets/file-icons/solidity.svg create mode 100644 packages/desktop/src/assets/file-icons/sonarcloud.svg create mode 100644 packages/desktop/src/assets/file-icons/spwn.svg create mode 100644 packages/desktop/src/assets/file-icons/stackblitz.svg create mode 100644 packages/desktop/src/assets/file-icons/stan.svg create mode 100644 packages/desktop/src/assets/file-icons/steadybit.svg create mode 100644 packages/desktop/src/assets/file-icons/stencil.svg create mode 100644 packages/desktop/src/assets/file-icons/stitches.svg create mode 100644 packages/desktop/src/assets/file-icons/stitches_light.svg create mode 100644 packages/desktop/src/assets/file-icons/storybook.svg create mode 100644 packages/desktop/src/assets/file-icons/stryker.svg create mode 100644 packages/desktop/src/assets/file-icons/stylable.svg create mode 100644 packages/desktop/src/assets/file-icons/stylelint.svg create mode 100644 packages/desktop/src/assets/file-icons/stylelint_light.svg create mode 100644 packages/desktop/src/assets/file-icons/stylus.svg create mode 100644 packages/desktop/src/assets/file-icons/sublime.svg create mode 100644 packages/desktop/src/assets/file-icons/subtitles.svg create mode 100644 packages/desktop/src/assets/file-icons/supabase.svg create mode 100644 packages/desktop/src/assets/file-icons/svelte.svg create mode 100644 packages/desktop/src/assets/file-icons/svg.svg create mode 100644 packages/desktop/src/assets/file-icons/svgo.svg create mode 100644 packages/desktop/src/assets/file-icons/svgr.svg create mode 100644 packages/desktop/src/assets/file-icons/swagger.svg create mode 100644 packages/desktop/src/assets/file-icons/sway.svg create mode 100644 packages/desktop/src/assets/file-icons/swc.svg create mode 100644 packages/desktop/src/assets/file-icons/swift.svg create mode 100644 packages/desktop/src/assets/file-icons/syncpack.svg create mode 100755 packages/desktop/src/assets/file-icons/systemd.svg create mode 100755 packages/desktop/src/assets/file-icons/systemd_light.svg create mode 100644 packages/desktop/src/assets/file-icons/table.svg create mode 100644 packages/desktop/src/assets/file-icons/tailwindcss.svg create mode 100644 packages/desktop/src/assets/file-icons/taskfile.svg create mode 100644 packages/desktop/src/assets/file-icons/tauri.svg create mode 100644 packages/desktop/src/assets/file-icons/taze.svg create mode 100644 packages/desktop/src/assets/file-icons/tcl.svg create mode 100644 packages/desktop/src/assets/file-icons/teal.svg create mode 100644 packages/desktop/src/assets/file-icons/templ.svg create mode 100644 packages/desktop/src/assets/file-icons/template.svg create mode 100644 packages/desktop/src/assets/file-icons/terraform.svg create mode 100644 packages/desktop/src/assets/file-icons/test-js.svg create mode 100644 packages/desktop/src/assets/file-icons/test-jsx.svg create mode 100644 packages/desktop/src/assets/file-icons/test-ts.svg create mode 100644 packages/desktop/src/assets/file-icons/tex.svg create mode 100644 packages/desktop/src/assets/file-icons/textlint.svg create mode 100644 packages/desktop/src/assets/file-icons/tilt.svg create mode 100644 packages/desktop/src/assets/file-icons/tldraw.svg create mode 100644 packages/desktop/src/assets/file-icons/tldraw_light.svg create mode 100644 packages/desktop/src/assets/file-icons/tobi.svg create mode 100644 packages/desktop/src/assets/file-icons/tobimake.svg create mode 100644 packages/desktop/src/assets/file-icons/todo.svg create mode 100644 packages/desktop/src/assets/file-icons/toml.svg create mode 100644 packages/desktop/src/assets/file-icons/toml_light.svg create mode 100644 packages/desktop/src/assets/file-icons/travis.svg create mode 100644 packages/desktop/src/assets/file-icons/tree.svg create mode 100644 packages/desktop/src/assets/file-icons/trigger.svg create mode 100644 packages/desktop/src/assets/file-icons/tsconfig.svg create mode 100644 packages/desktop/src/assets/file-icons/tsdoc.svg create mode 100644 packages/desktop/src/assets/file-icons/tsil.svg create mode 100644 packages/desktop/src/assets/file-icons/tune.svg create mode 100644 packages/desktop/src/assets/file-icons/turborepo.svg create mode 100644 packages/desktop/src/assets/file-icons/turborepo_light.svg create mode 100644 packages/desktop/src/assets/file-icons/twig.svg create mode 100644 packages/desktop/src/assets/file-icons/twine.svg create mode 100644 packages/desktop/src/assets/file-icons/typescript-def.svg create mode 100644 packages/desktop/src/assets/file-icons/typescript.svg create mode 100644 packages/desktop/src/assets/file-icons/typst.svg create mode 100644 packages/desktop/src/assets/file-icons/umi.svg create mode 100644 packages/desktop/src/assets/file-icons/uml.svg create mode 100644 packages/desktop/src/assets/file-icons/uml_light.svg create mode 100644 packages/desktop/src/assets/file-icons/unity.svg create mode 100644 packages/desktop/src/assets/file-icons/unocss.svg create mode 100644 packages/desktop/src/assets/file-icons/url.svg create mode 100644 packages/desktop/src/assets/file-icons/uv.svg create mode 100644 packages/desktop/src/assets/file-icons/vagrant.svg create mode 100644 packages/desktop/src/assets/file-icons/vala.svg create mode 100644 packages/desktop/src/assets/file-icons/vanilla-extract.svg create mode 100644 packages/desktop/src/assets/file-icons/varnish.svg create mode 100644 packages/desktop/src/assets/file-icons/vedic.svg create mode 100644 packages/desktop/src/assets/file-icons/velite.svg create mode 100644 packages/desktop/src/assets/file-icons/velocity.svg create mode 100644 packages/desktop/src/assets/file-icons/vercel.svg create mode 100644 packages/desktop/src/assets/file-icons/vercel_light.svg create mode 100644 packages/desktop/src/assets/file-icons/verdaccio.svg create mode 100644 packages/desktop/src/assets/file-icons/verified.svg create mode 100644 packages/desktop/src/assets/file-icons/verilog.svg create mode 100644 packages/desktop/src/assets/file-icons/vfl.svg create mode 100644 packages/desktop/src/assets/file-icons/video.svg create mode 100644 packages/desktop/src/assets/file-icons/vim.svg create mode 100644 packages/desktop/src/assets/file-icons/virtual.svg create mode 100644 packages/desktop/src/assets/file-icons/visualstudio.svg create mode 100644 packages/desktop/src/assets/file-icons/vite.svg create mode 100644 packages/desktop/src/assets/file-icons/vitest.svg create mode 100644 packages/desktop/src/assets/file-icons/vlang.svg create mode 100644 packages/desktop/src/assets/file-icons/vscode.svg create mode 100644 packages/desktop/src/assets/file-icons/vue-config.svg create mode 100644 packages/desktop/src/assets/file-icons/vue.svg create mode 100644 packages/desktop/src/assets/file-icons/vuex-store.svg create mode 100644 packages/desktop/src/assets/file-icons/wakatime.svg create mode 100644 packages/desktop/src/assets/file-icons/wakatime_light.svg create mode 100644 packages/desktop/src/assets/file-icons/wallaby.svg create mode 100644 packages/desktop/src/assets/file-icons/wally.svg create mode 100644 packages/desktop/src/assets/file-icons/watchman.svg create mode 100644 packages/desktop/src/assets/file-icons/webassembly.svg create mode 100644 packages/desktop/src/assets/file-icons/webhint.svg create mode 100644 packages/desktop/src/assets/file-icons/webpack.svg create mode 100644 packages/desktop/src/assets/file-icons/wepy.svg create mode 100644 packages/desktop/src/assets/file-icons/werf.svg create mode 100644 packages/desktop/src/assets/file-icons/windicss.svg create mode 100644 packages/desktop/src/assets/file-icons/wolframlanguage.svg create mode 100644 packages/desktop/src/assets/file-icons/word.svg create mode 100644 packages/desktop/src/assets/file-icons/wrangler.svg create mode 100644 packages/desktop/src/assets/file-icons/wxt.svg create mode 100644 packages/desktop/src/assets/file-icons/xaml.svg create mode 100644 packages/desktop/src/assets/file-icons/xmake.svg create mode 100644 packages/desktop/src/assets/file-icons/xml.svg create mode 100644 packages/desktop/src/assets/file-icons/yaml.svg create mode 100644 packages/desktop/src/assets/file-icons/yang.svg create mode 100644 packages/desktop/src/assets/file-icons/yarn.svg create mode 100644 packages/desktop/src/assets/file-icons/zeabur.svg create mode 100644 packages/desktop/src/assets/file-icons/zeabur_light.svg create mode 100644 packages/desktop/src/assets/file-icons/zig.svg create mode 100644 packages/desktop/src/assets/file-icons/zip.svg create mode 100644 packages/desktop/src/components/code.tsx create mode 100644 packages/desktop/src/components/editor-pane.tsx create mode 100644 packages/desktop/src/components/file-tree.tsx create mode 100644 packages/desktop/src/components/markdown.tsx create mode 100644 packages/desktop/src/components/prompt-form.tsx create mode 100644 packages/desktop/src/components/resizeable-pane.tsx create mode 100644 packages/desktop/src/components/select-dialog.tsx create mode 100644 packages/desktop/src/components/select.tsx create mode 100644 packages/desktop/src/components/session-list.tsx create mode 100644 packages/desktop/src/components/session-timeline.tsx create mode 100644 packages/desktop/src/components/sidebar-nav.tsx create mode 100644 packages/desktop/src/context/event.tsx create mode 100644 packages/desktop/src/context/index.ts create mode 100644 packages/desktop/src/context/local.tsx create mode 100644 packages/desktop/src/context/marked.tsx create mode 100644 packages/desktop/src/context/sdk.tsx create mode 100644 packages/desktop/src/context/shiki.tsx create mode 100644 packages/desktop/src/context/sync.tsx create mode 100644 packages/desktop/src/context/theme.tsx create mode 100644 packages/desktop/src/env.d.ts create mode 100644 packages/desktop/src/index.css create mode 100644 packages/desktop/src/index.tsx create mode 100644 packages/desktop/src/pages/index.tsx create mode 100644 packages/desktop/src/pages/layout.tsx create mode 100644 packages/desktop/src/sst-env.d.ts create mode 100644 packages/desktop/src/ui/button.tsx create mode 100644 packages/desktop/src/ui/collapsible.tsx create mode 100644 packages/desktop/src/ui/file-icon.tsx create mode 100644 packages/desktop/src/ui/file-icons/sprite.svg create mode 100644 packages/desktop/src/ui/file-icons/types.ts create mode 100644 packages/desktop/src/ui/icon-button.tsx create mode 100644 packages/desktop/src/ui/icon.tsx create mode 100644 packages/desktop/src/ui/index.ts create mode 100644 packages/desktop/src/ui/link.tsx create mode 100644 packages/desktop/src/ui/logo.tsx create mode 100644 packages/desktop/src/ui/tabs.tsx create mode 100644 packages/desktop/src/ui/tooltip.tsx create mode 100644 packages/desktop/src/utils/binary.ts create mode 100644 packages/desktop/src/utils/dom.ts create mode 100644 packages/desktop/src/utils/index.ts create mode 100644 packages/desktop/src/utils/path.ts create mode 100644 packages/desktop/src/utils/speech.ts (limited to 'packages/desktop/src') diff --git a/packages/desktop/src/assets/favicon.svg b/packages/desktop/src/assets/favicon.svg new file mode 100644 index 000000000..3c81bbdb4 --- /dev/null +++ b/packages/desktop/src/assets/favicon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/desktop/src/assets/file-icons/3d.svg b/packages/desktop/src/assets/file-icons/3d.svg new file mode 100644 index 000000000..0fdb93497 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/3d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/abap.svg b/packages/desktop/src/assets/file-icons/abap.svg new file mode 100644 index 000000000..0a9b08390 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/abap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/abc.svg b/packages/desktop/src/assets/file-icons/abc.svg new file mode 100644 index 000000000..7c7cb534c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/abc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/actionscript.svg b/packages/desktop/src/assets/file-icons/actionscript.svg new file mode 100644 index 000000000..31d91f2db --- /dev/null +++ b/packages/desktop/src/assets/file-icons/actionscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ada.svg b/packages/desktop/src/assets/file-icons/ada.svg new file mode 100644 index 000000000..613646fa1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ada.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/adobe-illustrator.svg b/packages/desktop/src/assets/file-icons/adobe-illustrator.svg new file mode 100644 index 000000000..e0a334bb4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/adobe-illustrator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/adobe-illustrator_light.svg b/packages/desktop/src/assets/file-icons/adobe-illustrator_light.svg new file mode 100644 index 000000000..326d2315a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/adobe-illustrator_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/adobe-photoshop.svg b/packages/desktop/src/assets/file-icons/adobe-photoshop.svg new file mode 100644 index 000000000..27033d9af --- /dev/null +++ b/packages/desktop/src/assets/file-icons/adobe-photoshop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/adobe-photoshop_light.svg b/packages/desktop/src/assets/file-icons/adobe-photoshop_light.svg new file mode 100644 index 000000000..d2bfb4d25 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/adobe-photoshop_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/adobe-swc.svg b/packages/desktop/src/assets/file-icons/adobe-swc.svg new file mode 100644 index 000000000..fda5c181a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/adobe-swc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/adonis.svg b/packages/desktop/src/assets/file-icons/adonis.svg new file mode 100644 index 000000000..f854f018e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/adonis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/advpl.svg b/packages/desktop/src/assets/file-icons/advpl.svg new file mode 100644 index 000000000..54e493b0f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/advpl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/amplify.svg b/packages/desktop/src/assets/file-icons/amplify.svg new file mode 100644 index 000000000..89f42120b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/amplify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/android.svg b/packages/desktop/src/assets/file-icons/android.svg new file mode 100644 index 000000000..c44608d4b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/android.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/angular.svg b/packages/desktop/src/assets/file-icons/angular.svg new file mode 100644 index 000000000..a28075e93 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/angular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/antlr.svg b/packages/desktop/src/assets/file-icons/antlr.svg new file mode 100644 index 000000000..42f43bb30 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/antlr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/apiblueprint.svg b/packages/desktop/src/assets/file-icons/apiblueprint.svg new file mode 100644 index 000000000..08462673a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/apiblueprint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/apollo.svg b/packages/desktop/src/assets/file-icons/apollo.svg new file mode 100644 index 000000000..6de6aa26b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/apollo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/applescript.svg b/packages/desktop/src/assets/file-icons/applescript.svg new file mode 100644 index 000000000..d883e90da --- /dev/null +++ b/packages/desktop/src/assets/file-icons/applescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/apps-script.svg b/packages/desktop/src/assets/file-icons/apps-script.svg new file mode 100644 index 000000000..ed20f1f13 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/apps-script.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/appveyor.svg b/packages/desktop/src/assets/file-icons/appveyor.svg new file mode 100644 index 000000000..0dd0a5cb0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/appveyor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/architecture.svg b/packages/desktop/src/assets/file-icons/architecture.svg new file mode 100644 index 000000000..ee7de1823 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/architecture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/arduino.svg b/packages/desktop/src/assets/file-icons/arduino.svg new file mode 100644 index 000000000..053dc1267 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/arduino.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/asciidoc.svg b/packages/desktop/src/assets/file-icons/asciidoc.svg new file mode 100644 index 000000000..82215c7d4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/asciidoc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/assembly.svg b/packages/desktop/src/assets/file-icons/assembly.svg new file mode 100644 index 000000000..33a056643 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/assembly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/astro-config.svg b/packages/desktop/src/assets/file-icons/astro-config.svg new file mode 100644 index 000000000..1c12c5e8b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/astro-config.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/astro.svg b/packages/desktop/src/assets/file-icons/astro.svg new file mode 100644 index 000000000..fa67feeff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/astro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/astyle.svg b/packages/desktop/src/assets/file-icons/astyle.svg new file mode 100644 index 000000000..6643432b5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/astyle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/audio.svg b/packages/desktop/src/assets/file-icons/audio.svg new file mode 100644 index 000000000..74f43c461 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/audio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/aurelia.svg b/packages/desktop/src/assets/file-icons/aurelia.svg new file mode 100644 index 000000000..f7b67f023 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/aurelia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/authors.svg b/packages/desktop/src/assets/file-icons/authors.svg new file mode 100644 index 000000000..88618a701 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/authors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/auto.svg b/packages/desktop/src/assets/file-icons/auto.svg new file mode 100644 index 000000000..41bd15de4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/auto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/auto_light.svg b/packages/desktop/src/assets/file-icons/auto_light.svg new file mode 100644 index 000000000..5f2451b23 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/auto_light.svg @@ -0,0 +1,12 @@ + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/autohotkey.svg b/packages/desktop/src/assets/file-icons/autohotkey.svg new file mode 100644 index 000000000..4ecd7a3ef --- /dev/null +++ b/packages/desktop/src/assets/file-icons/autohotkey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/autoit.svg b/packages/desktop/src/assets/file-icons/autoit.svg new file mode 100644 index 000000000..350519f25 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/autoit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/azure-pipelines.svg b/packages/desktop/src/assets/file-icons/azure-pipelines.svg new file mode 100644 index 000000000..f460d2079 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/azure-pipelines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/azure.svg b/packages/desktop/src/assets/file-icons/azure.svg new file mode 100644 index 000000000..2330f87bb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/azure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/babel.svg b/packages/desktop/src/assets/file-icons/babel.svg new file mode 100644 index 000000000..244ae36a1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/babel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ballerina.svg b/packages/desktop/src/assets/file-icons/ballerina.svg new file mode 100644 index 000000000..3c1341d77 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ballerina.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bazel.svg b/packages/desktop/src/assets/file-icons/bazel.svg new file mode 100644 index 000000000..b38a90c59 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bazel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bbx.svg b/packages/desktop/src/assets/file-icons/bbx.svg new file mode 100644 index 000000000..002d26047 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bbx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/beancount.svg b/packages/desktop/src/assets/file-icons/beancount.svg new file mode 100644 index 000000000..905ff22b0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/beancount.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bench-js.svg b/packages/desktop/src/assets/file-icons/bench-js.svg new file mode 100644 index 000000000..c2ba0ca6e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bench-js.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bench-jsx.svg b/packages/desktop/src/assets/file-icons/bench-jsx.svg new file mode 100644 index 000000000..ed2b9d434 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bench-jsx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bench-ts.svg b/packages/desktop/src/assets/file-icons/bench-ts.svg new file mode 100644 index 000000000..f9c2af9e0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bench-ts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bibliography.svg b/packages/desktop/src/assets/file-icons/bibliography.svg new file mode 100644 index 000000000..ad6baa6ef --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bibliography.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bibtex-style.svg b/packages/desktop/src/assets/file-icons/bibtex-style.svg new file mode 100644 index 000000000..24d121d72 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bibtex-style.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bicep.svg b/packages/desktop/src/assets/file-icons/bicep.svg new file mode 100644 index 000000000..dc959e7be --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bicep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/biome.svg b/packages/desktop/src/assets/file-icons/biome.svg new file mode 100644 index 000000000..2f255fc2b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/biome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bitbucket.svg b/packages/desktop/src/assets/file-icons/bitbucket.svg new file mode 100644 index 000000000..ba572f09f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bitbucket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bithound.svg b/packages/desktop/src/assets/file-icons/bithound.svg new file mode 100644 index 000000000..1eea4deae --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bithound.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/blender.svg b/packages/desktop/src/assets/file-icons/blender.svg new file mode 100644 index 000000000..f55d6bc7d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/blender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/blink.svg b/packages/desktop/src/assets/file-icons/blink.svg new file mode 100644 index 000000000..441228857 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/blink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/blink_light.svg b/packages/desktop/src/assets/file-icons/blink_light.svg new file mode 100644 index 000000000..380d8c762 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/blink_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/blitz.svg b/packages/desktop/src/assets/file-icons/blitz.svg new file mode 100644 index 000000000..147ccc1a7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/blitz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bower.svg b/packages/desktop/src/assets/file-icons/bower.svg new file mode 100644 index 000000000..9ffb06acc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/brainfuck.svg b/packages/desktop/src/assets/file-icons/brainfuck.svg new file mode 100644 index 000000000..6a2422c9b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/brainfuck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/browserlist.svg b/packages/desktop/src/assets/file-icons/browserlist.svg new file mode 100644 index 000000000..d2e0d0a38 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/browserlist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/browserlist_light.svg b/packages/desktop/src/assets/file-icons/browserlist_light.svg new file mode 100644 index 000000000..fa34de6a1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/browserlist_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bruno.svg b/packages/desktop/src/assets/file-icons/bruno.svg new file mode 100644 index 000000000..88bebeae4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bruno.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/buck.svg b/packages/desktop/src/assets/file-icons/buck.svg new file mode 100644 index 000000000..a5a31bc46 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/buck.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bucklescript.svg b/packages/desktop/src/assets/file-icons/bucklescript.svg new file mode 100644 index 000000000..d67a7843d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bucklescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/buildkite.svg b/packages/desktop/src/assets/file-icons/buildkite.svg new file mode 100644 index 000000000..32a499555 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/buildkite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bun.svg b/packages/desktop/src/assets/file-icons/bun.svg new file mode 100644 index 000000000..cc3620479 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/bun_light.svg b/packages/desktop/src/assets/file-icons/bun_light.svg new file mode 100644 index 000000000..d49bac7b2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/bun_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/c.svg b/packages/desktop/src/assets/file-icons/c.svg new file mode 100644 index 000000000..5bb84b6a9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/c3.svg b/packages/desktop/src/assets/file-icons/c3.svg new file mode 100644 index 000000000..ff30caab2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/c3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cabal.svg b/packages/desktop/src/assets/file-icons/cabal.svg new file mode 100644 index 000000000..014335bf7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cabal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/caddy.svg b/packages/desktop/src/assets/file-icons/caddy.svg new file mode 100644 index 000000000..997c11962 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/caddy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cadence.svg b/packages/desktop/src/assets/file-icons/cadence.svg new file mode 100644 index 000000000..25338baae --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cadence.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cairo.svg b/packages/desktop/src/assets/file-icons/cairo.svg new file mode 100644 index 000000000..591b2328a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cairo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cake.svg b/packages/desktop/src/assets/file-icons/cake.svg new file mode 100644 index 000000000..ed6b09f4d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/capacitor.svg b/packages/desktop/src/assets/file-icons/capacitor.svg new file mode 100644 index 000000000..2a48c5843 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/capacitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/capnp.svg b/packages/desktop/src/assets/file-icons/capnp.svg new file mode 100644 index 000000000..c74aa9f01 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/capnp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cbx.svg b/packages/desktop/src/assets/file-icons/cbx.svg new file mode 100644 index 000000000..716426ad7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cbx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cds.svg b/packages/desktop/src/assets/file-icons/cds.svg new file mode 100644 index 000000000..3c7fed81e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cds.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/certificate.svg b/packages/desktop/src/assets/file-icons/certificate.svg new file mode 100644 index 000000000..64ddcf3b6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/changelog.svg b/packages/desktop/src/assets/file-icons/changelog.svg new file mode 100644 index 000000000..b4b1a0717 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/changelog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/chess.svg b/packages/desktop/src/assets/file-icons/chess.svg new file mode 100644 index 000000000..85bede301 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/chess.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/chess_light.svg b/packages/desktop/src/assets/file-icons/chess_light.svg new file mode 100644 index 000000000..250fb8cbf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/chess_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/chrome.svg b/packages/desktop/src/assets/file-icons/chrome.svg new file mode 100644 index 000000000..0208e2704 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/chrome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/circleci.svg b/packages/desktop/src/assets/file-icons/circleci.svg new file mode 100644 index 000000000..464dace08 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/circleci.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/circleci_light.svg b/packages/desktop/src/assets/file-icons/circleci_light.svg new file mode 100644 index 000000000..cd45d352c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/circleci_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/citation.svg b/packages/desktop/src/assets/file-icons/citation.svg new file mode 100644 index 000000000..eb7fcaa92 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/citation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/clangd.svg b/packages/desktop/src/assets/file-icons/clangd.svg new file mode 100644 index 000000000..f6742e9ae --- /dev/null +++ b/packages/desktop/src/assets/file-icons/clangd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/claude.svg b/packages/desktop/src/assets/file-icons/claude.svg new file mode 100644 index 000000000..fa01860fd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/claude.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cline.svg b/packages/desktop/src/assets/file-icons/cline.svg new file mode 100644 index 000000000..c41f59d83 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/clojure.svg b/packages/desktop/src/assets/file-icons/clojure.svg new file mode 100644 index 000000000..1b22aed22 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/clojure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cloudfoundry.svg b/packages/desktop/src/assets/file-icons/cloudfoundry.svg new file mode 100644 index 000000000..3251ca469 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cloudfoundry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cmake.svg b/packages/desktop/src/assets/file-icons/cmake.svg new file mode 100644 index 000000000..aa217964f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cmake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/coala.svg b/packages/desktop/src/assets/file-icons/coala.svg new file mode 100644 index 000000000..1e84b8f5e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/coala.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cobol.svg b/packages/desktop/src/assets/file-icons/cobol.svg new file mode 100644 index 000000000..220b0ab48 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cobol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/coconut.svg b/packages/desktop/src/assets/file-icons/coconut.svg new file mode 100644 index 000000000..98355a662 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/coconut.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/code-climate.svg b/packages/desktop/src/assets/file-icons/code-climate.svg new file mode 100644 index 000000000..97cbb4e8f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/code-climate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/code-climate_light.svg b/packages/desktop/src/assets/file-icons/code-climate_light.svg new file mode 100644 index 000000000..dd18ba52b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/code-climate_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/codecov.svg b/packages/desktop/src/assets/file-icons/codecov.svg new file mode 100644 index 000000000..9a8d4eb7b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/codecov.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/codeowners.svg b/packages/desktop/src/assets/file-icons/codeowners.svg new file mode 100644 index 000000000..553c60f5a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/codeowners.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/coderabbit-ai.svg b/packages/desktop/src/assets/file-icons/coderabbit-ai.svg new file mode 100644 index 000000000..5d1b6c9c2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/coderabbit-ai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/coffee.svg b/packages/desktop/src/assets/file-icons/coffee.svg new file mode 100644 index 000000000..f81b65c79 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/coffee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/coldfusion.svg b/packages/desktop/src/assets/file-icons/coldfusion.svg new file mode 100644 index 000000000..d018b6652 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/coldfusion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/coloredpetrinets.svg b/packages/desktop/src/assets/file-icons/coloredpetrinets.svg new file mode 100644 index 000000000..bd612618e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/coloredpetrinets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/command.svg b/packages/desktop/src/assets/file-icons/command.svg new file mode 100644 index 000000000..b5a7913d2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/command.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/commitizen.svg b/packages/desktop/src/assets/file-icons/commitizen.svg new file mode 100644 index 000000000..2467d2c71 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/commitizen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/commitlint.svg b/packages/desktop/src/assets/file-icons/commitlint.svg new file mode 100644 index 000000000..c42144a42 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/commitlint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/concourse.svg b/packages/desktop/src/assets/file-icons/concourse.svg new file mode 100644 index 000000000..c34f23eb8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/concourse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/conduct.svg b/packages/desktop/src/assets/file-icons/conduct.svg new file mode 100644 index 000000000..97eb6fc54 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/conduct.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/console.svg b/packages/desktop/src/assets/file-icons/console.svg new file mode 100644 index 000000000..75f90b733 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/console.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/contentlayer.svg b/packages/desktop/src/assets/file-icons/contentlayer.svg new file mode 100644 index 000000000..441f6904e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/contentlayer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/context.svg b/packages/desktop/src/assets/file-icons/context.svg new file mode 100644 index 000000000..1b8200ed4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/context.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/contributing.svg b/packages/desktop/src/assets/file-icons/contributing.svg new file mode 100644 index 000000000..13666a020 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/contributing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/controller.svg b/packages/desktop/src/assets/file-icons/controller.svg new file mode 100644 index 000000000..9f99264b9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/controller.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/copilot.svg b/packages/desktop/src/assets/file-icons/copilot.svg new file mode 100644 index 000000000..24e89af0b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/copilot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/copilot_light.svg b/packages/desktop/src/assets/file-icons/copilot_light.svg new file mode 100644 index 000000000..9bc56ea84 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/copilot_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cpp.svg b/packages/desktop/src/assets/file-icons/cpp.svg new file mode 100644 index 000000000..16534acac --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cpp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/craco.svg b/packages/desktop/src/assets/file-icons/craco.svg new file mode 100644 index 000000000..96ba45846 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/craco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/credits.svg b/packages/desktop/src/assets/file-icons/credits.svg new file mode 100644 index 000000000..b67c55a8c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/credits.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/crystal.svg b/packages/desktop/src/assets/file-icons/crystal.svg new file mode 100644 index 000000000..e3796bfa5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/crystal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/crystal_light.svg b/packages/desktop/src/assets/file-icons/crystal_light.svg new file mode 100644 index 000000000..ca387f4e9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/crystal_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/csharp.svg b/packages/desktop/src/assets/file-icons/csharp.svg new file mode 100644 index 000000000..02b1be3e1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/csharp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/css-map.svg b/packages/desktop/src/assets/file-icons/css-map.svg new file mode 100644 index 000000000..55b74c088 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/css-map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/css.svg b/packages/desktop/src/assets/file-icons/css.svg new file mode 100644 index 000000000..1acad1be2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/css.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cucumber.svg b/packages/desktop/src/assets/file-icons/cucumber.svg new file mode 100644 index 000000000..052fd2955 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cucumber.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cuda.svg b/packages/desktop/src/assets/file-icons/cuda.svg new file mode 100644 index 000000000..cc57a60fc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cuda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/cursor.svg b/packages/desktop/src/assets/file-icons/cursor.svg new file mode 100644 index 000000000..b754147ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cursor.svg @@ -0,0 +1 @@ + diff --git a/packages/desktop/src/assets/file-icons/cursor_light.svg b/packages/desktop/src/assets/file-icons/cursor_light.svg new file mode 100644 index 000000000..f65b6461a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cursor_light.svg @@ -0,0 +1 @@ + diff --git a/packages/desktop/src/assets/file-icons/cypress.svg b/packages/desktop/src/assets/file-icons/cypress.svg new file mode 100644 index 000000000..35274d3a0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/cypress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/d.svg b/packages/desktop/src/assets/file-icons/d.svg new file mode 100644 index 000000000..3207725da --- /dev/null +++ b/packages/desktop/src/assets/file-icons/d.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dart.svg b/packages/desktop/src/assets/file-icons/dart.svg new file mode 100644 index 000000000..04b22d09c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dart_generated.svg b/packages/desktop/src/assets/file-icons/dart_generated.svg new file mode 100644 index 000000000..8f64f5f02 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dart_generated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/database.svg b/packages/desktop/src/assets/file-icons/database.svg new file mode 100644 index 000000000..b10723460 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/deepsource.svg b/packages/desktop/src/assets/file-icons/deepsource.svg new file mode 100644 index 000000000..d70fd467c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/deepsource.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/denizenscript.svg b/packages/desktop/src/assets/file-icons/denizenscript.svg new file mode 100644 index 000000000..2debb9da2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/denizenscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/deno.svg b/packages/desktop/src/assets/file-icons/deno.svg new file mode 100644 index 000000000..344a12e40 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/deno.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/deno_light.svg b/packages/desktop/src/assets/file-icons/deno_light.svg new file mode 100644 index 000000000..ee82ea7c7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/deno_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dependabot.svg b/packages/desktop/src/assets/file-icons/dependabot.svg new file mode 100644 index 000000000..3b101a12f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dependabot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dependencies-update.svg b/packages/desktop/src/assets/file-icons/dependencies-update.svg new file mode 100644 index 000000000..b85ad9e5f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dependencies-update.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dhall.svg b/packages/desktop/src/assets/file-icons/dhall.svg new file mode 100644 index 000000000..0be94119d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dhall.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/diff.svg b/packages/desktop/src/assets/file-icons/diff.svg new file mode 100644 index 000000000..ea3068c60 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/diff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dinophp.svg b/packages/desktop/src/assets/file-icons/dinophp.svg new file mode 100644 index 000000000..8e6ef29af --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dinophp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/disc.svg b/packages/desktop/src/assets/file-icons/disc.svg new file mode 100644 index 000000000..b0d74dc25 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/disc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/django.svg b/packages/desktop/src/assets/file-icons/django.svg new file mode 100644 index 000000000..64c9ee339 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/django.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dll.svg b/packages/desktop/src/assets/file-icons/dll.svg new file mode 100644 index 000000000..0646cbb03 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dll.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/docker.svg b/packages/desktop/src/assets/file-icons/docker.svg new file mode 100644 index 000000000..7d6a1a525 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/doctex-installer.svg b/packages/desktop/src/assets/file-icons/doctex-installer.svg new file mode 100644 index 000000000..5bdb4439f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/doctex-installer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/document.svg b/packages/desktop/src/assets/file-icons/document.svg new file mode 100644 index 000000000..a717956b7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dotjs.svg b/packages/desktop/src/assets/file-icons/dotjs.svg new file mode 100644 index 000000000..5ac893c6a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dotjs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/drawio.svg b/packages/desktop/src/assets/file-icons/drawio.svg new file mode 100644 index 000000000..8ef1bcb72 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/drawio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/drizzle.svg b/packages/desktop/src/assets/file-icons/drizzle.svg new file mode 100644 index 000000000..72f1b21aa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/drizzle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/drone.svg b/packages/desktop/src/assets/file-icons/drone.svg new file mode 100644 index 000000000..5e3082d31 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/drone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/drone_light.svg b/packages/desktop/src/assets/file-icons/drone_light.svg new file mode 100644 index 000000000..ce3ad253b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/drone_light.svg @@ -0,0 +1,4 @@ + + + diff --git a/packages/desktop/src/assets/file-icons/duc.svg b/packages/desktop/src/assets/file-icons/duc.svg new file mode 100644 index 000000000..1d85b34ad --- /dev/null +++ b/packages/desktop/src/assets/file-icons/duc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/dune.svg b/packages/desktop/src/assets/file-icons/dune.svg new file mode 100644 index 000000000..1a35e7001 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/dune.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/edge.svg b/packages/desktop/src/assets/file-icons/edge.svg new file mode 100644 index 000000000..298b55890 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/edge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/editorconfig.svg b/packages/desktop/src/assets/file-icons/editorconfig.svg new file mode 100644 index 000000000..ba528993d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/editorconfig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ejs.svg b/packages/desktop/src/assets/file-icons/ejs.svg new file mode 100644 index 000000000..6ead40eba --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/elixir.svg b/packages/desktop/src/assets/file-icons/elixir.svg new file mode 100644 index 000000000..d40f90b47 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/elixir.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/elm.svg b/packages/desktop/src/assets/file-icons/elm.svg new file mode 100644 index 000000000..c17b74d7d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/elm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/email.svg b/packages/desktop/src/assets/file-icons/email.svg new file mode 100644 index 000000000..a603e1477 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ember.svg b/packages/desktop/src/assets/file-icons/ember.svg new file mode 100644 index 000000000..c16cef13c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ember.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/epub.svg b/packages/desktop/src/assets/file-icons/epub.svg new file mode 100644 index 000000000..98f11d490 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/epub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/erlang.svg b/packages/desktop/src/assets/file-icons/erlang.svg new file mode 100644 index 000000000..41025d6dc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/erlang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/esbuild.svg b/packages/desktop/src/assets/file-icons/esbuild.svg new file mode 100644 index 000000000..e682d6b10 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/esbuild.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/eslint.svg b/packages/desktop/src/assets/file-icons/eslint.svg new file mode 100644 index 000000000..54fe8cc22 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/eslint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/excalidraw.svg b/packages/desktop/src/assets/file-icons/excalidraw.svg new file mode 100644 index 000000000..c1e1bca9c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/excalidraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/exe.svg b/packages/desktop/src/assets/file-icons/exe.svg new file mode 100644 index 000000000..dde947d80 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/exe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/fastlane.svg b/packages/desktop/src/assets/file-icons/fastlane.svg new file mode 100644 index 000000000..44d042fbd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/fastlane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/favicon.svg b/packages/desktop/src/assets/file-icons/favicon.svg new file mode 100644 index 000000000..21abf661b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/figma.svg b/packages/desktop/src/assets/file-icons/figma.svg new file mode 100644 index 000000000..db4522bec --- /dev/null +++ b/packages/desktop/src/assets/file-icons/figma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/firebase.svg b/packages/desktop/src/assets/file-icons/firebase.svg new file mode 100644 index 000000000..bb3b63cb8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/firebase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/flash.svg b/packages/desktop/src/assets/file-icons/flash.svg new file mode 100644 index 000000000..abd6e01e9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/flash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/flow.svg b/packages/desktop/src/assets/file-icons/flow.svg new file mode 100644 index 000000000..05919810f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/flow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-admin-open.svg b/packages/desktop/src/assets/file-icons/folder-admin-open.svg new file mode 100644 index 000000000..5e77464ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-admin-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-admin.svg b/packages/desktop/src/assets/file-icons/folder-admin.svg new file mode 100644 index 000000000..f8d1ea13c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-admin.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-android-open.svg b/packages/desktop/src/assets/file-icons/folder-android-open.svg new file mode 100644 index 000000000..cdd8376ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-android-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-android.svg b/packages/desktop/src/assets/file-icons/folder-android.svg new file mode 100644 index 000000000..7ee8a4679 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-android.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-angular-open.svg b/packages/desktop/src/assets/file-icons/folder-angular-open.svg new file mode 100644 index 000000000..60c604e84 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-angular-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-angular.svg b/packages/desktop/src/assets/file-icons/folder-angular.svg new file mode 100644 index 000000000..3d8c87d32 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-angular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-animation-open.svg b/packages/desktop/src/assets/file-icons/folder-animation-open.svg new file mode 100644 index 000000000..637a3af6b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-animation-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-animation.svg b/packages/desktop/src/assets/file-icons/folder-animation.svg new file mode 100644 index 000000000..6b5bb691f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-animation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ansible-open.svg b/packages/desktop/src/assets/file-icons/folder-ansible-open.svg new file mode 100644 index 000000000..96df458dd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ansible-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ansible.svg b/packages/desktop/src/assets/file-icons/folder-ansible.svg new file mode 100644 index 000000000..f4303155b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ansible.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-api-open.svg b/packages/desktop/src/assets/file-icons/folder-api-open.svg new file mode 100644 index 000000000..ac3edb976 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-api-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-api.svg b/packages/desktop/src/assets/file-icons/folder-api.svg new file mode 100644 index 000000000..bf1d64c54 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-api.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-apollo-open.svg b/packages/desktop/src/assets/file-icons/folder-apollo-open.svg new file mode 100644 index 000000000..f0febaf95 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-apollo-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-apollo.svg b/packages/desktop/src/assets/file-icons/folder-apollo.svg new file mode 100644 index 000000000..7eb610781 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-apollo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-app-open.svg b/packages/desktop/src/assets/file-icons/folder-app-open.svg new file mode 100644 index 000000000..c9da6a7bb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-app-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-app.svg b/packages/desktop/src/assets/file-icons/folder-app.svg new file mode 100644 index 000000000..d0e37f19d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-archive-open.svg b/packages/desktop/src/assets/file-icons/folder-archive-open.svg new file mode 100644 index 000000000..6af2a9f0a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-archive-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-archive.svg b/packages/desktop/src/assets/file-icons/folder-archive.svg new file mode 100644 index 000000000..b018654b2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-archive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-astro-open.svg b/packages/desktop/src/assets/file-icons/folder-astro-open.svg new file mode 100644 index 000000000..282a3ce0a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-astro-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-astro.svg b/packages/desktop/src/assets/file-icons/folder-astro.svg new file mode 100644 index 000000000..b324019e7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-astro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-atom-open.svg b/packages/desktop/src/assets/file-icons/folder-atom-open.svg new file mode 100644 index 000000000..5558d1841 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-atom-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-atom.svg b/packages/desktop/src/assets/file-icons/folder-atom.svg new file mode 100644 index 000000000..c272f6ecd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-atom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-attachment-open.svg b/packages/desktop/src/assets/file-icons/folder-attachment-open.svg new file mode 100644 index 000000000..7a9af66f1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-attachment-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-attachment.svg b/packages/desktop/src/assets/file-icons/folder-attachment.svg new file mode 100644 index 000000000..3b9992e31 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-attachment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-audio-open.svg b/packages/desktop/src/assets/file-icons/folder-audio-open.svg new file mode 100644 index 000000000..6d9b23836 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-audio-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-audio.svg b/packages/desktop/src/assets/file-icons/folder-audio.svg new file mode 100644 index 000000000..e3d0db3d0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-audio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-aurelia-open.svg b/packages/desktop/src/assets/file-icons/folder-aurelia-open.svg new file mode 100644 index 000000000..bacae248a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-aurelia-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-aurelia.svg b/packages/desktop/src/assets/file-icons/folder-aurelia.svg new file mode 100644 index 000000000..61ee59ed3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-aurelia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-aws-open.svg b/packages/desktop/src/assets/file-icons/folder-aws-open.svg new file mode 100644 index 000000000..9e530d4cf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-aws-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-aws.svg b/packages/desktop/src/assets/file-icons/folder-aws.svg new file mode 100644 index 000000000..769755d14 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-aws.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-azure-pipelines-open.svg b/packages/desktop/src/assets/file-icons/folder-azure-pipelines-open.svg new file mode 100644 index 000000000..9253cd5a6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-azure-pipelines-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-azure-pipelines.svg b/packages/desktop/src/assets/file-icons/folder-azure-pipelines.svg new file mode 100644 index 000000000..a0fef25f9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-azure-pipelines.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-backup-open.svg b/packages/desktop/src/assets/file-icons/folder-backup-open.svg new file mode 100644 index 000000000..c2914ee22 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-backup-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-backup.svg b/packages/desktop/src/assets/file-icons/folder-backup.svg new file mode 100644 index 000000000..aa9a6c942 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-backup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-base-open.svg b/packages/desktop/src/assets/file-icons/folder-base-open.svg new file mode 100644 index 000000000..e84bc36c1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-base-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-base.svg b/packages/desktop/src/assets/file-icons/folder-base.svg new file mode 100644 index 000000000..194410083 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-base.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-batch-open.svg b/packages/desktop/src/assets/file-icons/folder-batch-open.svg new file mode 100644 index 000000000..1db45e181 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-batch-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-batch.svg b/packages/desktop/src/assets/file-icons/folder-batch.svg new file mode 100644 index 000000000..c44a66bc2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-batch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-benchmark-open.svg b/packages/desktop/src/assets/file-icons/folder-benchmark-open.svg new file mode 100644 index 000000000..fa7b3ea60 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-benchmark-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-benchmark.svg b/packages/desktop/src/assets/file-icons/folder-benchmark.svg new file mode 100644 index 000000000..8291d6847 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-benchmark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bibliography-open.svg b/packages/desktop/src/assets/file-icons/folder-bibliography-open.svg new file mode 100644 index 000000000..81b6cde63 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bibliography-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bibliography.svg b/packages/desktop/src/assets/file-icons/folder-bibliography.svg new file mode 100644 index 000000000..aa1e92a91 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bibliography.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bicep-open.svg b/packages/desktop/src/assets/file-icons/folder-bicep-open.svg new file mode 100644 index 000000000..72519ce9d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bicep-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bicep.svg b/packages/desktop/src/assets/file-icons/folder-bicep.svg new file mode 100644 index 000000000..b336ff5be --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bicep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-blender-open.svg b/packages/desktop/src/assets/file-icons/folder-blender-open.svg new file mode 100644 index 000000000..1c80d73a6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-blender-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-blender.svg b/packages/desktop/src/assets/file-icons/folder-blender.svg new file mode 100644 index 000000000..6f56dce4d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-blender.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bloc-open.svg b/packages/desktop/src/assets/file-icons/folder-bloc-open.svg new file mode 100644 index 000000000..8833e5f3c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bloc-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bloc.svg b/packages/desktop/src/assets/file-icons/folder-bloc.svg new file mode 100644 index 000000000..cf08363c2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bloc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bower-open.svg b/packages/desktop/src/assets/file-icons/folder-bower-open.svg new file mode 100644 index 000000000..659f87c98 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bower-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-bower.svg b/packages/desktop/src/assets/file-icons/folder-bower.svg new file mode 100644 index 000000000..6bfd65491 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-bower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-buildkite-open.svg b/packages/desktop/src/assets/file-icons/folder-buildkite-open.svg new file mode 100644 index 000000000..872db6445 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-buildkite-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-buildkite.svg b/packages/desktop/src/assets/file-icons/folder-buildkite.svg new file mode 100644 index 000000000..9512b40a8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-buildkite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cart-open.svg b/packages/desktop/src/assets/file-icons/folder-cart-open.svg new file mode 100644 index 000000000..4471a778e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cart-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cart.svg b/packages/desktop/src/assets/file-icons/folder-cart.svg new file mode 100644 index 000000000..d19a62790 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-changesets-open.svg b/packages/desktop/src/assets/file-icons/folder-changesets-open.svg new file mode 100644 index 000000000..c38923331 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-changesets-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-changesets.svg b/packages/desktop/src/assets/file-icons/folder-changesets.svg new file mode 100644 index 000000000..fc071f48d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-changesets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ci-open.svg b/packages/desktop/src/assets/file-icons/folder-ci-open.svg new file mode 100644 index 000000000..57ac1ba8f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ci-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ci.svg b/packages/desktop/src/assets/file-icons/folder-ci.svg new file mode 100644 index 000000000..4fdc2edea --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ci.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-circleci-open.svg b/packages/desktop/src/assets/file-icons/folder-circleci-open.svg new file mode 100644 index 000000000..9e323ff9c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-circleci-open.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-circleci.svg b/packages/desktop/src/assets/file-icons/folder-circleci.svg new file mode 100644 index 000000000..ef3251857 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-circleci.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-class-open.svg b/packages/desktop/src/assets/file-icons/folder-class-open.svg new file mode 100644 index 000000000..9c5b1017a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-class-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-class.svg b/packages/desktop/src/assets/file-icons/folder-class.svg new file mode 100644 index 000000000..8225cf14b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-class.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-claude-open.svg b/packages/desktop/src/assets/file-icons/folder-claude-open.svg new file mode 100644 index 000000000..1a52afdcc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-claude-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-claude.svg b/packages/desktop/src/assets/file-icons/folder-claude.svg new file mode 100644 index 000000000..0c85a134a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-claude.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-client-open.svg b/packages/desktop/src/assets/file-icons/folder-client-open.svg new file mode 100644 index 000000000..ceec8f1e2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-client-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-client.svg b/packages/desktop/src/assets/file-icons/folder-client.svg new file mode 100644 index 000000000..fbfaee77b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-client.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cline-open.svg b/packages/desktop/src/assets/file-icons/folder-cline-open.svg new file mode 100644 index 000000000..67ef7a261 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cline-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cline.svg b/packages/desktop/src/assets/file-icons/folder-cline.svg new file mode 100644 index 000000000..8fec96d74 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cloud-functions-open.svg b/packages/desktop/src/assets/file-icons/folder-cloud-functions-open.svg new file mode 100644 index 000000000..b3ce0e4c6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cloud-functions-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cloud-functions.svg b/packages/desktop/src/assets/file-icons/folder-cloud-functions.svg new file mode 100644 index 000000000..8dac84a48 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cloud-functions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cloudflare-open.svg b/packages/desktop/src/assets/file-icons/folder-cloudflare-open.svg new file mode 100644 index 000000000..d7022abf8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cloudflare-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cloudflare.svg b/packages/desktop/src/assets/file-icons/folder-cloudflare.svg new file mode 100644 index 000000000..0cc444ea8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cloudflare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cluster-open.svg b/packages/desktop/src/assets/file-icons/folder-cluster-open.svg new file mode 100644 index 000000000..368843309 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cluster-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cluster.svg b/packages/desktop/src/assets/file-icons/folder-cluster.svg new file mode 100644 index 000000000..77f5b8a39 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cluster.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cobol-open.svg b/packages/desktop/src/assets/file-icons/folder-cobol-open.svg new file mode 100644 index 000000000..0f5e31528 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cobol-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cobol.svg b/packages/desktop/src/assets/file-icons/folder-cobol.svg new file mode 100644 index 000000000..ea0f54d13 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cobol.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-command-open.svg b/packages/desktop/src/assets/file-icons/folder-command-open.svg new file mode 100644 index 000000000..ca9d4dff0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-command-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-command.svg b/packages/desktop/src/assets/file-icons/folder-command.svg new file mode 100644 index 000000000..4015207b5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-command.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-components-open.svg b/packages/desktop/src/assets/file-icons/folder-components-open.svg new file mode 100644 index 000000000..2f55b72fe --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-components-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-components.svg b/packages/desktop/src/assets/file-icons/folder-components.svg new file mode 100644 index 000000000..983833e56 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-components.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-config-open.svg b/packages/desktop/src/assets/file-icons/folder-config-open.svg new file mode 100644 index 000000000..3b4ec5ae0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-config-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-config.svg b/packages/desktop/src/assets/file-icons/folder-config.svg new file mode 100644 index 000000000..8519910c2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-config.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-connection-open.svg b/packages/desktop/src/assets/file-icons/folder-connection-open.svg new file mode 100644 index 000000000..4d14f0962 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-connection-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-connection.svg b/packages/desktop/src/assets/file-icons/folder-connection.svg new file mode 100644 index 000000000..f46d5264c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-connection.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-console-open.svg b/packages/desktop/src/assets/file-icons/folder-console-open.svg new file mode 100644 index 000000000..99384a809 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-console-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-console.svg b/packages/desktop/src/assets/file-icons/folder-console.svg new file mode 100644 index 000000000..301b10d73 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-console.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-constant-open.svg b/packages/desktop/src/assets/file-icons/folder-constant-open.svg new file mode 100644 index 000000000..9e8791d45 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-constant-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-constant.svg b/packages/desktop/src/assets/file-icons/folder-constant.svg new file mode 100644 index 000000000..99a22917a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-constant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-container-open.svg b/packages/desktop/src/assets/file-icons/folder-container-open.svg new file mode 100644 index 000000000..9db833471 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-container-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-container.svg b/packages/desktop/src/assets/file-icons/folder-container.svg new file mode 100644 index 000000000..3ea03c165 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-container.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-content-open.svg b/packages/desktop/src/assets/file-icons/folder-content-open.svg new file mode 100644 index 000000000..a924b27aa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-content-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-content.svg b/packages/desktop/src/assets/file-icons/folder-content.svg new file mode 100644 index 000000000..23f57d243 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-content.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-context-open.svg b/packages/desktop/src/assets/file-icons/folder-context-open.svg new file mode 100644 index 000000000..a631e02e9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-context-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-context.svg b/packages/desktop/src/assets/file-icons/folder-context.svg new file mode 100644 index 000000000..bee74c196 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-context.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-contract-open.svg b/packages/desktop/src/assets/file-icons/folder-contract-open.svg new file mode 100644 index 000000000..6878c76f6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-contract-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-contract.svg b/packages/desktop/src/assets/file-icons/folder-contract.svg new file mode 100644 index 000000000..2ea0abb11 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-controller-open.svg b/packages/desktop/src/assets/file-icons/folder-controller-open.svg new file mode 100644 index 000000000..a732ed1a0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-controller-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-controller.svg b/packages/desktop/src/assets/file-icons/folder-controller.svg new file mode 100644 index 000000000..f98cd6fea --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-controller.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-core-open.svg b/packages/desktop/src/assets/file-icons/folder-core-open.svg new file mode 100644 index 000000000..34e7a82d2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-core-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-core.svg b/packages/desktop/src/assets/file-icons/folder-core.svg new file mode 100644 index 000000000..f7cfae6ef --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-core.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-coverage-open.svg b/packages/desktop/src/assets/file-icons/folder-coverage-open.svg new file mode 100644 index 000000000..5d47b2f0b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-coverage-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-coverage.svg b/packages/desktop/src/assets/file-icons/folder-coverage.svg new file mode 100644 index 000000000..7a75f7166 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-coverage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-css-open.svg b/packages/desktop/src/assets/file-icons/folder-css-open.svg new file mode 100644 index 000000000..ef79791fc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-css-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-css.svg b/packages/desktop/src/assets/file-icons/folder-css.svg new file mode 100644 index 000000000..4ff433e92 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-css.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cursor-open.svg b/packages/desktop/src/assets/file-icons/folder-cursor-open.svg new file mode 100644 index 000000000..b6e106848 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cursor-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cursor-open_light.svg b/packages/desktop/src/assets/file-icons/folder-cursor-open_light.svg new file mode 100644 index 000000000..c960112de --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cursor-open_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cursor.svg b/packages/desktop/src/assets/file-icons/folder-cursor.svg new file mode 100644 index 000000000..46726088c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cursor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cursor_light.svg b/packages/desktop/src/assets/file-icons/folder-cursor_light.svg new file mode 100644 index 000000000..391be56af --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cursor_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-custom-open.svg b/packages/desktop/src/assets/file-icons/folder-custom-open.svg new file mode 100644 index 000000000..fe747d217 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-custom-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-custom.svg b/packages/desktop/src/assets/file-icons/folder-custom.svg new file mode 100644 index 000000000..02ac61100 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-custom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cypress-open.svg b/packages/desktop/src/assets/file-icons/folder-cypress-open.svg new file mode 100644 index 000000000..2a18521a2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cypress-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-cypress.svg b/packages/desktop/src/assets/file-icons/folder-cypress.svg new file mode 100644 index 000000000..39460e229 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-cypress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-dart-open.svg b/packages/desktop/src/assets/file-icons/folder-dart-open.svg new file mode 100644 index 000000000..8eadca02e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-dart-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-dart.svg b/packages/desktop/src/assets/file-icons/folder-dart.svg new file mode 100644 index 000000000..0de15182d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-dart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-database-open.svg b/packages/desktop/src/assets/file-icons/folder-database-open.svg new file mode 100644 index 000000000..5bde14607 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-database-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-database.svg b/packages/desktop/src/assets/file-icons/folder-database.svg new file mode 100644 index 000000000..b256e645c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-debug-open.svg b/packages/desktop/src/assets/file-icons/folder-debug-open.svg new file mode 100644 index 000000000..a0c16a741 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-debug-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-debug.svg b/packages/desktop/src/assets/file-icons/folder-debug.svg new file mode 100644 index 000000000..1099873ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-debug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-decorators-open.svg b/packages/desktop/src/assets/file-icons/folder-decorators-open.svg new file mode 100644 index 000000000..ff42ddeec --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-decorators-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-decorators.svg b/packages/desktop/src/assets/file-icons/folder-decorators.svg new file mode 100644 index 000000000..fcc746dc5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-decorators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-delta-open.svg b/packages/desktop/src/assets/file-icons/folder-delta-open.svg new file mode 100644 index 000000000..c2b56636e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-delta-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-delta.svg b/packages/desktop/src/assets/file-icons/folder-delta.svg new file mode 100644 index 000000000..cdda479a1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-delta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-desktop-open.svg b/packages/desktop/src/assets/file-icons/folder-desktop-open.svg new file mode 100644 index 000000000..880ca769b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-desktop-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-desktop.svg b/packages/desktop/src/assets/file-icons/folder-desktop.svg new file mode 100644 index 000000000..5a20b4960 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-desktop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-directive-open.svg b/packages/desktop/src/assets/file-icons/folder-directive-open.svg new file mode 100644 index 000000000..71946e510 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-directive-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-directive.svg b/packages/desktop/src/assets/file-icons/folder-directive.svg new file mode 100644 index 000000000..4197c6803 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-directive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-dist-open.svg b/packages/desktop/src/assets/file-icons/folder-dist-open.svg new file mode 100644 index 000000000..553cef1cb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-dist-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-dist.svg b/packages/desktop/src/assets/file-icons/folder-dist.svg new file mode 100644 index 000000000..995580fda --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-dist.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-docker-open.svg b/packages/desktop/src/assets/file-icons/folder-docker-open.svg new file mode 100644 index 000000000..a76e97b94 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-docker-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-docker.svg b/packages/desktop/src/assets/file-icons/folder-docker.svg new file mode 100644 index 000000000..c5b094999 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-docs-open.svg b/packages/desktop/src/assets/file-icons/folder-docs-open.svg new file mode 100644 index 000000000..357776702 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-docs-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-docs.svg b/packages/desktop/src/assets/file-icons/folder-docs.svg new file mode 100644 index 000000000..246a05d2e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-docs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-download-open.svg b/packages/desktop/src/assets/file-icons/folder-download-open.svg new file mode 100644 index 000000000..ddb9c2416 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-download-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-download.svg b/packages/desktop/src/assets/file-icons/folder-download.svg new file mode 100644 index 000000000..34105b932 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-drizzle-open.svg b/packages/desktop/src/assets/file-icons/folder-drizzle-open.svg new file mode 100644 index 000000000..5f0cd591a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-drizzle-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-drizzle.svg b/packages/desktop/src/assets/file-icons/folder-drizzle.svg new file mode 100644 index 000000000..d01a18618 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-drizzle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-dump-open.svg b/packages/desktop/src/assets/file-icons/folder-dump-open.svg new file mode 100644 index 000000000..b4de7f861 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-dump-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-dump.svg b/packages/desktop/src/assets/file-icons/folder-dump.svg new file mode 100644 index 000000000..8178fcc03 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-dump.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-element-open.svg b/packages/desktop/src/assets/file-icons/folder-element-open.svg new file mode 100644 index 000000000..32dc7cd87 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-element-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-element.svg b/packages/desktop/src/assets/file-icons/folder-element.svg new file mode 100644 index 000000000..d67a85ade --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-element.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-enum-open.svg b/packages/desktop/src/assets/file-icons/folder-enum-open.svg new file mode 100644 index 000000000..92782b157 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-enum-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-enum.svg b/packages/desktop/src/assets/file-icons/folder-enum.svg new file mode 100644 index 000000000..fa852efd8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-enum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-environment-open.svg b/packages/desktop/src/assets/file-icons/folder-environment-open.svg new file mode 100644 index 000000000..3b56abb18 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-environment-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-environment.svg b/packages/desktop/src/assets/file-icons/folder-environment.svg new file mode 100644 index 000000000..9cc1f2e00 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-environment.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-error-open.svg b/packages/desktop/src/assets/file-icons/folder-error-open.svg new file mode 100644 index 000000000..81f0ffc20 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-error-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-error.svg b/packages/desktop/src/assets/file-icons/folder-error.svg new file mode 100644 index 000000000..3bd1d85d6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-event-open.svg b/packages/desktop/src/assets/file-icons/folder-event-open.svg new file mode 100644 index 000000000..28c018d44 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-event-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-event.svg b/packages/desktop/src/assets/file-icons/folder-event.svg new file mode 100644 index 000000000..f54dea6d8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-event.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-examples-open.svg b/packages/desktop/src/assets/file-icons/folder-examples-open.svg new file mode 100644 index 000000000..78c77a918 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-examples-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-examples.svg b/packages/desktop/src/assets/file-icons/folder-examples.svg new file mode 100644 index 000000000..fba8885ab --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-examples.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-expo-open.svg b/packages/desktop/src/assets/file-icons/folder-expo-open.svg new file mode 100644 index 000000000..614435aba --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-expo-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-expo.svg b/packages/desktop/src/assets/file-icons/folder-expo.svg new file mode 100644 index 000000000..820a998b6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-expo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-export-open.svg b/packages/desktop/src/assets/file-icons/folder-export-open.svg new file mode 100644 index 000000000..f03eb1bba --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-export-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-export.svg b/packages/desktop/src/assets/file-icons/folder-export.svg new file mode 100644 index 000000000..1b3e3abe7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-export.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-fastlane-open.svg b/packages/desktop/src/assets/file-icons/folder-fastlane-open.svg new file mode 100644 index 000000000..5efb2acad --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-fastlane-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-fastlane.svg b/packages/desktop/src/assets/file-icons/folder-fastlane.svg new file mode 100644 index 000000000..eb9056694 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-fastlane.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-favicon-open.svg b/packages/desktop/src/assets/file-icons/folder-favicon-open.svg new file mode 100644 index 000000000..b716525ab --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-favicon-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-favicon.svg b/packages/desktop/src/assets/file-icons/folder-favicon.svg new file mode 100644 index 000000000..6ef90d91c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-firebase-open.svg b/packages/desktop/src/assets/file-icons/folder-firebase-open.svg new file mode 100644 index 000000000..7149b48f6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-firebase-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-firebase.svg b/packages/desktop/src/assets/file-icons/folder-firebase.svg new file mode 100644 index 000000000..9eeac86b9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-firebase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-firestore-open.svg b/packages/desktop/src/assets/file-icons/folder-firestore-open.svg new file mode 100644 index 000000000..a3e6edac7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-firestore-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-firestore.svg b/packages/desktop/src/assets/file-icons/folder-firestore.svg new file mode 100644 index 000000000..cb1249af0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-firestore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-flow-open.svg b/packages/desktop/src/assets/file-icons/folder-flow-open.svg new file mode 100644 index 000000000..a72dd76b7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-flow-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-flow.svg b/packages/desktop/src/assets/file-icons/folder-flow.svg new file mode 100644 index 000000000..015518922 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-flow.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-flutter-open.svg b/packages/desktop/src/assets/file-icons/folder-flutter-open.svg new file mode 100644 index 000000000..b95a8cee7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-flutter-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-flutter.svg b/packages/desktop/src/assets/file-icons/folder-flutter.svg new file mode 100644 index 000000000..e5ffced14 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-flutter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-font-open.svg b/packages/desktop/src/assets/file-icons/folder-font-open.svg new file mode 100644 index 000000000..1a91f0b19 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-font-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-font.svg b/packages/desktop/src/assets/file-icons/folder-font.svg new file mode 100644 index 000000000..0115b7301 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-font.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-forgejo-open.svg b/packages/desktop/src/assets/file-icons/folder-forgejo-open.svg new file mode 100644 index 000000000..a9762228e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-forgejo-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-forgejo.svg b/packages/desktop/src/assets/file-icons/folder-forgejo.svg new file mode 100644 index 000000000..0eaccff60 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-forgejo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-functions-open.svg b/packages/desktop/src/assets/file-icons/folder-functions-open.svg new file mode 100644 index 000000000..00d6dc442 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-functions-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-functions.svg b/packages/desktop/src/assets/file-icons/folder-functions.svg new file mode 100644 index 000000000..01a938514 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-functions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gamemaker-open.svg b/packages/desktop/src/assets/file-icons/folder-gamemaker-open.svg new file mode 100644 index 000000000..caf9a82ea --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gamemaker-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gamemaker.svg b/packages/desktop/src/assets/file-icons/folder-gamemaker.svg new file mode 100644 index 000000000..625feb382 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gamemaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-generator-open.svg b/packages/desktop/src/assets/file-icons/folder-generator-open.svg new file mode 100644 index 000000000..43b504732 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-generator-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-generator.svg b/packages/desktop/src/assets/file-icons/folder-generator.svg new file mode 100644 index 000000000..5446582e9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-generator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gh-workflows-open.svg b/packages/desktop/src/assets/file-icons/folder-gh-workflows-open.svg new file mode 100644 index 000000000..3ae400ed9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gh-workflows-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-gh-workflows.svg b/packages/desktop/src/assets/file-icons/folder-gh-workflows.svg new file mode 100644 index 000000000..3a868cca9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gh-workflows.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-git-open.svg b/packages/desktop/src/assets/file-icons/folder-git-open.svg new file mode 100644 index 000000000..90be1c118 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-git-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-git.svg b/packages/desktop/src/assets/file-icons/folder-git.svg new file mode 100644 index 000000000..2ca4db551 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-git.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gitea-open.svg b/packages/desktop/src/assets/file-icons/folder-gitea-open.svg new file mode 100644 index 000000000..239800c47 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gitea-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gitea.svg b/packages/desktop/src/assets/file-icons/folder-gitea.svg new file mode 100644 index 000000000..ac041b325 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gitea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-github-open.svg b/packages/desktop/src/assets/file-icons/folder-github-open.svg new file mode 100644 index 000000000..84e5bee84 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-github-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-github.svg b/packages/desktop/src/assets/file-icons/folder-github.svg new file mode 100644 index 000000000..374bcae0b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-github.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-gitlab-open.svg b/packages/desktop/src/assets/file-icons/folder-gitlab-open.svg new file mode 100644 index 000000000..fc4deb295 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gitlab-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gitlab.svg b/packages/desktop/src/assets/file-icons/folder-gitlab.svg new file mode 100644 index 000000000..55db99e0d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-global-open.svg b/packages/desktop/src/assets/file-icons/folder-global-open.svg new file mode 100644 index 000000000..13e72e070 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-global-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-global.svg b/packages/desktop/src/assets/file-icons/folder-global.svg new file mode 100644 index 000000000..8ada6a6dd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-global.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-godot-open.svg b/packages/desktop/src/assets/file-icons/folder-godot-open.svg new file mode 100644 index 000000000..fd785504a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-godot-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-godot.svg b/packages/desktop/src/assets/file-icons/folder-godot.svg new file mode 100644 index 000000000..dc4b5d10b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-godot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gradle-open.svg b/packages/desktop/src/assets/file-icons/folder-gradle-open.svg new file mode 100644 index 000000000..51725e722 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gradle-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gradle.svg b/packages/desktop/src/assets/file-icons/folder-gradle.svg new file mode 100644 index 000000000..93e843d2b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gradle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-graphql-open.svg b/packages/desktop/src/assets/file-icons/folder-graphql-open.svg new file mode 100644 index 000000000..ac2365092 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-graphql-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-graphql.svg b/packages/desktop/src/assets/file-icons/folder-graphql.svg new file mode 100644 index 000000000..1d7b1cc68 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-graphql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-guard-open.svg b/packages/desktop/src/assets/file-icons/folder-guard-open.svg new file mode 100644 index 000000000..f7031e257 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-guard-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-guard.svg b/packages/desktop/src/assets/file-icons/folder-guard.svg new file mode 100644 index 000000000..b4269ed22 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-guard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gulp-open.svg b/packages/desktop/src/assets/file-icons/folder-gulp-open.svg new file mode 100644 index 000000000..556e7399a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gulp-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-gulp.svg b/packages/desktop/src/assets/file-icons/folder-gulp.svg new file mode 100644 index 000000000..339523138 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-gulp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-helm-open.svg b/packages/desktop/src/assets/file-icons/folder-helm-open.svg new file mode 100644 index 000000000..6bbf0cc6d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-helm-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-helm.svg b/packages/desktop/src/assets/file-icons/folder-helm.svg new file mode 100644 index 000000000..7b7d7a7a4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-helm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-helper-open.svg b/packages/desktop/src/assets/file-icons/folder-helper-open.svg new file mode 100644 index 000000000..6fca39118 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-helper-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-helper.svg b/packages/desktop/src/assets/file-icons/folder-helper.svg new file mode 100644 index 000000000..27a20d43c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-helper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-home-open.svg b/packages/desktop/src/assets/file-icons/folder-home-open.svg new file mode 100644 index 000000000..8b0f0ca01 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-home-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-home.svg b/packages/desktop/src/assets/file-icons/folder-home.svg new file mode 100644 index 000000000..a4deeef4a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-hook-open.svg b/packages/desktop/src/assets/file-icons/folder-hook-open.svg new file mode 100644 index 000000000..17d62310d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-hook-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-hook.svg b/packages/desktop/src/assets/file-icons/folder-hook.svg new file mode 100644 index 000000000..2105709e2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-hook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-husky-open.svg b/packages/desktop/src/assets/file-icons/folder-husky-open.svg new file mode 100644 index 000000000..88c19e895 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-husky-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-husky.svg b/packages/desktop/src/assets/file-icons/folder-husky.svg new file mode 100644 index 000000000..1bbdc4c37 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-husky.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-i18n-open.svg b/packages/desktop/src/assets/file-icons/folder-i18n-open.svg new file mode 100644 index 000000000..bc1a53c0f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-i18n-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-i18n.svg b/packages/desktop/src/assets/file-icons/folder-i18n.svg new file mode 100644 index 000000000..6ef028377 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-i18n.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-images-open.svg b/packages/desktop/src/assets/file-icons/folder-images-open.svg new file mode 100644 index 000000000..44a673b14 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-images-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-images.svg b/packages/desktop/src/assets/file-icons/folder-images.svg new file mode 100644 index 000000000..5b63a6c3a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-images.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-import-open.svg b/packages/desktop/src/assets/file-icons/folder-import-open.svg new file mode 100644 index 000000000..a58a7e64f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-import-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-import.svg b/packages/desktop/src/assets/file-icons/folder-import.svg new file mode 100644 index 000000000..0c0f42e57 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-import.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-include-open.svg b/packages/desktop/src/assets/file-icons/folder-include-open.svg new file mode 100644 index 000000000..fc2c011ba --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-include-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-include.svg b/packages/desktop/src/assets/file-icons/folder-include.svg new file mode 100644 index 000000000..117b91a2c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-include.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-intellij-open.svg b/packages/desktop/src/assets/file-icons/folder-intellij-open.svg new file mode 100644 index 000000000..5839a2b1c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-intellij-open.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-intellij-open_light.svg b/packages/desktop/src/assets/file-icons/folder-intellij-open_light.svg new file mode 100644 index 000000000..ccb6046bb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-intellij-open_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-intellij.svg b/packages/desktop/src/assets/file-icons/folder-intellij.svg new file mode 100644 index 000000000..c655f37ef --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-intellij.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-intellij_light.svg b/packages/desktop/src/assets/file-icons/folder-intellij_light.svg new file mode 100644 index 000000000..97bc8c7bd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-intellij_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-interceptor-open.svg b/packages/desktop/src/assets/file-icons/folder-interceptor-open.svg new file mode 100644 index 000000000..c91c42ad9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-interceptor-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-interceptor.svg b/packages/desktop/src/assets/file-icons/folder-interceptor.svg new file mode 100644 index 000000000..e6cbf9f5c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-interceptor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-interface-open.svg b/packages/desktop/src/assets/file-icons/folder-interface-open.svg new file mode 100644 index 000000000..ba54b0ec8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-interface-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-interface.svg b/packages/desktop/src/assets/file-icons/folder-interface.svg new file mode 100644 index 000000000..993ce7258 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-interface.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ios-open.svg b/packages/desktop/src/assets/file-icons/folder-ios-open.svg new file mode 100644 index 000000000..112fee6a4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ios-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ios.svg b/packages/desktop/src/assets/file-icons/folder-ios.svg new file mode 100644 index 000000000..7af3b85da --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ios.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-java-open.svg b/packages/desktop/src/assets/file-icons/folder-java-open.svg new file mode 100644 index 000000000..eb59229cd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-java-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-java.svg b/packages/desktop/src/assets/file-icons/folder-java.svg new file mode 100644 index 000000000..58fdd3db5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-java.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-javascript-open.svg b/packages/desktop/src/assets/file-icons/folder-javascript-open.svg new file mode 100644 index 000000000..581f3a273 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-javascript-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-javascript.svg b/packages/desktop/src/assets/file-icons/folder-javascript.svg new file mode 100644 index 000000000..97cf04cc2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-jinja-open.svg b/packages/desktop/src/assets/file-icons/folder-jinja-open.svg new file mode 100644 index 000000000..9c0b2b6eb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-jinja-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-jinja-open_light.svg b/packages/desktop/src/assets/file-icons/folder-jinja-open_light.svg new file mode 100644 index 000000000..ffc940faa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-jinja-open_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-jinja.svg b/packages/desktop/src/assets/file-icons/folder-jinja.svg new file mode 100644 index 000000000..687efe3d2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-jinja.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-jinja_light.svg b/packages/desktop/src/assets/file-icons/folder-jinja_light.svg new file mode 100644 index 000000000..c2b08bb7f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-jinja_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-job-open.svg b/packages/desktop/src/assets/file-icons/folder-job-open.svg new file mode 100644 index 000000000..efd7cdfbf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-job-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-job.svg b/packages/desktop/src/assets/file-icons/folder-job.svg new file mode 100644 index 000000000..9135aff33 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-job.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-json-open.svg b/packages/desktop/src/assets/file-icons/folder-json-open.svg new file mode 100644 index 000000000..29cdf2f66 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-json-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-json.svg b/packages/desktop/src/assets/file-icons/folder-json.svg new file mode 100644 index 000000000..34085f6a9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-json.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-jupyter-open.svg b/packages/desktop/src/assets/file-icons/folder-jupyter-open.svg new file mode 100644 index 000000000..d431953fc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-jupyter-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-jupyter.svg b/packages/desktop/src/assets/file-icons/folder-jupyter.svg new file mode 100644 index 000000000..d4d3eb35e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-jupyter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-keys-open.svg b/packages/desktop/src/assets/file-icons/folder-keys-open.svg new file mode 100644 index 000000000..783b16e98 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-keys-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-keys.svg b/packages/desktop/src/assets/file-icons/folder-keys.svg new file mode 100644 index 000000000..3527f6220 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-keys.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-kubernetes-open.svg b/packages/desktop/src/assets/file-icons/folder-kubernetes-open.svg new file mode 100644 index 000000000..022be4de7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-kubernetes-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-kubernetes.svg b/packages/desktop/src/assets/file-icons/folder-kubernetes.svg new file mode 100644 index 000000000..b60d83d85 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-kubernetes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-kusto-open.svg b/packages/desktop/src/assets/file-icons/folder-kusto-open.svg new file mode 100644 index 000000000..4ea80cac0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-kusto-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-kusto.svg b/packages/desktop/src/assets/file-icons/folder-kusto.svg new file mode 100644 index 000000000..fa71096a4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-kusto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-layout-open.svg b/packages/desktop/src/assets/file-icons/folder-layout-open.svg new file mode 100644 index 000000000..f8f1def9c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-layout-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-layout.svg b/packages/desktop/src/assets/file-icons/folder-layout.svg new file mode 100644 index 000000000..3d773bc4f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-layout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lefthook-open.svg b/packages/desktop/src/assets/file-icons/folder-lefthook-open.svg new file mode 100644 index 000000000..a2694ba69 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lefthook-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lefthook.svg b/packages/desktop/src/assets/file-icons/folder-lefthook.svg new file mode 100644 index 000000000..0c7eb274c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lefthook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-less-open.svg b/packages/desktop/src/assets/file-icons/folder-less-open.svg new file mode 100644 index 000000000..3419b0a9d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-less-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-less.svg b/packages/desktop/src/assets/file-icons/folder-less.svg new file mode 100644 index 000000000..b6abc5ecd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-less.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lib-open.svg b/packages/desktop/src/assets/file-icons/folder-lib-open.svg new file mode 100644 index 000000000..8c4443168 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lib-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lib.svg b/packages/desktop/src/assets/file-icons/folder-lib.svg new file mode 100644 index 000000000..4e752857a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lib.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-link-open.svg b/packages/desktop/src/assets/file-icons/folder-link-open.svg new file mode 100644 index 000000000..817d0d588 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-link-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-link.svg b/packages/desktop/src/assets/file-icons/folder-link.svg new file mode 100644 index 000000000..48a8bbe84 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-linux-open.svg b/packages/desktop/src/assets/file-icons/folder-linux-open.svg new file mode 100644 index 000000000..8517b35df --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-linux-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-linux.svg b/packages/desktop/src/assets/file-icons/folder-linux.svg new file mode 100644 index 000000000..df4d2293e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-liquibase-open.svg b/packages/desktop/src/assets/file-icons/folder-liquibase-open.svg new file mode 100644 index 000000000..2fe7ba65f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-liquibase-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-liquibase.svg b/packages/desktop/src/assets/file-icons/folder-liquibase.svg new file mode 100644 index 000000000..aea076ac1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-liquibase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-log-open.svg b/packages/desktop/src/assets/file-icons/folder-log-open.svg new file mode 100644 index 000000000..a78771ea1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-log-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-log.svg b/packages/desktop/src/assets/file-icons/folder-log.svg new file mode 100644 index 000000000..b2ba6a582 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-log.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lottie-open.svg b/packages/desktop/src/assets/file-icons/folder-lottie-open.svg new file mode 100644 index 000000000..adca02541 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lottie-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lottie.svg b/packages/desktop/src/assets/file-icons/folder-lottie.svg new file mode 100644 index 000000000..4d7fe341d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lottie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lua-open.svg b/packages/desktop/src/assets/file-icons/folder-lua-open.svg new file mode 100644 index 000000000..cb2ea6efb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lua-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-lua.svg b/packages/desktop/src/assets/file-icons/folder-lua.svg new file mode 100644 index 000000000..e32819b9f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-lua.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-luau-open.svg b/packages/desktop/src/assets/file-icons/folder-luau-open.svg new file mode 100644 index 000000000..2b113b473 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-luau-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-luau.svg b/packages/desktop/src/assets/file-icons/folder-luau.svg new file mode 100644 index 000000000..a6b455176 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-luau.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-macos-open.svg b/packages/desktop/src/assets/file-icons/folder-macos-open.svg new file mode 100644 index 000000000..8d0280ae9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-macos-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-macos.svg b/packages/desktop/src/assets/file-icons/folder-macos.svg new file mode 100644 index 000000000..6afe2ed2a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-macos.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-mail-open.svg b/packages/desktop/src/assets/file-icons/folder-mail-open.svg new file mode 100644 index 000000000..27774cf1d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mail-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mail.svg b/packages/desktop/src/assets/file-icons/folder-mail.svg new file mode 100644 index 000000000..513e4b1be --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mappings-open.svg b/packages/desktop/src/assets/file-icons/folder-mappings-open.svg new file mode 100644 index 000000000..510d06b76 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mappings-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mappings.svg b/packages/desktop/src/assets/file-icons/folder-mappings.svg new file mode 100644 index 000000000..53b58e05f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mappings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-markdown-open.svg b/packages/desktop/src/assets/file-icons/folder-markdown-open.svg new file mode 100644 index 000000000..75ef9044e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-markdown-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-markdown.svg b/packages/desktop/src/assets/file-icons/folder-markdown.svg new file mode 100644 index 000000000..5df5d0a59 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mercurial-open.svg b/packages/desktop/src/assets/file-icons/folder-mercurial-open.svg new file mode 100644 index 000000000..74bbb9da1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mercurial-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mercurial.svg b/packages/desktop/src/assets/file-icons/folder-mercurial.svg new file mode 100644 index 000000000..5175b8ea6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mercurial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-messages-open.svg b/packages/desktop/src/assets/file-icons/folder-messages-open.svg new file mode 100644 index 000000000..2701529cf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-messages-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-messages.svg b/packages/desktop/src/assets/file-icons/folder-messages.svg new file mode 100644 index 000000000..ab3e2f8c1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-messages.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-meta-open.svg b/packages/desktop/src/assets/file-icons/folder-meta-open.svg new file mode 100644 index 000000000..de1fd82ad --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-meta-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-meta.svg b/packages/desktop/src/assets/file-icons/folder-meta.svg new file mode 100644 index 000000000..3a1b90add --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-meta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-middleware-open.svg b/packages/desktop/src/assets/file-icons/folder-middleware-open.svg new file mode 100644 index 000000000..346954c3b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-middleware-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-middleware.svg b/packages/desktop/src/assets/file-icons/folder-middleware.svg new file mode 100644 index 000000000..f12c99de2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-middleware.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mjml-open.svg b/packages/desktop/src/assets/file-icons/folder-mjml-open.svg new file mode 100644 index 000000000..81843f0e5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mjml-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mjml.svg b/packages/desktop/src/assets/file-icons/folder-mjml.svg new file mode 100644 index 000000000..8d7f06703 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mjml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mobile-open.svg b/packages/desktop/src/assets/file-icons/folder-mobile-open.svg new file mode 100644 index 000000000..6a5a39b6b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mobile-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mobile.svg b/packages/desktop/src/assets/file-icons/folder-mobile.svg new file mode 100644 index 000000000..03aab1333 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mock-open.svg b/packages/desktop/src/assets/file-icons/folder-mock-open.svg new file mode 100644 index 000000000..c92929c6a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mock-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mock.svg b/packages/desktop/src/assets/file-icons/folder-mock.svg new file mode 100644 index 000000000..22f88e55a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mojo-open.svg b/packages/desktop/src/assets/file-icons/folder-mojo-open.svg new file mode 100644 index 000000000..ce5b9be2d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mojo-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-mojo.svg b/packages/desktop/src/assets/file-icons/folder-mojo.svg new file mode 100644 index 000000000..67f753755 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-mojo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-molecule-open.svg b/packages/desktop/src/assets/file-icons/folder-molecule-open.svg new file mode 100644 index 000000000..846e2f9de --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-molecule-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-molecule.svg b/packages/desktop/src/assets/file-icons/folder-molecule.svg new file mode 100644 index 000000000..9c7905eca --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-molecule.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-moon-open.svg b/packages/desktop/src/assets/file-icons/folder-moon-open.svg new file mode 100644 index 000000000..f2da8ddd0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-moon-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-moon.svg b/packages/desktop/src/assets/file-icons/folder-moon.svg new file mode 100644 index 000000000..06613deb5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-netlify-open.svg b/packages/desktop/src/assets/file-icons/folder-netlify-open.svg new file mode 100644 index 000000000..d6f63b776 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-netlify-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-netlify.svg b/packages/desktop/src/assets/file-icons/folder-netlify.svg new file mode 100644 index 000000000..5473f42cd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-netlify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-next-open.svg b/packages/desktop/src/assets/file-icons/folder-next-open.svg new file mode 100644 index 000000000..c8709cac3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-next-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-next.svg b/packages/desktop/src/assets/file-icons/folder-next.svg new file mode 100644 index 000000000..cab1e8fca --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-next.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-ngrx-store-open.svg b/packages/desktop/src/assets/file-icons/folder-ngrx-store-open.svg new file mode 100644 index 000000000..2c8514ef2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ngrx-store-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ngrx-store.svg b/packages/desktop/src/assets/file-icons/folder-ngrx-store.svg new file mode 100644 index 000000000..1f9cb2d59 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ngrx-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-node-open.svg b/packages/desktop/src/assets/file-icons/folder-node-open.svg new file mode 100644 index 000000000..a785ed3d6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-node-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-node.svg b/packages/desktop/src/assets/file-icons/folder-node.svg new file mode 100644 index 000000000..fb47492b9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-nuxt-open.svg b/packages/desktop/src/assets/file-icons/folder-nuxt-open.svg new file mode 100644 index 000000000..c49ff8d21 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-nuxt-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-nuxt.svg b/packages/desktop/src/assets/file-icons/folder-nuxt.svg new file mode 100644 index 000000000..a0a52b06e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-nuxt.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-obsidian-open.svg b/packages/desktop/src/assets/file-icons/folder-obsidian-open.svg new file mode 100644 index 000000000..f7d1305ea --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-obsidian-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-obsidian.svg b/packages/desktop/src/assets/file-icons/folder-obsidian.svg new file mode 100644 index 000000000..cd16a528a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-obsidian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-open.svg b/packages/desktop/src/assets/file-icons/folder-open.svg new file mode 100644 index 000000000..eac89185e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-open.svg @@ -0,0 +1,5 @@ + + + diff --git a/packages/desktop/src/assets/file-icons/folder-organism-open.svg b/packages/desktop/src/assets/file-icons/folder-organism-open.svg new file mode 100644 index 000000000..6be44d2b0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-organism-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-organism.svg b/packages/desktop/src/assets/file-icons/folder-organism.svg new file mode 100644 index 000000000..50092a098 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-organism.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-other-open.svg b/packages/desktop/src/assets/file-icons/folder-other-open.svg new file mode 100644 index 000000000..ea4144f48 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-other-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-other.svg b/packages/desktop/src/assets/file-icons/folder-other.svg new file mode 100644 index 000000000..df3d27f26 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-other.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-packages-open.svg b/packages/desktop/src/assets/file-icons/folder-packages-open.svg new file mode 100644 index 000000000..7ac6075e6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-packages-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-packages.svg b/packages/desktop/src/assets/file-icons/folder-packages.svg new file mode 100644 index 000000000..9ba67cb9a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-packages.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pdf-open.svg b/packages/desktop/src/assets/file-icons/folder-pdf-open.svg new file mode 100644 index 000000000..fdeccb04b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pdf-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pdf.svg b/packages/desktop/src/assets/file-icons/folder-pdf.svg new file mode 100644 index 000000000..db0ace7e2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pdm-open.svg b/packages/desktop/src/assets/file-icons/folder-pdm-open.svg new file mode 100644 index 000000000..6145f798b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pdm-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pdm.svg b/packages/desktop/src/assets/file-icons/folder-pdm.svg new file mode 100644 index 000000000..9508547ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pdm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-php-open.svg b/packages/desktop/src/assets/file-icons/folder-php-open.svg new file mode 100644 index 000000000..2059a9b90 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-php-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-php.svg b/packages/desktop/src/assets/file-icons/folder-php.svg new file mode 100644 index 000000000..4304e179d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-php.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-phpmailer-open.svg b/packages/desktop/src/assets/file-icons/folder-phpmailer-open.svg new file mode 100644 index 000000000..26388bb3f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-phpmailer-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-phpmailer.svg b/packages/desktop/src/assets/file-icons/folder-phpmailer.svg new file mode 100644 index 000000000..18f696c1c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-phpmailer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pipe-open.svg b/packages/desktop/src/assets/file-icons/folder-pipe-open.svg new file mode 100644 index 000000000..8aacef08d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pipe-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pipe.svg b/packages/desktop/src/assets/file-icons/folder-pipe.svg new file mode 100644 index 000000000..9ba5d0adb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pipe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-plastic-open.svg b/packages/desktop/src/assets/file-icons/folder-plastic-open.svg new file mode 100644 index 000000000..b93a541f1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-plastic-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-plastic.svg b/packages/desktop/src/assets/file-icons/folder-plastic.svg new file mode 100644 index 000000000..5e595f320 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-plastic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-plugin-open.svg b/packages/desktop/src/assets/file-icons/folder-plugin-open.svg new file mode 100644 index 000000000..5a7f03a4d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-plugin-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-plugin.svg b/packages/desktop/src/assets/file-icons/folder-plugin.svg new file mode 100644 index 000000000..14a315457 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-plugin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-policy-open.svg b/packages/desktop/src/assets/file-icons/folder-policy-open.svg new file mode 100644 index 000000000..c2b51d459 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-policy-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-policy.svg b/packages/desktop/src/assets/file-icons/folder-policy.svg new file mode 100644 index 000000000..1b1781d59 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-policy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-powershell-open.svg b/packages/desktop/src/assets/file-icons/folder-powershell-open.svg new file mode 100644 index 000000000..be4b458be --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-powershell-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-powershell.svg b/packages/desktop/src/assets/file-icons/folder-powershell.svg new file mode 100644 index 000000000..6f28098de --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-powershell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-prisma-open.svg b/packages/desktop/src/assets/file-icons/folder-prisma-open.svg new file mode 100644 index 000000000..95df8ba0e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-prisma-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-prisma.svg b/packages/desktop/src/assets/file-icons/folder-prisma.svg new file mode 100644 index 000000000..a166ebd1e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-prisma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-private-open.svg b/packages/desktop/src/assets/file-icons/folder-private-open.svg new file mode 100644 index 000000000..19094be89 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-private-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-private.svg b/packages/desktop/src/assets/file-icons/folder-private.svg new file mode 100644 index 000000000..da95ecec4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-private.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-project-open.svg b/packages/desktop/src/assets/file-icons/folder-project-open.svg new file mode 100644 index 000000000..9da28620e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-project-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-project.svg b/packages/desktop/src/assets/file-icons/folder-project.svg new file mode 100644 index 000000000..f575aa014 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-project.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-prompts-open.svg b/packages/desktop/src/assets/file-icons/folder-prompts-open.svg new file mode 100644 index 000000000..5ed3346fb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-prompts-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-prompts.svg b/packages/desktop/src/assets/file-icons/folder-prompts.svg new file mode 100644 index 000000000..969535bf5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-prompts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-proto-open.svg b/packages/desktop/src/assets/file-icons/folder-proto-open.svg new file mode 100644 index 000000000..710de39b5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-proto-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-proto.svg b/packages/desktop/src/assets/file-icons/folder-proto.svg new file mode 100644 index 000000000..935fcbc5d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-proto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-public-open.svg b/packages/desktop/src/assets/file-icons/folder-public-open.svg new file mode 100644 index 000000000..04449ed55 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-public-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-public.svg b/packages/desktop/src/assets/file-icons/folder-public.svg new file mode 100644 index 000000000..ea599391d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-public.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-python-open.svg b/packages/desktop/src/assets/file-icons/folder-python-open.svg new file mode 100644 index 000000000..dbfc367aa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-python-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-python.svg b/packages/desktop/src/assets/file-icons/folder-python.svg new file mode 100644 index 000000000..aae07362e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-python.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pytorch-open.svg b/packages/desktop/src/assets/file-icons/folder-pytorch-open.svg new file mode 100644 index 000000000..46f664f59 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pytorch-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-pytorch.svg b/packages/desktop/src/assets/file-icons/folder-pytorch.svg new file mode 100644 index 000000000..2616b6bc0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-pytorch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-quasar-open.svg b/packages/desktop/src/assets/file-icons/folder-quasar-open.svg new file mode 100644 index 000000000..5fb6b9288 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-quasar-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-quasar.svg b/packages/desktop/src/assets/file-icons/folder-quasar.svg new file mode 100644 index 000000000..b098014e8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-quasar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-queue-open.svg b/packages/desktop/src/assets/file-icons/folder-queue-open.svg new file mode 100644 index 000000000..5afa82181 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-queue-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-queue.svg b/packages/desktop/src/assets/file-icons/folder-queue.svg new file mode 100644 index 000000000..244530406 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-queue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-react-components-open.svg b/packages/desktop/src/assets/file-icons/folder-react-components-open.svg new file mode 100644 index 000000000..05af544b2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-react-components-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-react-components.svg b/packages/desktop/src/assets/file-icons/folder-react-components.svg new file mode 100644 index 000000000..5f117a705 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-react-components.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-redux-reducer-open.svg b/packages/desktop/src/assets/file-icons/folder-redux-reducer-open.svg new file mode 100644 index 000000000..838bf52a2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-redux-reducer-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-redux-reducer.svg b/packages/desktop/src/assets/file-icons/folder-redux-reducer.svg new file mode 100644 index 000000000..a3b441f01 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-redux-reducer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-repository-open.svg b/packages/desktop/src/assets/file-icons/folder-repository-open.svg new file mode 100644 index 000000000..9c6275dbb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-repository-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-repository.svg b/packages/desktop/src/assets/file-icons/folder-repository.svg new file mode 100644 index 000000000..4f7520651 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-repository.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-resolver-open.svg b/packages/desktop/src/assets/file-icons/folder-resolver-open.svg new file mode 100644 index 000000000..5a4b752e0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-resolver-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-resolver.svg b/packages/desktop/src/assets/file-icons/folder-resolver.svg new file mode 100644 index 000000000..c59a6b41f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-resolver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-resource-open.svg b/packages/desktop/src/assets/file-icons/folder-resource-open.svg new file mode 100644 index 000000000..0f534e10d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-resource-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-resource.svg b/packages/desktop/src/assets/file-icons/folder-resource.svg new file mode 100644 index 000000000..24a053af6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-resource.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-review-open.svg b/packages/desktop/src/assets/file-icons/folder-review-open.svg new file mode 100644 index 000000000..2384601dc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-review-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-review.svg b/packages/desktop/src/assets/file-icons/folder-review.svg new file mode 100644 index 000000000..c7b138caa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-review.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-robot-open.svg b/packages/desktop/src/assets/file-icons/folder-robot-open.svg new file mode 100644 index 000000000..cd501c411 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-robot-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-robot.svg b/packages/desktop/src/assets/file-icons/folder-robot.svg new file mode 100644 index 000000000..fa582f494 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-robot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-routes-open.svg b/packages/desktop/src/assets/file-icons/folder-routes-open.svg new file mode 100644 index 000000000..c9c875e44 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-routes-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-routes.svg b/packages/desktop/src/assets/file-icons/folder-routes.svg new file mode 100644 index 000000000..2fb204dda --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-routes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-rules-open.svg b/packages/desktop/src/assets/file-icons/folder-rules-open.svg new file mode 100644 index 000000000..1f9c01f25 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-rules-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-rules.svg b/packages/desktop/src/assets/file-icons/folder-rules.svg new file mode 100644 index 000000000..baa5b615e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-rules.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-rust-open.svg b/packages/desktop/src/assets/file-icons/folder-rust-open.svg new file mode 100644 index 000000000..65be154ef --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-rust-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-rust.svg b/packages/desktop/src/assets/file-icons/folder-rust.svg new file mode 100644 index 000000000..afe65f6c4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-rust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-sandbox-open.svg b/packages/desktop/src/assets/file-icons/folder-sandbox-open.svg new file mode 100644 index 000000000..e0c7a064f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-sandbox-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-sandbox.svg b/packages/desktop/src/assets/file-icons/folder-sandbox.svg new file mode 100644 index 000000000..4339173ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-sandbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-sass-open.svg b/packages/desktop/src/assets/file-icons/folder-sass-open.svg new file mode 100644 index 000000000..0a2a82e94 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-sass-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-sass.svg b/packages/desktop/src/assets/file-icons/folder-sass.svg new file mode 100644 index 000000000..6f2873163 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-sass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-scala-open.svg b/packages/desktop/src/assets/file-icons/folder-scala-open.svg new file mode 100644 index 000000000..fb4aee7f6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-scala-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-scala.svg b/packages/desktop/src/assets/file-icons/folder-scala.svg new file mode 100644 index 000000000..d78a07420 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-scala.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-scons-open.svg b/packages/desktop/src/assets/file-icons/folder-scons-open.svg new file mode 100644 index 000000000..db8961210 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-scons-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-scons.svg b/packages/desktop/src/assets/file-icons/folder-scons.svg new file mode 100644 index 000000000..aae02b46c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-scons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-scripts-open.svg b/packages/desktop/src/assets/file-icons/folder-scripts-open.svg new file mode 100644 index 000000000..981a43f78 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-scripts-open.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-scripts.svg b/packages/desktop/src/assets/file-icons/folder-scripts.svg new file mode 100644 index 000000000..4b755acb9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-scripts.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-secure-open.svg b/packages/desktop/src/assets/file-icons/folder-secure-open.svg new file mode 100644 index 000000000..163f7da40 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-secure-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-secure.svg b/packages/desktop/src/assets/file-icons/folder-secure.svg new file mode 100644 index 000000000..110093fb9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-secure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-seeders-open.svg b/packages/desktop/src/assets/file-icons/folder-seeders-open.svg new file mode 100644 index 000000000..b93194091 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-seeders-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-seeders.svg b/packages/desktop/src/assets/file-icons/folder-seeders.svg new file mode 100644 index 000000000..cd59776ad --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-seeders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-server-open.svg b/packages/desktop/src/assets/file-icons/folder-server-open.svg new file mode 100644 index 000000000..706b8af36 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-server-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-server.svg b/packages/desktop/src/assets/file-icons/folder-server.svg new file mode 100644 index 000000000..4f03f4726 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-serverless-open.svg b/packages/desktop/src/assets/file-icons/folder-serverless-open.svg new file mode 100644 index 000000000..113f73c9d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-serverless-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-serverless.svg b/packages/desktop/src/assets/file-icons/folder-serverless.svg new file mode 100644 index 000000000..226f89d41 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-serverless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-shader-open.svg b/packages/desktop/src/assets/file-icons/folder-shader-open.svg new file mode 100644 index 000000000..03e00ed5f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-shader-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-shader.svg b/packages/desktop/src/assets/file-icons/folder-shader.svg new file mode 100644 index 000000000..57772b323 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-shader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-shared-open.svg b/packages/desktop/src/assets/file-icons/folder-shared-open.svg new file mode 100644 index 000000000..6542e7fe0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-shared-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-shared.svg b/packages/desktop/src/assets/file-icons/folder-shared.svg new file mode 100644 index 000000000..01e7a17dd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-shared.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-snapcraft-open.svg b/packages/desktop/src/assets/file-icons/folder-snapcraft-open.svg new file mode 100644 index 000000000..1a0306828 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-snapcraft-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-snapcraft.svg b/packages/desktop/src/assets/file-icons/folder-snapcraft.svg new file mode 100644 index 000000000..fc77b789a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-snapcraft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-snippet-open.svg b/packages/desktop/src/assets/file-icons/folder-snippet-open.svg new file mode 100644 index 000000000..451c291f8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-snippet-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-snippet.svg b/packages/desktop/src/assets/file-icons/folder-snippet.svg new file mode 100644 index 000000000..991f5c444 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-snippet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-src-open.svg b/packages/desktop/src/assets/file-icons/folder-src-open.svg new file mode 100644 index 000000000..8cd9ee3c1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-src-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-src-tauri-open.svg b/packages/desktop/src/assets/file-icons/folder-src-tauri-open.svg new file mode 100644 index 000000000..969c5778d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-src-tauri-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-src-tauri.svg b/packages/desktop/src/assets/file-icons/folder-src-tauri.svg new file mode 100644 index 000000000..727790c81 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-src-tauri.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-src.svg b/packages/desktop/src/assets/file-icons/folder-src.svg new file mode 100644 index 000000000..8d45da992 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-src.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-stack-open.svg b/packages/desktop/src/assets/file-icons/folder-stack-open.svg new file mode 100644 index 000000000..cfd8bd057 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-stack-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-stack.svg b/packages/desktop/src/assets/file-icons/folder-stack.svg new file mode 100644 index 000000000..9c0b10d52 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-stack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-stencil-open.svg b/packages/desktop/src/assets/file-icons/folder-stencil-open.svg new file mode 100644 index 000000000..6dea078a7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-stencil-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-stencil.svg b/packages/desktop/src/assets/file-icons/folder-stencil.svg new file mode 100644 index 000000000..c0443c98a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-stencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-store-open.svg b/packages/desktop/src/assets/file-icons/folder-store-open.svg new file mode 100644 index 000000000..13e415bc5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-store-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-store.svg b/packages/desktop/src/assets/file-icons/folder-store.svg new file mode 100644 index 000000000..ae29c03de --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-storybook-open.svg b/packages/desktop/src/assets/file-icons/folder-storybook-open.svg new file mode 100644 index 000000000..9be24b2e1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-storybook-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-storybook.svg b/packages/desktop/src/assets/file-icons/folder-storybook.svg new file mode 100644 index 000000000..26e6246f0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-storybook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-stylus-open.svg b/packages/desktop/src/assets/file-icons/folder-stylus-open.svg new file mode 100644 index 000000000..9615173c5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-stylus-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-stylus.svg b/packages/desktop/src/assets/file-icons/folder-stylus.svg new file mode 100644 index 000000000..68ae158fb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-stylus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-sublime-open.svg b/packages/desktop/src/assets/file-icons/folder-sublime-open.svg new file mode 100644 index 000000000..5066f3a14 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-sublime-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-sublime.svg b/packages/desktop/src/assets/file-icons/folder-sublime.svg new file mode 100644 index 000000000..1361eda5f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-sublime.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-supabase-open.svg b/packages/desktop/src/assets/file-icons/folder-supabase-open.svg new file mode 100644 index 000000000..d58a6924e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-supabase-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-supabase.svg b/packages/desktop/src/assets/file-icons/folder-supabase.svg new file mode 100644 index 000000000..c0c8189fe --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-supabase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-svelte-open.svg b/packages/desktop/src/assets/file-icons/folder-svelte-open.svg new file mode 100644 index 000000000..f72ae2f7e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-svelte-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-svelte.svg b/packages/desktop/src/assets/file-icons/folder-svelte.svg new file mode 100644 index 000000000..61bf1d4db --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-svelte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-svg-open.svg b/packages/desktop/src/assets/file-icons/folder-svg-open.svg new file mode 100644 index 000000000..f8ef72bad --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-svg-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-svg.svg b/packages/desktop/src/assets/file-icons/folder-svg.svg new file mode 100644 index 000000000..320b9eb59 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-svg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-syntax-open.svg b/packages/desktop/src/assets/file-icons/folder-syntax-open.svg new file mode 100644 index 000000000..fd9d972b3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-syntax-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-syntax.svg b/packages/desktop/src/assets/file-icons/folder-syntax.svg new file mode 100644 index 000000000..be4ab1619 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-syntax.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-target-open.svg b/packages/desktop/src/assets/file-icons/folder-target-open.svg new file mode 100644 index 000000000..0004bf866 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-target-open.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-target.svg b/packages/desktop/src/assets/file-icons/folder-target.svg new file mode 100644 index 000000000..5872750bd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-target.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-taskfile-open.svg b/packages/desktop/src/assets/file-icons/folder-taskfile-open.svg new file mode 100644 index 000000000..fc2c50148 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-taskfile-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-taskfile.svg b/packages/desktop/src/assets/file-icons/folder-taskfile.svg new file mode 100644 index 000000000..1a3cac7ad --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-taskfile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-tasks-open.svg b/packages/desktop/src/assets/file-icons/folder-tasks-open.svg new file mode 100644 index 000000000..ed0e67f26 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-tasks-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-tasks.svg b/packages/desktop/src/assets/file-icons/folder-tasks.svg new file mode 100644 index 000000000..1a9ef8ad6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-tasks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-television-open.svg b/packages/desktop/src/assets/file-icons/folder-television-open.svg new file mode 100644 index 000000000..33c21d8bc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-television-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-television.svg b/packages/desktop/src/assets/file-icons/folder-television.svg new file mode 100644 index 000000000..dc1029496 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-television.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-temp-open.svg b/packages/desktop/src/assets/file-icons/folder-temp-open.svg new file mode 100644 index 000000000..ec798b1e2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-temp-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-temp.svg b/packages/desktop/src/assets/file-icons/folder-temp.svg new file mode 100644 index 000000000..3002a86c2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-temp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-template-open.svg b/packages/desktop/src/assets/file-icons/folder-template-open.svg new file mode 100644 index 000000000..e3f822b71 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-template-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-template.svg b/packages/desktop/src/assets/file-icons/folder-template.svg new file mode 100644 index 000000000..1d1583704 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-template.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-terraform-open.svg b/packages/desktop/src/assets/file-icons/folder-terraform-open.svg new file mode 100644 index 000000000..fff197bb0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-terraform-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-terraform.svg b/packages/desktop/src/assets/file-icons/folder-terraform.svg new file mode 100644 index 000000000..e71fba8dc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-terraform.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-test-open.svg b/packages/desktop/src/assets/file-icons/folder-test-open.svg new file mode 100644 index 000000000..f3fefb357 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-test-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-test.svg b/packages/desktop/src/assets/file-icons/folder-test.svg new file mode 100644 index 000000000..92bee1623 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-test.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-theme-open.svg b/packages/desktop/src/assets/file-icons/folder-theme-open.svg new file mode 100644 index 000000000..5e79f991e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-theme-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-theme.svg b/packages/desktop/src/assets/file-icons/folder-theme.svg new file mode 100644 index 000000000..88efa9551 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-theme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-tools-open.svg b/packages/desktop/src/assets/file-icons/folder-tools-open.svg new file mode 100644 index 000000000..77ecaa886 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-tools-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-tools.svg b/packages/desktop/src/assets/file-icons/folder-tools.svg new file mode 100644 index 000000000..d591a1f38 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-trash-open.svg b/packages/desktop/src/assets/file-icons/folder-trash-open.svg new file mode 100644 index 000000000..add51b82d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-trash-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-trash.svg b/packages/desktop/src/assets/file-icons/folder-trash.svg new file mode 100644 index 000000000..1e81d28f9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-trash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-trigger-open.svg b/packages/desktop/src/assets/file-icons/folder-trigger-open.svg new file mode 100644 index 000000000..ecd80d37c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-trigger-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-trigger.svg b/packages/desktop/src/assets/file-icons/folder-trigger.svg new file mode 100644 index 000000000..cfe23c1bf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-trigger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-turborepo-open.svg b/packages/desktop/src/assets/file-icons/folder-turborepo-open.svg new file mode 100644 index 000000000..e0d7c35cf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-turborepo-open.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-turborepo.svg b/packages/desktop/src/assets/file-icons/folder-turborepo.svg new file mode 100644 index 000000000..ea203360b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-turborepo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-typescript-open.svg b/packages/desktop/src/assets/file-icons/folder-typescript-open.svg new file mode 100644 index 000000000..87c8e2fa1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-typescript-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-typescript.svg b/packages/desktop/src/assets/file-icons/folder-typescript.svg new file mode 100644 index 000000000..df26f8937 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ui-open.svg b/packages/desktop/src/assets/file-icons/folder-ui-open.svg new file mode 100644 index 000000000..304491698 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ui-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-ui.svg b/packages/desktop/src/assets/file-icons/folder-ui.svg new file mode 100644 index 000000000..fa320d101 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-ui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-unity-open.svg b/packages/desktop/src/assets/file-icons/folder-unity-open.svg new file mode 100644 index 000000000..cb036d5d1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-unity-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-unity.svg b/packages/desktop/src/assets/file-icons/folder-unity.svg new file mode 100644 index 000000000..c751de29c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-unity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-update-open.svg b/packages/desktop/src/assets/file-icons/folder-update-open.svg new file mode 100644 index 000000000..a6d18a9a7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-update-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-update.svg b/packages/desktop/src/assets/file-icons/folder-update.svg new file mode 100644 index 000000000..65eaf57d7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-update.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-upload-open.svg b/packages/desktop/src/assets/file-icons/folder-upload-open.svg new file mode 100644 index 000000000..24fc35931 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-upload-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-upload.svg b/packages/desktop/src/assets/file-icons/folder-upload.svg new file mode 100644 index 000000000..423c6c117 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-utils-open.svg b/packages/desktop/src/assets/file-icons/folder-utils-open.svg new file mode 100644 index 000000000..b894eff0b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-utils-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-utils.svg b/packages/desktop/src/assets/file-icons/folder-utils.svg new file mode 100644 index 000000000..fcc799948 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-utils.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vercel-open.svg b/packages/desktop/src/assets/file-icons/folder-vercel-open.svg new file mode 100644 index 000000000..c571c63f3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vercel-open.svg @@ -0,0 +1,5 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-vercel.svg b/packages/desktop/src/assets/file-icons/folder-vercel.svg new file mode 100644 index 000000000..513848130 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vercel.svg @@ -0,0 +1,5 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/folder-verdaccio-open.svg b/packages/desktop/src/assets/file-icons/folder-verdaccio-open.svg new file mode 100644 index 000000000..24beac52b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-verdaccio-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-verdaccio.svg b/packages/desktop/src/assets/file-icons/folder-verdaccio.svg new file mode 100644 index 000000000..8e78ba798 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-verdaccio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-video-open.svg b/packages/desktop/src/assets/file-icons/folder-video-open.svg new file mode 100644 index 000000000..ea60cd047 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-video-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-video.svg b/packages/desktop/src/assets/file-icons/folder-video.svg new file mode 100644 index 000000000..d1385545a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-views-open.svg b/packages/desktop/src/assets/file-icons/folder-views-open.svg new file mode 100644 index 000000000..1c785e4ce --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-views-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-views.svg b/packages/desktop/src/assets/file-icons/folder-views.svg new file mode 100644 index 000000000..5d41f10b0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-views.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vm-open.svg b/packages/desktop/src/assets/file-icons/folder-vm-open.svg new file mode 100644 index 000000000..e1a2b54cf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vm-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vm.svg b/packages/desktop/src/assets/file-icons/folder-vm.svg new file mode 100644 index 000000000..1ee3a95dd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vscode-open.svg b/packages/desktop/src/assets/file-icons/folder-vscode-open.svg new file mode 100644 index 000000000..82e3a21e0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vscode-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vscode.svg b/packages/desktop/src/assets/file-icons/folder-vscode.svg new file mode 100644 index 000000000..07ccbd6e7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vscode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vue-directives-open.svg b/packages/desktop/src/assets/file-icons/folder-vue-directives-open.svg new file mode 100644 index 000000000..341354bbc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vue-directives-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vue-directives.svg b/packages/desktop/src/assets/file-icons/folder-vue-directives.svg new file mode 100644 index 000000000..fc28ccb85 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vue-directives.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vue-open.svg b/packages/desktop/src/assets/file-icons/folder-vue-open.svg new file mode 100644 index 000000000..03abcafab --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vue-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vue.svg b/packages/desktop/src/assets/file-icons/folder-vue.svg new file mode 100644 index 000000000..c7cf38e8a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vuepress-open.svg b/packages/desktop/src/assets/file-icons/folder-vuepress-open.svg new file mode 100644 index 000000000..af2b09b39 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vuepress-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vuepress.svg b/packages/desktop/src/assets/file-icons/folder-vuepress.svg new file mode 100644 index 000000000..42fb0dc4b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vuepress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vuex-store-open.svg b/packages/desktop/src/assets/file-icons/folder-vuex-store-open.svg new file mode 100644 index 000000000..77c3c4681 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vuex-store-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-vuex-store.svg b/packages/desktop/src/assets/file-icons/folder-vuex-store.svg new file mode 100644 index 000000000..5c6793e6d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-vuex-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-wakatime-open.svg b/packages/desktop/src/assets/file-icons/folder-wakatime-open.svg new file mode 100644 index 000000000..d1dbc3845 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-wakatime-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-wakatime.svg b/packages/desktop/src/assets/file-icons/folder-wakatime.svg new file mode 100644 index 000000000..860a661ee --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-wakatime.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-webpack-open.svg b/packages/desktop/src/assets/file-icons/folder-webpack-open.svg new file mode 100644 index 000000000..acd1e1919 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-webpack-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-webpack.svg b/packages/desktop/src/assets/file-icons/folder-webpack.svg new file mode 100644 index 000000000..3ac887a2a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-webpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-windows-open.svg b/packages/desktop/src/assets/file-icons/folder-windows-open.svg new file mode 100644 index 000000000..9173ff9cb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-windows-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-windows.svg b/packages/desktop/src/assets/file-icons/folder-windows.svg new file mode 100644 index 000000000..184de3100 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-windows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-wordpress-open.svg b/packages/desktop/src/assets/file-icons/folder-wordpress-open.svg new file mode 100644 index 000000000..8cb4006db --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-wordpress-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-wordpress.svg b/packages/desktop/src/assets/file-icons/folder-wordpress.svg new file mode 100644 index 000000000..a954a2b99 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-wordpress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-yarn-open.svg b/packages/desktop/src/assets/file-icons/folder-yarn-open.svg new file mode 100644 index 000000000..ddbb98894 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-yarn-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-yarn.svg b/packages/desktop/src/assets/file-icons/folder-yarn.svg new file mode 100644 index 000000000..58aee64b8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-yarn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-zeabur-open.svg b/packages/desktop/src/assets/file-icons/folder-zeabur-open.svg new file mode 100644 index 000000000..ac2a31a3e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-zeabur-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder-zeabur.svg b/packages/desktop/src/assets/file-icons/folder-zeabur.svg new file mode 100644 index 000000000..b0b842136 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder-zeabur.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/folder.svg b/packages/desktop/src/assets/file-icons/folder.svg new file mode 100644 index 000000000..97ee81ca4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/folder.svg @@ -0,0 +1,5 @@ + + + diff --git a/packages/desktop/src/assets/file-icons/font.svg b/packages/desktop/src/assets/file-icons/font.svg new file mode 100644 index 000000000..961586d9d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/font.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/forth.svg b/packages/desktop/src/assets/file-icons/forth.svg new file mode 100644 index 000000000..50b66af6e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/forth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/fortran.svg b/packages/desktop/src/assets/file-icons/fortran.svg new file mode 100644 index 000000000..235db1a06 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/fortran.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/foxpro.svg b/packages/desktop/src/assets/file-icons/foxpro.svg new file mode 100644 index 000000000..e2d5eb00b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/foxpro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/freemarker.svg b/packages/desktop/src/assets/file-icons/freemarker.svg new file mode 100644 index 000000000..edf98f6df --- /dev/null +++ b/packages/desktop/src/assets/file-icons/freemarker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/fsharp.svg b/packages/desktop/src/assets/file-icons/fsharp.svg new file mode 100644 index 000000000..1e5b7cfdc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/fsharp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/fusebox.svg b/packages/desktop/src/assets/file-icons/fusebox.svg new file mode 100644 index 000000000..a4ad3d666 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/fusebox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gamemaker.svg b/packages/desktop/src/assets/file-icons/gamemaker.svg new file mode 100644 index 000000000..4097cdd7f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gamemaker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/garden.svg b/packages/desktop/src/assets/file-icons/garden.svg new file mode 100644 index 000000000..a96386d60 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/garden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gatsby.svg b/packages/desktop/src/assets/file-icons/gatsby.svg new file mode 100644 index 000000000..c2674692e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gatsby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gcp.svg b/packages/desktop/src/assets/file-icons/gcp.svg new file mode 100644 index 000000000..62be90414 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gcp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gemfile.svg b/packages/desktop/src/assets/file-icons/gemfile.svg new file mode 100644 index 000000000..757c89d16 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gemfile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gemini-ai.svg b/packages/desktop/src/assets/file-icons/gemini-ai.svg new file mode 100644 index 000000000..0911694b1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gemini-ai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gemini.svg b/packages/desktop/src/assets/file-icons/gemini.svg new file mode 100644 index 000000000..79ad4bf5f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gemini.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/git.svg b/packages/desktop/src/assets/file-icons/git.svg new file mode 100644 index 000000000..c1e08fd4e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/git.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/github-actions-workflow.svg b/packages/desktop/src/assets/file-icons/github-actions-workflow.svg new file mode 100644 index 000000000..1c724c5ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/github-actions-workflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/github-sponsors.svg b/packages/desktop/src/assets/file-icons/github-sponsors.svg new file mode 100644 index 000000000..72fb66811 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/github-sponsors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gitlab.svg b/packages/desktop/src/assets/file-icons/gitlab.svg new file mode 100644 index 000000000..ceeabaf9a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gitpod.svg b/packages/desktop/src/assets/file-icons/gitpod.svg new file mode 100644 index 000000000..a992017ec --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gitpod.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gleam.svg b/packages/desktop/src/assets/file-icons/gleam.svg new file mode 100644 index 000000000..76e0d0c5e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gleam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gnuplot.svg b/packages/desktop/src/assets/file-icons/gnuplot.svg new file mode 100644 index 000000000..8cc510b53 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gnuplot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/go-mod.svg b/packages/desktop/src/assets/file-icons/go-mod.svg new file mode 100644 index 000000000..1689116be --- /dev/null +++ b/packages/desktop/src/assets/file-icons/go-mod.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/go.svg b/packages/desktop/src/assets/file-icons/go.svg new file mode 100644 index 000000000..d874e329e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/go_gopher.svg b/packages/desktop/src/assets/file-icons/go_gopher.svg new file mode 100644 index 000000000..e465f7456 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/go_gopher.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/godot-assets.svg b/packages/desktop/src/assets/file-icons/godot-assets.svg new file mode 100644 index 000000000..19e193da4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/godot-assets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/godot.svg b/packages/desktop/src/assets/file-icons/godot.svg new file mode 100644 index 000000000..4b1dd7fc2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/godot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gradle.svg b/packages/desktop/src/assets/file-icons/gradle.svg new file mode 100644 index 000000000..72d88fdbb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gradle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/grafana-alloy.svg b/packages/desktop/src/assets/file-icons/grafana-alloy.svg new file mode 100644 index 000000000..cf0003126 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/grafana-alloy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/grain.svg b/packages/desktop/src/assets/file-icons/grain.svg new file mode 100644 index 000000000..f96d46ba7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/grain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/graphcool.svg b/packages/desktop/src/assets/file-icons/graphcool.svg new file mode 100644 index 000000000..bdaedb9d5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/graphcool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/graphql.svg b/packages/desktop/src/assets/file-icons/graphql.svg new file mode 100644 index 000000000..252b0f734 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/graphql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gridsome.svg b/packages/desktop/src/assets/file-icons/gridsome.svg new file mode 100644 index 000000000..872774100 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gridsome.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/groovy.svg b/packages/desktop/src/assets/file-icons/groovy.svg new file mode 100644 index 000000000..9af0c08f4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/groovy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/grunt.svg b/packages/desktop/src/assets/file-icons/grunt.svg new file mode 100644 index 000000000..2b1499453 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/grunt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/gulp.svg b/packages/desktop/src/assets/file-icons/gulp.svg new file mode 100644 index 000000000..bc6a77ffd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/gulp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/h.svg b/packages/desktop/src/assets/file-icons/h.svg new file mode 100644 index 000000000..08db8fe48 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/h.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hack.svg b/packages/desktop/src/assets/file-icons/hack.svg new file mode 100644 index 000000000..921cd7359 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hadolint.svg b/packages/desktop/src/assets/file-icons/hadolint.svg new file mode 100644 index 000000000..26195f506 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hadolint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/haml.svg b/packages/desktop/src/assets/file-icons/haml.svg new file mode 100644 index 000000000..bf08db53a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/haml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/handlebars.svg b/packages/desktop/src/assets/file-icons/handlebars.svg new file mode 100644 index 000000000..cf8993005 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/handlebars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hardhat.svg b/packages/desktop/src/assets/file-icons/hardhat.svg new file mode 100644 index 000000000..dad8d4503 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hardhat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/harmonix.svg b/packages/desktop/src/assets/file-icons/harmonix.svg new file mode 100644 index 000000000..299fa478c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/harmonix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/haskell.svg b/packages/desktop/src/assets/file-icons/haskell.svg new file mode 100644 index 000000000..ae44927a9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/haskell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/haxe.svg b/packages/desktop/src/assets/file-icons/haxe.svg new file mode 100644 index 000000000..cb28364f3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/haxe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hcl.svg b/packages/desktop/src/assets/file-icons/hcl.svg new file mode 100644 index 000000000..71edfb4af --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hcl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hcl_light.svg b/packages/desktop/src/assets/file-icons/hcl_light.svg new file mode 100644 index 000000000..019691460 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hcl_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/helm.svg b/packages/desktop/src/assets/file-icons/helm.svg new file mode 100644 index 000000000..58aa4a82d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/helm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/heroku.svg b/packages/desktop/src/assets/file-icons/heroku.svg new file mode 100644 index 000000000..d9d1ab03d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/heroku.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hex.svg b/packages/desktop/src/assets/file-icons/hex.svg new file mode 100644 index 000000000..e50c6771c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/histoire.svg b/packages/desktop/src/assets/file-icons/histoire.svg new file mode 100644 index 000000000..5619c16da --- /dev/null +++ b/packages/desktop/src/assets/file-icons/histoire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hjson.svg b/packages/desktop/src/assets/file-icons/hjson.svg new file mode 100644 index 000000000..7725feb78 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hjson.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/horusec.svg b/packages/desktop/src/assets/file-icons/horusec.svg new file mode 100644 index 000000000..9ea1155e4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/horusec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hosts.svg b/packages/desktop/src/assets/file-icons/hosts.svg new file mode 100644 index 000000000..f88e7c6c8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hosts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hosts_light.svg b/packages/desktop/src/assets/file-icons/hosts_light.svg new file mode 100644 index 000000000..613a25e39 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hosts_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hpp.svg b/packages/desktop/src/assets/file-icons/hpp.svg new file mode 100644 index 000000000..3e6872d2e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hpp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/html.svg b/packages/desktop/src/assets/file-icons/html.svg new file mode 100644 index 000000000..71caf32b6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/html.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/http.svg b/packages/desktop/src/assets/file-icons/http.svg new file mode 100644 index 000000000..94574d4a5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/http.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/huff.svg b/packages/desktop/src/assets/file-icons/huff.svg new file mode 100644 index 000000000..223291415 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/huff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/huff_light.svg b/packages/desktop/src/assets/file-icons/huff_light.svg new file mode 100644 index 000000000..43889e036 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/huff_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/hurl.svg b/packages/desktop/src/assets/file-icons/hurl.svg new file mode 100644 index 000000000..227045b5e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/hurl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/husky.svg b/packages/desktop/src/assets/file-icons/husky.svg new file mode 100644 index 000000000..b48f06a69 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/husky.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/i18n.svg b/packages/desktop/src/assets/file-icons/i18n.svg new file mode 100644 index 000000000..4f678de31 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/i18n.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/idris.svg b/packages/desktop/src/assets/file-icons/idris.svg new file mode 100644 index 000000000..445745b68 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/idris.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ifanr-cloud.svg b/packages/desktop/src/assets/file-icons/ifanr-cloud.svg new file mode 100644 index 000000000..c356b1691 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ifanr-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/image.svg b/packages/desktop/src/assets/file-icons/image.svg new file mode 100644 index 000000000..0ca446bb9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/imba.svg b/packages/desktop/src/assets/file-icons/imba.svg new file mode 100644 index 000000000..60b06154c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/imba.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/installation.svg b/packages/desktop/src/assets/file-icons/installation.svg new file mode 100644 index 000000000..36fa21cf0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/installation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ionic.svg b/packages/desktop/src/assets/file-icons/ionic.svg new file mode 100644 index 000000000..2ce630d01 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ionic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/istanbul.svg b/packages/desktop/src/assets/file-icons/istanbul.svg new file mode 100644 index 000000000..9508a981a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/istanbul.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jar.svg b/packages/desktop/src/assets/file-icons/jar.svg new file mode 100644 index 000000000..1c81c48c5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/java.svg b/packages/desktop/src/assets/file-icons/java.svg new file mode 100644 index 000000000..0950bc402 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/java.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/javaclass.svg b/packages/desktop/src/assets/file-icons/javaclass.svg new file mode 100644 index 000000000..9abe7ad80 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/javaclass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/javascript-map.svg b/packages/desktop/src/assets/file-icons/javascript-map.svg new file mode 100644 index 000000000..a1fcc2273 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/javascript-map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/javascript.svg b/packages/desktop/src/assets/file-icons/javascript.svg new file mode 100644 index 000000000..254704ab7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jenkins.svg b/packages/desktop/src/assets/file-icons/jenkins.svg new file mode 100644 index 000000000..1517b746e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jenkins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jest.svg b/packages/desktop/src/assets/file-icons/jest.svg new file mode 100644 index 000000000..fb40ecb37 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jinja.svg b/packages/desktop/src/assets/file-icons/jinja.svg new file mode 100644 index 000000000..8163f2a1b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jinja.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jinja_light.svg b/packages/desktop/src/assets/file-icons/jinja_light.svg new file mode 100644 index 000000000..22333982c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jinja_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jsconfig.svg b/packages/desktop/src/assets/file-icons/jsconfig.svg new file mode 100644 index 000000000..5aef48128 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jsconfig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/json.svg b/packages/desktop/src/assets/file-icons/json.svg new file mode 100644 index 000000000..2590b943f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/json.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jsr.svg b/packages/desktop/src/assets/file-icons/jsr.svg new file mode 100644 index 000000000..739f6574e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jsr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jsr_light.svg b/packages/desktop/src/assets/file-icons/jsr_light.svg new file mode 100644 index 000000000..c93d45224 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jsr_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/julia.svg b/packages/desktop/src/assets/file-icons/julia.svg new file mode 100644 index 000000000..39fca6351 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/julia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/jupyter.svg b/packages/desktop/src/assets/file-icons/jupyter.svg new file mode 100644 index 000000000..770bffbc6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/jupyter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/just.svg b/packages/desktop/src/assets/file-icons/just.svg new file mode 100644 index 000000000..7fc754314 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/just.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/karma.svg b/packages/desktop/src/assets/file-icons/karma.svg new file mode 100644 index 000000000..0db4ab60b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/karma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/kcl.svg b/packages/desktop/src/assets/file-icons/kcl.svg new file mode 100644 index 000000000..4f10c602e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/kcl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/key.svg b/packages/desktop/src/assets/file-icons/key.svg new file mode 100644 index 000000000..08f67af4c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/keystatic.svg b/packages/desktop/src/assets/file-icons/keystatic.svg new file mode 100644 index 000000000..087b65872 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/keystatic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/kivy.svg b/packages/desktop/src/assets/file-icons/kivy.svg new file mode 100644 index 000000000..2a1a35c4a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/kivy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/kl.svg b/packages/desktop/src/assets/file-icons/kl.svg new file mode 100644 index 000000000..967ef09e9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/kl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/knip.svg b/packages/desktop/src/assets/file-icons/knip.svg new file mode 100644 index 000000000..c71d0a20d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/knip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/kotlin.svg b/packages/desktop/src/assets/file-icons/kotlin.svg new file mode 100644 index 000000000..740505c19 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/kotlin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/kubernetes.svg b/packages/desktop/src/assets/file-icons/kubernetes.svg new file mode 100644 index 000000000..6726dcc86 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/kubernetes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/kusto.svg b/packages/desktop/src/assets/file-icons/kusto.svg new file mode 100644 index 000000000..46087e83c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/kusto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/label.svg b/packages/desktop/src/assets/file-icons/label.svg new file mode 100644 index 000000000..28abeacd7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/label.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/laravel.svg b/packages/desktop/src/assets/file-icons/laravel.svg new file mode 100644 index 000000000..95ee92351 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/laravel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/latexmk.svg b/packages/desktop/src/assets/file-icons/latexmk.svg new file mode 100644 index 000000000..484318aaf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/latexmk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lbx.svg b/packages/desktop/src/assets/file-icons/lbx.svg new file mode 100644 index 000000000..c66f15715 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lbx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lefthook.svg b/packages/desktop/src/assets/file-icons/lefthook.svg new file mode 100644 index 000000000..93f6f81b6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lefthook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lerna.svg b/packages/desktop/src/assets/file-icons/lerna.svg new file mode 100644 index 000000000..4128d6b9d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lerna.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/less.svg b/packages/desktop/src/assets/file-icons/less.svg new file mode 100644 index 000000000..2e13a3c5e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/less.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/liara.svg b/packages/desktop/src/assets/file-icons/liara.svg new file mode 100644 index 000000000..2fd408c6e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/liara.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lib.svg b/packages/desktop/src/assets/file-icons/lib.svg new file mode 100644 index 000000000..7c8fda3e0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lib.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lighthouse.svg b/packages/desktop/src/assets/file-icons/lighthouse.svg new file mode 100644 index 000000000..022924410 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lighthouse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lilypond.svg b/packages/desktop/src/assets/file-icons/lilypond.svg new file mode 100644 index 000000000..a12aa2cc2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lilypond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lintstaged.svg b/packages/desktop/src/assets/file-icons/lintstaged.svg new file mode 100644 index 000000000..fbf94678e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lintstaged.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/liquid.svg b/packages/desktop/src/assets/file-icons/liquid.svg new file mode 100644 index 000000000..5111ab67f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/liquid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lisp.svg b/packages/desktop/src/assets/file-icons/lisp.svg new file mode 100644 index 000000000..76e4f465b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lisp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/livescript.svg b/packages/desktop/src/assets/file-icons/livescript.svg new file mode 100644 index 000000000..d7dcb37c3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/livescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lock.svg b/packages/desktop/src/assets/file-icons/lock.svg new file mode 100644 index 000000000..ca49d02c3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/log.svg b/packages/desktop/src/assets/file-icons/log.svg new file mode 100644 index 000000000..389f51d32 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/log.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lolcode.svg b/packages/desktop/src/assets/file-icons/lolcode.svg new file mode 100644 index 000000000..f9c759581 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lolcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lottie.svg b/packages/desktop/src/assets/file-icons/lottie.svg new file mode 100644 index 000000000..29981d323 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lottie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lua.svg b/packages/desktop/src/assets/file-icons/lua.svg new file mode 100644 index 000000000..ca7a3d5dd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lua.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/luau.svg b/packages/desktop/src/assets/file-icons/luau.svg new file mode 100644 index 000000000..7f9ad5768 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/luau.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/lyric.svg b/packages/desktop/src/assets/file-icons/lyric.svg new file mode 100644 index 000000000..06bb43e4d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/lyric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/makefile.svg b/packages/desktop/src/assets/file-icons/makefile.svg new file mode 100644 index 000000000..e211671c5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/makefile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/markdoc-config.svg b/packages/desktop/src/assets/file-icons/markdoc-config.svg new file mode 100644 index 000000000..13913c38c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/markdoc-config.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/markdoc.svg b/packages/desktop/src/assets/file-icons/markdoc.svg new file mode 100644 index 000000000..3ed2c54b7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/markdoc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/markdown.svg b/packages/desktop/src/assets/file-icons/markdown.svg new file mode 100644 index 000000000..4c224341c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/markdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/markdownlint.svg b/packages/desktop/src/assets/file-icons/markdownlint.svg new file mode 100644 index 000000000..37daf0d27 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/markdownlint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/markojs.svg b/packages/desktop/src/assets/file-icons/markojs.svg new file mode 100644 index 000000000..938b6fee8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/markojs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mathematica.svg b/packages/desktop/src/assets/file-icons/mathematica.svg new file mode 100644 index 000000000..08c25084b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mathematica.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/matlab.svg b/packages/desktop/src/assets/file-icons/matlab.svg new file mode 100644 index 000000000..a2166f81e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/matlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/maven.svg b/packages/desktop/src/assets/file-icons/maven.svg new file mode 100644 index 000000000..7a8874502 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/maven.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mdsvex.svg b/packages/desktop/src/assets/file-icons/mdsvex.svg new file mode 100644 index 000000000..34b252af1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mdsvex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mdx.svg b/packages/desktop/src/assets/file-icons/mdx.svg new file mode 100644 index 000000000..b2ab5611a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mdx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mercurial.svg b/packages/desktop/src/assets/file-icons/mercurial.svg new file mode 100644 index 000000000..41f701e23 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mercurial.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/merlin.svg b/packages/desktop/src/assets/file-icons/merlin.svg new file mode 100644 index 000000000..96b29d3fd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/merlin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mermaid.svg b/packages/desktop/src/assets/file-icons/mermaid.svg new file mode 100644 index 000000000..b1f520d81 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mermaid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/meson.svg b/packages/desktop/src/assets/file-icons/meson.svg new file mode 100644 index 000000000..f9d3bef4a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/meson.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/minecraft-fabric.svg b/packages/desktop/src/assets/file-icons/minecraft-fabric.svg new file mode 100644 index 000000000..4c0985b9c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/minecraft-fabric.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/minecraft.svg b/packages/desktop/src/assets/file-icons/minecraft.svg new file mode 100644 index 000000000..219af8ae4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/minecraft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mint.svg b/packages/desktop/src/assets/file-icons/mint.svg new file mode 100644 index 000000000..659340a8c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mjml.svg b/packages/desktop/src/assets/file-icons/mjml.svg new file mode 100644 index 000000000..5580ca096 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mjml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mocha.svg b/packages/desktop/src/assets/file-icons/mocha.svg new file mode 100644 index 000000000..bce8ac3b5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mocha.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/modernizr.svg b/packages/desktop/src/assets/file-icons/modernizr.svg new file mode 100644 index 000000000..b340bec1b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/modernizr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mojo.svg b/packages/desktop/src/assets/file-icons/mojo.svg new file mode 100644 index 000000000..505a8f529 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mojo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/moon.svg b/packages/desktop/src/assets/file-icons/moon.svg new file mode 100644 index 000000000..c428ebb0e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/moonscript.svg b/packages/desktop/src/assets/file-icons/moonscript.svg new file mode 100644 index 000000000..1d7f7ee9f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/moonscript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/mxml.svg b/packages/desktop/src/assets/file-icons/mxml.svg new file mode 100644 index 000000000..c5b84ddbd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/mxml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nano-staged.svg b/packages/desktop/src/assets/file-icons/nano-staged.svg new file mode 100644 index 000000000..6e6cd0751 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nano-staged.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nano-staged_light.svg b/packages/desktop/src/assets/file-icons/nano-staged_light.svg new file mode 100644 index 000000000..698232f0c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nano-staged_light.svg @@ -0,0 +1,4 @@ + + + diff --git a/packages/desktop/src/assets/file-icons/ndst.svg b/packages/desktop/src/assets/file-icons/ndst.svg new file mode 100644 index 000000000..194131385 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ndst.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nest.svg b/packages/desktop/src/assets/file-icons/nest.svg new file mode 100644 index 000000000..259dc538b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/netlify.svg b/packages/desktop/src/assets/file-icons/netlify.svg new file mode 100644 index 000000000..27c837fcc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/netlify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/netlify_light.svg b/packages/desktop/src/assets/file-icons/netlify_light.svg new file mode 100644 index 000000000..b142c486f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/netlify_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/next.svg b/packages/desktop/src/assets/file-icons/next.svg new file mode 100644 index 000000000..83fee37c1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/next_light.svg b/packages/desktop/src/assets/file-icons/next_light.svg new file mode 100644 index 000000000..6e5fb272e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/next_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nginx.svg b/packages/desktop/src/assets/file-icons/nginx.svg new file mode 100644 index 000000000..658ad228f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nginx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ngrx-actions.svg b/packages/desktop/src/assets/file-icons/ngrx-actions.svg new file mode 100644 index 000000000..de418d48d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ngrx-actions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ngrx-effects.svg b/packages/desktop/src/assets/file-icons/ngrx-effects.svg new file mode 100644 index 000000000..8f7dc89dd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ngrx-effects.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ngrx-entity.svg b/packages/desktop/src/assets/file-icons/ngrx-entity.svg new file mode 100644 index 000000000..af0dd0563 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ngrx-entity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ngrx-reducer.svg b/packages/desktop/src/assets/file-icons/ngrx-reducer.svg new file mode 100644 index 000000000..db7a5534a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ngrx-reducer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ngrx-selectors.svg b/packages/desktop/src/assets/file-icons/ngrx-selectors.svg new file mode 100644 index 000000000..af03c40ff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ngrx-selectors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ngrx-state.svg b/packages/desktop/src/assets/file-icons/ngrx-state.svg new file mode 100644 index 000000000..258c0ac87 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ngrx-state.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nim.svg b/packages/desktop/src/assets/file-icons/nim.svg new file mode 100644 index 000000000..d985bb40e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nix.svg b/packages/desktop/src/assets/file-icons/nix.svg new file mode 100644 index 000000000..a50760969 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nodejs.svg b/packages/desktop/src/assets/file-icons/nodejs.svg new file mode 100644 index 000000000..ba7390153 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nodejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nodejs_alt.svg b/packages/desktop/src/assets/file-icons/nodejs_alt.svg new file mode 100644 index 000000000..5b70be2d0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nodejs_alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nodemon.svg b/packages/desktop/src/assets/file-icons/nodemon.svg new file mode 100644 index 000000000..2bd35d1c2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nodemon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/npm.svg b/packages/desktop/src/assets/file-icons/npm.svg new file mode 100644 index 000000000..87aa58368 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/npm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nuget.svg b/packages/desktop/src/assets/file-icons/nuget.svg new file mode 100644 index 000000000..82e298f50 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nuget.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nunjucks.svg b/packages/desktop/src/assets/file-icons/nunjucks.svg new file mode 100644 index 000000000..9fb8890e2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nunjucks.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nuxt.svg b/packages/desktop/src/assets/file-icons/nuxt.svg new file mode 100644 index 000000000..babf91945 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nuxt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/nx.svg b/packages/desktop/src/assets/file-icons/nx.svg new file mode 100644 index 000000000..8db832302 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/nx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/objective-c.svg b/packages/desktop/src/assets/file-icons/objective-c.svg new file mode 100644 index 000000000..7a69f91d6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/objective-c.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/objective-cpp.svg b/packages/desktop/src/assets/file-icons/objective-cpp.svg new file mode 100644 index 000000000..cd55d1ea5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/objective-cpp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ocaml.svg b/packages/desktop/src/assets/file-icons/ocaml.svg new file mode 100644 index 000000000..cb6eb6b94 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ocaml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/odin.svg b/packages/desktop/src/assets/file-icons/odin.svg new file mode 100644 index 000000000..1877a6cfc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/odin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/opa.svg b/packages/desktop/src/assets/file-icons/opa.svg new file mode 100644 index 000000000..3afc1c6bf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/opa.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/packages/desktop/src/assets/file-icons/opam.svg b/packages/desktop/src/assets/file-icons/opam.svg new file mode 100644 index 000000000..70f1b7f02 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/opam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/openapi.svg b/packages/desktop/src/assets/file-icons/openapi.svg new file mode 100644 index 000000000..5b367a168 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/openapi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/openapi_light.svg b/packages/desktop/src/assets/file-icons/openapi_light.svg new file mode 100644 index 000000000..179006db8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/openapi_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/otne.svg b/packages/desktop/src/assets/file-icons/otne.svg new file mode 100644 index 000000000..8670a615b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/otne.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/oxlint.svg b/packages/desktop/src/assets/file-icons/oxlint.svg new file mode 100644 index 000000000..2ffad92d9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/oxlint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/packship.svg b/packages/desktop/src/assets/file-icons/packship.svg new file mode 100644 index 000000000..e03b35d66 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/packship.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/palette.svg b/packages/desktop/src/assets/file-icons/palette.svg new file mode 100644 index 000000000..cc27f66ae --- /dev/null +++ b/packages/desktop/src/assets/file-icons/palette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/panda.svg b/packages/desktop/src/assets/file-icons/panda.svg new file mode 100644 index 000000000..dde4122bb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/panda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/parcel.svg b/packages/desktop/src/assets/file-icons/parcel.svg new file mode 100644 index 000000000..39a1835f1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/parcel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pascal.svg b/packages/desktop/src/assets/file-icons/pascal.svg new file mode 100644 index 000000000..b0a2993eb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pascal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pawn.svg b/packages/desktop/src/assets/file-icons/pawn.svg new file mode 100644 index 000000000..b615d75d1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pawn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/payload.svg b/packages/desktop/src/assets/file-icons/payload.svg new file mode 100644 index 000000000..8e1e82abd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/payload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/payload_light.svg b/packages/desktop/src/assets/file-icons/payload_light.svg new file mode 100644 index 000000000..7a4e9c7d3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/payload_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pdf.svg b/packages/desktop/src/assets/file-icons/pdf.svg new file mode 100644 index 000000000..1c84fe82d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pdf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pdm.svg b/packages/desktop/src/assets/file-icons/pdm.svg new file mode 100644 index 000000000..dd23bb343 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pdm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/percy.svg b/packages/desktop/src/assets/file-icons/percy.svg new file mode 100644 index 000000000..6d0f8973b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/percy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/perl.svg b/packages/desktop/src/assets/file-icons/perl.svg new file mode 100644 index 000000000..0534cade2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/perl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/php-cs-fixer.svg b/packages/desktop/src/assets/file-icons/php-cs-fixer.svg new file mode 100644 index 000000000..398c2145b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/php-cs-fixer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/php.svg b/packages/desktop/src/assets/file-icons/php.svg new file mode 100644 index 000000000..1d7e3365e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/php.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/php_elephant.svg b/packages/desktop/src/assets/file-icons/php_elephant.svg new file mode 100644 index 000000000..d2c2995b6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/php_elephant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/php_elephant_pink.svg b/packages/desktop/src/assets/file-icons/php_elephant_pink.svg new file mode 100644 index 000000000..a7cad7493 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/php_elephant_pink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/phpstan.svg b/packages/desktop/src/assets/file-icons/phpstan.svg new file mode 100644 index 000000000..34b612fe9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/phpstan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/phpunit.svg b/packages/desktop/src/assets/file-icons/phpunit.svg new file mode 100644 index 000000000..21322005e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/phpunit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pinejs.svg b/packages/desktop/src/assets/file-icons/pinejs.svg new file mode 100644 index 000000000..44c0020b2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pinejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pipeline.svg b/packages/desktop/src/assets/file-icons/pipeline.svg new file mode 100644 index 000000000..a3a5e6688 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pipeline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pkl.svg b/packages/desktop/src/assets/file-icons/pkl.svg new file mode 100644 index 000000000..3f31ead5d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pkl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/plastic.svg b/packages/desktop/src/assets/file-icons/plastic.svg new file mode 100644 index 000000000..cc00e5a70 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/plastic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/playwright.svg b/packages/desktop/src/assets/file-icons/playwright.svg new file mode 100644 index 000000000..cae0b24aa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/playwright.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/plop.svg b/packages/desktop/src/assets/file-icons/plop.svg new file mode 100644 index 000000000..85e3bd2f0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/plop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pm2-ecosystem.svg b/packages/desktop/src/assets/file-icons/pm2-ecosystem.svg new file mode 100644 index 000000000..a99d5f2a6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pm2-ecosystem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pnpm.svg b/packages/desktop/src/assets/file-icons/pnpm.svg new file mode 100644 index 000000000..fc52c6ed9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pnpm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pnpm_light.svg b/packages/desktop/src/assets/file-icons/pnpm_light.svg new file mode 100644 index 000000000..4236956cc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pnpm_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/poetry.svg b/packages/desktop/src/assets/file-icons/poetry.svg new file mode 100644 index 000000000..4a355a7ef --- /dev/null +++ b/packages/desktop/src/assets/file-icons/poetry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/postcss.svg b/packages/desktop/src/assets/file-icons/postcss.svg new file mode 100644 index 000000000..799edebc9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/postcss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/posthtml.svg b/packages/desktop/src/assets/file-icons/posthtml.svg new file mode 100644 index 000000000..54dda3c6a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/posthtml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/powerpoint.svg b/packages/desktop/src/assets/file-icons/powerpoint.svg new file mode 100644 index 000000000..eaba916fb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/powerpoint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/powershell.svg b/packages/desktop/src/assets/file-icons/powershell.svg new file mode 100644 index 000000000..a2663936d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/powershell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pre-commit.svg b/packages/desktop/src/assets/file-icons/pre-commit.svg new file mode 100644 index 000000000..399826bff --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pre-commit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/prettier.svg b/packages/desktop/src/assets/file-icons/prettier.svg new file mode 100644 index 000000000..a6cda341b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/prettier.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/prisma.svg b/packages/desktop/src/assets/file-icons/prisma.svg new file mode 100644 index 000000000..121abea22 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/prisma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/processing.svg b/packages/desktop/src/assets/file-icons/processing.svg new file mode 100644 index 000000000..8a960abd8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/processing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/prolog.svg b/packages/desktop/src/assets/file-icons/prolog.svg new file mode 100644 index 000000000..7eda09071 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/prolog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/prompt.svg b/packages/desktop/src/assets/file-icons/prompt.svg new file mode 100644 index 000000000..aa37366b7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/prompt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/proto.svg b/packages/desktop/src/assets/file-icons/proto.svg new file mode 100644 index 000000000..7757c0e5f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/proto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/protractor.svg b/packages/desktop/src/assets/file-icons/protractor.svg new file mode 100644 index 000000000..50f464394 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/protractor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pug.svg b/packages/desktop/src/assets/file-icons/pug.svg new file mode 100644 index 000000000..62a36027c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/puppet.svg b/packages/desktop/src/assets/file-icons/puppet.svg new file mode 100644 index 000000000..3e1e9c12b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/puppet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/puppeteer.svg b/packages/desktop/src/assets/file-icons/puppeteer.svg new file mode 100644 index 000000000..b553df392 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/puppeteer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/purescript.svg b/packages/desktop/src/assets/file-icons/purescript.svg new file mode 100644 index 000000000..d82c8f9d8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/purescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/python-misc.svg b/packages/desktop/src/assets/file-icons/python-misc.svg new file mode 100644 index 000000000..44fb730e5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/python-misc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/python.svg b/packages/desktop/src/assets/file-icons/python.svg new file mode 100644 index 000000000..20c2508a2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/python.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/pytorch.svg b/packages/desktop/src/assets/file-icons/pytorch.svg new file mode 100644 index 000000000..4cb85d012 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/pytorch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/qsharp.svg b/packages/desktop/src/assets/file-icons/qsharp.svg new file mode 100644 index 000000000..de9838d60 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/qsharp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/quarto.svg b/packages/desktop/src/assets/file-icons/quarto.svg new file mode 100644 index 000000000..3bb8ef7c7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/quarto.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/desktop/src/assets/file-icons/quasar.svg b/packages/desktop/src/assets/file-icons/quasar.svg new file mode 100644 index 000000000..fa02ff081 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/quasar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/quokka.svg b/packages/desktop/src/assets/file-icons/quokka.svg new file mode 100644 index 000000000..bf368de32 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/quokka.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/qwik.svg b/packages/desktop/src/assets/file-icons/qwik.svg new file mode 100644 index 000000000..555511694 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/qwik.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/r.svg b/packages/desktop/src/assets/file-icons/r.svg new file mode 100644 index 000000000..5703dd0f9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/r.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/racket.svg b/packages/desktop/src/assets/file-icons/racket.svg new file mode 100644 index 000000000..04ca144ba --- /dev/null +++ b/packages/desktop/src/assets/file-icons/racket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/raml.svg b/packages/desktop/src/assets/file-icons/raml.svg new file mode 100644 index 000000000..d35d561b9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/raml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/razor.svg b/packages/desktop/src/assets/file-icons/razor.svg new file mode 100644 index 000000000..4e99091f1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/razor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rbxmk.svg b/packages/desktop/src/assets/file-icons/rbxmk.svg new file mode 100644 index 000000000..e7d495376 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rbxmk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rc.svg b/packages/desktop/src/assets/file-icons/rc.svg new file mode 100644 index 000000000..83040dbc9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/react.svg b/packages/desktop/src/assets/file-icons/react.svg new file mode 100644 index 000000000..ced90db1a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/react_ts.svg b/packages/desktop/src/assets/file-icons/react_ts.svg new file mode 100644 index 000000000..887f72ca1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/react_ts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/readme.svg b/packages/desktop/src/assets/file-icons/readme.svg new file mode 100644 index 000000000..943d08f3c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/readme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/reason.svg b/packages/desktop/src/assets/file-icons/reason.svg new file mode 100644 index 000000000..0f4b3e1f6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/reason.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/red.svg b/packages/desktop/src/assets/file-icons/red.svg new file mode 100644 index 000000000..608423166 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/red.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/redux-action.svg b/packages/desktop/src/assets/file-icons/redux-action.svg new file mode 100644 index 000000000..a4872e7db --- /dev/null +++ b/packages/desktop/src/assets/file-icons/redux-action.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/redux-reducer.svg b/packages/desktop/src/assets/file-icons/redux-reducer.svg new file mode 100644 index 000000000..cfcca98a1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/redux-reducer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/redux-selector.svg b/packages/desktop/src/assets/file-icons/redux-selector.svg new file mode 100644 index 000000000..073c286df --- /dev/null +++ b/packages/desktop/src/assets/file-icons/redux-selector.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/redux-store.svg b/packages/desktop/src/assets/file-icons/redux-store.svg new file mode 100644 index 000000000..8e644e771 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/redux-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/regedit.svg b/packages/desktop/src/assets/file-icons/regedit.svg new file mode 100644 index 000000000..3d6320607 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/regedit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/remark.svg b/packages/desktop/src/assets/file-icons/remark.svg new file mode 100644 index 000000000..9d6a91831 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/remark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/remix.svg b/packages/desktop/src/assets/file-icons/remix.svg new file mode 100644 index 000000000..763f57ff4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/remix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/remix_light.svg b/packages/desktop/src/assets/file-icons/remix_light.svg new file mode 100644 index 000000000..748b77928 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/remix_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/renovate.svg b/packages/desktop/src/assets/file-icons/renovate.svg new file mode 100644 index 000000000..bc63cbb0c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/renovate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/replit.svg b/packages/desktop/src/assets/file-icons/replit.svg new file mode 100644 index 000000000..f1478a503 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/replit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rescript-interface.svg b/packages/desktop/src/assets/file-icons/rescript-interface.svg new file mode 100644 index 000000000..db3055365 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rescript-interface.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rescript.svg b/packages/desktop/src/assets/file-icons/rescript.svg new file mode 100644 index 000000000..8f40a3a96 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/restql.svg b/packages/desktop/src/assets/file-icons/restql.svg new file mode 100644 index 000000000..a056fe910 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/restql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/riot.svg b/packages/desktop/src/assets/file-icons/riot.svg new file mode 100644 index 000000000..587e50dfc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/riot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/roadmap.svg b/packages/desktop/src/assets/file-icons/roadmap.svg new file mode 100644 index 000000000..2279eadd0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/roadmap.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/roblox.svg b/packages/desktop/src/assets/file-icons/roblox.svg new file mode 100644 index 000000000..56cc37847 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/roblox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/robot.svg b/packages/desktop/src/assets/file-icons/robot.svg new file mode 100644 index 000000000..36c722518 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/robot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/robots.svg b/packages/desktop/src/assets/file-icons/robots.svg new file mode 100644 index 000000000..11fdaaea4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/robots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rocket.svg b/packages/desktop/src/assets/file-icons/rocket.svg new file mode 100644 index 000000000..5f62f322c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rocket.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rojo.svg b/packages/desktop/src/assets/file-icons/rojo.svg new file mode 100644 index 000000000..37c46ea0e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rojo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rollup.svg b/packages/desktop/src/assets/file-icons/rollup.svg new file mode 100644 index 000000000..7fa015324 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rollup.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rome.svg b/packages/desktop/src/assets/file-icons/rome.svg new file mode 100644 index 000000000..8f5de92d2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rome.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/routing.svg b/packages/desktop/src/assets/file-icons/routing.svg new file mode 100644 index 000000000..ea02c9054 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/routing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rspec.svg b/packages/desktop/src/assets/file-icons/rspec.svg new file mode 100644 index 000000000..c1bf424d6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rspec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rubocop.svg b/packages/desktop/src/assets/file-icons/rubocop.svg new file mode 100644 index 000000000..e6a24a235 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rubocop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rubocop_light.svg b/packages/desktop/src/assets/file-icons/rubocop_light.svg new file mode 100644 index 000000000..689c023b5 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rubocop_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ruby.svg b/packages/desktop/src/assets/file-icons/ruby.svg new file mode 100644 index 000000000..2e3215d75 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ruby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/ruff.svg b/packages/desktop/src/assets/file-icons/ruff.svg new file mode 100644 index 000000000..a526788a8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/ruff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/rust.svg b/packages/desktop/src/assets/file-icons/rust.svg new file mode 100644 index 000000000..b382aa4b1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/rust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/salesforce.svg b/packages/desktop/src/assets/file-icons/salesforce.svg new file mode 100644 index 000000000..80e1aa99e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/salesforce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/san.svg b/packages/desktop/src/assets/file-icons/san.svg new file mode 100644 index 000000000..d17b9faf6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/san.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sas.svg b/packages/desktop/src/assets/file-icons/sas.svg new file mode 100644 index 000000000..d47c8bdef --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sas.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sass.svg b/packages/desktop/src/assets/file-icons/sass.svg new file mode 100644 index 000000000..6f39acb02 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sbt.svg b/packages/desktop/src/assets/file-icons/sbt.svg new file mode 100644 index 000000000..37587c5ca --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sbt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/scala.svg b/packages/desktop/src/assets/file-icons/scala.svg new file mode 100644 index 000000000..08e0c2d34 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/scala.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/scheme.svg b/packages/desktop/src/assets/file-icons/scheme.svg new file mode 100644 index 000000000..c8f986e86 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/scheme.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/scons.svg b/packages/desktop/src/assets/file-icons/scons.svg new file mode 100644 index 000000000..d584ea832 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/scons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/scons_light.svg b/packages/desktop/src/assets/file-icons/scons_light.svg new file mode 100644 index 000000000..31f88d565 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/scons_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/screwdriver.svg b/packages/desktop/src/assets/file-icons/screwdriver.svg new file mode 100644 index 000000000..cac820631 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/screwdriver.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/search.svg b/packages/desktop/src/assets/file-icons/search.svg new file mode 100644 index 000000000..3d35c8e24 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/semantic-release.svg b/packages/desktop/src/assets/file-icons/semantic-release.svg new file mode 100644 index 000000000..17187e89a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/semantic-release.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/semantic-release_light.svg b/packages/desktop/src/assets/file-icons/semantic-release_light.svg new file mode 100644 index 000000000..21e42a095 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/semantic-release_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/semgrep.svg b/packages/desktop/src/assets/file-icons/semgrep.svg new file mode 100644 index 000000000..73a8abc66 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/semgrep.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sentry.svg b/packages/desktop/src/assets/file-icons/sentry.svg new file mode 100644 index 000000000..319e60a74 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sentry.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sequelize.svg b/packages/desktop/src/assets/file-icons/sequelize.svg new file mode 100644 index 000000000..0e4c7888f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sequelize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/serverless.svg b/packages/desktop/src/assets/file-icons/serverless.svg new file mode 100644 index 000000000..92ccca84a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/serverless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/settings.svg b/packages/desktop/src/assets/file-icons/settings.svg new file mode 100644 index 000000000..dc701ae87 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/shader.svg b/packages/desktop/src/assets/file-icons/shader.svg new file mode 100644 index 000000000..f42156ed8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/shader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/silverstripe.svg b/packages/desktop/src/assets/file-icons/silverstripe.svg new file mode 100644 index 000000000..46cdb7ee1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/silverstripe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/simulink.svg b/packages/desktop/src/assets/file-icons/simulink.svg new file mode 100644 index 000000000..33e97fe42 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/simulink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/siyuan.svg b/packages/desktop/src/assets/file-icons/siyuan.svg new file mode 100644 index 000000000..7a7488dd2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/siyuan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sketch.svg b/packages/desktop/src/assets/file-icons/sketch.svg new file mode 100644 index 000000000..0d7540690 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sketch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/slim.svg b/packages/desktop/src/assets/file-icons/slim.svg new file mode 100644 index 000000000..edc724173 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/slim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/slint.svg b/packages/desktop/src/assets/file-icons/slint.svg new file mode 100644 index 000000000..b6434ec97 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/slint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/slug.svg b/packages/desktop/src/assets/file-icons/slug.svg new file mode 100644 index 000000000..da1dcc7b0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/slug.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/smarty.svg b/packages/desktop/src/assets/file-icons/smarty.svg new file mode 100644 index 000000000..4572a5879 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/smarty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sml.svg b/packages/desktop/src/assets/file-icons/sml.svg new file mode 100644 index 000000000..8f92a33ba --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/snakemake.svg b/packages/desktop/src/assets/file-icons/snakemake.svg new file mode 100644 index 000000000..6dd08c958 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/snakemake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/snapcraft.svg b/packages/desktop/src/assets/file-icons/snapcraft.svg new file mode 100644 index 000000000..17bf8d8d9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/snapcraft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/snowpack.svg b/packages/desktop/src/assets/file-icons/snowpack.svg new file mode 100644 index 000000000..7941faefb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/snowpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/snowpack_light.svg b/packages/desktop/src/assets/file-icons/snowpack_light.svg new file mode 100644 index 000000000..70389d20f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/snowpack_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/snyk.svg b/packages/desktop/src/assets/file-icons/snyk.svg new file mode 100644 index 000000000..90791eeec --- /dev/null +++ b/packages/desktop/src/assets/file-icons/snyk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/solidity.svg b/packages/desktop/src/assets/file-icons/solidity.svg new file mode 100644 index 000000000..6ae9873d8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/solidity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sonarcloud.svg b/packages/desktop/src/assets/file-icons/sonarcloud.svg new file mode 100644 index 000000000..ee9896161 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sonarcloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/spwn.svg b/packages/desktop/src/assets/file-icons/spwn.svg new file mode 100644 index 000000000..8a8bf4347 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/spwn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stackblitz.svg b/packages/desktop/src/assets/file-icons/stackblitz.svg new file mode 100644 index 000000000..f1806a8b2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stackblitz.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stan.svg b/packages/desktop/src/assets/file-icons/stan.svg new file mode 100644 index 000000000..bb5cf6723 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/steadybit.svg b/packages/desktop/src/assets/file-icons/steadybit.svg new file mode 100644 index 000000000..4871bbd76 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/steadybit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stencil.svg b/packages/desktop/src/assets/file-icons/stencil.svg new file mode 100644 index 000000000..bf8f3ea19 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stitches.svg b/packages/desktop/src/assets/file-icons/stitches.svg new file mode 100644 index 000000000..a597fbcce --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stitches.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stitches_light.svg b/packages/desktop/src/assets/file-icons/stitches_light.svg new file mode 100644 index 000000000..8001d9dfc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stitches_light.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/storybook.svg b/packages/desktop/src/assets/file-icons/storybook.svg new file mode 100644 index 000000000..8a4bdeaa7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/storybook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stryker.svg b/packages/desktop/src/assets/file-icons/stryker.svg new file mode 100644 index 000000000..05d45e614 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stryker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stylable.svg b/packages/desktop/src/assets/file-icons/stylable.svg new file mode 100644 index 000000000..be5522619 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stylable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stylelint.svg b/packages/desktop/src/assets/file-icons/stylelint.svg new file mode 100644 index 000000000..eb6452438 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stylelint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/stylelint_light.svg b/packages/desktop/src/assets/file-icons/stylelint_light.svg new file mode 100644 index 000000000..502fec33f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stylelint_light.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/packages/desktop/src/assets/file-icons/stylus.svg b/packages/desktop/src/assets/file-icons/stylus.svg new file mode 100644 index 000000000..ae61b48dd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/stylus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sublime.svg b/packages/desktop/src/assets/file-icons/sublime.svg new file mode 100644 index 000000000..5c99fb9be --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sublime.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/subtitles.svg b/packages/desktop/src/assets/file-icons/subtitles.svg new file mode 100644 index 000000000..15eebd61f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/subtitles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/supabase.svg b/packages/desktop/src/assets/file-icons/supabase.svg new file mode 100644 index 000000000..78bfef7d9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/supabase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/svelte.svg b/packages/desktop/src/assets/file-icons/svelte.svg new file mode 100644 index 000000000..4b14a6f71 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/svelte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/svg.svg b/packages/desktop/src/assets/file-icons/svg.svg new file mode 100644 index 000000000..fbaf9e59b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/svg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/svgo.svg b/packages/desktop/src/assets/file-icons/svgo.svg new file mode 100644 index 000000000..4b9cb8904 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/svgo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/svgr.svg b/packages/desktop/src/assets/file-icons/svgr.svg new file mode 100644 index 000000000..01443226e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/svgr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/swagger.svg b/packages/desktop/src/assets/file-icons/swagger.svg new file mode 100644 index 000000000..1f79152d1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/swagger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/sway.svg b/packages/desktop/src/assets/file-icons/sway.svg new file mode 100644 index 000000000..adca3282b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/sway.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/swc.svg b/packages/desktop/src/assets/file-icons/swc.svg new file mode 100644 index 000000000..5931bd3a1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/swc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/swift.svg b/packages/desktop/src/assets/file-icons/swift.svg new file mode 100644 index 000000000..df413c843 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/swift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/syncpack.svg b/packages/desktop/src/assets/file-icons/syncpack.svg new file mode 100644 index 000000000..9c64e3184 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/syncpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/systemd.svg b/packages/desktop/src/assets/file-icons/systemd.svg new file mode 100755 index 000000000..943b77f26 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/systemd.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/systemd_light.svg b/packages/desktop/src/assets/file-icons/systemd_light.svg new file mode 100755 index 000000000..39e81f63b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/systemd_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/table.svg b/packages/desktop/src/assets/file-icons/table.svg new file mode 100644 index 000000000..040b3839e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tailwindcss.svg b/packages/desktop/src/assets/file-icons/tailwindcss.svg new file mode 100644 index 000000000..a55450d0b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tailwindcss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/taskfile.svg b/packages/desktop/src/assets/file-icons/taskfile.svg new file mode 100644 index 000000000..99a775f69 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/taskfile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tauri.svg b/packages/desktop/src/assets/file-icons/tauri.svg new file mode 100644 index 000000000..2c7aa2656 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tauri.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/taze.svg b/packages/desktop/src/assets/file-icons/taze.svg new file mode 100644 index 000000000..c6e3a3fc8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/taze.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tcl.svg b/packages/desktop/src/assets/file-icons/tcl.svg new file mode 100644 index 000000000..3c196a696 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tcl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/teal.svg b/packages/desktop/src/assets/file-icons/teal.svg new file mode 100644 index 000000000..770b63d7b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/teal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/templ.svg b/packages/desktop/src/assets/file-icons/templ.svg new file mode 100644 index 000000000..5b79cfe99 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/templ.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/template.svg b/packages/desktop/src/assets/file-icons/template.svg new file mode 100644 index 000000000..604a6f86e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/template.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/terraform.svg b/packages/desktop/src/assets/file-icons/terraform.svg new file mode 100644 index 000000000..d072809bf --- /dev/null +++ b/packages/desktop/src/assets/file-icons/terraform.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/test-js.svg b/packages/desktop/src/assets/file-icons/test-js.svg new file mode 100644 index 000000000..d6ea99491 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/test-js.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/test-jsx.svg b/packages/desktop/src/assets/file-icons/test-jsx.svg new file mode 100644 index 000000000..ea2d4da46 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/test-jsx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/test-ts.svg b/packages/desktop/src/assets/file-icons/test-ts.svg new file mode 100644 index 000000000..0b4ec71be --- /dev/null +++ b/packages/desktop/src/assets/file-icons/test-ts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tex.svg b/packages/desktop/src/assets/file-icons/tex.svg new file mode 100644 index 000000000..83fc24ad0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/textlint.svg b/packages/desktop/src/assets/file-icons/textlint.svg new file mode 100644 index 000000000..a619bf04d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/textlint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tilt.svg b/packages/desktop/src/assets/file-icons/tilt.svg new file mode 100644 index 000000000..0ab842851 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tilt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tldraw.svg b/packages/desktop/src/assets/file-icons/tldraw.svg new file mode 100644 index 000000000..c4e6d6b8f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tldraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tldraw_light.svg b/packages/desktop/src/assets/file-icons/tldraw_light.svg new file mode 100644 index 000000000..41faab3f0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tldraw_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tobi.svg b/packages/desktop/src/assets/file-icons/tobi.svg new file mode 100644 index 000000000..1a576a1c3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tobi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tobimake.svg b/packages/desktop/src/assets/file-icons/tobimake.svg new file mode 100644 index 000000000..0ba3b3e7f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tobimake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/todo.svg b/packages/desktop/src/assets/file-icons/todo.svg new file mode 100644 index 000000000..281ed6599 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/todo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/toml.svg b/packages/desktop/src/assets/file-icons/toml.svg new file mode 100644 index 000000000..aa4f24c3b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/toml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/toml_light.svg b/packages/desktop/src/assets/file-icons/toml_light.svg new file mode 100644 index 000000000..a85712bf8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/toml_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/travis.svg b/packages/desktop/src/assets/file-icons/travis.svg new file mode 100644 index 000000000..37a69a8d3 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/travis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tree.svg b/packages/desktop/src/assets/file-icons/tree.svg new file mode 100644 index 000000000..a3b6d57e1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/trigger.svg b/packages/desktop/src/assets/file-icons/trigger.svg new file mode 100644 index 000000000..7a4f63a07 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/trigger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tsconfig.svg b/packages/desktop/src/assets/file-icons/tsconfig.svg new file mode 100644 index 000000000..817fb8dbe --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tsconfig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tsdoc.svg b/packages/desktop/src/assets/file-icons/tsdoc.svg new file mode 100644 index 000000000..e7e04d0e1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tsdoc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tsil.svg b/packages/desktop/src/assets/file-icons/tsil.svg new file mode 100644 index 000000000..261d7cdfe --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tsil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/tune.svg b/packages/desktop/src/assets/file-icons/tune.svg new file mode 100644 index 000000000..ecbde06c6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/tune.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/turborepo.svg b/packages/desktop/src/assets/file-icons/turborepo.svg new file mode 100644 index 000000000..f0e544985 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/turborepo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/turborepo_light.svg b/packages/desktop/src/assets/file-icons/turborepo_light.svg new file mode 100644 index 000000000..b020a358d --- /dev/null +++ b/packages/desktop/src/assets/file-icons/turborepo_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/twig.svg b/packages/desktop/src/assets/file-icons/twig.svg new file mode 100644 index 000000000..01f9a5dba --- /dev/null +++ b/packages/desktop/src/assets/file-icons/twig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/twine.svg b/packages/desktop/src/assets/file-icons/twine.svg new file mode 100644 index 000000000..ac1bc553b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/twine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/typescript-def.svg b/packages/desktop/src/assets/file-icons/typescript-def.svg new file mode 100644 index 000000000..a9ef95879 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/typescript-def.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/typescript.svg b/packages/desktop/src/assets/file-icons/typescript.svg new file mode 100644 index 000000000..acaf0ddb7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/typst.svg b/packages/desktop/src/assets/file-icons/typst.svg new file mode 100644 index 000000000..a36473450 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/typst.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/umi.svg b/packages/desktop/src/assets/file-icons/umi.svg new file mode 100644 index 000000000..7479a4bbb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/umi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/uml.svg b/packages/desktop/src/assets/file-icons/uml.svg new file mode 100644 index 000000000..5f70f1e42 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/uml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/uml_light.svg b/packages/desktop/src/assets/file-icons/uml_light.svg new file mode 100644 index 000000000..c296fac5a --- /dev/null +++ b/packages/desktop/src/assets/file-icons/uml_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/unity.svg b/packages/desktop/src/assets/file-icons/unity.svg new file mode 100644 index 000000000..f495772f9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/unity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/unocss.svg b/packages/desktop/src/assets/file-icons/unocss.svg new file mode 100644 index 000000000..eab05c437 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/unocss.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/desktop/src/assets/file-icons/url.svg b/packages/desktop/src/assets/file-icons/url.svg new file mode 100644 index 000000000..f065589a6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/url.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/uv.svg b/packages/desktop/src/assets/file-icons/uv.svg new file mode 100644 index 000000000..1549270fb --- /dev/null +++ b/packages/desktop/src/assets/file-icons/uv.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vagrant.svg b/packages/desktop/src/assets/file-icons/vagrant.svg new file mode 100644 index 000000000..78c19f9e7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vagrant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vala.svg b/packages/desktop/src/assets/file-icons/vala.svg new file mode 100644 index 000000000..114aff27c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vala.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vanilla-extract.svg b/packages/desktop/src/assets/file-icons/vanilla-extract.svg new file mode 100644 index 000000000..c1f1e5946 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vanilla-extract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/varnish.svg b/packages/desktop/src/assets/file-icons/varnish.svg new file mode 100644 index 000000000..6b504af71 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/varnish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vedic.svg b/packages/desktop/src/assets/file-icons/vedic.svg new file mode 100644 index 000000000..3dccbeb01 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vedic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/velite.svg b/packages/desktop/src/assets/file-icons/velite.svg new file mode 100644 index 000000000..ca50cfa4f --- /dev/null +++ b/packages/desktop/src/assets/file-icons/velite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/velocity.svg b/packages/desktop/src/assets/file-icons/velocity.svg new file mode 100644 index 000000000..f5fb988a2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/velocity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vercel.svg b/packages/desktop/src/assets/file-icons/vercel.svg new file mode 100644 index 000000000..8ff6e492e --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vercel_light.svg b/packages/desktop/src/assets/file-icons/vercel_light.svg new file mode 100644 index 000000000..314b78cd6 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vercel_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/verdaccio.svg b/packages/desktop/src/assets/file-icons/verdaccio.svg new file mode 100644 index 000000000..3b5f1d412 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/verdaccio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/verified.svg b/packages/desktop/src/assets/file-icons/verified.svg new file mode 100644 index 000000000..0c861c559 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/verified.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/verilog.svg b/packages/desktop/src/assets/file-icons/verilog.svg new file mode 100644 index 000000000..c546ea874 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/verilog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vfl.svg b/packages/desktop/src/assets/file-icons/vfl.svg new file mode 100644 index 000000000..3c371b4ad --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vfl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/video.svg b/packages/desktop/src/assets/file-icons/video.svg new file mode 100644 index 000000000..2ade126f8 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vim.svg b/packages/desktop/src/assets/file-icons/vim.svg new file mode 100644 index 000000000..1fc655d96 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/virtual.svg b/packages/desktop/src/assets/file-icons/virtual.svg new file mode 100644 index 000000000..0fdb620da --- /dev/null +++ b/packages/desktop/src/assets/file-icons/virtual.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/visualstudio.svg b/packages/desktop/src/assets/file-icons/visualstudio.svg new file mode 100644 index 000000000..15328de80 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/visualstudio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vite.svg b/packages/desktop/src/assets/file-icons/vite.svg new file mode 100644 index 000000000..d66cd5e7b --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vitest.svg b/packages/desktop/src/assets/file-icons/vitest.svg new file mode 100644 index 000000000..0a634e997 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vitest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vlang.svg b/packages/desktop/src/assets/file-icons/vlang.svg new file mode 100644 index 000000000..17bf0e049 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vlang.svg @@ -0,0 +1,6 @@ + + + + diff --git a/packages/desktop/src/assets/file-icons/vscode.svg b/packages/desktop/src/assets/file-icons/vscode.svg new file mode 100644 index 000000000..bb3772afd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vscode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vue-config.svg b/packages/desktop/src/assets/file-icons/vue-config.svg new file mode 100644 index 000000000..bfe01c23c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vue-config.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vue.svg b/packages/desktop/src/assets/file-icons/vue.svg new file mode 100644 index 000000000..359f899f2 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/vuex-store.svg b/packages/desktop/src/assets/file-icons/vuex-store.svg new file mode 100644 index 000000000..c98a851cc --- /dev/null +++ b/packages/desktop/src/assets/file-icons/vuex-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wakatime.svg b/packages/desktop/src/assets/file-icons/wakatime.svg new file mode 100644 index 000000000..66b8a6f71 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wakatime.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wakatime_light.svg b/packages/desktop/src/assets/file-icons/wakatime_light.svg new file mode 100644 index 000000000..2b94c5611 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wakatime_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wallaby.svg b/packages/desktop/src/assets/file-icons/wallaby.svg new file mode 100644 index 000000000..0e7ce6ef0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wallaby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wally.svg b/packages/desktop/src/assets/file-icons/wally.svg new file mode 100644 index 000000000..a5c1f24fa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wally.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/watchman.svg b/packages/desktop/src/assets/file-icons/watchman.svg new file mode 100644 index 000000000..74773cd14 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/watchman.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/webassembly.svg b/packages/desktop/src/assets/file-icons/webassembly.svg new file mode 100644 index 000000000..69a43aa35 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/webassembly.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/webhint.svg b/packages/desktop/src/assets/file-icons/webhint.svg new file mode 100644 index 000000000..fdaa668db --- /dev/null +++ b/packages/desktop/src/assets/file-icons/webhint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/webpack.svg b/packages/desktop/src/assets/file-icons/webpack.svg new file mode 100644 index 000000000..68233d9e9 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/webpack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wepy.svg b/packages/desktop/src/assets/file-icons/wepy.svg new file mode 100644 index 000000000..bed1ad034 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wepy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/werf.svg b/packages/desktop/src/assets/file-icons/werf.svg new file mode 100644 index 000000000..7a89a1fb1 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/werf.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/windicss.svg b/packages/desktop/src/assets/file-icons/windicss.svg new file mode 100644 index 000000000..4f31c55fa --- /dev/null +++ b/packages/desktop/src/assets/file-icons/windicss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wolframlanguage.svg b/packages/desktop/src/assets/file-icons/wolframlanguage.svg new file mode 100644 index 000000000..77e880995 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wolframlanguage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/word.svg b/packages/desktop/src/assets/file-icons/word.svg new file mode 100644 index 000000000..a90b88f9c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/word.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wrangler.svg b/packages/desktop/src/assets/file-icons/wrangler.svg new file mode 100644 index 000000000..51a7983a0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wrangler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/wxt.svg b/packages/desktop/src/assets/file-icons/wxt.svg new file mode 100644 index 000000000..d43b74283 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/wxt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/xaml.svg b/packages/desktop/src/assets/file-icons/xaml.svg new file mode 100644 index 000000000..0b7e865a7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/xaml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/xmake.svg b/packages/desktop/src/assets/file-icons/xmake.svg new file mode 100644 index 000000000..47b3ce8ae --- /dev/null +++ b/packages/desktop/src/assets/file-icons/xmake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/xml.svg b/packages/desktop/src/assets/file-icons/xml.svg new file mode 100644 index 000000000..c3a1eaf45 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/xml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/yaml.svg b/packages/desktop/src/assets/file-icons/yaml.svg new file mode 100644 index 000000000..1f1cc7cb0 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/yaml.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/yang.svg b/packages/desktop/src/assets/file-icons/yang.svg new file mode 100644 index 000000000..fba4bbfa4 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/yang.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/yarn.svg b/packages/desktop/src/assets/file-icons/yarn.svg new file mode 100644 index 000000000..9af575c11 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/yarn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/zeabur.svg b/packages/desktop/src/assets/file-icons/zeabur.svg new file mode 100644 index 000000000..37b0ea8b7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/zeabur.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/zeabur_light.svg b/packages/desktop/src/assets/file-icons/zeabur_light.svg new file mode 100644 index 000000000..0d01f2b1c --- /dev/null +++ b/packages/desktop/src/assets/file-icons/zeabur_light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/zig.svg b/packages/desktop/src/assets/file-icons/zig.svg new file mode 100644 index 000000000..b5604dfe7 --- /dev/null +++ b/packages/desktop/src/assets/file-icons/zig.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/assets/file-icons/zip.svg b/packages/desktop/src/assets/file-icons/zip.svg new file mode 100644 index 000000000..1056c60bd --- /dev/null +++ b/packages/desktop/src/assets/file-icons/zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/desktop/src/components/code.tsx b/packages/desktop/src/components/code.tsx new file mode 100644 index 000000000..40a40aa9a --- /dev/null +++ b/packages/desktop/src/components/code.tsx @@ -0,0 +1,846 @@ +import { bundledLanguages, type BundledLanguage, type ShikiTransformer } from "shiki" +import { splitProps, type ComponentProps, createEffect, onMount, onCleanup, createMemo, createResource } from "solid-js" +import { useLocal, useShiki } from "@/context" +import type { TextSelection } from "@/context/local" +import { getFileExtension, getNodeOffsetInLine, getSelectionInContainer } from "@/utils" + +type DefinedSelection = Exclude + +interface Props extends ComponentProps<"div"> { + code: string + path: string +} + +export function Code(props: Props) { + const ctx = useLocal() + const highlighter = useShiki() + const [local, others] = splitProps(props, ["class", "classList", "code", "path"]) + const lang = createMemo(() => { + const ext = getFileExtension(local.path) + if (ext in bundledLanguages) return ext + return "text" + }) + + let container: HTMLDivElement | undefined + let isProgrammaticSelection = false + + const ranges = createMemo(() => { + const items = ctx.context.all() as Array<{ type: "file"; path: string; selection?: DefinedSelection }> + const result: DefinedSelection[] = [] + for (const item of items) { + if (item.path !== local.path) continue + const selection = item.selection + if (!selection) continue + result.push(selection) + } + return result + }) + + const createLineNumberTransformer = (selections: DefinedSelection[]): ShikiTransformer => { + const highlighted = new Set() + for (const selection of selections) { + const startLine = selection.startLine + const endLine = selection.endLine + const start = Math.max(1, Math.min(startLine, endLine)) + const end = Math.max(start, Math.max(startLine, endLine)) + const count = end - start + 1 + if (count <= 0) continue + const values = Array.from({ length: count }, (_, index) => start + index) + for (const value of values) highlighted.add(value) + } + return { + name: "line-number-highlight", + line(node, index) { + if (!highlighted.has(index)) return + this.addClassToHast(node, "line-number-highlight") + const children = node.children + if (!Array.isArray(children)) return + for (const child of children) { + if (!child || typeof child !== "object") continue + const element = child as { type?: string; properties?: { className?: string[] } } + if (element.type !== "element") continue + const className = element.properties?.className + if (!Array.isArray(className)) continue + const matches = className.includes("diff-oldln") || className.includes("diff-newln") + if (!matches) continue + if (className.includes("line-number-highlight")) continue + className.push("line-number-highlight") + } + }, + } + } + + const [html] = createResource( + () => ranges(), + async (activeRanges) => { + if (!highlighter.getLoadedLanguages().includes(lang())) { + await highlighter.loadLanguage(lang() as BundledLanguage) + } + return highlighter.codeToHtml(local.code || "", { + lang: lang() && lang() in bundledLanguages ? lang() : "text", + theme: "opencode", + transformers: [transformerUnifiedDiff(), transformerDiffGroups(), createLineNumberTransformer(activeRanges)], + }) as string + }, + ) + + onMount(() => { + if (!container) return + + let ticking = false + const onScroll = () => { + if (!container) return + if (ctx.file.active()?.path !== local.path) return + if (ticking) return + ticking = true + requestAnimationFrame(() => { + ticking = false + ctx.file.scroll(local.path, container!.scrollTop) + }) + } + + const onSelectionChange = () => { + if (!container) return + if (isProgrammaticSelection) return + if (ctx.file.active()?.path !== local.path) return + const d = getSelectionInContainer(container) + if (!d) return + const p = ctx.file.node(local.path)?.selection + if (p && p.startLine === d.sl && p.endLine === d.el && p.startChar === d.sch && p.endChar === d.ech) return + ctx.file.select(local.path, { startLine: d.sl, startChar: d.sch, endLine: d.el, endChar: d.ech }) + } + + const MOD = typeof navigator === "object" && /(Mac|iPod|iPhone|iPad)/.test(navigator.platform) ? "Meta" : "Control" + const onKeyDown = (e: KeyboardEvent) => { + if (ctx.file.active()?.path !== local.path) return + const ae = document.activeElement as HTMLElement | undefined + const tag = (ae?.tagName || "").toLowerCase() + const inputFocused = !!ae && (tag === "input" || tag === "textarea" || ae.isContentEditable) + if (inputFocused) return + if (e.getModifierState(MOD) && e.key.toLowerCase() === "a") { + e.preventDefault() + if (!container) return + const element = container.querySelector("code") as HTMLElement | undefined + if (!element) return + const lines = Array.from(element.querySelectorAll(".line")) + if (!lines.length) return + const r = document.createRange() + const last = lines[lines.length - 1] + r.selectNodeContents(last) + const lastLen = r.toString().length + ctx.file.select(local.path, { startLine: 1, startChar: 0, endLine: lines.length, endChar: lastLen }) + } + } + + container.addEventListener("scroll", onScroll) + document.addEventListener("selectionchange", onSelectionChange) + document.addEventListener("keydown", onKeyDown) + + onCleanup(() => { + container?.removeEventListener("scroll", onScroll) + document.removeEventListener("selectionchange", onSelectionChange) + document.removeEventListener("keydown", onKeyDown) + }) + }) + + // Restore scroll position from store when content is ready + createEffect(() => { + const content = html() + if (!container || !content) return + const top = ctx.file.node(local.path)?.scrollTop + if (top !== undefined && container.scrollTop !== top) container.scrollTop = top + }) + + // Sync selection from store -> DOM + createEffect(() => { + const content = html() + if (!container || !content) return + if (ctx.file.active()?.path !== local.path) return + const codeEl = container.querySelector("code") as HTMLElement | undefined + if (!codeEl) return + const target = ctx.file.node(local.path)?.selection + const current = getSelectionInContainer(container) + const sel = window.getSelection() + if (!sel) return + if (!target) { + if (current) { + isProgrammaticSelection = true + sel.removeAllRanges() + queueMicrotask(() => { + isProgrammaticSelection = false + }) + } + return + } + const matches = !!( + current && + current.sl === target.startLine && + current.sch === target.startChar && + current.el === target.endLine && + current.ech === target.endChar + ) + if (matches) return + const lines = Array.from(codeEl.querySelectorAll(".line")) + if (lines.length === 0) return + let sIdx = Math.max(0, target.startLine - 1) + let eIdx = Math.max(0, target.endLine - 1) + let sChar = Math.max(0, target.startChar || 0) + let eChar = Math.max(0, target.endChar || 0) + if (sIdx > eIdx || (sIdx === eIdx && sChar > eChar)) { + const ti = sIdx + sIdx = eIdx + eIdx = ti + const tc = sChar + sChar = eChar + eChar = tc + } + if (eChar === 0 && eIdx > sIdx) { + eIdx = eIdx - 1 + eChar = Number.POSITIVE_INFINITY + } + if (sIdx >= lines.length) return + if (eIdx >= lines.length) eIdx = lines.length - 1 + const s = getNodeOffsetInLine(lines[sIdx], sChar) ?? { node: lines[sIdx], offset: 0 } + const e = getNodeOffsetInLine(lines[eIdx], eChar) ?? { node: lines[eIdx], offset: lines[eIdx].childNodes.length } + const range = document.createRange() + range.setStart(s.node, s.offset) + range.setEnd(e.node, e.offset) + isProgrammaticSelection = true + sel.removeAllRanges() + sel.addRange(range) + queueMicrotask(() => { + isProgrammaticSelection = false + }) + }) + + // Build/toggle split layout and apply folding (both unified and split) + createEffect(() => { + const content = html() + if (!container || !content) return + const view = ctx.file.view(local.path) + + const pres = Array.from(container.querySelectorAll("pre")) + if (pres.length === 0) return + const originalPre = pres[0] + + const split = container.querySelector(".diff-split") + if (view === "diff-split") { + applySplitDiff(container) + const next = container.querySelector(".diff-split") + if (next) next.style.display = "" + originalPre.style.display = "none" + } else { + if (split) split.style.display = "none" + originalPre.style.display = "" + } + + const expanded = ctx.file.folded(local.path) + if (view === "diff-split") { + const left = container.querySelector(".diff-split pre:nth-child(1) code") + const right = container.querySelector(".diff-split pre:nth-child(2) code") + if (left) + applyDiffFolding(left, 3, { expanded, onExpand: (key) => ctx.file.unfold(local.path, key), side: "left" }) + if (right) + applyDiffFolding(right, 3, { expanded, onExpand: (key) => ctx.file.unfold(local.path, key), side: "right" }) + } else { + const code = container.querySelector("pre code") + if (code) + applyDiffFolding(code, 3, { + expanded, + onExpand: (key) => ctx.file.unfold(local.path, key), + }) + } + }) + + // Highlight groups + scroll coupling + const clearHighlights = () => { + if (!container) return + container.querySelectorAll(".diff-selected").forEach((el) => el.classList.remove("diff-selected")) + } + + const applyHighlight = (idx: number, scroll?: boolean) => { + if (!container) return + const view = ctx.file.view(local.path) + if (view === "raw") return + + clearHighlights() + + const nodes: HTMLElement[] = [] + if (view === "diff-split") { + const left = container.querySelector(".diff-split pre:nth-child(1) code") + const right = container.querySelector(".diff-split pre:nth-child(2) code") + if (left) + nodes.push(...Array.from(left.querySelectorAll(`[data-chgrp="${idx}"][data-diff="remove"]`))) + if (right) + nodes.push(...Array.from(right.querySelectorAll(`[data-chgrp="${idx}"][data-diff="add"]`))) + } else { + const code = container.querySelector("pre code") + if (code) nodes.push(...Array.from(code.querySelectorAll(`[data-chgrp="${idx}"]`))) + } + + for (const n of nodes) n.classList.add("diff-selected") + if (scroll && nodes.length) nodes[0].scrollIntoView({ block: "center", behavior: "smooth" }) + } + + const countGroups = () => { + if (!container) return 0 + const code = container.querySelector("pre code") + if (!code) return 0 + const set = new Set() + for (const el of Array.from(code.querySelectorAll(".diff-line[data-chgrp]"))) { + const v = el.getAttribute("data-chgrp") + if (v != undefined) set.add(v) + } + return set.size + } + + let lastIdx: number | undefined = undefined + let lastView: string | undefined + let lastContent: string | undefined + let lastRawIdx: number | undefined = undefined + createEffect(() => { + const content = html() + if (!container || !content) return + const view = ctx.file.view(local.path) + const raw = ctx.file.changeIndex(local.path) + if (raw === undefined) return + const total = countGroups() + if (total <= 0) return + const next = ((raw % total) + total) % total + + const navigated = lastRawIdx !== undefined && lastRawIdx !== raw + + if (next !== raw) { + ctx.file.setChangeIndex(local.path, next) + applyHighlight(next, true) + } else { + if (lastView !== view || lastContent !== content) applyHighlight(next) + if ((lastIdx !== undefined && lastIdx !== next) || navigated) applyHighlight(next, true) + } + + lastRawIdx = raw + lastIdx = next + lastView = view + lastContent = content + }) + + return ( +
{ + container = el + }} + innerHTML={html()} + class=" + font-mono text-xs tracking-wide overflow-y-auto h-full + [&]:[counter-reset:line] + [&_pre]:focus-visible:outline-none + [&_pre]:overflow-x-auto [&_pre]:no-scrollbar + [&_code]:min-w-full [&_code]:inline-block + [&_.tab]:relative + [&_.tab::before]:content['⇥'] + [&_.tab::before]:absolute + [&_.tab::before]:opacity-0 + [&_.space]:relative + [&_.space::before]:content-['·'] + [&_.space::before]:absolute + [&_.space::before]:opacity-0 + [&_.line]:inline-block [&_.line]:w-full + [&_.line]:hover:bg-background-element + [&_.line::before]:sticky [&_.line::before]:left-0 + [&_.line::before]:w-12 [&_.line::before]:pr-4 + [&_.line::before]:z-10 + [&_.line::before]:bg-background-panel + [&_.line::before]:text-text-muted/60 + [&_.line::before]:text-right [&_.line::before]:inline-block + [&_.line::before]:select-none + [&_.line::before]:[counter-increment:line] + [&_.line::before]:content-[counter(line)] + [&_.line-number-highlight]:bg-accent/20 + [&_.line-number-highlight::before]:bg-accent/40! + [&_.line-number-highlight::before]:text-background-panel! + [&_code.code-diff_.line::before]:content-[''] + [&_code.code-diff_.line::before]:w-0 + [&_code.code-diff_.line::before]:pr-0 + [&_.diff-split_code.code-diff::before]:w-10 + [&_.diff-split_.diff-newln]:left-0 + [&_.diff-oldln]:sticky [&_.diff-oldln]:left-0 + [&_.diff-oldln]:w-10 [&_.diff-oldln]:pr-2 + [&_.diff-oldln]:z-40 + [&_.diff-oldln]:text-text-muted/60 + [&_.diff-oldln]:text-right [&_.diff-oldln]:inline-block + [&_.diff-oldln]:select-none + [&_.diff-oldln]:bg-background-panel + [&_.diff-newln]:sticky [&_.diff-newln]:left-10 + [&_.diff-newln]:w-10 [&_.diff-newln]:pr-2 + [&_.diff-newln]:z-40 + [&_.diff-newln]:text-text-muted/60 + [&_.diff-newln]:text-right [&_.diff-newln]:inline-block + [&_.diff-newln]:select-none + [&_.diff-newln]:bg-background-panel + [&_.diff-add]:bg-success/20! + [&_.diff-add.diff-selected]:bg-success/50! + [&_.diff-add_.diff-oldln]:bg-success! + [&_.diff-add_.diff-oldln]:text-background-panel! + [&_.diff-add_.diff-newln]:bg-success! + [&_.diff-add_.diff-newln]:text-background-panel! + [&_.diff-remove]:bg-error/20! + [&_.diff-remove.diff-selected]:bg-error/50! + [&_.diff-remove_.diff-newln]:bg-error! + [&_.diff-remove_.diff-newln]:text-background-panel! + [&_.diff-remove_.diff-oldln]:bg-error! + [&_.diff-remove_.diff-oldln]:text-background-panel! + [&_.diff-sign]:inline-block [&_.diff-sign]:px-2 [&_.diff-sign]:select-none + [&_.diff-blank]:bg-background-element + [&_.diff-blank_.diff-oldln]:bg-background-element + [&_.diff-blank_.diff-newln]:bg-background-element + [&_.diff-collapsed]:block! [&_.diff-collapsed]:w-full [&_.diff-collapsed]:relative + [&_.diff-collapsed]:cursor-pointer [&_.diff-collapsed]:select-none + [&_.diff-collapsed]:bg-info/20 [&_.diff-collapsed]:hover:bg-info/40! + [&_.diff-collapsed]:text-info/80 [&_.diff-collapsed]:hover:text-info + [&_.diff-collapsed]:text-xs + [&_.diff-collapsed_.diff-oldln]:bg-info! + [&_.diff-collapsed_.diff-newln]:bg-info! + " + classList={{ + ...(local.classList || {}), + [local.class ?? ""]: !!local.class, + }} + {...others} + >
+ ) +} + +function transformerUnifiedDiff(): ShikiTransformer { + const kinds = new Map() + const meta = new Map() + let isDiff = false + + return { + name: "unified-diff", + preprocess(input) { + kinds.clear() + meta.clear() + isDiff = false + + const ls = input.split(/\r?\n/) + const out: Array = [] + let oldNo = 0 + let newNo = 0 + let inHunk = false + + for (let i = 0; i < ls.length; i++) { + const s = ls[i] + + const m = s.match(/^@@\s*-(\d+)(?:,(\d+))?\s+\+(\d+)(?:,(\d+))?\s*@@/) + if (m) { + isDiff = true + inHunk = true + oldNo = parseInt(m[1], 10) + newNo = parseInt(m[3], 10) + continue + } + + if ( + /^diff --git /.test(s) || + /^Index: /.test(s) || + /^--- /.test(s) || + /^\+\+\+ /.test(s) || + /^[=]{3,}$/.test(s) || + /^\*{3,}$/.test(s) || + /^\\ No newline at end of file$/.test(s) + ) { + isDiff = true + continue + } + + if (!inHunk) { + out.push(s) + continue + } + + if (/^\+/.test(s)) { + out.push(s) + const ln = out.length + kinds.set(ln, "add") + meta.set(ln, { new: newNo, sign: "+" }) + newNo++ + continue + } + + if (/^-/.test(s)) { + out.push(s) + const ln = out.length + kinds.set(ln, "remove") + meta.set(ln, { old: oldNo, sign: "-" }) + oldNo++ + continue + } + + if (/^ /.test(s)) { + out.push(s) + const ln = out.length + kinds.set(ln, "context") + meta.set(ln, { old: oldNo, new: newNo }) + oldNo++ + newNo++ + continue + } + + // fallback in hunks + out.push(s) + } + + return out.join("\n").trimEnd() + }, + code(node) { + if (isDiff) this.addClassToHast(node, "code-diff") + }, + pre(node) { + if (isDiff) this.addClassToHast(node, "code-diff") + }, + line(node, line) { + if (!isDiff) return + const kind = kinds.get(line) + if (!kind) return + + const m = meta.get(line) || {} + + this.addClassToHast(node, "diff-line") + this.addClassToHast(node, `diff-${kind}`) + node.properties = node.properties || {} + ;(node.properties as any)["data-diff"] = kind + if (m.old != undefined) (node.properties as any)["data-old"] = String(m.old) + if (m.new != undefined) (node.properties as any)["data-new"] = String(m.new) + + const oldSpan = { + type: "element", + tagName: "span", + properties: { className: ["diff-oldln"] }, + children: [{ type: "text", value: m.old != undefined ? String(m.old) : " " }], + } + const newSpan = { + type: "element", + tagName: "span", + properties: { className: ["diff-newln"] }, + children: [{ type: "text", value: m.new != undefined ? String(m.new) : " " }], + } + + if (kind === "add" || kind === "remove" || kind === "context") { + const first = (node.children && (node.children as any[])[0]) as any + if (first && first.type === "element" && first.children && first.children.length > 0) { + const t = first.children[0] + if (t && t.type === "text" && typeof t.value === "string" && t.value.length > 0) { + const ch = t.value[0] + if (ch === "+" || ch === "-" || ch === " ") t.value = t.value.slice(1) + } + } + } + + const signSpan = { + type: "element", + tagName: "span", + properties: { className: ["diff-sign"] }, + children: [{ type: "text", value: (m as any).sign || " " }], + } + + // @ts-expect-error hast typing across versions + node.children = [oldSpan, newSpan, signSpan, ...(node.children || [])] + }, + } +} + +function transformerDiffGroups(): ShikiTransformer { + let group = -1 + let inGroup = false + return { + name: "diff-groups", + pre() { + group = -1 + inGroup = false + }, + line(node) { + const props = (node.properties || {}) as any + const kind = props["data-diff"] as string | undefined + if (kind === "add" || kind === "remove") { + if (!inGroup) { + group += 1 + inGroup = true + } + ;(node.properties as any)["data-chgrp"] = String(group) + } else { + inGroup = false + } + }, + } +} + +function applyDiffFolding( + root: HTMLElement, + context = 3, + options?: { expanded?: string[]; onExpand?: (key: string) => void; side?: "left" | "right" }, +) { + if (!root.classList.contains("code-diff")) return + + // Cleanup: unwrap previous collapsed blocks and remove toggles + const blocks = Array.from(root.querySelectorAll(".diff-collapsed-block")) + for (const block of blocks) { + const p = block.parentNode + if (!p) { + block.remove() + continue + } + while (block.firstChild) p.insertBefore(block.firstChild, block) + block.remove() + } + const toggles = Array.from(root.querySelectorAll(".diff-collapsed")) + for (const t of toggles) t.remove() + + const lines = Array.from(root.querySelectorAll(".diff-line")) + if (lines.length === 0) return + + const n = lines.length + const isChange = lines.map((l) => l.dataset["diff"] === "add" || l.dataset["diff"] === "remove") + const isContext = lines.map((l) => l.dataset["diff"] === "context") + if (!isChange.some(Boolean)) return + + const visible = new Array(n).fill(false) as boolean[] + for (let i = 0; i < n; i++) if (isChange[i]) visible[i] = true + for (let i = 0; i < n; i++) { + if (isChange[i]) { + const s = Math.max(0, i - context) + const e = Math.min(n - 1, i + context) + for (let j = s; j <= e; j++) if (isContext[j]) visible[j] = true + } + } + + type Range = { start: number; end: number } + const ranges: Range[] = [] + let i = 0 + while (i < n) { + if (!visible[i] && isContext[i]) { + let j = i + while (j + 1 < n && !visible[j + 1] && isContext[j + 1]) j++ + ranges.push({ start: i, end: j }) + i = j + 1 + } else { + i++ + } + } + + for (const r of ranges) { + const start = lines[r.start] + const end = lines[r.end] + const count = r.end - r.start + 1 + const minCollapse = 20 + if (count < minCollapse) { + continue + } + + // Wrap the entire collapsed chunk (including trailing newline) so it takes no space + const block = document.createElement("span") + block.className = "diff-collapsed-block" + start.parentElement?.insertBefore(block, start) + + let cur: Node | undefined = start + while (cur) { + const next: Node | undefined = cur.nextSibling || undefined + block.appendChild(cur) + if (cur === end) { + // Also move the newline after the last line into the block + if (next && next.nodeType === Node.TEXT_NODE && (next.textContent || "").startsWith("\n")) { + block.appendChild(next) + } + break + } + cur = next + } + + block.style.display = "none" + const row = document.createElement("span") + row.className = "line diff-collapsed" + row.setAttribute("data-kind", "collapsed") + row.setAttribute("data-count", String(count)) + row.setAttribute("tabindex", "0") + row.setAttribute("role", "button") + + const oldln = document.createElement("span") + oldln.className = "diff-oldln" + oldln.textContent = " " + + const newln = document.createElement("span") + newln.className = "diff-newln" + newln.textContent = " " + + const sign = document.createElement("span") + sign.className = "diff-sign" + sign.textContent = "…" + + const label = document.createElement("span") + label.textContent = `show ${count} unchanged line${count > 1 ? "s" : ""}` + + const key = `o${start.dataset["old"] || ""}-${end.dataset["old"] || ""}:n${start.dataset["new"] || ""}-${end.dataset["new"] || ""}` + + const show = (record = true) => { + if (record) options?.onExpand?.(key) + const p = block.parentNode + if (p) { + while (block.firstChild) p.insertBefore(block.firstChild, block) + block.remove() + } + row.remove() + } + + row.addEventListener("click", () => show(true)) + row.addEventListener("keydown", (ev) => { + if (ev.key === "Enter" || ev.key === " ") { + ev.preventDefault() + show(true) + } + }) + + block.parentElement?.insertBefore(row, block) + if (!options?.side || options.side === "left") row.appendChild(oldln) + if (!options?.side || options.side === "right") row.appendChild(newln) + row.appendChild(sign) + row.appendChild(label) + + if (options?.expanded && options.expanded.includes(key)) { + show(false) + } + } +} + +function applySplitDiff(container: HTMLElement) { + const pres = Array.from(container.querySelectorAll("pre")) + if (pres.length === 0) return + const originalPre = pres[0] + const originalCode = originalPre.querySelector("code") as HTMLElement | undefined + if (!originalCode || !originalCode.classList.contains("code-diff")) return + + // Rebuild split each time to match current content + const existing = container.querySelector(".diff-split") + if (existing) existing.remove() + + const grid = document.createElement("div") + grid.className = "diff-split grid grid-cols-2 gap-x-6" + + const makeColumn = () => { + const pre = document.createElement("pre") + pre.className = originalPre.className + const code = document.createElement("code") + code.className = originalCode.className + pre.appendChild(code) + return { pre, code } + } + + const left = makeColumn() + const right = makeColumn() + + // Helpers + const cloneSide = (line: HTMLElement, side: "old" | "new"): HTMLElement => { + const clone = line.cloneNode(true) as HTMLElement + const oldln = clone.querySelector(".diff-oldln") + const newln = clone.querySelector(".diff-newln") + if (side === "old") { + if (newln) newln.remove() + } else { + if (oldln) oldln.remove() + } + return clone + } + + const blankLine = (side: "old" | "new", kind: "add" | "remove"): HTMLElement => { + const span = document.createElement("span") + span.className = "line diff-line diff-blank" + span.setAttribute("data-diff", kind) + const ln = document.createElement("span") + ln.className = side === "old" ? "diff-oldln" : "diff-newln" + ln.textContent = " " + span.appendChild(ln) + return span + } + + const lines = Array.from(originalCode.querySelectorAll(".diff-line")) + let i = 0 + while (i < lines.length) { + const cur = lines[i] + const kind = cur.dataset["diff"] + + if (kind === "context") { + left.code.appendChild(cloneSide(cur, "old")) + left.code.appendChild(document.createTextNode("\n")) + right.code.appendChild(cloneSide(cur, "new")) + right.code.appendChild(document.createTextNode("\n")) + i++ + continue + } + + if (kind === "remove") { + // Batch consecutive removes and following adds, then pair + const removes: HTMLElement[] = [] + const adds: HTMLElement[] = [] + let j = i + while (j < lines.length && lines[j].dataset["diff"] === "remove") { + removes.push(lines[j]) + j++ + } + let k = j + while (k < lines.length && lines[k].dataset["diff"] === "add") { + adds.push(lines[k]) + k++ + } + + const pairs = Math.min(removes.length, adds.length) + for (let p = 0; p < pairs; p++) { + left.code.appendChild(cloneSide(removes[p], "old")) + left.code.appendChild(document.createTextNode("\n")) + right.code.appendChild(cloneSide(adds[p], "new")) + right.code.appendChild(document.createTextNode("\n")) + } + for (let p = pairs; p < removes.length; p++) { + left.code.appendChild(cloneSide(removes[p], "old")) + left.code.appendChild(document.createTextNode("\n")) + right.code.appendChild(blankLine("new", "remove")) + right.code.appendChild(document.createTextNode("\n")) + } + for (let p = pairs; p < adds.length; p++) { + left.code.appendChild(blankLine("old", "add")) + left.code.appendChild(document.createTextNode("\n")) + right.code.appendChild(cloneSide(adds[p], "new")) + right.code.appendChild(document.createTextNode("\n")) + } + + i = k + continue + } + + if (kind === "add") { + // Run of adds not preceded by removes + const adds: HTMLElement[] = [] + let j = i + while (j < lines.length && lines[j].dataset["diff"] === "add") { + adds.push(lines[j]) + j++ + } + for (let p = 0; p < adds.length; p++) { + left.code.appendChild(blankLine("old", "add")) + left.code.appendChild(document.createTextNode("\n")) + right.code.appendChild(cloneSide(adds[p], "new")) + right.code.appendChild(document.createTextNode("\n")) + } + i = j + continue + } + + // Any other kind: mirror as context + left.code.appendChild(cloneSide(cur, "old")) + left.code.appendChild(document.createTextNode("\n")) + right.code.appendChild(cloneSide(cur, "new")) + right.code.appendChild(document.createTextNode("\n")) + i++ + } + + grid.appendChild(left.pre) + grid.appendChild(right.pre) + container.appendChild(grid) +} diff --git a/packages/desktop/src/components/editor-pane.tsx b/packages/desktop/src/components/editor-pane.tsx new file mode 100644 index 000000000..faf70811d --- /dev/null +++ b/packages/desktop/src/components/editor-pane.tsx @@ -0,0 +1,381 @@ +import { For, Match, Show, Switch, createSignal, splitProps } from "solid-js" +import { Tabs } from "@/ui/tabs" +import { FileIcon, Icon, IconButton, Logo, Tooltip } from "@/ui" +import { + DragDropProvider, + DragDropSensors, + DragOverlay, + SortableProvider, + closestCenter, + createSortable, + useDragDropContext, +} from "@thisbeyond/solid-dnd" +import type { DragEvent, Transformer } from "@thisbeyond/solid-dnd" +import type { LocalFile } from "@/context/local" +import { Code } from "@/components/code" +import PromptForm from "@/components/prompt-form" +import { useLocal, useSDK, useSync } from "@/context" +import { getFilename } from "@/utils" +import type { JSX } from "solid-js" + +interface EditorPaneProps { + layoutKey: string + timelinePane: string + onFileClick: (file: LocalFile) => void + onOpenModelSelect: () => void + onInputRefChange: (element: HTMLTextAreaElement | null) => void +} + +export default function EditorPane(props: EditorPaneProps): JSX.Element { + const [localProps] = splitProps(props, [ + "layoutKey", + "timelinePane", + "onFileClick", + "onOpenModelSelect", + "onInputRefChange", + ]) + const local = useLocal() + const sdk = useSDK() + const sync = useSync() + const [activeItem, setActiveItem] = createSignal(undefined) + + const navigateChange = (dir: 1 | -1) => { + const active = local.file.active() + if (!active) return + const current = local.file.changeIndex(active.path) + const next = current === undefined ? (dir === 1 ? 0 : -1) : current + dir + local.file.setChangeIndex(active.path, next) + } + + const handleTabChange = (path: string) => { + local.file.open(path) + } + + const handleTabClose = (file: LocalFile) => { + local.file.close(file.path) + } + + const handlePromptSubmit = async (prompt: string) => { + const existingSession = local.layout.visible(localProps.layoutKey, localProps.timelinePane) + ? local.session.active() + : undefined + let session = existingSession + if (!session) { + const created = await sdk.session.create() + session = created.data ?? undefined + } + if (!session) return + local.session.setActive(session.id) + local.layout.show(localProps.layoutKey, localProps.timelinePane) + + await sdk.session.prompt({ + path: { id: session.id }, + body: { + agent: local.agent.current()!.name, + model: { + modelID: local.model.current()!.id, + providerID: local.model.current()!.provider.id, + }, + parts: [ + { + type: "text", + text: prompt, + }, + ...(local.context.active() + ? [ + { + type: "file" as const, + mime: "text/plain", + url: `file://${local.context.active()!.absolute}`, + filename: local.context.active()!.name, + source: { + type: "file" as const, + text: { + value: "@" + local.context.active()!.name, + start: 0, + end: 0, + }, + path: local.context.active()!.absolute, + }, + }, + ] + : []), + ...local.context.all().flatMap((file) => [ + { + type: "file" as const, + mime: "text/plain", + url: `file://${sync.absolute(file.path)}${file.selection ? `?start=${file.selection.startLine}&end=${file.selection.endLine}` : ""}`, + filename: getFilename(file.path), + source: { + type: "file" as const, + text: { + value: "@" + getFilename(file.path), + start: 0, + end: 0, + }, + path: sync.absolute(file.path), + }, + }, + ]), + ], + }, + }) + } + + const handleDragStart = (event: unknown) => { + const id = getDraggableId(event) + if (!id) return + setActiveItem(id) + } + + const handleDragOver = (event: DragEvent) => { + const { draggable, droppable } = event + if (draggable && droppable) { + const currentFiles = local.file.opened().map((file) => file.path) + const fromIndex = currentFiles.indexOf(draggable.id.toString()) + const toIndex = currentFiles.indexOf(droppable.id.toString()) + if (fromIndex !== toIndex) { + local.file.move(draggable.id.toString(), toIndex) + } + } + } + + const handleDragEnd = () => { + setActiveItem(undefined) + } + + return ( +
+ + + + + +
+ + file.path)}> + + {(file) => ( + + )} + + + +
+ + {(() => { + const activeFile = local.file.active()! + const view = local.file.view(activeFile.path) + return ( +
+ +
+ + navigateChange(-1)}> + + + + + navigateChange(1)}> + + + +
+
+ + local.file.setView(activeFile.path, "raw")} + > + + + + + local.file.setView(activeFile.path, "diff-unified")} + > + + + + + local.file.setView(activeFile.path, "diff-split")} + > + + + +
+ ) + })()} +
+ + local.layout.toggle(localProps.layoutKey, localProps.timelinePane)} + > + + + +
+
+ + {(file) => ( + + {(() => { + const view = local.file.view(file.path) + const showRaw = view === "raw" || !file.content?.diff + const code = showRaw ? (file.content?.content ?? "") : (file.content?.diff ?? "") + return + })()} + + )} + +
+ + {(() => { + const id = activeItem() + if (!id) return null + const draggedFile = local.file.node(id) + if (!draggedFile) return null + return ( +
+ +
+ ) + })()} +
+
+ localProps.onInputRefChange(element ?? null)} + /> +
+ ) +} + +function TabVisual(props: { file: LocalFile }): JSX.Element { + return ( +
+ + + {props.file.name} + + + + + M + + + A + + + D + + + +
+ ) +} + +function SortableTab(props: { + file: LocalFile + onTabClick: (file: LocalFile) => void + onTabClose: (file: LocalFile) => void +}): JSX.Element { + const sortable = createSortable(props.file.path) + + return ( + // @ts-ignore +
+ +
+ props.onTabClick(props.file)}> + + + props.onTabClose(props.file)} + > + + +
+
+
+ ) +} + +function ConstrainDragYAxis(): JSX.Element { + const context = useDragDropContext() + if (!context) return <> + const [, { onDragStart, onDragEnd, addTransformer, removeTransformer }] = context + const transformer: Transformer = { + id: "constrain-y-axis", + order: 100, + callback: (transform) => ({ ...transform, y: 0 }), + } + onDragStart((event) => { + const id = getDraggableId(event) + if (!id) return + addTransformer("draggables", id, transformer) + }) + onDragEnd((event) => { + const id = getDraggableId(event) + if (!id) return + removeTransformer("draggables", id, transformer.id) + }) + return <> +} + +const getDraggableId = (event: unknown): string | undefined => { + if (typeof event !== "object" || event === null) return undefined + if (!("draggable" in event)) return undefined + const draggable = (event as { draggable?: { id?: unknown } }).draggable + if (!draggable) return undefined + return typeof draggable.id === "string" ? draggable.id : undefined +} diff --git a/packages/desktop/src/components/file-tree.tsx b/packages/desktop/src/components/file-tree.tsx new file mode 100644 index 000000000..d31255ced --- /dev/null +++ b/packages/desktop/src/components/file-tree.tsx @@ -0,0 +1,110 @@ +import { useLocal } from "@/context" +import type { LocalFile } from "@/context/local" +import { Collapsible, FileIcon, Tooltip } from "@/ui" +import { For, Match, Switch, Show, type ComponentProps, type ParentProps } from "solid-js" +import { Dynamic } from "solid-js/web" + +export default function FileTree(props: { + path: string + class?: string + nodeClass?: string + level?: number + onFileClick?: (file: LocalFile) => void +}) { + const local = useLocal() + const level = props.level ?? 0 + + const Node = (p: ParentProps & ComponentProps<"div"> & { node: LocalFile; as?: "div" | "button" }) => ( + { + const evt = e as globalThis.DragEvent + evt.dataTransfer!.effectAllowed = "copy" + evt.dataTransfer!.setData("text/plain", `file:${p.node.path}`) + + // Create custom drag image without margins + const dragImage = document.createElement("div") + dragImage.className = + "flex items-center gap-x-2 px-2 py-1 bg-background-element rounded-md border border-border-1" + dragImage.style.position = "absolute" + dragImage.style.top = "-1000px" + + // Copy only the icon and text content without padding + const icon = e.currentTarget.querySelector("svg") + const text = e.currentTarget.querySelector("span") + if (icon && text) { + dragImage.innerHTML = icon.outerHTML + text.outerHTML + } + + document.body.appendChild(dragImage) + evt.dataTransfer!.setDragImage(dragImage, 0, 12) + setTimeout(() => document.body.removeChild(dragImage), 0) + }} + {...p} + > + {p.children} + + {p.node.name} + + + + + + ) + + return ( +
+ + {(node) => ( + + + + (open ? local.file.expand(node.path) : local.file.collapse(node.path))} + > + + + + + + + + + + + + + props.onFileClick?.(node)}> +
+ + + + + + )} + +
+ ) +} diff --git a/packages/desktop/src/components/markdown.tsx b/packages/desktop/src/components/markdown.tsx new file mode 100644 index 000000000..a60fad149 --- /dev/null +++ b/packages/desktop/src/components/markdown.tsx @@ -0,0 +1,23 @@ +import { useMarked } from "@/context" +import { createResource } from "solid-js" + +function strip(text: string): string { + const wrappedRe = /^\s*<([A-Za-z]\w*)>\s*([\s\S]*?)\s*<\/\1>\s*$/ + const match = text.match(wrappedRe) + return match ? match[2] : text +} +export function Markdown(props: { text: string; class?: string }) { + const marked = useMarked() + const [html] = createResource( + () => strip(props.text), + async (markdown) => { + return marked.parse(markdown) + }, + ) + return ( +
+ ) +} diff --git a/packages/desktop/src/components/prompt-form.tsx b/packages/desktop/src/components/prompt-form.tsx new file mode 100644 index 000000000..9d7c45a32 --- /dev/null +++ b/packages/desktop/src/components/prompt-form.tsx @@ -0,0 +1,295 @@ +import { For, Show, createEffect, createMemo, createSignal, onCleanup } from "solid-js" +import { Button, FileIcon, Icon, IconButton, Tooltip } from "@/ui" +import { Select } from "@/components/select" +import { useLocal } from "@/context" +import type { FileContext, LocalFile } from "@/context/local" +import { getFilename } from "@/utils" +import { createSpeechRecognition } from "@/utils/speech" + +interface PromptFormProps { + class?: string + classList?: Record + onSubmit: (prompt: string) => Promise | void + onOpenModelSelect: () => void + onInputRefChange?: (element: HTMLTextAreaElement | undefined) => void +} + +export default function PromptForm(props: PromptFormProps) { + const local = useLocal() + + const [prompt, setPrompt] = createSignal("") + const [isDragOver, setIsDragOver] = createSignal(false) + + const placeholderText = "Start typing or speaking..." + + const { + isSupported, + isRecording, + interim: interimTranscript, + start: startSpeech, + stop: stopSpeech, + } = createSpeechRecognition({ + onFinal: (text) => setPrompt((prev) => (prev && !prev.endsWith(" ") ? prev + " " : prev) + text), + }) + + let inputRef: HTMLTextAreaElement | undefined = undefined + let overlayContainerRef: HTMLDivElement | undefined = undefined + let shouldAutoScroll = true + + const promptContent = createMemo(() => { + const base = prompt() || "" + const interim = isRecording() ? interimTranscript() : "" + if (!base && !interim) { + return {placeholderText} + } + const needsSpace = base && interim && !base.endsWith(" ") && !interim.startsWith(" ") + return ( + <> + {base} + {interim && ( + + {needsSpace ? " " : ""} + {interim} + + )} + + ) + }) + + createEffect(() => { + prompt() + interimTranscript() + queueMicrotask(() => { + if (!inputRef) return + if (!overlayContainerRef) return + if (!shouldAutoScroll) { + overlayContainerRef.scrollTop = inputRef.scrollTop + return + } + scrollPromptToEnd() + }) + }) + + const handlePromptKeyDown = (event: KeyboardEvent & { currentTarget: HTMLTextAreaElement }) => { + if (event.isComposing) return + if (event.key === "Enter" && !event.shiftKey) { + event.preventDefault() + inputRef?.form?.requestSubmit() + } + } + + const handlePromptScroll = (event: Event & { currentTarget: HTMLTextAreaElement }) => { + const target = event.currentTarget + shouldAutoScroll = target.scrollTop + target.clientHeight >= target.scrollHeight - 4 + if (overlayContainerRef) overlayContainerRef.scrollTop = target.scrollTop + } + + const scrollPromptToEnd = () => { + if (!inputRef) return + const maxInputScroll = inputRef.scrollHeight - inputRef.clientHeight + const next = maxInputScroll > 0 ? maxInputScroll : 0 + inputRef.scrollTop = next + if (overlayContainerRef) overlayContainerRef.scrollTop = next + shouldAutoScroll = true + } + + const handleSubmit = async (event: SubmitEvent) => { + event.preventDefault() + const currentPrompt = prompt() + setPrompt("") + shouldAutoScroll = true + if (overlayContainerRef) overlayContainerRef.scrollTop = 0 + if (inputRef) { + inputRef.scrollTop = 0 + inputRef.blur() + } + + await props.onSubmit(currentPrompt) + } + + onCleanup(() => { + props.onInputRefChange?.(undefined) + }) + + return ( +
+
{ + const evt = event as unknown as globalThis.DragEvent + if (evt.dataTransfer?.types.includes("text/plain")) { + evt.preventDefault() + setIsDragOver(true) + } + }} + onDragLeave={(event) => { + if (event.currentTarget === event.target) { + setIsDragOver(false) + } + }} + onDragOver={(event) => { + const evt = event as unknown as globalThis.DragEvent + if (evt.dataTransfer?.types.includes("text/plain")) { + evt.preventDefault() + evt.dataTransfer.dropEffect = "copy" + } + }} + onDrop={(event) => { + const evt = event as unknown as globalThis.DragEvent + evt.preventDefault() + setIsDragOver(false) + + const data = evt.dataTransfer?.getData("text/plain") + if (data && data.startsWith("file:")) { + const filePath = data.slice(5) + const fileNode = local.file.node(filePath) + if (fileNode) { + local.context.add({ + type: "file", + path: filePath, + }) + } + } + }} + > + 0 || local.context.active()}> +
+ + local.context.removeActive()} /> + + + {(file) => local.context.remove(file.key)} />} + +
+
+
+ +
{ + overlayContainerRef = element ?? undefined + }} + class="pointer-events-none absolute inset-0 overflow-hidden" + > +
+ {promptContent()} +
+
+
+
+
+ handleInput(e.currentTarget.value)} + onKeyDown={handleKey} + placeholder={props.placeholder} + class="w-full pl-10 pr-4 py-2 rounded-t-md + text-sm text-text placeholder-text-muted/70 + focus:outline-none" + autofocus + spellcheck={false} + autocorrect="off" + autocomplete="off" + autocapitalize="off" + /> +
+ {/* +
+ +
+
*/} + + { + setStore("filter", "") + resetSelection() + }} + > + + + +
+
+
+
(scrollRef = el)} class="relative flex-1 overflow-y-auto"> + 0} + fallback={
No results
} + > + + {(group) => ( + <> + +
+ {group.category} +
+
+
+ + {(item) => ( + + )} + +
+ + )} +
+
+
+
+
+ + + ↑↓ + + Navigate + + + + ↵ + + Select + + + + ESC + + Close + +
+ {`${flat().length} results`} +
+ + + + ) +} diff --git a/packages/desktop/src/components/select.tsx b/packages/desktop/src/components/select.tsx new file mode 100644 index 000000000..3df8c9999 --- /dev/null +++ b/packages/desktop/src/components/select.tsx @@ -0,0 +1,107 @@ +import { Select as KobalteSelect } from "@kobalte/core/select" +import { createMemo } from "solid-js" +import type { ComponentProps } from "solid-js" +import { Icon } from "@/ui/icon" +import { pipe, groupBy, entries, map } from "remeda" +import { Button, type ButtonProps } from "@/ui" + +export interface SelectProps { + placeholder?: string + options: T[] + current?: T + value?: (x: T) => string + label?: (x: T) => string + groupBy?: (x: T) => string + onSelect?: (value: T | undefined) => void + class?: ComponentProps<"div">["class"] + classList?: ComponentProps<"div">["classList"] +} + +export function Select(props: SelectProps & ButtonProps) { + const grouped = createMemo(() => { + const result = pipe( + props.options, + groupBy((x) => (props.groupBy ? props.groupBy(x) : "")), + // mapValues((x) => x.sort((a, b) => a.title.localeCompare(b.title))), + entries(), + map(([k, v]) => ({ category: k, options: v })), + ) + return result + }) + + return ( + + value={props.current} + options={grouped()} + optionValue={(x) => (props.value ? props.value(x) : (x as string))} + optionTextValue={(x) => (props.label ? props.label(x) : (x as string))} + optionGroupChildren="options" + placeholder={props.placeholder} + sectionComponent={(props) => ( + + {props.section.rawValue.category} + + )} + itemComponent={(itemProps) => ( + + + {props.label ? props.label(itemProps.item.rawValue) : (itemProps.item.rawValue as string)} + + + + + + )} + onChange={(v) => { + props.onSelect?.(v ?? undefined) + }} + > + + > + {(state) => { + const selected = state.selectedOption() ?? props.current + if (!selected) return props.placeholder || "" + if (props.label) return props.label(selected) + return selected as string + }} + + + + + + + + + + + + ) +} diff --git a/packages/desktop/src/components/session-list.tsx b/packages/desktop/src/components/session-list.tsx new file mode 100644 index 000000000..e0819780d --- /dev/null +++ b/packages/desktop/src/components/session-list.tsx @@ -0,0 +1,28 @@ +import { useSync, useLocal } from "@/context" +import { Button, Tooltip } from "@/ui" +import { VList } from "virtua/solid" + +export default function SessionList() { + const sync = useSync() + const local = useLocal() + + return ( + + {(session) => ( + + + + )} + + ) +} diff --git a/packages/desktop/src/components/session-timeline.tsx b/packages/desktop/src/components/session-timeline.tsx new file mode 100644 index 000000000..07d93031e --- /dev/null +++ b/packages/desktop/src/components/session-timeline.tsx @@ -0,0 +1,459 @@ +import { useLocal, useSync } from "@/context" +import { Collapsible, Icon } from "@/ui" +import type { Part, ToolPart } from "@opencode-ai/sdk" +import { DateTime } from "luxon" +import { + createSignal, + onMount, + For, + Match, + splitProps, + Switch, + type ComponentProps, + type ParentProps, + createEffect, + createMemo, + Show, +} from "solid-js" +import { getFilename } from "@/utils" +import { Markdown } from "./markdown" +import { Code } from "./code" +import { createElementSize } from "@solid-primitives/resize-observer" +import { createScrollPosition } from "@solid-primitives/scroll" + +function Part(props: ParentProps & ComponentProps<"div">) { + const [local, others] = splitProps(props, ["class", "classList", "children"]) + return ( +
+

{local.children}

+
+ ) +} + +function CollapsiblePart(props: { title: ParentProps["children"] } & ParentProps & ComponentProps) { + return ( + + + {props.title} + + +

+ {props.children} +

+
+
+ ) +} + +function ReadToolPart(props: { part: ToolPart }) { + const sync = useSync() + const local = useLocal() + return ( + + + Reading file... + + + {(state) => { + const path = state().input["filePath"] as string + return ( + local.file.open(path)}> + Read {getFilename(path)} + + ) + }} + + + {(state) => ( +
+ + Read {getFilename(state().input["filePath"] as string)} + +
{sync.sanitize(state().error)}
+
+ )} +
+
+ ) +} + +function EditToolPart(props: { part: ToolPart }) { + const sync = useSync() + return ( + + + Preparing edit... + + + {(state) => ( + + Edit {getFilename(state().input["filePath"] as string)} + + } + > + + + )} + + + {(state) => ( + + Edit {getFilename(state().input["filePath"] as string)} + + } + > +
{sync.sanitize(state().error)}
+
+ )} +
+
+ ) +} + +function WriteToolPart(props: { part: ToolPart }) { + const sync = useSync() + return ( + + + Preparing write... + + + {(state) => ( + + Write {getFilename(state().input["filePath"] as string)} + + } + > +
+
+ )} +
+ + {(state) => ( +
+ + Write {getFilename(state().input["filePath"] as string)} + +
{sync.sanitize(state().error)}
+
+ )} +
+
+ ) +} + +function BashToolPart(props: { part: ToolPart }) { + const sync = useSync() + return ( + + + Writing shell command... + + + {(state) => ( + + Run command: {state().input["command"]} + + } + > + + + )} + + + {(state) => ( + + Shell {state().input["command"]} + + } + > +
{sync.sanitize(state().error)}
+
+ )} +
+
+ ) +} + +function ToolPart(props: { part: ToolPart }) { + // read + // edit + // write + // bash + // ls + // glob + // grep + // todowrite + // todoread + // webfetch + // websearch + // patch + // task + return ( +
+ + {props.part.type}:{props.part.tool} + + } + > + + + + + + + + + + + + + +
+ ) +} + +export default function SessionTimeline(props: { session: string; class?: string }) { + const sync = useSync() + const [scrollElement, setScrollElement] = createSignal(undefined) + const [root, setRoot] = createSignal(undefined) + const [tail, setTail] = createSignal(true) + const size = createElementSize(root) + const scroll = createScrollPosition(scrollElement) + + onMount(() => sync.session.sync(props.session)) + const session = createMemo(() => sync.session.get(props.session)) + const messages = createMemo(() => sync.data.message[props.session] ?? []) + const working = createMemo(() => { + const last = messages()[messages().length - 1] + if (!last) return false + if (last.role === "user") return true + return !last.time.completed + }) + + const getScrollParent = (el: HTMLElement | null): HTMLElement | undefined => { + let p = el?.parentElement + while (p && p !== document.body) { + const s = getComputedStyle(p) + if (s.overflowY === "auto" || s.overflowY === "scroll") return p + p = p.parentElement + } + return undefined + } + + createEffect(() => { + if (!root()) return + setScrollElement(getScrollParent(root()!)) + }) + + const scrollToBottom = () => { + const element = scrollElement() + if (!element) return + element.scrollTop = element.scrollHeight + } + + createEffect(() => { + size.height + if (tail()) scrollToBottom() + }) + + createEffect(() => { + if (working()) { + setTail(true) + scrollToBottom() + } + }) + + let lastScrollY = 0 + createEffect(() => { + if (scroll.y < lastScrollY) { + setTail(false) + } + lastScrollY = scroll.y + }) + + const valid = (part: Part) => { + if (!part) return false + switch (part.type) { + case "step-start": + case "step-finish": + case "file": + case "patch": + return false + case "text": + return !part.synthetic + case "reasoning": + return part.text.trim() + default: + return true + } + } + + const duration = (part: Part) => { + switch (part.type) { + default: + if ( + "time" in part && + part.time && + "start" in part.time && + part.time.start && + "end" in part.time && + part.time.end + ) { + const start = DateTime.fromMillis(part.time.start) + const end = DateTime.fromMillis(part.time.end) + return end.diff(start).toFormat("s") + } + return "" + } + } + + return ( +
+
    + + {(message) => ( + + {(part) => ( +
  • + {part.type}
}> + + {(part) => ( + + +
+

+ {part().text} +

+

+ {DateTime.fromMillis(message.time.created).toRelative()} ·{" "} + {sync.data.config.username ?? "user"} +

+
+
+ + + +
+ )} +
+ + {(part) => ( + Thinking}> + + Thought for {duration(part())}s + + + } + > + + + )} + + {(part) => } + + + )} + + )} + + + + + +
+ + Raw Session Data + +
+
+ +
    +
  • + + +
    + + session + +
    +
    + + + +
    +
  • + + {(message) => ( + <> +
  • + + +
    + + {message.role === "user" ? "user" : "assistant"} + +
    +
    + + + +
    +
  • + + {(part) => ( +
  • + + +
    + + {part.type} + +
    +
    + + + +
    +
  • + )} +
    + + )} +
    +
+
+
+
+
+ ) +} diff --git a/packages/desktop/src/components/sidebar-nav.tsx b/packages/desktop/src/components/sidebar-nav.tsx new file mode 100644 index 000000000..24750bdba --- /dev/null +++ b/packages/desktop/src/components/sidebar-nav.tsx @@ -0,0 +1,48 @@ +import { For } from "solid-js" +import { Icon, Link, Logo, Tooltip } from "@/ui" +import { useLocation } from "@solidjs/router" + +const navigation = [ + { name: "Sessions", href: "/sessions", icon: "dashboard" as const }, + { name: "Commands", href: "/commands", icon: "slash" as const }, + { name: "Agents", href: "/agents", icon: "bolt" as const }, + { name: "Providers", href: "/providers", icon: "cloud" as const }, + { name: "Tools (MCP)", href: "/tools", icon: "hammer" as const }, + { name: "LSP", href: "/lsp", icon: "code" as const }, + { name: "Settings", href: "/settings", icon: "settings" as const }, +] + +export default function SidebarNav() { + const location = useLocation() + return ( + + ) +} diff --git a/packages/desktop/src/context/event.tsx b/packages/desktop/src/context/event.tsx new file mode 100644 index 000000000..a2aa54181 --- /dev/null +++ b/packages/desktop/src/context/event.tsx @@ -0,0 +1,34 @@ +import { createContext, useContext, type ParentProps } from "solid-js" +import { createEventBus } from "@solid-primitives/event-bus" +import type { Event as SDKEvent } from "@opencode-ai/sdk" +import { useSDK } from "@/context" + +export type Event = SDKEvent // can extend with custom events later + +function init() { + const sdk = useSDK() + const bus = createEventBus() + sdk.event.subscribe().then(async (events) => { + for await (const event of events.stream) { + bus.emit(event) + } + }) + return bus +} + +type EventContext = ReturnType + +const ctx = createContext() + +export function EventProvider(props: ParentProps) { + const value = init() + return {props.children} +} + +export function useEvent() { + const value = useContext(ctx) + if (!value) { + throw new Error("useEvent must be used within a EventProvider") + } + return value +} diff --git a/packages/desktop/src/context/index.ts b/packages/desktop/src/context/index.ts new file mode 100644 index 000000000..bc4bf3b1d --- /dev/null +++ b/packages/desktop/src/context/index.ts @@ -0,0 +1,7 @@ +export { EventProvider, useEvent } from "./event" +export { LocalProvider, useLocal } from "./local" +export { MarkedProvider, useMarked } from "./marked" +export { SDKProvider, useSDK } from "./sdk" +export { ShikiProvider, useShiki } from "./shiki" +export { SyncProvider, useSync } from "./sync" +export { ThemeProvider, useTheme } from "./theme" diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx new file mode 100644 index 000000000..4c2a3d3be --- /dev/null +++ b/packages/desktop/src/context/local.tsx @@ -0,0 +1,537 @@ +import { createStore, produce, reconcile } from "solid-js/store" +import { batch, createContext, createEffect, createMemo, useContext, type ParentProps } from "solid-js" +import { uniqueBy } from "remeda" +import type { FileContent, FileNode, Model, Provider, File as FileStatus } from "@opencode-ai/sdk" +import { useSDK, useEvent, useSync } from "@/context" + +export type LocalFile = FileNode & + Partial<{ + loaded: boolean + pinned: boolean + expanded: boolean + content: FileContent + selection: { startLine: number; startChar: number; endLine: number; endChar: number } + scrollTop: number + view: "raw" | "diff-unified" | "diff-split" + folded: string[] + selectedChange: number + status: FileStatus + }> +export type TextSelection = LocalFile["selection"] +export type View = LocalFile["view"] + +export type LocalModel = Omit & { + provider: Provider +} +export type ModelKey = { providerID: string; modelID: string } + +export type FileContext = { type: "file"; path: string; selection?: TextSelection } +export type ContextItem = FileContext + +function init() { + const sdk = useSDK() + const sync = useSync() + + const agent = (() => { + const list = createMemo(() => sync.data.agent.filter((x) => x.mode !== "subagent")) + const [store, setStore] = createStore<{ + current: string + }>({ + current: list()[0].name, + }) + return { + list, + current() { + return list().find((x) => x.name === store.current)! + }, + set(name: string | undefined) { + setStore("current", name ?? list()[0].name) + }, + move(direction: 1 | -1) { + let next = list().findIndex((x) => x.name === store.current) + direction + if (next < 0) next = list().length - 1 + if (next >= list().length) next = 0 + const value = list()[next] + setStore("current", value.name) + if (value.model) + model.set({ + providerID: value.model.providerID, + modelID: value.model.modelID, + }) + }, + } + })() + + const model = (() => { + const list = createMemo(() => + sync.data.provider.flatMap((p) => Object.values(p.models).map((m) => ({ ...m, provider: p }) as LocalModel)), + ) + const find = (key: ModelKey) => list().find((m) => m.id === key?.modelID && m.provider.id === key.providerID) + + const [store, setStore] = createStore<{ + model: Record + recent: ModelKey[] + }>({ + model: {}, + recent: [], + }) + + const value = localStorage.getItem("model") + setStore("recent", JSON.parse(value ?? "[]")) + createEffect(() => { + localStorage.setItem("model", JSON.stringify(store.recent)) + }) + + const fallback = createMemo(() => { + if (store.recent.length) return store.recent[0] + const provider = sync.data.provider[0] + const model = Object.values(provider.models)[0] + return { modelID: model.id, providerID: provider.id } + }) + + const current = createMemo(() => { + const a = agent.current() + return find(store.model[agent.current().name]) ?? find(a.model ?? fallback()) + }) + + const recent = createMemo(() => store.recent.map(find).filter(Boolean)) + + return { + list, + current, + recent, + set(model: ModelKey | undefined, options?: { recent?: boolean }) { + batch(() => { + setStore("model", agent.current().name, model ?? fallback()) + if (options?.recent && model) { + const uniq = uniqueBy([model, ...store.recent], (x) => x.providerID + x.modelID) + if (uniq.length > 5) uniq.pop() + setStore("recent", uniq) + } + }) + }, + } + })() + + const file = (() => { + const [store, setStore] = createStore<{ + node: Record + opened: string[] + active?: string + }>({ + node: Object.fromEntries(sync.data.node.map((x) => [x.path, x])), + opened: [], + }) + + const active = createMemo(() => { + if (!store.active) return undefined + return store.node[store.active] + }) + const opened = createMemo(() => store.opened.map((x) => store.node[x])) + const changeset = createMemo(() => new Set(sync.data.changes.map((f) => f.path))) + const changes = createMemo(() => Array.from(changeset()).sort((a, b) => a.localeCompare(b))) + + createEffect((prev: FileStatus[]) => { + const removed = prev.filter((p) => !sync.data.changes.find((c) => c.path === p.path)) + for (const p of removed) { + setStore( + "node", + p.path, + produce((draft) => { + draft.status = undefined + draft.view = "raw" + }), + ) + load(p.path) + } + for (const p of sync.data.changes) { + if (store.node[p.path] === undefined) { + fetch(p.path).then(() => setStore("node", p.path, "status", p)) + } else { + setStore("node", p.path, "status", p) + } + } + return sync.data.changes + }, sync.data.changes) + + const changed = (path: string) => { + const node = store.node[path] + if (node?.status) return true + const set = changeset() + if (set.has(path)) return true + for (const p of set) { + if (p.startsWith(path ? path + "/" : "")) return true + } + return false + } + + const resetNode = (path: string) => { + setStore("node", path, { + loaded: undefined, + pinned: undefined, + content: undefined, + selection: undefined, + scrollTop: undefined, + folded: undefined, + view: undefined, + selectedChange: undefined, + }) + } + + const relative = (path: string) => path.replace(sync.data.path.directory + "/", "") + + const load = async (path: string) => { + const relativePath = relative(path) + sdk.file.read({ query: { path: relativePath } }).then((x) => { + setStore( + "node", + relativePath, + produce((draft) => { + draft.loaded = true + draft.content = x.data + }), + ) + }) + } + + const fetch = async (path: string) => { + const relativePath = relative(path) + const parent = relativePath.split("/").slice(0, -1).join("/") + if (parent) { + await list(parent) + } + } + + const open = async (path: string, options?: { pinned?: boolean; view?: LocalFile["view"] }) => { + const relativePath = relative(path) + if (!store.node[relativePath]) await fetch(path) + setStore("opened", (x) => { + if (x.includes(relativePath)) return x + return [ + ...opened() + .filter((x) => x.pinned) + .map((x) => x.path), + relativePath, + ] + }) + setStore("active", relativePath) + context.addActive() + if (options?.pinned) setStore("node", path, "pinned", true) + if (options?.view && store.node[relativePath].view === undefined) setStore("node", path, "view", options.view) + if (store.node[relativePath].loaded) return + return load(relativePath) + } + + const list = async (path: string) => { + return sdk.file.list({ query: { path: path + "/" } }).then((x) => { + setStore( + "node", + produce((draft) => { + x.data!.forEach((node) => { + if (node.path in draft) return + draft[node.path] = node + }) + }), + ) + }) + } + + const search = (query: string) => sdk.find.files({ query: { query } }).then((x) => x.data!) + + const bus = useEvent() + bus.listen((event) => { + switch (event.type) { + case "message.part.updated": + const part = event.properties.part + if (part.type === "tool" && part.state.status === "completed") { + switch (part.tool) { + case "read": + break + case "edit": + // load(part.state.input["filePath"] as string) + break + default: + break + } + } + break + case "file.watcher.updated": + setTimeout(sync.load.changes, 1000) + const relativePath = relative(event.properties.file) + if (relativePath.startsWith(".git/")) return + load(relativePath) + break + } + }) + + return { + active, + opened, + node: (path: string) => store.node[path], + update: (path: string, node: LocalFile) => setStore("node", path, reconcile(node)), + open, + load, + close(path: string) { + setStore("opened", (opened) => opened.filter((x) => x !== path)) + if (store.active === path) { + const index = store.opened.findIndex((f) => f === path) + const previous = store.opened[Math.max(0, index - 1)] + setStore("active", previous) + } + resetNode(path) + }, + expand(path: string) { + setStore("node", path, "expanded", true) + if (store.node[path].loaded) return + setStore("node", path, "loaded", true) + list(path) + }, + collapse(path: string) { + setStore("node", path, "expanded", false) + }, + select(path: string, selection: TextSelection | undefined) { + setStore("node", path, "selection", selection) + }, + scroll(path: string, scrollTop: number) { + setStore("node", path, "scrollTop", scrollTop) + }, + move(path: string, to: number) { + const index = store.opened.findIndex((f) => f === path) + if (index === -1) return + setStore( + "opened", + produce((opened) => { + opened.splice(to, 0, opened.splice(index, 1)[0]) + }), + ) + setStore("node", path, "pinned", true) + }, + view(path: string): View { + const n = store.node[path] + return n && n.view ? n.view : "raw" + }, + setView(path: string, view: View) { + setStore("node", path, "view", view) + }, + unfold(path: string, key: string) { + setStore("node", path, "folded", (xs) => { + const a = xs ?? [] + if (a.includes(key)) return a + return [...a, key] + }) + }, + fold(path: string, key: string) { + setStore("node", path, "folded", (xs) => (xs ?? []).filter((k) => k !== key)) + }, + folded(path: string) { + const n = store.node[path] + return n && n.folded ? n.folded : [] + }, + changeIndex(path: string) { + return store.node[path]?.selectedChange + }, + setChangeIndex(path: string, index: number | undefined) { + setStore("node", path, "selectedChange", index) + }, + changes, + changed, + children(path: string) { + return Object.values(store.node).filter( + (x) => + x.path.startsWith(path) && + x.path !== path && + !x.path.replace(new RegExp(`^${path + "/"}`), "").includes("/"), + ) + }, + search, + relative, + } + })() + + const layout = (() => { + type PaneState = { size: number; visible: boolean } + type LayoutState = { panes: Record; order: string[] } + type PaneDefault = number | { size: number; visible?: boolean } + + const [store, setStore] = createStore>({}) + + const raw = localStorage.getItem("layout") + if (raw) { + const data = JSON.parse(raw) + if (data && typeof data === "object" && !Array.isArray(data)) { + const first = Object.values(data)[0] as LayoutState + if (first && typeof first === "object" && "panes" in first) { + setStore(() => data as Record) + } + } + } + + createEffect(() => { + localStorage.setItem("layout", JSON.stringify(store)) + }) + + const normalize = (value: PaneDefault): PaneState => { + if (typeof value === "number") return { size: value, visible: true } + return { size: value.size, visible: value.visible ?? true } + } + + const ensure = (id: string, defaults: Record) => { + const entries = Object.entries(defaults) + if (!entries.length) return + setStore(id, (current) => { + if (current) return current + return { + panes: Object.fromEntries(entries.map(([pane, config]) => [pane, normalize(config)])), + order: entries.map(([pane]) => pane), + } + }) + for (const [pane, config] of entries) { + if (!store[id]?.panes[pane]) { + setStore(id, "panes", pane, () => normalize(config)) + } + if (!(store[id]?.order ?? []).includes(pane)) { + setStore(id, "order", (list) => [...list, pane]) + } + } + } + + const ensurePane = (id: string, pane: string, fallback?: PaneDefault) => { + if (!store[id]) { + const value = normalize(fallback ?? { size: 0, visible: true }) + setStore(id, () => ({ + panes: { [pane]: value }, + order: [pane], + })) + return + } + if (!store[id].panes[pane]) { + const value = normalize(fallback ?? { size: 0, visible: true }) + setStore(id, "panes", pane, () => value) + } + if (!store[id].order.includes(pane)) { + setStore(id, "order", (list) => [...list, pane]) + } + } + + const size = (id: string, pane: string) => store[id]?.panes[pane]?.size ?? 0 + const visible = (id: string, pane: string) => store[id]?.panes[pane]?.visible ?? false + + const setSize = (id: string, pane: string, value: number) => { + if (!store[id]?.panes[pane]) return + const next = Number.isFinite(value) ? Math.max(0, Math.min(100, value)) : 0 + setStore(id, "panes", pane, "size", next) + } + + const setVisible = (id: string, pane: string, value: boolean) => { + if (!store[id]?.panes[pane]) return + setStore(id, "panes", pane, "visible", value) + } + + const toggle = (id: string, pane: string) => { + setVisible(id, pane, !visible(id, pane)) + } + + const show = (id: string, pane: string) => setVisible(id, pane, true) + const hide = (id: string, pane: string) => setVisible(id, pane, false) + const order = (id: string) => store[id]?.order ?? [] + + return { + ensure, + ensurePane, + size, + visible, + setSize, + setVisible, + toggle, + show, + hide, + order, + } + })() + + const session = (() => { + const [store, setStore] = createStore<{ + active?: string + }>({}) + + const active = createMemo(() => { + if (!store.active) return undefined + return sync.session.get(store.active) + }) + + return { + active, + setActive(sessionId: string | undefined) { + setStore("active", sessionId) + }, + clearActive() { + setStore("active", undefined) + }, + } + })() + + const context = (() => { + const [store, setStore] = createStore<{ + activeTab: boolean + items: (ContextItem & { key: string })[] + }>({ + activeTab: true, + items: [], + }) + + return { + all() { + return store.items + }, + active() { + return store.activeTab ? file.active() : undefined + }, + addActive() { + setStore("activeTab", true) + }, + removeActive() { + setStore("activeTab", false) + }, + add(item: ContextItem) { + let key = item.type + switch (item.type) { + case "file": + key += `${item.path}:${item.selection?.startLine}:${item.selection?.endLine}` + break + } + if (store.items.find((x) => x.key === key)) return + setStore("items", (x) => [...x, { key, ...item }]) + }, + remove(key: string) { + setStore("items", (x) => x.filter((x) => x.key !== key)) + }, + } + })() + + const result = { + model, + agent, + file, + layout, + session, + context, + } + return result +} + +type LocalContext = ReturnType + +const ctx = createContext() + +export function LocalProvider(props: ParentProps) { + const value = init() + return {props.children} +} + +export function useLocal() { + const value = useContext(ctx) + if (!value) { + throw new Error("useLocal must be used within a LocalProvider") + } + return value +} diff --git a/packages/desktop/src/context/marked.tsx b/packages/desktop/src/context/marked.tsx new file mode 100644 index 000000000..550a0456a --- /dev/null +++ b/packages/desktop/src/context/marked.tsx @@ -0,0 +1,43 @@ +import { createContext, useContext, type ParentProps } from "solid-js" +import { useShiki } from "@/context" +import { marked } from "marked" +import markedShiki from "marked-shiki" +import { bundledLanguages, type BundledLanguage } from "shiki" + +function init(highlighter: ReturnType) { + return marked.use( + markedShiki({ + async highlight(code, lang) { + if (!(lang in bundledLanguages)) { + lang = "text" + } + if (!highlighter.getLoadedLanguages().includes(lang)) { + await highlighter.loadLanguage(lang as BundledLanguage) + } + return highlighter.codeToHtml(code, { + lang: lang || "text", + theme: "opencode", + tabindex: false, + }) + }, + }), + ) +} + +type MarkedContext = ReturnType + +const ctx = createContext() + +export function MarkedProvider(props: ParentProps) { + const highlighter = useShiki() + const value = init(highlighter) + return {props.children} +} + +export function useMarked() { + const value = useContext(ctx) + if (!value) { + throw new Error("useMarked must be used within a MarkedProvider") + } + return value +} diff --git a/packages/desktop/src/context/sdk.tsx b/packages/desktop/src/context/sdk.tsx new file mode 100644 index 000000000..48595cf9d --- /dev/null +++ b/packages/desktop/src/context/sdk.tsx @@ -0,0 +1,29 @@ +import { createContext, useContext, type ParentProps } from "solid-js" +import { createOpencodeClient } from "@opencode-ai/sdk/client" + +const host = import.meta.env.VITE_OPENCODE_SERVER_HOST ?? "127.0.0.1" +const port = import.meta.env.VITE_OPENCODE_SERVER_PORT ?? "4096" + +function init() { + const client = createOpencodeClient({ + baseUrl: `http://${host}:${port}`, + }) + return client +} + +type SDKContext = ReturnType + +const ctx = createContext() + +export function SDKProvider(props: ParentProps) { + const value = init() + return {props.children} +} + +export function useSDK() { + const value = useContext(ctx) + if (!value) { + throw new Error("useSDK must be used within a SDKProvider") + } + return value +} diff --git a/packages/desktop/src/context/shiki.tsx b/packages/desktop/src/context/shiki.tsx new file mode 100644 index 000000000..1930b907c --- /dev/null +++ b/packages/desktop/src/context/shiki.tsx @@ -0,0 +1,582 @@ +import { createHighlighter, type ThemeInput } from "shiki" +import { createContext, useContext, type ParentProps } from "solid-js" + +const theme: ThemeInput = { + colors: { + "actionBar.toggledBackground": "var(--theme-background-element)", + "activityBarBadge.background": "var(--theme-accent)", + "checkbox.border": "var(--theme-border)", + "editor.background": "transparent", + "editor.foreground": "var(--theme-text)", + "editor.inactiveSelectionBackground": "var(--theme-background-element)", + "editor.selectionHighlightBackground": "var(--theme-border-active)", + "editorIndentGuide.activeBackground1": "var(--theme-border-subtle)", + "editorIndentGuide.background1": "var(--theme-border-subtle)", + "input.placeholderForeground": "var(--theme-text-muted)", + "list.activeSelectionIconForeground": "var(--theme-text)", + "list.dropBackground": "var(--theme-background-element)", + "menu.background": "var(--theme-background-panel)", + "menu.border": "var(--theme-border)", + "menu.foreground": "var(--theme-text)", + "menu.selectionBackground": "var(--theme-primary)", + "menu.separatorBackground": "var(--theme-border)", + "ports.iconRunningProcessForeground": "var(--theme-success)", + "sideBarSectionHeader.background": "transparent", + "sideBarSectionHeader.border": "var(--theme-border-subtle)", + "sideBarTitle.foreground": "var(--theme-text-muted)", + "statusBarItem.remoteBackground": "var(--theme-success)", + "statusBarItem.remoteForeground": "var(--theme-text)", + "tab.lastPinnedBorder": "var(--theme-border-subtle)", + "tab.selectedBackground": "var(--theme-background-element)", + "tab.selectedForeground": "var(--theme-text-muted)", + "terminal.inactiveSelectionBackground": "var(--theme-background-element)", + "widget.border": "var(--theme-border)", + }, + displayName: "opencode", + name: "opencode", + semanticHighlighting: true, + semanticTokenColors: { + customLiteral: "var(--theme-syntax-function)", + newOperator: "var(--theme-syntax-operator)", + numberLiteral: "var(--theme-syntax-number)", + stringLiteral: "var(--theme-syntax-string)", + }, + tokenColors: [ + { + scope: [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python", + ], + settings: { + foreground: "var(--theme-text)", + }, + }, + { + scope: "emphasis", + settings: { + fontStyle: "italic", + }, + }, + { + scope: "strong", + settings: { + fontStyle: "bold", + }, + }, + { + scope: "header", + settings: { + foreground: "var(--theme-markdown-heading)", + }, + }, + { + scope: "comment", + settings: { + foreground: "var(--theme-syntax-comment)", + }, + }, + { + scope: "constant.language", + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: [ + "constant.numeric", + "variable.other.enummember", + "keyword.operator.plus.exponent", + "keyword.operator.minus.exponent", + ], + settings: { + foreground: "var(--theme-syntax-number)", + }, + }, + { + scope: "constant.regexp", + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: "entity.name.tag", + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: ["entity.name.tag.css", "entity.name.tag.less"], + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: "entity.other.attribute-name", + settings: { + foreground: "var(--theme-syntax-variable)", + }, + }, + { + scope: [ + "entity.other.attribute-name.class.css", + "source.css entity.other.attribute-name.class", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.parent.less", + "source.css entity.other.attribute-name.pseudo-class", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.scss", + ], + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: "invalid", + settings: { + foreground: "var(--theme-error)", + }, + }, + { + scope: "markup.underline", + settings: { + fontStyle: "underline", + }, + }, + { + scope: "markup.bold", + settings: { + fontStyle: "bold", + foreground: "var(--theme-markdown-strong)", + }, + }, + { + scope: "markup.heading", + settings: { + fontStyle: "bold", + foreground: "var(--theme-markdown-heading)", + }, + }, + { + scope: "markup.italic", + settings: { + fontStyle: "italic", + }, + }, + { + scope: "markup.strikethrough", + settings: { + fontStyle: "strikethrough", + }, + }, + { + scope: "markup.inserted", + settings: { + foreground: "var(--theme-diff-added)", + }, + }, + { + scope: "markup.deleted", + settings: { + foreground: "var(--theme-diff-removed)", + }, + }, + { + scope: "markup.changed", + settings: { + foreground: "var(--theme-diff-context)", + }, + }, + { + scope: "punctuation.definition.quote.begin.markdown", + settings: { + foreground: "var(--theme-markdown-block-quote)", + }, + }, + { + scope: "punctuation.definition.list.begin.markdown", + settings: { + foreground: "var(--theme-markdown-list-enumeration)", + }, + }, + { + scope: "markup.inline.raw", + settings: { + foreground: "var(--theme-markdown-code)", + }, + }, + { + scope: "punctuation.definition.tag", + settings: { + foreground: "var(--theme-syntax-punctuation)", + }, + }, + { + scope: ["meta.preprocessor", "entity.name.function.preprocessor"], + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: "meta.preprocessor.string", + settings: { + foreground: "var(--theme-syntax-string)", + }, + }, + { + scope: "meta.preprocessor.numeric", + settings: { + foreground: "var(--theme-syntax-number)", + }, + }, + { + scope: "meta.structure.dictionary.key.python", + settings: { + foreground: "var(--theme-syntax-variable)", + }, + }, + { + scope: "meta.diff.header", + settings: { + foreground: "var(--theme-diff-hunk-header)", + }, + }, + { + scope: "storage", + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: "storage.type", + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: ["storage.modifier", "keyword.operator.noexcept"], + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: ["string", "meta.embedded.assembly"], + settings: { + foreground: "var(--theme-syntax-string)", + }, + }, + { + scope: "string.tag", + settings: { + foreground: "var(--theme-syntax-string)", + }, + }, + { + scope: "string.value", + settings: { + foreground: "var(--theme-syntax-string)", + }, + }, + { + scope: "string.regexp", + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded", + ], + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: ["meta.template.expression"], + settings: { + foreground: "var(--theme-text)", + }, + }, + { + scope: [ + "support.type.vendored.property-name", + "support.type.property-name", + "source.css variable", + "source.coffee.embedded", + ], + settings: { + foreground: "var(--theme-syntax-variable)", + }, + }, + { + scope: "keyword", + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: "keyword.control", + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: "keyword.operator", + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.alignof", + "keyword.operator.typeid", + "keyword.operator.alignas", + "keyword.operator.instanceof", + "keyword.operator.logical.python", + "keyword.operator.wordlike", + ], + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: "keyword.other.unit", + settings: { + foreground: "var(--theme-syntax-number)", + }, + }, + { + scope: ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"], + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: "support.function.git-rebase", + settings: { + foreground: "var(--theme-syntax-variable)", + }, + }, + { + scope: "constant.sha.git-rebase", + settings: { + foreground: "var(--theme-syntax-number)", + }, + }, + { + scope: ["storage.modifier.import.java", "variable.language.wildcard.java", "storage.modifier.package.java"], + settings: { + foreground: "var(--theme-text)", + }, + }, + { + scope: "variable.language", + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: [ + "entity.name.function", + "support.function", + "support.constant.handlebars", + "source.powershell variable.other.member", + "entity.name.operator.custom-literal", + ], + settings: { + foreground: "var(--theme-syntax-function)", + }, + }, + { + scope: [ + "support.class", + "support.type", + "entity.name.type", + "entity.name.namespace", + "entity.other.attribute", + "entity.name.scope-resolution", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy", + ], + settings: { + foreground: "var(--theme-syntax-type)", + }, + }, + { + scope: [ + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class", + "punctuation.separator.namespace.ruby", + ], + settings: { + foreground: "var(--theme-syntax-type)", + }, + }, + { + scope: [ + "keyword.control", + "source.cpp keyword.operator.new", + "keyword.operator.delete", + "keyword.other.using", + "keyword.other.directive.using", + "keyword.other.operator", + "entity.name.operator", + ], + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: [ + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable", + "constant.other.placeholder", + ], + settings: { + foreground: "var(--theme-syntax-variable)", + }, + }, + { + scope: ["variable.other.constant", "variable.other.enummember"], + settings: { + foreground: "var(--theme-syntax-variable)", + }, + }, + { + scope: ["meta.object-literal.key"], + settings: { + foreground: "var(--theme-syntax-variable)", + }, + }, + { + scope: [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color", + ], + settings: { + foreground: "var(--theme-syntax-string)", + }, + }, + { + scope: [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp", + ], + settings: { + foreground: "var(--theme-syntax-string)", + }, + }, + { + scope: [ + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp", + ], + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: ["keyword.operator.or.regexp", "keyword.control.anchor.regexp"], + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: "keyword.operator.quantifier.regexp", + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: ["constant.character", "constant.other.option"], + settings: { + foreground: "var(--theme-syntax-keyword)", + }, + }, + { + scope: "constant.character.escape", + settings: { + foreground: "var(--theme-syntax-operator)", + }, + }, + { + scope: "entity.name.label", + settings: { + foreground: "var(--theme-text-muted)", + }, + }, + ], + type: "dark", +} + +const highlighter = await createHighlighter({ + themes: [theme], + langs: [], +}) + +type ShikiContext = typeof highlighter + +const ctx = createContext() + +export function ShikiProvider(props: ParentProps) { + return {props.children} +} + +export function useShiki() { + const value = useContext(ctx) + if (!value) { + throw new Error("useShiki must be used within a ShikiProvider") + } + return value +} diff --git a/packages/desktop/src/context/sync.tsx b/packages/desktop/src/context/sync.tsx new file mode 100644 index 000000000..5d64f3ee7 --- /dev/null +++ b/packages/desktop/src/context/sync.tsx @@ -0,0 +1,174 @@ +import type { Message, Agent, Provider, Session, Part, Config, Path, File, FileNode } from "@opencode-ai/sdk" +import { createStore, produce, reconcile } from "solid-js/store" +import { createContext, createMemo, Show, useContext, type ParentProps } from "solid-js" +import { useSDK, useEvent } from "@/context" +import { Binary } from "@/utils/binary" + +function init() { + const [store, setStore] = createStore<{ + ready: boolean + provider: Provider[] + agent: Agent[] + config: Config + path: Path + session: Session[] + message: { + [sessionID: string]: Message[] + } + part: { + [messageID: string]: Part[] + } + node: FileNode[] + changes: File[] + }>({ + config: {}, + path: { state: "", config: "", worktree: "", directory: "" }, + ready: false, + agent: [], + provider: [], + session: [], + message: {}, + part: {}, + node: [], + changes: [], + }) + + const bus = useEvent() + bus.listen((event) => { + switch (event.type) { + case "session.updated": { + const result = Binary.search(store.session, event.properties.info.id, (s) => s.id) + if (result.found) { + setStore("session", result.index, reconcile(event.properties.info)) + break + } + setStore( + "session", + produce((draft) => { + draft.splice(result.index, 0, event.properties.info) + }), + ) + break + } + case "message.updated": { + const messages = store.message[event.properties.info.sessionID] + if (!messages) { + setStore("message", event.properties.info.sessionID, [event.properties.info]) + break + } + const result = Binary.search(messages, event.properties.info.id, (m) => m.id) + if (result.found) { + setStore("message", event.properties.info.sessionID, result.index, reconcile(event.properties.info)) + break + } + setStore( + "message", + event.properties.info.sessionID, + produce((draft) => { + draft.splice(result.index, 0, event.properties.info) + }), + ) + break + } + case "message.part.updated": { + const parts = store.part[event.properties.part.messageID] + if (!parts) { + setStore("part", event.properties.part.messageID, [event.properties.part]) + break + } + const result = Binary.search(parts, event.properties.part.id, (p) => p.id) + if (result.found) { + setStore("part", event.properties.part.messageID, result.index, reconcile(event.properties.part)) + break + } + setStore( + "part", + event.properties.part.messageID, + produce((draft) => { + draft.splice(result.index, 0, event.properties.part) + }), + ) + break + } + } + }) + + const sdk = useSDK() + + const load = { + provider: () => sdk.config.providers().then((x) => setStore("provider", x.data!.providers)), + path: () => sdk.path.get().then((x) => setStore("path", x.data!)), + agent: () => sdk.app.agents().then((x) => setStore("agent", x.data ?? [])), + session: () => + sdk.session.list().then((x) => + setStore( + "session", + (x.data ?? []).slice().sort((a, b) => a.id.localeCompare(b.id)), + ), + ), + config: () => sdk.config.get().then((x) => setStore("config", x.data!)), + changes: () => sdk.file.status().then((x) => setStore("changes", x.data!)), + node: () => sdk.file.list({ query: { path: "/" } }).then((x) => setStore("node", x.data!)), + } + + Promise.all(Object.values(load).map((p) => p())).then(() => setStore("ready", true)) + + const sanitizer = createMemo(() => new RegExp(`${store.path.directory}/`, "g")) + const sanitize = (text: string) => text.replace(sanitizer(), "") + const absolute = (path: string) => (store.path.directory + "/" + path).replace("//", "/") + + return { + data: store, + set: setStore, + session: { + get(sessionID: string) { + const match = Binary.search(store.session, sessionID, (s) => s.id) + if (match.found) return store.session[match.index] + return undefined + }, + async sync(sessionID: string) { + const [session, messages] = await Promise.all([ + sdk.session.get({ path: { id: sessionID } }), + sdk.session.messages({ path: { id: sessionID } }), + ]) + setStore( + produce((draft) => { + const match = Binary.search(draft.session, sessionID, (s) => s.id) + draft.session[match.index] = session.data! + draft.message[sessionID] = messages + .data!.map((x) => x.info) + .slice() + .sort((a, b) => a.id.localeCompare(b.id)) + for (const message of messages.data!) { + draft.part[message.info.id] = message.parts.slice().sort((a, b) => a.id.localeCompare(b.id)) + } + }), + ) + }, + }, + load, + absolute, + sanitize, + } +} + +type SyncContext = ReturnType + +const ctx = createContext() + +export function SyncProvider(props: ParentProps) { + const value = init() + return ( + + {props.children} + + ) +} + +export function useSync() { + const value = useContext(ctx) + if (!value) { + throw new Error("useSync must be used within a SyncProvider") + } + return value +} diff --git a/packages/desktop/src/context/theme.tsx b/packages/desktop/src/context/theme.tsx new file mode 100644 index 000000000..0b344ea97 --- /dev/null +++ b/packages/desktop/src/context/theme.tsx @@ -0,0 +1,92 @@ +import { + createContext, + useContext, + createSignal, + createEffect, + onMount, + type ParentComponent, + onCleanup, +} from "solid-js" + +export interface ThemeContextValue { + theme: string | undefined + isDark: boolean + setTheme: (themeName: string) => void + setDarkMode: (isDark: boolean) => void +} + +const ThemeContext = createContext() + +export const useTheme = () => { + const context = useContext(ThemeContext) + if (!context) { + throw new Error("useTheme must be used within a ThemeProvider") + } + return context +} + +interface ThemeProviderProps { + defaultTheme?: string + defaultDarkMode?: boolean +} + +const themes = ["opencode", "tokyonight", "ayu", "nord", "catppuccin"] + +export const ThemeProvider: ParentComponent = (props) => { + const [theme, setThemeSignal] = createSignal() + const [isDark, setIsDark] = createSignal(props.defaultDarkMode ?? false) + + const handleKeyDown = (event: KeyboardEvent) => { + if (event.key === "t" && event.ctrlKey) { + event.preventDefault() + const current = theme() + if (!current) return + const index = themes.indexOf(current) + const next = themes[(index + 1) % themes.length] + setTheme(next) + } + } + + onMount(() => { + window.addEventListener("keydown", handleKeyDown) + }) + + onCleanup(() => { + window.removeEventListener("keydown", handleKeyDown) + }) + + onMount(() => { + const savedTheme = localStorage.getItem("theme") ?? "opencode" + const savedDarkMode = localStorage.getItem("darkMode") ?? "true" + setIsDark(savedDarkMode === "true") + setTheme(savedTheme) + }) + + createEffect(() => { + const currentTheme = theme() + const darkMode = isDark() + if (currentTheme) { + document.documentElement.setAttribute("data-theme", currentTheme) + document.documentElement.setAttribute("data-dark", darkMode.toString()) + } + }) + + const setTheme = async (theme: string) => { + setThemeSignal(theme) + localStorage.setItem("theme", theme) + } + + const setDarkMode = (dark: boolean) => { + setIsDark(dark) + localStorage.setItem("darkMode", dark.toString()) + } + + const contextValue: ThemeContextValue = { + theme: theme(), + isDark: isDark(), + setTheme, + setDarkMode, + } + + return {props.children} +} diff --git a/packages/desktop/src/env.d.ts b/packages/desktop/src/env.d.ts new file mode 100644 index 000000000..ad575e93b --- /dev/null +++ b/packages/desktop/src/env.d.ts @@ -0,0 +1,8 @@ +interface ImportMetaEnv { + readonly VITE_OPENCODE_SERVER_HOST: string + readonly VITE_OPENCODE_SERVER_PORT: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/packages/desktop/src/index.css b/packages/desktop/src/index.css new file mode 100644 index 000000000..cac2e91a6 --- /dev/null +++ b/packages/desktop/src/index.css @@ -0,0 +1,168 @@ +@import "tailwindcss"; + +:root { + interpolate-size: allow-keywords; +} + +@layer components { + [data-popper-positioner] { + pointer-events: none; + } + + body { + line-height: 1; + } + + ::selection { + background-color: color-mix(in srgb, var(--color-primary) 33%, transparent); + /* background-color: var(--color-primary); */ + /* color: var(--color-background); */ + } + + ::-webkit-scrollbar-track { + background: var(--theme-background-panel); + } + + ::-webkit-scrollbar-thumb { + background-color: var(--theme-border-subtle); + border-radius: 6px; + } + + * { + scrollbar-color: var(--theme-border-subtle) var(--theme-background-panel); + } + + .prose h1 { + color: var(--color-text); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + margin-bottom: calc(var(--spacing) * 3); + } + .prose h2 { + color: var(--color-text); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + margin-bottom: calc(var(--spacing) * 3); + } + .prose h3 { + color: var(--color-text); + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + margin-bottom: calc(var(--spacing) * 2); + } + .prose h4 { + color: var(--color-text); + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + margin-bottom: calc(var(--spacing) * 2); + } + .prose h5 { + color: var(--color-text); + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + margin-bottom: calc(var(--spacing) * 2); + } + .prose h6 { + color: var(--color-text); + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + margin-bottom: calc(var(--spacing) * 2); + } + .prose p { + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + margin-bottom: calc(var(--spacing) * 2); + } + .prose strong { + color: var(--color-text); + } + .prose ul, + ol { + list-style-type: disc; + list-style-position: inside; + margin-bottom: calc(var(--spacing) * 2); + } + .prose pre { + background-color: var(--color-background-panel); + padding: calc(var(--spacing) * 2); + border-radius: var(--radius-md); + border: 1px solid var(--color-border-subtle); + overflow-x: auto; + white-space: pre; + margin-bottom: calc(var(--spacing) * 2); + @apply no-scrollbar; + } + .prose code { + font-family: var(--font-mono); + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + } + .prose blockquote { + margin-bottom: calc(var(--spacing) * 2); + } +} + +@utility no-scrollbar { + &::-webkit-scrollbar { + display: none; + } + /* Hide scrollbar for IE, Edge and Firefox */ + & { + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ + } +} + +@theme { + --color-*: initial; + --color-primary: var(--theme-primary); + --color-secondary: var(--theme-secondary); + --color-accent: var(--theme-accent); + --color-error: var(--theme-error); + --color-warning: var(--theme-warning); + --color-success: var(--theme-success); + --color-info: var(--theme-info); + --color-text: var(--theme-text); + --color-text-muted: var(--theme-text-muted); + --color-background: var(--theme-background); + --color-background-panel: var(--theme-background-panel); + --color-background-element: var(--theme-background-element); + --color-border: var(--theme-border); + --color-border-active: var(--theme-border-active); + --color-border-subtle: var(--theme-border-subtle); + --color-diff-added: var(--theme-diff-added); + --color-diff-removed: var(--theme-diff-removed); + --color-diff-context: var(--theme-diff-context); + --color-diff-hunk-header: var(--theme-diff-hunk-header); + --color-diff-highlight-added: var(--theme-diff-highlight-added); + --color-diff-highlight-removed: var(--theme-diff-highlight-removed); + --color-diff-added-bg: var(--theme-diff-added-bg); + --color-diff-removed-bg: var(--theme-diff-removed-bg); + --color-diff-context-bg: var(--theme-diff-context-bg); + --color-diff-line-number: var(--theme-diff-line-number); + --color-diff-added-line-number-bg: var(--theme-diff-added-line-number-bg); + --color-diff-removed-line-number-bg: var(--theme-diff-removed-line-number-bg); + --color-markdown-text: var(--theme-markdown-text); + --color-markdown-heading: var(--theme-markdown-heading); + --color-markdown-link: var(--theme-markdown-link); + --color-markdown-link-text: var(--theme-markdown-link-text); + --color-markdown-code: var(--theme-markdown-code); + --color-markdown-block-quote: var(--theme-markdown-block-quote); + --color-markdown-emph: var(--theme-markdown-emph); + --color-markdown-strong: var(--theme-markdown-strong); + --color-markdown-horizontal-rule: var(--theme-markdown-horizontal-rule); + --color-markdown-list-item: var(--theme-markdown-list-item); + --color-markdown-list-enumeration: var(--theme-markdown-list-enumeration); + --color-markdown-image: var(--theme-markdown-image); + --color-markdown-image-text: var(--theme-markdown-image-text); + --color-markdown-code-block: var(--theme-markdown-code-block); + --color-syntax-comment: var(--theme-syntax-comment); + --color-syntax-keyword: var(--theme-syntax-keyword); + --color-syntax-function: var(--theme-syntax-function); + --color-syntax-variable: var(--theme-syntax-variable); + --color-syntax-string: var(--theme-syntax-string); + --color-syntax-number: var(--theme-syntax-number); + --color-syntax-type: var(--theme-syntax-type); + --color-syntax-operator: var(--theme-syntax-operator); + --color-syntax-punctuation: var(--theme-syntax-punctuation); +} diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx new file mode 100644 index 000000000..66ed93d3a --- /dev/null +++ b/packages/desktop/src/index.tsx @@ -0,0 +1,48 @@ +/* @refresh reload */ +import { render } from "solid-js/web" +import { Router, Route } from "@solidjs/router" +import "@/index.css" +import Layout from "@/pages/layout" +import Home from "@/pages" +import { + EventProvider, + SDKProvider, + SyncProvider, + LocalProvider, + ThemeProvider, + ShikiProvider, + MarkedProvider, +} from "@/context" + +const root = document.getElementById("root") + +if (import.meta.env.DEV && !(root instanceof HTMLElement)) { + throw new Error( + "Root element not found. Did you forget to add it to your index.html? Or maybe the id attribute got misspelled?", + ) +} + +render( + () => ( +
+ + + + + + + + + + + + + + + + + +
+ ), + root!, +) diff --git a/packages/desktop/src/pages/index.tsx b/packages/desktop/src/pages/index.tsx new file mode 100644 index 000000000..128c6adfd --- /dev/null +++ b/packages/desktop/src/pages/index.tsx @@ -0,0 +1,278 @@ +import { FileIcon, Icon, IconButton, Tooltip } from "@/ui" +import { Tabs } from "@/ui/tabs" +import FileTree from "@/components/file-tree" +import EditorPane from "@/components/editor-pane" +import { For, Match, onCleanup, onMount, Show, Switch } from "solid-js" +import { SelectDialog } from "@/components/select-dialog" +import { useLocal } from "@/context" +import { ResizeableLayout, ResizeablePane } from "@/components/resizeable-pane" +import type { LocalFile } from "@/context/local" +import SessionList from "@/components/session-list" +import SessionTimeline from "@/components/session-timeline" +import { createStore } from "solid-js/store" +import { getDirectory, getFilename } from "@/utils" + +export default function Page() { + const local = useLocal() + const [store, setStore] = createStore({ + clickTimer: undefined as number | undefined, + modelSelectOpen: false, + fileSelectOpen: false, + }) + + const layoutKey = "workspace" + const timelinePane = "timeline" + + let inputRef: HTMLTextAreaElement | undefined = undefined + + const MOD = typeof navigator === "object" && /(Mac|iPod|iPhone|iPad)/.test(navigator.platform) ? "Meta" : "Control" + + onMount(() => { + document.addEventListener("keydown", handleKeyDown) + }) + + onCleanup(() => { + document.removeEventListener("keydown", handleKeyDown) + }) + + const handleKeyDown = (event: KeyboardEvent) => { + if (event.getModifierState(MOD) && event.shiftKey && event.key.toLowerCase() === "p") { + event.preventDefault() + // TODO: command palette + return + } + if (event.getModifierState(MOD) && event.key.toLowerCase() === "p") { + event.preventDefault() + setStore("fileSelectOpen", true) + return + } + + const focused = document.activeElement === inputRef + if (focused) { + if (event.key === "Escape") { + inputRef?.blur() + } + return + } + + if (local.file.active()) { + const active = local.file.active()! + if (event.key === "Enter" && active.selection) { + local.context.add({ + type: "file", + path: active.path, + selection: { ...active.selection }, + }) + return + } + + if (event.getModifierState(MOD)) { + if (event.key.toLowerCase() === "a") { + return + } + if (event.key.toLowerCase() === "c") { + return + } + } + } + + if (event.key.length === 1 && event.key !== "Unidentified") { + inputRef?.focus() + } + } + + const resetClickTimer = () => { + if (!store.clickTimer) return + clearTimeout(store.clickTimer) + setStore("clickTimer", undefined) + } + + const startClickTimer = () => { + const newClickTimer = setTimeout(() => { + setStore("clickTimer", undefined) + }, 300) + setStore("clickTimer", newClickTimer as unknown as number) + } + + const handleFileClick = async (file: LocalFile) => { + if (store.clickTimer) { + resetClickTimer() + local.file.update(file.path, { ...file, pinned: true }) + } else { + local.file.open(file.path) + startClickTimer() + } + } + + return ( +
+ + + +
+ + + Files + + + Changes + + +
+ + + + + No changes
} + > +
    + + {(path) => ( +
  • + +
  • + )} +
    +
+ + + + + + setStore("modelSelectOpen", true)} + onInputRefChange={(element: HTMLTextAreaElement | null) => { + inputRef = element ?? undefined + }} + /> + + +
+ }> + {(activeSession) => ( +
+
+
+ local.session.clearActive()} + class="text-text-muted hover:text-text" + > + + +

+ {activeSession().title || "Untitled Session"} +

+
+
+ +
+ )} +
+
+
+ + + `${x.provider.id}:${x.id}`} + items={local.model.list()} + current={local.model.current()} + render={(i) => ( +
+
+ + {i.name} + + {i.id} + +
+
+ + + + + + + + + +
+ {new Intl.NumberFormat("en-US", { + notation: "compact", + compactDisplay: "short", + }).format(i.limit.context)} +
+ +
+ + 10}>$$$ + 1}>$$ + 0.1}>$ + +
+
+
+
+ )} + filter={["provider.name", "name", "id"]} + groupBy={(x) => x.provider.name} + onClose={() => setStore("modelSelectOpen", false)} + onSelect={(x) => local.model.set(x ? { modelID: x.id, providerID: x.provider.id } : undefined)} + /> +
+ + x} + render={(i) => ( +
+
+ + {getFilename(i)} + + {getDirectory(i)} + +
+
+
+ )} + onClose={() => setStore("fileSelectOpen", false)} + onSelect={(x) => (x ? local.file.open(x, { pinned: true }) : undefined)} + /> +
+
+ ) +} diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx new file mode 100644 index 000000000..d2e33a2ca --- /dev/null +++ b/packages/desktop/src/pages/layout.tsx @@ -0,0 +1,5 @@ +import { type ParentProps } from "solid-js" + +export default function Layout(props: ParentProps) { + return
{props.children}
+} diff --git a/packages/desktop/src/sst-env.d.ts b/packages/desktop/src/sst-env.d.ts new file mode 100644 index 000000000..47a8fbec7 --- /dev/null +++ b/packages/desktop/src/sst-env.d.ts @@ -0,0 +1,10 @@ +/* This file is auto-generated by SST. Do not edit. */ +/* tslint:disable */ +/* eslint-disable */ +/// +interface ImportMetaEnv { + +} +interface ImportMeta { + readonly env: ImportMetaEnv +} \ No newline at end of file diff --git a/packages/desktop/src/ui/button.tsx b/packages/desktop/src/ui/button.tsx new file mode 100644 index 000000000..21d89fbee --- /dev/null +++ b/packages/desktop/src/ui/button.tsx @@ -0,0 +1,36 @@ +import { Button as Kobalte } from "@kobalte/core/button" +import { type ComponentProps, splitProps } from "solid-js" + +export interface ButtonProps { + variant?: "primary" | "secondary" | "ghost" + size?: "sm" | "md" | "lg" +} + +export function Button(props: ComponentProps<"button"> & ButtonProps) { + const [split, rest] = splitProps(props, ["variant", "size", "class", "classList"]) + return ( + + {props.children} + + ) +} diff --git a/packages/desktop/src/ui/collapsible.tsx b/packages/desktop/src/ui/collapsible.tsx new file mode 100644 index 000000000..e0202f617 --- /dev/null +++ b/packages/desktop/src/ui/collapsible.tsx @@ -0,0 +1,62 @@ +import { Collapsible as KobalteCollapsible } from "@kobalte/core/collapsible" +import { splitProps } from "solid-js" +import type { ComponentProps, ParentProps } from "solid-js" +import { Icon, type IconProps } from "./icon" + +export interface CollapsibleProps extends ComponentProps {} +export interface CollapsibleTriggerProps extends ComponentProps {} +export interface CollapsibleContentProps extends ComponentProps {} + +function CollapsibleRoot(props: CollapsibleProps) { + return +} + +function CollapsibleTrigger(props: CollapsibleTriggerProps) { + const [local, others] = splitProps(props, ["class"]) + return ( + + ) +} + +function CollapsibleContent(props: ParentProps) { + const [local, others] = splitProps(props, ["class", "children"]) + return ( + + {local.children} + + ) +} + +function CollapsibleArrow(props: Partial) { + const [local, others] = splitProps(props, ["class", "name"]) + return ( + + ) +} + +export const Collapsible = Object.assign(CollapsibleRoot, { + Trigger: CollapsibleTrigger, + Content: CollapsibleContent, + Arrow: CollapsibleArrow, +}) diff --git a/packages/desktop/src/ui/file-icon.tsx b/packages/desktop/src/ui/file-icon.tsx new file mode 100644 index 000000000..d31a741e0 --- /dev/null +++ b/packages/desktop/src/ui/file-icon.tsx @@ -0,0 +1,582 @@ +import type { Component, JSX } from "solid-js" +import { createMemo, splitProps } from "solid-js" +import sprite from "@/ui/file-icons/sprite.svg" +import type { IconName } from "@/ui/file-icons/types" + +export type FileIconProps = JSX.GSVGAttributes & { + node: { path: string; type: "file" | "directory" } + expanded?: boolean +} + +export const FileIcon: Component = (props) => { + const [local, rest] = splitProps(props, ["node", "class", "expanded"]) + const name = createMemo(() => chooseIconName(local.node.path, local.node.type, local.expanded || false)) + return ( + + + + ) +} + +type IconMaps = { + fileNames: Record + fileExtensions: Record + folderNames: Record + defaults: { + file: IconName + folder: IconName + folderOpen: IconName + } +} + +const ICON_MAPS: IconMaps = { + fileNames: { + // Documentation files + "readme.md": "Readme", + "changelog.md": "Changelog", + "contributing.md": "Contributing", + "conduct.md": "Conduct", + license: "Certificate", + authors: "Authors", + credits: "Credits", + install: "Installation", + + // Node.js files + "package.json": "Nodejs", + "package-lock.json": "Nodejs", + "yarn.lock": "Yarn", + "pnpm-lock.yaml": "Pnpm", + "bun.lock": "Bun", + "bun.lockb": "Bun", + "bunfig.toml": "Bun", + ".nvmrc": "Nodejs", + ".node-version": "Nodejs", + + // Docker files + dockerfile: "Docker", + "docker-compose.yml": "Docker", + "docker-compose.yaml": "Docker", + ".dockerignore": "Docker", + + // Config files + "jest.config.js": "Jest", + "jest.config.ts": "Jest", + "jest.config.mjs": "Jest", + "vitest.config.js": "Vitest", + "vitest.config.ts": "Vitest", + "tailwind.config.js": "Tailwindcss", + "tailwind.config.ts": "Tailwindcss", + "turbo.json": "Turborepo", + "tsconfig.json": "Tsconfig", + "jsconfig.json": "Jsconfig", + ".eslintrc": "Eslint", + ".eslintrc.js": "Eslint", + ".eslintrc.json": "Eslint", + ".prettierrc": "Prettier", + ".prettierrc.js": "Prettier", + ".prettierrc.json": "Prettier", + "vite.config.js": "Vite", + "vite.config.ts": "Vite", + "webpack.config.js": "Webpack", + "rollup.config.js": "Rollup", + "astro.config.mjs": "AstroConfig", + "astro.config.js": "AstroConfig", + "next.config.js": "Next", + "next.config.mjs": "Next", + "nuxt.config.js": "Nuxt", + "nuxt.config.ts": "Nuxt", + "svelte.config.js": "Svelte", + "gatsby-config.js": "Gatsby", + "remix.config.js": "Remix", + "prisma.schema": "Prisma", + ".gitignore": "Git", + ".gitattributes": "Git", + makefile: "Makefile", + cmake: "Cmake", + "cargo.toml": "Rust", + "go.mod": "GoMod", + "go.sum": "GoMod", + "requirements.txt": "Python", + "pyproject.toml": "Python", + pipfile: "Python", + "poetry.lock": "Poetry", + gemfile: "Gemfile", + rakefile: "Ruby", + "composer.json": "Php", + "build.gradle": "Gradle", + "pom.xml": "Maven", + "deno.json": "Deno", + "deno.jsonc": "Deno", + "vercel.json": "Vercel", + "netlify.toml": "Netlify", + ".env": "Tune", + ".env.local": "Tune", + ".env.development": "Tune", + ".env.production": "Tune", + ".env.example": "Tune", + ".editorconfig": "Editorconfig", + "robots.txt": "Robots", + "favicon.ico": "Favicon", + browserlist: "Browserlist", + ".babelrc": "Babel", + "babel.config.js": "Babel", + "gulpfile.js": "Gulp", + "gruntfile.js": "Grunt", + "capacitor.config.json": "Capacitor", + "ionic.config.json": "Ionic", + "angular.json": "Angular", + ".storybook": "Storybook", + "storybook.config.js": "Storybook", + "cypress.config.js": "Cypress", + "playwright.config.js": "Playwright", + "puppeteer.config.js": "Puppeteer", + "wrangler.toml": "Wrangler", + "firebase.json": "Firebase", + supabase: "Supabase", + terraform: "Terraform", + kubernetes: "Kubernetes", + ".gitpod.yml": "Gitpod", + ".devcontainer": "Vscode", + "travis.yml": "Travis", + "appveyor.yml": "Appveyor", + ".circleci": "Circleci", + "renovate.json": "Renovate", + "dependabot.yml": "Dependabot", + "lerna.json": "Lerna", + "nx.json": "Nx", + }, + fileExtensions: { + // Test files + "spec.ts": "TestTs", + "test.ts": "TestTs", + "spec.tsx": "TestJsx", + "test.tsx": "TestJsx", + "spec.js": "TestJs", + "test.js": "TestJs", + "spec.jsx": "TestJsx", + "test.jsx": "TestJsx", + + // JavaScript/TypeScript + "js.map": "JavascriptMap", + "d.ts": "TypescriptDef", + ts: "Typescript", + tsx: "React_ts", + js: "Javascript", + jsx: "React", + mjs: "Javascript", + cjs: "Javascript", + + // Web languages + html: "Html", + htm: "Html", + css: "Css", + scss: "Sass", + sass: "Sass", + less: "Less", + styl: "Stylus", + + // Data formats + json: "Json", + xml: "Xml", + yml: "Yaml", + yaml: "Yaml", + toml: "Toml", + hjson: "Hjson", + + // Documentation + md: "Markdown", + mdx: "Mdx", + tex: "Tex", + + // Programming languages + py: "Python", + pyx: "Python", + pyw: "Python", + rs: "Rust", + go: "Go", + java: "Java", + kt: "Kotlin", + scala: "Scala", + php: "Php", + rb: "Ruby", + cs: "Csharp", + vb: "Visualstudio", + cpp: "Cpp", + cc: "Cpp", + cxx: "Cpp", + c: "C", + h: "H", + hpp: "Hpp", + swift: "Swift", + m: "ObjectiveC", + mm: "ObjectiveCpp", + dart: "Dart", + lua: "Lua", + pl: "Perl", + r: "R", + jl: "Julia", + hs: "Haskell", + elm: "Elm", + ml: "Ocaml", + clj: "Clojure", + cljs: "Clojure", + erl: "Erlang", + ex: "Elixir", + exs: "Elixir", + nim: "Nim", + zig: "Zig", + v: "Vlang", + odin: "Odin", + gleam: "Gleam", + grain: "Grain", + roc: "Rocket", + fs: "Fsharp", + + // Shell scripts + sh: "Console", + bash: "Console", + zsh: "Console", + fish: "Console", + ps1: "Powershell", + + // Config/build files + cfg: "Settings", + ini: "Settings", + conf: "Settings", + properties: "Settings", + + // Media files + svg: "Svg", + png: "Image", + jpg: "Image", + jpeg: "Image", + gif: "Image", + webp: "Image", + bmp: "Image", + ico: "Favicon", + mp4: "Video", + mov: "Video", + avi: "Video", + webm: "Video", + mp3: "Audio", + wav: "Audio", + flac: "Audio", + + // Archive files + zip: "Zip", + tar: "Zip", + gz: "Zip", + rar: "Zip", + "7z": "Zip", + + // Document files + pdf: "Pdf", + doc: "Word", + docx: "Word", + ppt: "Powerpoint", + pptx: "Powerpoint", + xls: "Document", + xlsx: "Document", + + // Database files + sql: "Database", + db: "Database", + sqlite: "Database", + + // Other + env: "Tune", + log: "Log", + lock: "Lock", + key: "Key", + pem: "Certificate", + crt: "Certificate", + proto: "Proto", + graphql: "Graphql", + gql: "Graphql", + wasm: "Webassembly", + dockerfile: "Docker", + }, + folderNames: { + // Source code + src: "FolderSrc", + source: "FolderSrc", + lib: "FolderLib", + libs: "FolderLib", + + // Testing + test: "FolderTest", + tests: "FolderTest", + testing: "FolderTest", + spec: "FolderTest", + specs: "FolderTest", + __tests__: "FolderTest", + e2e: "FolderTest", + integration: "FolderTest", + unit: "FolderTest", + cypress: "FolderCypress", + + // Dependencies + node_modules: "FolderNode", + vendor: "FolderPackages", + packages: "FolderPackages", + deps: "FolderPackages", + + // Build/dist + build: "FolderBuildkite", + dist: "FolderDist", + out: "FolderDist", + output: "FolderDist", + target: "FolderTarget", + + // Configuration + config: "FolderConfig", + configs: "FolderConfig", + configuration: "FolderConfig", + settings: "FolderConfig", + env: "FolderEnvironment", + environments: "FolderEnvironment", + + // Docker + docker: "FolderDocker", + dockerfiles: "FolderDocker", + containers: "FolderDocker", + + // Documentation + docs: "FolderDocs", + doc: "FolderDocs", + documentation: "FolderDocs", + readme: "FolderDocs", + + // Public/assets + public: "FolderPublic", + static: "FolderPublic", + assets: "FolderImages", + images: "FolderImages", + img: "FolderImages", + icons: "FolderImages", + media: "FolderImages", + fonts: "FolderFont", + styles: "FolderCss", + stylesheets: "FolderCss", + css: "FolderCss", + sass: "FolderSass", + scss: "FolderSass", + less: "FolderLess", + + // Scripts + scripts: "FolderScripts", + script: "FolderScripts", + tools: "FolderTools", + utils: "FolderUtils", + utilities: "FolderUtils", + helpers: "FolderHelper", + + // Framework specific + components: "FolderComponents", + component: "FolderComponents", + views: "FolderViews", + view: "FolderViews", + layouts: "FolderLayout", + layout: "FolderLayout", + templates: "FolderTemplate", + template: "FolderTemplate", + hooks: "FolderHook", + hook: "FolderHook", + store: "FolderStore", + stores: "FolderStore", + state: "FolderNgrxStore", + reducers: "FolderReduxReducer", + reducer: "FolderReduxReducer", + services: "FolderApi", + service: "FolderApi", + api: "FolderApi", + apis: "FolderApi", + routes: "FolderRoutes", + route: "FolderRoutes", + routing: "FolderRoutes", + middleware: "FolderMiddleware", + middlewares: "FolderMiddleware", + controllers: "FolderController", + controller: "FolderController", + models: "FolderDatabase", + model: "FolderDatabase", + schemas: "FolderDatabase", + schema: "FolderDatabase", + migrations: "FolderDatabase", + migration: "FolderDatabase", + seeders: "FolderSeeders", + seeder: "FolderSeeders", + + // TypeScript + types: "FolderTypescript", + typing: "FolderTypescript", + typings: "FolderTypescript", + "@types": "FolderTypescript", + interfaces: "FolderInterface", + interface: "FolderInterface", + + // Mobile + android: "FolderAndroid", + ios: "FolderIos", + mobile: "FolderMobile", + flutter: "FolderFlutter", + + // Infrastructure + kubernetes: "FolderKubernetes", + k8s: "FolderKubernetes", + terraform: "FolderTerraform", + aws: "FolderAws", + azure: "FolderAzurePipelines", + firebase: "FolderFirebase", + supabase: "FolderSupabase", + vercel: "FolderVercel", + netlify: "FolderNetlify", + + // CI/CD + ".github": "FolderGithub", + ".gitlab": "FolderGitlab", + ".circleci": "FolderCircleci", + ci: "FolderCi", + ".ci": "FolderCi", + workflows: "FolderGhWorkflows", + + // Git + ".git": "FolderGit", + + // Development tools + ".vscode": "FolderVscode", + ".idea": "FolderIntellij", + ".cursor": "FolderCursor", + ".devcontainer": "FolderContainer", + ".storybook": "FolderStorybook", + + // Localization + i18n: "FolderI18n", + locales: "FolderI18n", + locale: "FolderI18n", + lang: "FolderI18n", + languages: "FolderI18n", + + // Other common patterns + temp: "FolderTemp", + tmp: "FolderTemp", + logs: "FolderLog", + log: "FolderLog", + backup: "FolderBackup", + backups: "FolderBackup", + examples: "FolderExamples", + example: "FolderExamples", + demo: "FolderExamples", + demos: "FolderExamples", + samples: "FolderExamples", + sample: "FolderExamples", + fixtures: "FolderTest", + mocks: "FolderMock", + mock: "FolderMock", + data: "FolderDatabase", + database: "FolderDatabase", + db: "FolderDatabase", + sql: "FolderDatabase", + prisma: "FolderPrisma", + drizzle: "FolderDrizzle", + + // Security + security: "FolderSecure", + auth: "FolderSecure", + authentication: "FolderSecure", + authorization: "FolderSecure", + keys: "FolderKeys", + certs: "FolderKeys", + certificates: "FolderKeys", + + // Content + content: "FolderContent", + posts: "FolderContent", + articles: "FolderContent", + blog: "FolderContent", + + // Functions + functions: "FolderFunctions", + function: "FolderFunctions", + lambda: "FolderFunctions", + lambdas: "FolderFunctions", + serverless: "FolderServerless", + + // Jobs/tasks + jobs: "FolderJob", + job: "FolderJob", + tasks: "FolderTasks", + task: "FolderTasks", + cron: "FolderTasks", + queue: "FolderQueue", + queues: "FolderQueue", + + // Desktop platforms + desktop: "FolderDesktop", + windows: "FolderWindows", + macos: "FolderMacos", + linux: "FolderLinux", + }, + defaults: { + file: "Document", + folder: "Folder", + folderOpen: "FolderOpen", + }, +} + +const toOpenVariant = (icon: IconName): IconName => { + if (!icon.startsWith("Folder")) return icon + if (icon.endsWith("_light")) return icon.replace("_light", "Open_light") as IconName + if (!icon.endsWith("Open")) return (icon + "Open") as IconName + return icon +} + +const basenameOf = (p: string) => + p + .replace(/[/\\]+$/, "") + .split(/[\\/]/) + .pop() ?? "" + +const folderNameVariants = (name: string) => { + const n = name.toLowerCase() + return [n, `.${n}`, `_${n}`, `__${n}__`] +} + +const dottedSuffixesDesc = (name: string) => { + const n = name.toLowerCase() + const idxs: number[] = [] + for (let i = 0; i < n.length; i++) if (n[i] === ".") idxs.push(i) + const out = new Set() + out.add(n) // allow exact whole-name "extensions" like "dockerfile" + for (const i of idxs) if (i + 1 < n.length) out.add(n.slice(i + 1)) + return Array.from(out).sort((a, b) => b.length - a.length) // longest first +} + +export function chooseIconName(path: string, type: "directory" | "file", expanded: boolean): IconName { + const base = basenameOf(path) + const baseLower = base.toLowerCase() + + if (type === "directory") { + for (const cand of folderNameVariants(baseLower)) { + const icon = ICON_MAPS.folderNames[cand] + if (icon) return expanded ? toOpenVariant(icon) : icon + } + return expanded ? ICON_MAPS.defaults.folderOpen : ICON_MAPS.defaults.folder + } + + const byName = ICON_MAPS.fileNames[baseLower] + if (byName) return byName + + for (const ext of dottedSuffixesDesc(baseLower)) { + const icon = ICON_MAPS.fileExtensions[ext] + if (icon) return icon + } + + return ICON_MAPS.defaults.file +} diff --git a/packages/desktop/src/ui/file-icons/sprite.svg b/packages/desktop/src/ui/file-icons/sprite.svg new file mode 100644 index 000000000..619b2b58c --- /dev/null +++ b/packages/desktop/src/ui/file-icons/sprite.svg @@ -0,0 +1,11707 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/desktop/src/ui/file-icons/types.ts b/packages/desktop/src/ui/file-icons/types.ts new file mode 100644 index 000000000..5b47661f9 --- /dev/null +++ b/packages/desktop/src/ui/file-icons/types.ts @@ -0,0 +1,1095 @@ +// This file is generated by icon spritesheet generator + +export const iconNames = [ + "Zip", + "Zig", + "Zeabur_light", + "Zeabur", + "Yarn", + "Yang", + "Yaml", + "Xml", + "Xmake", + "Xaml", + "Wxt", + "Wrangler", + "Word", + "Wolframlanguage", + "Windicss", + "Werf", + "Wepy", + "Webpack", + "Webhint", + "Webassembly", + "Watchman", + "Wally", + "Wallaby", + "Wakatime_light", + "Wakatime", + "VuexStore", + "Vue", + "VueConfig", + "Vscode", + "Vlang", + "Vitest", + "Vite", + "Visualstudio", + "Virtual", + "Vim", + "Video", + "Vfl", + "Verilog", + "Verified", + "Verdaccio", + "Vercel_light", + "Vercel", + "Velocity", + "Velite", + "Vedic", + "Varnish", + "VanillaExtract", + "Vala", + "Vagrant", + "Uv", + "Url", + "Unocss", + "Unity", + "Uml_light", + "Uml", + "Umi", + "Typst", + "Typescript", + "TypescriptDef", + "Twine", + "Twig", + "Turborepo_light", + "Turborepo", + "Tune", + "Tsil", + "Tsdoc", + "Tsconfig", + "Trigger", + "Tree", + "Travis", + "Toml_light", + "Toml", + "Todo", + "Tobimake", + "Tobi", + "Tldraw_light", + "Tldraw", + "Tilt", + "Textlint", + "Tex", + "TestTs", + "TestJsx", + "TestJs", + "Terraform", + "Template", + "Templ", + "Teal", + "Tcl", + "Taze", + "Tauri", + "Taskfile", + "Tailwindcss", + "Table", + "Systemd_light", + "Systemd", + "Syncpack", + "Swift", + "Swc", + "Sway", + "Swagger", + "Svgr", + "Svgo", + "Svg", + "Svelte", + "Supabase", + "Subtitles", + "Sublime", + "Stylus", + "Stylelint_light", + "Stylelint", + "Stylable", + "Stryker", + "Storybook", + "Stitches_light", + "Stitches", + "Stencil", + "Steadybit", + "Stan", + "Stackblitz", + "Spwn", + "Sonarcloud", + "Solidity", + "Snyk", + "Snowpack_light", + "Snowpack", + "Snapcraft", + "Snakemake", + "Sml", + "Smarty", + "Slug", + "Slint", + "Slim", + "Sketch", + "Siyuan", + "Simulink", + "Silverstripe", + "Shader", + "Settings", + "Serverless", + "Sequelize", + "Sentry", + "Semgrep", + "SemanticRelease_light", + "SemanticRelease", + "Search", + "Screwdriver", + "Scons_light", + "Scons", + "Scheme", + "Scala", + "Sbt", + "Sass", + "Sas", + "San", + "Salesforce", + "Rust", + "Ruff", + "Ruby", + "Rubocop_light", + "Rubocop", + "Rspec", + "Routing", + "Rome", + "Rollup", + "Rojo", + "Rocket", + "Robots", + "Robot", + "Roblox", + "Roadmap", + "Riot", + "Restql", + "Rescript", + "RescriptInterface", + "Replit", + "Renovate", + "Remix_light", + "Remix", + "Remark", + "Regedit", + "ReduxStore", + "ReduxSelector", + "ReduxReducer", + "ReduxAction", + "Red", + "Reason", + "Readme", + "React_ts", + "React", + "Rc", + "Rbxmk", + "Razor", + "Raml", + "Racket", + "R", + "Qwik", + "Quokka", + "Quasar", + "Quarto", + "Qsharp", + "Pytorch", + "Python", + "PythonMisc", + "Purescript", + "Puppeteer", + "Puppet", + "Pug", + "Protractor", + "Proto", + "Prompt", + "Prolog", + "Processing", + "Prisma", + "Prettier", + "PreCommit", + "Powershell", + "Powerpoint", + "Posthtml", + "Postcss", + "Poetry", + "Pnpm_light", + "Pnpm", + "Pm2Ecosystem", + "Plop", + "Playwright", + "Plastic", + "Pkl", + "Pipeline", + "Pinejs", + "Phpunit", + "Phpstan", + "Php_elephant_pink", + "Php_elephant", + "Php", + "PhpCsFixer", + "Perl", + "Percy", + "Pdm", + "Pdf", + "Payload_light", + "Payload", + "Pawn", + "Pascal", + "Parcel", + "Panda", + "Palette", + "Packship", + "Oxlint", + "Otne", + "Openapi_light", + "Openapi", + "Opam", + "Opa", + "Odin", + "Ocaml", + "ObjectiveCpp", + "ObjectiveC", + "Nx", + "Nuxt", + "Nunjucks", + "Nuget", + "Npm", + "Nodemon", + "Nodejs_alt", + "Nodejs", + "Nix", + "Nim", + "NgrxState", + "NgrxSelectors", + "NgrxReducer", + "NgrxEntity", + "NgrxEffects", + "NgrxActions", + "Nginx", + "Next_light", + "Next", + "Netlify_light", + "Netlify", + "Nest", + "Ndst", + "NanoStaged_light", + "NanoStaged", + "Mxml", + "Moonscript", + "Moon", + "Mojo", + "Modernizr", + "Mocha", + "Mjml", + "Mint", + "Minecraft", + "MinecraftFabric", + "Meson", + "Mermaid", + "Merlin", + "Mercurial", + "Mdx", + "Mdsvex", + "Maven", + "Matlab", + "Mathematica", + "Markojs", + "Markdownlint", + "Markdown", + "Markdoc", + "MarkdocConfig", + "Makefile", + "Lyric", + "Luau", + "Lua", + "Lottie", + "Lolcode", + "Log", + "Lock", + "Livescript", + "Lisp", + "Liquid", + "Lintstaged", + "Lilypond", + "Lighthouse", + "Lib", + "Liara", + "Less", + "Lerna", + "Lefthook", + "Lbx", + "Latexmk", + "Laravel", + "Label", + "Kusto", + "Kubernetes", + "Kotlin", + "Knip", + "Kl", + "Kivy", + "Keystatic", + "Key", + "Kcl", + "Karma", + "Just", + "Jupyter", + "Julia", + "Jsr_light", + "Jsr", + "Json", + "Jsconfig", + "Jinja_light", + "Jinja", + "Jest", + "Jenkins", + "Javascript", + "JavascriptMap", + "Javaclass", + "Java", + "Jar", + "Istanbul", + "Ionic", + "Installation", + "Imba", + "Image", + "IfanrCloud", + "Idris", + "I18n", + "Husky", + "Hurl", + "Huff_light", + "Huff", + "Http", + "Html", + "Hpp", + "Hosts_light", + "Hosts", + "Horusec", + "Hjson", + "Histoire", + "Hex", + "Heroku", + "Helm", + "Hcl_light", + "Hcl", + "Haxe", + "Haskell", + "Harmonix", + "Hardhat", + "Handlebars", + "Haml", + "Hadolint", + "Hack", + "H", + "Gulp", + "Grunt", + "Groovy", + "Gridsome", + "Graphql", + "Graphcool", + "Grain", + "GrafanaAlloy", + "Gradle", + "Godot", + "GodotAssets", + "Go_gopher", + "Go", + "GoMod", + "Gnuplot", + "Gleam", + "Gitpod", + "Gitlab", + "GithubSponsors", + "GithubActionsWorkflow", + "Git", + "Gemini", + "GeminiAi", + "Gemfile", + "Gcp", + "Gatsby", + "Garden", + "Gamemaker", + "Fusebox", + "Fsharp", + "Freemarker", + "Foxpro", + "Fortran", + "Forth", + "Font", + "Folder", + "FolderZeabur", + "FolderZeaburOpen", + "FolderYarn", + "FolderYarnOpen", + "FolderWordpress", + "FolderWordpressOpen", + "FolderWindows", + "FolderWindowsOpen", + "FolderWebpack", + "FolderWebpackOpen", + "FolderWakatime", + "FolderWakatimeOpen", + "FolderVuexStore", + "FolderVuexStoreOpen", + "FolderVuepress", + "FolderVuepressOpen", + "FolderVue", + "FolderVueOpen", + "FolderVueDirectives", + "FolderVueDirectivesOpen", + "FolderVscode", + "FolderVscodeOpen", + "FolderVm", + "FolderVmOpen", + "FolderViews", + "FolderViewsOpen", + "FolderVideo", + "FolderVideoOpen", + "FolderVerdaccio", + "FolderVerdaccioOpen", + "FolderVercel", + "FolderVercelOpen", + "FolderUtils", + "FolderUtilsOpen", + "FolderUpload", + "FolderUploadOpen", + "FolderUpdate", + "FolderUpdateOpen", + "FolderUnity", + "FolderUnityOpen", + "FolderUi", + "FolderUiOpen", + "FolderTypescript", + "FolderTypescriptOpen", + "FolderTurborepo", + "FolderTurborepoOpen", + "FolderTrigger", + "FolderTriggerOpen", + "FolderTrash", + "FolderTrashOpen", + "FolderTools", + "FolderToolsOpen", + "FolderTheme", + "FolderThemeOpen", + "FolderTest", + "FolderTestOpen", + "FolderTerraform", + "FolderTerraformOpen", + "FolderTemplate", + "FolderTemplateOpen", + "FolderTemp", + "FolderTempOpen", + "FolderTelevision", + "FolderTelevisionOpen", + "FolderTasks", + "FolderTasksOpen", + "FolderTaskfile", + "FolderTaskfileOpen", + "FolderTarget", + "FolderTargetOpen", + "FolderSyntax", + "FolderSyntaxOpen", + "FolderSvg", + "FolderSvgOpen", + "FolderSvelte", + "FolderSvelteOpen", + "FolderSupabase", + "FolderSupabaseOpen", + "FolderSublime", + "FolderSublimeOpen", + "FolderStylus", + "FolderStylusOpen", + "FolderStorybook", + "FolderStorybookOpen", + "FolderStore", + "FolderStoreOpen", + "FolderStencil", + "FolderStencilOpen", + "FolderStack", + "FolderStackOpen", + "FolderSrc", + "FolderSrcTauri", + "FolderSrcTauriOpen", + "FolderSrcOpen", + "FolderSnippet", + "FolderSnippetOpen", + "FolderSnapcraft", + "FolderSnapcraftOpen", + "FolderShared", + "FolderSharedOpen", + "FolderShader", + "FolderShaderOpen", + "FolderServerless", + "FolderServerlessOpen", + "FolderServer", + "FolderServerOpen", + "FolderSeeders", + "FolderSeedersOpen", + "FolderSecure", + "FolderSecureOpen", + "FolderScripts", + "FolderScriptsOpen", + "FolderScons", + "FolderSconsOpen", + "FolderScala", + "FolderScalaOpen", + "FolderSass", + "FolderSassOpen", + "FolderSandbox", + "FolderSandboxOpen", + "FolderRust", + "FolderRustOpen", + "FolderRules", + "FolderRulesOpen", + "FolderRoutes", + "FolderRoutesOpen", + "FolderRobot", + "FolderRobotOpen", + "FolderReview", + "FolderReviewOpen", + "FolderResource", + "FolderResourceOpen", + "FolderResolver", + "FolderResolverOpen", + "FolderRepository", + "FolderRepositoryOpen", + "FolderReduxReducer", + "FolderReduxReducerOpen", + "FolderReactComponents", + "FolderReactComponentsOpen", + "FolderQueue", + "FolderQueueOpen", + "FolderQuasar", + "FolderQuasarOpen", + "FolderPytorch", + "FolderPytorchOpen", + "FolderPython", + "FolderPythonOpen", + "FolderPublic", + "FolderPublicOpen", + "FolderProto", + "FolderProtoOpen", + "FolderPrompts", + "FolderPromptsOpen", + "FolderProject", + "FolderProjectOpen", + "FolderPrivate", + "FolderPrivateOpen", + "FolderPrisma", + "FolderPrismaOpen", + "FolderPowershell", + "FolderPowershellOpen", + "FolderPolicy", + "FolderPolicyOpen", + "FolderPlugin", + "FolderPluginOpen", + "FolderPlastic", + "FolderPlasticOpen", + "FolderPipe", + "FolderPipeOpen", + "FolderPhpmailer", + "FolderPhpmailerOpen", + "FolderPhp", + "FolderPhpOpen", + "FolderPdm", + "FolderPdmOpen", + "FolderPdf", + "FolderPdfOpen", + "FolderPackages", + "FolderPackagesOpen", + "FolderOther", + "FolderOtherOpen", + "FolderOrganism", + "FolderOrganismOpen", + "FolderOpen", + "FolderObsidian", + "FolderObsidianOpen", + "FolderNuxt", + "FolderNuxtOpen", + "FolderNode", + "FolderNodeOpen", + "FolderNgrxStore", + "FolderNgrxStoreOpen", + "FolderNext", + "FolderNextOpen", + "FolderNetlify", + "FolderNetlifyOpen", + "FolderMoon", + "FolderMoonOpen", + "FolderMolecule", + "FolderMoleculeOpen", + "FolderMojo", + "FolderMojoOpen", + "FolderMock", + "FolderMockOpen", + "FolderMobile", + "FolderMobileOpen", + "FolderMjml", + "FolderMjmlOpen", + "FolderMiddleware", + "FolderMiddlewareOpen", + "FolderMeta", + "FolderMetaOpen", + "FolderMessages", + "FolderMessagesOpen", + "FolderMercurial", + "FolderMercurialOpen", + "FolderMarkdown", + "FolderMarkdownOpen", + "FolderMappings", + "FolderMappingsOpen", + "FolderMail", + "FolderMailOpen", + "FolderMacos", + "FolderMacosOpen", + "FolderLuau", + "FolderLuauOpen", + "FolderLua", + "FolderLuaOpen", + "FolderLottie", + "FolderLottieOpen", + "FolderLog", + "FolderLogOpen", + "FolderLiquibase", + "FolderLiquibaseOpen", + "FolderLinux", + "FolderLinuxOpen", + "FolderLink", + "FolderLinkOpen", + "FolderLib", + "FolderLibOpen", + "FolderLess", + "FolderLessOpen", + "FolderLefthook", + "FolderLefthookOpen", + "FolderLayout", + "FolderLayoutOpen", + "FolderKusto", + "FolderKustoOpen", + "FolderKubernetes", + "FolderKubernetesOpen", + "FolderKeys", + "FolderKeysOpen", + "FolderJupyter", + "FolderJupyterOpen", + "FolderJson", + "FolderJsonOpen", + "FolderJob", + "FolderJobOpen", + "FolderJinja_light", + "FolderJinja", + "FolderJinjaOpen_light", + "FolderJinjaOpen", + "FolderJavascript", + "FolderJavascriptOpen", + "FolderJava", + "FolderJavaOpen", + "FolderIos", + "FolderIosOpen", + "FolderInterface", + "FolderInterfaceOpen", + "FolderInterceptor", + "FolderInterceptorOpen", + "FolderIntellij_light", + "FolderIntellij", + "FolderIntellijOpen_light", + "FolderIntellijOpen", + "FolderInclude", + "FolderIncludeOpen", + "FolderImport", + "FolderImportOpen", + "FolderImages", + "FolderImagesOpen", + "FolderI18n", + "FolderI18nOpen", + "FolderHusky", + "FolderHuskyOpen", + "FolderHook", + "FolderHookOpen", + "FolderHome", + "FolderHomeOpen", + "FolderHelper", + "FolderHelperOpen", + "FolderHelm", + "FolderHelmOpen", + "FolderGulp", + "FolderGulpOpen", + "FolderGuard", + "FolderGuardOpen", + "FolderGraphql", + "FolderGraphqlOpen", + "FolderGradle", + "FolderGradleOpen", + "FolderGodot", + "FolderGodotOpen", + "FolderGlobal", + "FolderGlobalOpen", + "FolderGitlab", + "FolderGitlabOpen", + "FolderGithub", + "FolderGithubOpen", + "FolderGitea", + "FolderGiteaOpen", + "FolderGit", + "FolderGitOpen", + "FolderGhWorkflows", + "FolderGhWorkflowsOpen", + "FolderGenerator", + "FolderGeneratorOpen", + "FolderGamemaker", + "FolderGamemakerOpen", + "FolderFunctions", + "FolderFunctionsOpen", + "FolderForgejo", + "FolderForgejoOpen", + "FolderFont", + "FolderFontOpen", + "FolderFlutter", + "FolderFlutterOpen", + "FolderFlow", + "FolderFlowOpen", + "FolderFirestore", + "FolderFirestoreOpen", + "FolderFirebase", + "FolderFirebaseOpen", + "FolderFavicon", + "FolderFaviconOpen", + "FolderFastlane", + "FolderFastlaneOpen", + "FolderExport", + "FolderExportOpen", + "FolderExpo", + "FolderExpoOpen", + "FolderExamples", + "FolderExamplesOpen", + "FolderEvent", + "FolderEventOpen", + "FolderError", + "FolderErrorOpen", + "FolderEnvironment", + "FolderEnvironmentOpen", + "FolderEnum", + "FolderEnumOpen", + "FolderElement", + "FolderElementOpen", + "FolderDump", + "FolderDumpOpen", + "FolderDrizzle", + "FolderDrizzleOpen", + "FolderDownload", + "FolderDownloadOpen", + "FolderDocs", + "FolderDocsOpen", + "FolderDocker", + "FolderDockerOpen", + "FolderDist", + "FolderDistOpen", + "FolderDirective", + "FolderDirectiveOpen", + "FolderDesktop", + "FolderDesktopOpen", + "FolderDelta", + "FolderDeltaOpen", + "FolderDecorators", + "FolderDecoratorsOpen", + "FolderDebug", + "FolderDebugOpen", + "FolderDatabase", + "FolderDatabaseOpen", + "FolderDart", + "FolderDartOpen", + "FolderCypress", + "FolderCypressOpen", + "FolderCustom", + "FolderCustomOpen", + "FolderCursor_light", + "FolderCursor", + "FolderCursorOpen_light", + "FolderCursorOpen", + "FolderCss", + "FolderCssOpen", + "FolderCoverage", + "FolderCoverageOpen", + "FolderCore", + "FolderCoreOpen", + "FolderController", + "FolderControllerOpen", + "FolderContract", + "FolderContractOpen", + "FolderContext", + "FolderContextOpen", + "FolderContent", + "FolderContentOpen", + "FolderContainer", + "FolderContainerOpen", + "FolderConstant", + "FolderConstantOpen", + "FolderConsole", + "FolderConsoleOpen", + "FolderConnection", + "FolderConnectionOpen", + "FolderConfig", + "FolderConfigOpen", + "FolderComponents", + "FolderComponentsOpen", + "FolderCommand", + "FolderCommandOpen", + "FolderCobol", + "FolderCobolOpen", + "FolderCluster", + "FolderClusterOpen", + "FolderCloudflare", + "FolderCloudflareOpen", + "FolderCloudFunctions", + "FolderCloudFunctionsOpen", + "FolderCline", + "FolderClineOpen", + "FolderClient", + "FolderClientOpen", + "FolderClaude", + "FolderClaudeOpen", + "FolderClass", + "FolderClassOpen", + "FolderCircleci", + "FolderCircleciOpen", + "FolderCi", + "FolderCiOpen", + "FolderChangesets", + "FolderChangesetsOpen", + "FolderCart", + "FolderCartOpen", + "FolderBuildkite", + "FolderBuildkiteOpen", + "FolderBower", + "FolderBowerOpen", + "FolderBloc", + "FolderBlocOpen", + "FolderBlender", + "FolderBlenderOpen", + "FolderBicep", + "FolderBicepOpen", + "FolderBibliography", + "FolderBibliographyOpen", + "FolderBenchmark", + "FolderBenchmarkOpen", + "FolderBatch", + "FolderBatchOpen", + "FolderBase", + "FolderBaseOpen", + "FolderBackup", + "FolderBackupOpen", + "FolderAzurePipelines", + "FolderAzurePipelinesOpen", + "FolderAws", + "FolderAwsOpen", + "FolderAurelia", + "FolderAureliaOpen", + "FolderAudio", + "FolderAudioOpen", + "FolderAttachment", + "FolderAttachmentOpen", + "FolderAtom", + "FolderAtomOpen", + "FolderAstro", + "FolderAstroOpen", + "FolderArchive", + "FolderArchiveOpen", + "FolderApp", + "FolderAppOpen", + "FolderApollo", + "FolderApolloOpen", + "FolderApi", + "FolderApiOpen", + "FolderAnsible", + "FolderAnsibleOpen", + "FolderAnimation", + "FolderAnimationOpen", + "FolderAngular", + "FolderAngularOpen", + "FolderAndroid", + "FolderAndroidOpen", + "FolderAdmin", + "FolderAdminOpen", + "Flow", + "Flash", + "Firebase", + "Figma", + "Favicon", + "Fastlane", + "Exe", + "Excalidraw", + "Eslint", + "Esbuild", + "Erlang", + "Epub", + "Ember", + "Email", + "Elm", + "Elixir", + "Ejs", + "Editorconfig", + "Edge", + "Dune", + "Duc", + "Drone_light", + "Drone", + "Drizzle", + "Drawio", + "Dotjs", + "Document", + "DoctexInstaller", + "Docker", + "Dll", + "Django", + "Disc", + "Dinophp", + "Diff", + "Dhall", + "DependenciesUpdate", + "Dependabot", + "Deno_light", + "Deno", + "Denizenscript", + "Deepsource", + "Database", + "Dart_generated", + "Dart", + "D", + "Cypress", + "Cursor_light", + "Cursor", + "Cuda", + "Cucumber", + "Css", + "CssMap", + "Csharp", + "Crystal_light", + "Crystal", + "Credits", + "Craco", + "Cpp", + "Copilot_light", + "Copilot", + "Controller", + "Contributing", + "Context", + "Contentlayer", + "Console", + "Conduct", + "Concourse", + "Commitlint", + "Commitizen", + "Command", + "Coloredpetrinets", + "Coldfusion", + "Coffee", + "CoderabbitAi", + "Codeowners", + "Codecov", + "CodeClimate_light", + "CodeClimate", + "Coconut", + "Cobol", + "Coala", + "Cmake", + "Cloudfoundry", + "Clojure", + "Cline", + "Claude", + "Clangd", + "Citation", + "Circleci_light", + "Circleci", + "Chrome", + "Chess_light", + "Chess", + "Changelog", + "Certificate", + "Cds", + "Cbx", + "Capnp", + "Capacitor", + "Cake", + "Cairo", + "Cadence", + "Caddy", + "Cabal", + "C3", + "C", + "Bun_light", + "Bun", + "Buildkite", + "Bucklescript", + "Buck", + "Bruno", + "Browserlist_light", + "Browserlist", + "Brainfuck", + "Bower", + "Blitz", + "Blink_light", + "Blink", + "Blender", + "Bithound", + "Bitbucket", + "Biome", + "Bicep", + "BibtexStyle", + "Bibliography", + "BenchTs", + "BenchJsx", + "BenchJs", + "Beancount", + "Bbx", + "Bazel", + "Ballerina", + "Babel", + "Azure", + "AzurePipelines", + "Autoit", + "Autohotkey", + "Auto_light", + "Auto", + "Authors", + "Aurelia", + "Audio", + "Astyle", + "Astro", + "AstroConfig", + "Assembly", + "Asciidoc", + "Arduino", + "Architecture", + "Appveyor", + "AppsScript", + "Applescript", + "Apollo", + "Apiblueprint", + "Antlr", + "Angular", + "Android", + "Amplify", + "Advpl", + "Adonis", + "AdobeSwc", + "AdobePhotoshop_light", + "AdobePhotoshop", + "AdobeIllustrator_light", + "AdobeIllustrator", + "Ada", + "Actionscript", + "Abc", + "Abap", + "3d", +] as const + +export type IconName = (typeof iconNames)[number] diff --git a/packages/desktop/src/ui/icon-button.tsx b/packages/desktop/src/ui/icon-button.tsx new file mode 100644 index 000000000..7e9e3e6e2 --- /dev/null +++ b/packages/desktop/src/ui/icon-button.tsx @@ -0,0 +1,38 @@ +import { Button as KobalteButton } from "@kobalte/core/button" +import { splitProps } from "solid-js" +import type { ComponentProps, JSX } from "solid-js" + +export interface IconButtonProps extends ComponentProps { + variant?: "primary" | "secondary" | "outline" | "ghost" + size?: "xs" | "sm" | "md" | "lg" + children: JSX.Element +} + +export function IconButton(props: IconButtonProps) { + const [local, others] = splitProps(props, ["variant", "size", "class", "classList"]) + return ( + + ) +} diff --git a/packages/desktop/src/ui/icon.tsx b/packages/desktop/src/ui/icon.tsx new file mode 100644 index 000000000..35c77c078 --- /dev/null +++ b/packages/desktop/src/ui/icon.tsx @@ -0,0 +1,155 @@ +import { splitProps, type ComponentProps } from "solid-js" + +export interface IconProps extends ComponentProps<"svg"> { + name: keyof typeof icons + size?: number +} + +// prettier-ignore +const icons = { + close: '', + menu: ' ', + "chevron-right": '', + "chevron-left": '', + "chevron-down": '', + "chevron-up": '', + "chevron-down-square": '', + "chevron-up-square": '', + "chevron-right-square": '', + "chevron-left-square": '', + settings: '', + globe: '', + github: '', + hammer: '', + "avatar-square": '', + slash: '', + robot: '', + cloud: '', + "file-text": '', + file: '', + "file-checkmark": '', + "file-code": '', + "file-important": '', + "file-minus": '', + "file-plus": '', + files: '', + "file-zip": '', + jpg: '', + pdf: '', + png: '', + gif: '', + archive: '', + sun: '', + moon: '', + monitor: '', + command: '', + link: '', + share: '', + branch: '', + logout: '', + login: '', + keys: '', + key: '', + info: '', + warning: '', + checkmark: '', + "checkmark-square": '', + plus: '', + minus: '', + undo: '', + merge: '', + redo: '', + refresh: '', + rotate: '', + "arrow-left": '', + "arrow-down": '', + "arrow-right": '', + "arrow-up": '', + enter: '', + trash: '', + package: '', + box: '', + lock: '', + unlocked: '', + activity: '', + asterisk: '', + bell: '', + "bell-off": '', + bolt: '', + bookmark: '', + brain: '', + browser: '', + "browser-cursor": '', + bug: '', + "carat-down": '', + "carat-left": '', + "carat-right": '', + "carat-up": '', + cards: '', + chart: '', + "check-circle": '', + checklist: '', + "checklist-cards": '', + lab: '', + circle: '', + "circle-dotted": '', + clipboard: '', + clock: '', + "close-circle": '', + terminal: '', + code: '', + components: '', + copy: '', + cpu: '', + dashboard: '', + transfer: '', + devices: '', + diamond: '', + dice: '', + discord: '', + dots: '', + expand: '', + droplet: '', + "chevron-double-down": '', + "chevron-double-left": '', + "chevron-double-right": '', + "chevron-double-up": '', + "speech-bubble": '', + message: '', + annotation: '', + square: '', + "pull-request": '', + pencil: '', + sparkles: '', + photo: '', + columns: '', + "open-pane": '', + "close-pane": '', + "file-search": '', + "folder-search": '', + search: '', + "web-search": '', + loading: '', + mic: '', + } as const + +export function Icon(props: IconProps) { + const [local, others] = splitProps(props, ["name", "size", "class", "classList"]) + const size = local.size ?? 24 + return ( + + ) +} diff --git a/packages/desktop/src/ui/index.ts b/packages/desktop/src/ui/index.ts new file mode 100644 index 000000000..d3f24a192 --- /dev/null +++ b/packages/desktop/src/ui/index.ts @@ -0,0 +1,13 @@ +export { Button, type ButtonProps } from "./button" +export { + Collapsible, + type CollapsibleProps, + type CollapsibleTriggerProps, + type CollapsibleContentProps, +} from "./collapsible" +export { FileIcon, type FileIconProps } from "./file-icon" +export { Icon, type IconProps } from "./icon" +export { IconButton, type IconButtonProps } from "./icon-button" +export { Link, type LinkProps } from "./link" +export { Logo, type LogoProps } from "./logo" +export { Tooltip, type TooltipProps } from "./tooltip" diff --git a/packages/desktop/src/ui/link.tsx b/packages/desktop/src/ui/link.tsx new file mode 100644 index 000000000..461206d58 --- /dev/null +++ b/packages/desktop/src/ui/link.tsx @@ -0,0 +1,13 @@ +import { A } from "@solidjs/router" +import { splitProps } from "solid-js" +import type { ComponentProps } from "solid-js" + +export interface LinkProps extends ComponentProps { + variant?: "primary" | "secondary" | "ghost" + size?: "sm" | "md" | "lg" +} + +export function Link(props: LinkProps) { + const [, others] = splitProps(props, ["variant", "size", "class"]) + return +} diff --git a/packages/desktop/src/ui/logo.tsx b/packages/desktop/src/ui/logo.tsx new file mode 100644 index 000000000..0bbaba835 --- /dev/null +++ b/packages/desktop/src/ui/logo.tsx @@ -0,0 +1,125 @@ +import type { ComponentProps } from "solid-js" + +export interface LogoProps extends ComponentProps<"svg"> { + variant?: "mark" | "full" | "ornate" + size?: number +} + +export function Logo(props: LogoProps) { + const { variant = "mark", size = 64, ...others } = props + + if (variant === "mark") { + return ( + + + + + ) + } + + if (variant === "full") { + return ( + + + + + + + + + + + + + ) + } + + return ( + + + + + + + + + + + + + + + + + + + ) +} diff --git a/packages/desktop/src/ui/tabs.tsx b/packages/desktop/src/ui/tabs.tsx new file mode 100644 index 000000000..d82d3327a --- /dev/null +++ b/packages/desktop/src/ui/tabs.tsx @@ -0,0 +1,71 @@ +import { Tabs as KobalteTabs } from "@kobalte/core/tabs" +import { splitProps } from "solid-js" +import type { ComponentProps, ParentProps } from "solid-js" + +export interface TabsProps extends ComponentProps {} +export interface TabsListProps extends ComponentProps {} +export interface TabsTriggerProps extends ComponentProps {} +export interface TabsContentProps extends ComponentProps {} + +function TabsRoot(props: TabsProps) { + return +} + +function TabsList(props: TabsListProps) { + const [local, others] = splitProps(props, ["class"]) + return ( + + ) +} + +function TabsTrigger(props: ParentProps) { + const [local, others] = splitProps(props, ["class", "children"]) + return ( + + {local.children} + + ) +} + +function TabsContent(props: ParentProps) { + const [local, others] = splitProps(props, ["class", "children"]) + return ( + + {local.children} + + ) +} + +export const Tabs = Object.assign(TabsRoot, { + List: TabsList, + Trigger: TabsTrigger, + Content: TabsContent, +}) diff --git a/packages/desktop/src/ui/tooltip.tsx b/packages/desktop/src/ui/tooltip.tsx new file mode 100644 index 000000000..8bf1dc429 --- /dev/null +++ b/packages/desktop/src/ui/tooltip.tsx @@ -0,0 +1,58 @@ +import { Tooltip as KobalteTooltip } from "@kobalte/core/tooltip" +import { children, createEffect, createSignal, splitProps } from "solid-js" +import type { ComponentProps } from "solid-js" + +export interface TooltipProps extends ComponentProps { + value: string | (() => string) + class?: string +} + +export function Tooltip(props: TooltipProps) { + const [open, setOpen] = createSignal(false) + const [local, others] = splitProps(props, ["class", "children"]) + + const c = children(() => local.children) + + createEffect(() => { + const childElements = c() + if (childElements instanceof HTMLElement) { + childElements.addEventListener("focus", () => setOpen(true)) + childElements.addEventListener("blur", () => setOpen(false)) + } else if (Array.isArray(childElements)) { + for (const child of childElements) { + if (child instanceof HTMLElement) { + child.addEventListener("focus", () => setOpen(true)) + child.addEventListener("blur", () => setOpen(false)) + } + } + } + }) + + return ( + + + {c()} + + + + {typeof others.value === "function" ? others.value() : others.value} + + + + + ) +} diff --git a/packages/desktop/src/utils/binary.ts b/packages/desktop/src/utils/binary.ts new file mode 100644 index 000000000..3d8f61851 --- /dev/null +++ b/packages/desktop/src/utils/binary.ts @@ -0,0 +1,41 @@ +export namespace Binary { + export function search(array: T[], id: string, compare: (item: T) => string): { found: boolean; index: number } { + let left = 0 + let right = array.length - 1 + + while (left <= right) { + const mid = Math.floor((left + right) / 2) + const midId = compare(array[mid]) + + if (midId === id) { + return { found: true, index: mid } + } else if (midId < id) { + left = mid + 1 + } else { + right = mid - 1 + } + } + + return { found: false, index: left } + } + + export function insert(array: T[], item: T, compare: (item: T) => string): T[] { + const id = compare(item) + let left = 0 + let right = array.length + + while (left < right) { + const mid = Math.floor((left + right) / 2) + const midId = compare(array[mid]) + + if (midId < id) { + left = mid + 1 + } else { + right = mid + } + } + + array.splice(left, 0, item) + return array + } +} diff --git a/packages/desktop/src/utils/dom.ts b/packages/desktop/src/utils/dom.ts new file mode 100644 index 000000000..4f3724c7c --- /dev/null +++ b/packages/desktop/src/utils/dom.ts @@ -0,0 +1,51 @@ +export function getCharacterOffsetInLine(lineElement: Element, targetNode: Node, offset: number): number { + const r = document.createRange() + r.selectNodeContents(lineElement) + r.setEnd(targetNode, offset) + return r.toString().length +} + +export function getNodeOffsetInLine(lineElement: Element, charIndex: number): { node: Node; offset: number } | null { + const walker = document.createTreeWalker(lineElement, NodeFilter.SHOW_TEXT, null) + let remaining = Math.max(0, charIndex) + let lastText: Node | null = null + let lastLen = 0 + let node: Node | null + while ((node = walker.nextNode())) { + const len = node.textContent?.length || 0 + lastText = node + lastLen = len + if (remaining <= len) return { node, offset: remaining } + remaining -= len + } + if (lastText) return { node: lastText, offset: lastLen } + if (lineElement.firstChild) return { node: lineElement.firstChild, offset: 0 } + return null +} + +export function getSelectionInContainer( + container: HTMLElement, +): { sl: number; sch: number; el: number; ech: number } | null { + const s = window.getSelection() + if (!s || s.rangeCount === 0) return null + const r = s.getRangeAt(0) + const sc = r.startContainer + const ec = r.endContainer + const getLineElement = (n: Node) => + (n.nodeType === Node.TEXT_NODE ? (n.parentElement as Element) : (n as Element))?.closest(".line") + const sle = getLineElement(sc) + const ele = getLineElement(ec) + if (!sle || !ele) return null + if (!container.contains(sle as Node) || !container.contains(ele as Node)) return null + const cc = container.querySelector("code") as HTMLElement | null + if (!cc) return null + const lines = Array.from(cc.querySelectorAll(".line")) + const sli = lines.indexOf(sle as Element) + const eli = lines.indexOf(ele as Element) + if (sli === -1 || eli === -1) return null + const sl = sli + 1 + const el = eli + 1 + const sch = getCharacterOffsetInLine(sle as Element, sc, r.startOffset) + const ech = getCharacterOffsetInLine(ele as Element, ec, r.endOffset) + return { sl, sch, el, ech } +} diff --git a/packages/desktop/src/utils/index.ts b/packages/desktop/src/utils/index.ts new file mode 100644 index 000000000..ae89e4417 --- /dev/null +++ b/packages/desktop/src/utils/index.ts @@ -0,0 +1,2 @@ +export * from "./path" +export * from "./dom" diff --git a/packages/desktop/src/utils/path.ts b/packages/desktop/src/utils/path.ts new file mode 100644 index 000000000..9c026ca41 --- /dev/null +++ b/packages/desktop/src/utils/path.ts @@ -0,0 +1,14 @@ +export function getFilename(path: string) { + const parts = path.split("/") + return parts[parts.length - 1] +} + +export function getDirectory(path: string) { + const parts = path.split("/") + return parts.slice(0, parts.length - 1).join("/") +} + +export function getFileExtension(path: string) { + const parts = path.split(".") + return parts[parts.length - 1] +} diff --git a/packages/desktop/src/utils/speech.ts b/packages/desktop/src/utils/speech.ts new file mode 100644 index 000000000..921e0a159 --- /dev/null +++ b/packages/desktop/src/utils/speech.ts @@ -0,0 +1,302 @@ +import { createSignal, onCleanup } from "solid-js" + +// Minimal types to avoid relying on non-standard DOM typings +type RecognitionResult = { + 0: { transcript: string } + isFinal: boolean +} + +type RecognitionEvent = { + results: RecognitionResult[] + resultIndex: number +} + +interface Recognition { + continuous: boolean + interimResults: boolean + lang: string + start: () => void + stop: () => void + onresult: ((e: RecognitionEvent) => void) | null + onerror: ((e: { error: string }) => void) | null + onend: (() => void) | null + onstart: (() => void) | null +} + +const COMMIT_DELAY = 250 + +const appendSegment = (base: string, addition: string) => { + const trimmed = addition.trim() + if (!trimmed) return base + if (!base) return trimmed + const needsSpace = /\S$/.test(base) && !/^[,.;!?]/.test(trimmed) + return `${base}${needsSpace ? " " : ""}${trimmed}` +} + +const extractSuffix = (committed: string, hypothesis: string) => { + const cleanHypothesis = hypothesis.trim() + if (!cleanHypothesis) return "" + const baseTokens = committed.trim() ? committed.trim().split(/\s+/) : [] + const hypothesisTokens = cleanHypothesis.split(/\s+/) + let index = 0 + while ( + index < baseTokens.length && + index < hypothesisTokens.length && + baseTokens[index] === hypothesisTokens[index] + ) { + index += 1 + } + if (index < baseTokens.length) return "" + return hypothesisTokens.slice(index).join(" ") +} + +export function createSpeechRecognition(opts?: { + lang?: string + onFinal?: (text: string) => void + onInterim?: (text: string) => void +}) { + const hasSupport = + typeof window !== "undefined" && + Boolean((window as any).webkitSpeechRecognition || (window as any).SpeechRecognition) + + const [isRecording, setIsRecording] = createSignal(false) + const [committed, setCommitted] = createSignal("") + const [interim, setInterim] = createSignal("") + + let recognition: Recognition | undefined + let shouldContinue = false + let committedText = "" + let sessionCommitted = "" + let pendingHypothesis = "" + let lastInterimSuffix = "" + let shrinkCandidate: string | undefined + let commitTimer: number | undefined + + const cancelPendingCommit = () => { + if (commitTimer === undefined) return + clearTimeout(commitTimer) + commitTimer = undefined + } + + const commitSegment = (segment: string) => { + const nextCommitted = appendSegment(committedText, segment) + if (nextCommitted === committedText) return + committedText = nextCommitted + setCommitted(committedText) + if (opts?.onFinal) opts.onFinal(segment.trim()) + } + + const promotePending = () => { + if (!pendingHypothesis) return + const suffix = extractSuffix(sessionCommitted, pendingHypothesis) + if (!suffix) { + pendingHypothesis = "" + return + } + sessionCommitted = appendSegment(sessionCommitted, suffix) + commitSegment(suffix) + pendingHypothesis = "" + lastInterimSuffix = "" + shrinkCandidate = undefined + setInterim("") + if (opts?.onInterim) opts.onInterim("") + } + + const applyInterim = (suffix: string, hypothesis: string) => { + cancelPendingCommit() + pendingHypothesis = hypothesis + lastInterimSuffix = suffix + shrinkCandidate = undefined + setInterim(suffix) + if (opts?.onInterim) { + opts.onInterim(suffix ? appendSegment(committedText, suffix) : "") + } + if (!suffix) return + const snapshot = hypothesis + commitTimer = window.setTimeout(() => { + if (pendingHypothesis !== snapshot) return + const currentSuffix = extractSuffix(sessionCommitted, pendingHypothesis) + if (!currentSuffix) return + sessionCommitted = appendSegment(sessionCommitted, currentSuffix) + commitSegment(currentSuffix) + pendingHypothesis = "" + lastInterimSuffix = "" + shrinkCandidate = undefined + setInterim("") + if (opts?.onInterim) opts.onInterim("") + }, COMMIT_DELAY) + } + + if (hasSupport) { + const Ctor: new () => Recognition = (window as any).webkitSpeechRecognition || (window as any).SpeechRecognition + + recognition = new Ctor() + recognition.continuous = false + recognition.interimResults = true + recognition.lang = opts?.lang || (typeof navigator !== "undefined" ? navigator.language : "en-US") + + recognition.onresult = (event: RecognitionEvent) => { + if (!event.results.length) return + + let aggregatedFinal = "" + let latestHypothesis = "" + + for (let i = 0; i < event.results.length; i += 1) { + const result = event.results[i] + const transcript = (result[0]?.transcript || "").trim() + if (!transcript) continue + if (result.isFinal) { + aggregatedFinal = appendSegment(aggregatedFinal, transcript) + } else { + latestHypothesis = transcript + } + } + + if (aggregatedFinal) { + cancelPendingCommit() + const finalSuffix = extractSuffix(sessionCommitted, aggregatedFinal) + if (finalSuffix) { + sessionCommitted = appendSegment(sessionCommitted, finalSuffix) + commitSegment(finalSuffix) + } + pendingHypothesis = "" + lastInterimSuffix = "" + shrinkCandidate = undefined + setInterim("") + if (opts?.onInterim) opts.onInterim("") + return + } + + cancelPendingCommit() + + if (!latestHypothesis) { + shrinkCandidate = undefined + applyInterim("", "") + return + } + + const suffix = extractSuffix(sessionCommitted, latestHypothesis) + + if (!suffix) { + if (!lastInterimSuffix) { + shrinkCandidate = undefined + applyInterim("", latestHypothesis) + return + } + if (shrinkCandidate === "") { + applyInterim("", latestHypothesis) + return + } + shrinkCandidate = "" + pendingHypothesis = latestHypothesis + return + } + + if (lastInterimSuffix && suffix.length < lastInterimSuffix.length) { + if (shrinkCandidate === suffix) { + applyInterim(suffix, latestHypothesis) + return + } + shrinkCandidate = suffix + pendingHypothesis = latestHypothesis + return + } + + shrinkCandidate = undefined + applyInterim(suffix, latestHypothesis) + } + + recognition.onerror = (e: { error: string }) => { + cancelPendingCommit() + lastInterimSuffix = "" + shrinkCandidate = undefined + if (e.error === "no-speech" && shouldContinue) { + setInterim("") + if (opts?.onInterim) opts.onInterim("") + setTimeout(() => { + try { + recognition?.start() + } catch {} + }, 150) + return + } + shouldContinue = false + setIsRecording(false) + } + + recognition.onstart = () => { + sessionCommitted = "" + pendingHypothesis = "" + cancelPendingCommit() + lastInterimSuffix = "" + shrinkCandidate = undefined + setInterim("") + if (opts?.onInterim) opts.onInterim("") + setIsRecording(true) + } + + recognition.onend = () => { + cancelPendingCommit() + lastInterimSuffix = "" + shrinkCandidate = undefined + setIsRecording(false) + if (shouldContinue) { + setTimeout(() => { + try { + recognition?.start() + } catch {} + }, 150) + } + } + } + + const start = () => { + if (!recognition) return + shouldContinue = true + sessionCommitted = "" + pendingHypothesis = "" + cancelPendingCommit() + lastInterimSuffix = "" + shrinkCandidate = undefined + setInterim("") + try { + recognition.start() + } catch {} + } + + const stop = () => { + if (!recognition) return + shouldContinue = false + promotePending() + cancelPendingCommit() + lastInterimSuffix = "" + shrinkCandidate = undefined + setInterim("") + if (opts?.onInterim) opts.onInterim("") + try { + recognition.stop() + } catch {} + } + + onCleanup(() => { + shouldContinue = false + promotePending() + cancelPendingCommit() + lastInterimSuffix = "" + shrinkCandidate = undefined + setInterim("") + if (opts?.onInterim) opts.onInterim("") + try { + recognition?.stop() + } catch {} + }) + + return { + isSupported: () => hasSupport, + isRecording, + committed, + interim, + start, + stop, + } +} -- cgit v1.2.3