From b738d88ec4c49efdf37ecf09058e70f1c3574b6b Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Thu, 5 Feb 2026 13:55:49 -0600 Subject: feat(app): open in button (#12322) --- .../ui/src/assets/icons/app/android-studio.svg | 1 + packages/ui/src/assets/icons/app/antigravity.svg | 1 + packages/ui/src/assets/icons/app/cursor.svg | 1 + packages/ui/src/assets/icons/app/finder.png | Bin 0 -> 525196 bytes packages/ui/src/assets/icons/app/ghostty.svg | 1 + packages/ui/src/assets/icons/app/iterm2.svg | 25 +++++ packages/ui/src/assets/icons/app/powershell.svg | 1 + packages/ui/src/assets/icons/app/terminal.png | Bin 0 -> 43815 bytes packages/ui/src/assets/icons/app/textmate.png | Bin 0 -> 104374 bytes packages/ui/src/assets/icons/app/vscode.svg | 1 + packages/ui/src/assets/icons/app/xcode.png | Bin 0 -> 866979 bytes packages/ui/src/assets/icons/app/zed.svg | 1 + packages/ui/src/components/app-icon.css | 9 ++ packages/ui/src/components/app-icon.tsx | 52 ++++++++++ packages/ui/src/components/app-icons/sprite.svg | 114 +++++++++++++++++++++ packages/ui/src/components/app-icons/types.ts | 18 ++++ packages/ui/src/styles/index.css | 1 + 17 files changed, 226 insertions(+) create mode 100644 packages/ui/src/assets/icons/app/android-studio.svg create mode 100644 packages/ui/src/assets/icons/app/antigravity.svg create mode 100644 packages/ui/src/assets/icons/app/cursor.svg create mode 100644 packages/ui/src/assets/icons/app/finder.png create mode 100644 packages/ui/src/assets/icons/app/ghostty.svg create mode 100644 packages/ui/src/assets/icons/app/iterm2.svg create mode 100644 packages/ui/src/assets/icons/app/powershell.svg create mode 100644 packages/ui/src/assets/icons/app/terminal.png create mode 100644 packages/ui/src/assets/icons/app/textmate.png create mode 100644 packages/ui/src/assets/icons/app/vscode.svg create mode 100644 packages/ui/src/assets/icons/app/xcode.png create mode 100644 packages/ui/src/assets/icons/app/zed.svg create mode 100644 packages/ui/src/components/app-icon.css create mode 100644 packages/ui/src/components/app-icon.tsx create mode 100644 packages/ui/src/components/app-icons/sprite.svg create mode 100644 packages/ui/src/components/app-icons/types.ts (limited to 'packages/ui/src') diff --git a/packages/ui/src/assets/icons/app/android-studio.svg b/packages/ui/src/assets/icons/app/android-studio.svg new file mode 100644 index 000000000..6b545e27a --- /dev/null +++ b/packages/ui/src/assets/icons/app/android-studio.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/icons/app/antigravity.svg b/packages/ui/src/assets/icons/app/antigravity.svg new file mode 100644 index 000000000..3c3554af7 --- /dev/null +++ b/packages/ui/src/assets/icons/app/antigravity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/icons/app/cursor.svg b/packages/ui/src/assets/icons/app/cursor.svg new file mode 100644 index 000000000..c2c8c1819 --- /dev/null +++ b/packages/ui/src/assets/icons/app/cursor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/icons/app/finder.png b/packages/ui/src/assets/icons/app/finder.png new file mode 100644 index 000000000..4edf53bca Binary files /dev/null and b/packages/ui/src/assets/icons/app/finder.png differ diff --git a/packages/ui/src/assets/icons/app/ghostty.svg b/packages/ui/src/assets/icons/app/ghostty.svg new file mode 100644 index 000000000..1dc652aac --- /dev/null +++ b/packages/ui/src/assets/icons/app/ghostty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/icons/app/iterm2.svg b/packages/ui/src/assets/icons/app/iterm2.svg new file mode 100644 index 000000000..0b00a1b7a --- /dev/null +++ b/packages/ui/src/assets/icons/app/iterm2.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/ui/src/assets/icons/app/powershell.svg b/packages/ui/src/assets/icons/app/powershell.svg new file mode 100644 index 000000000..fa0c70f0b --- /dev/null +++ b/packages/ui/src/assets/icons/app/powershell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/icons/app/terminal.png b/packages/ui/src/assets/icons/app/terminal.png new file mode 100644 index 000000000..43857b632 Binary files /dev/null and b/packages/ui/src/assets/icons/app/terminal.png differ diff --git a/packages/ui/src/assets/icons/app/textmate.png b/packages/ui/src/assets/icons/app/textmate.png new file mode 100644 index 000000000..1eee73c5e Binary files /dev/null and b/packages/ui/src/assets/icons/app/textmate.png differ diff --git a/packages/ui/src/assets/icons/app/vscode.svg b/packages/ui/src/assets/icons/app/vscode.svg new file mode 100644 index 000000000..aba7e19f6 --- /dev/null +++ b/packages/ui/src/assets/icons/app/vscode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/assets/icons/app/xcode.png b/packages/ui/src/assets/icons/app/xcode.png new file mode 100644 index 000000000..c37d9f176 Binary files /dev/null and b/packages/ui/src/assets/icons/app/xcode.png differ diff --git a/packages/ui/src/assets/icons/app/zed.svg b/packages/ui/src/assets/icons/app/zed.svg new file mode 100644 index 000000000..7c9a0e591 --- /dev/null +++ b/packages/ui/src/assets/icons/app/zed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/ui/src/components/app-icon.css b/packages/ui/src/components/app-icon.css new file mode 100644 index 000000000..edcdbcceb --- /dev/null +++ b/packages/ui/src/components/app-icon.css @@ -0,0 +1,9 @@ +img[data-component="app-icon"] { + display: block; + box-sizing: border-box; + padding: 2px; + border-radius: 0.125rem; + background: var(--smoke-light-2); + border: 1px solid var(--smoke-light-alpha-4); + object-fit: contain; +} diff --git a/packages/ui/src/components/app-icon.tsx b/packages/ui/src/components/app-icon.tsx new file mode 100644 index 000000000..f58b5d38c --- /dev/null +++ b/packages/ui/src/components/app-icon.tsx @@ -0,0 +1,52 @@ +import type { Component, ComponentProps } from "solid-js" +import { splitProps } from "solid-js" +import type { IconName } from "./app-icons/types" + +import androidStudio from "../assets/icons/app/android-studio.svg" +import antigravity from "../assets/icons/app/antigravity.svg" +import cursor from "../assets/icons/app/cursor.svg" +import finder from "../assets/icons/app/finder.png" +import ghostty from "../assets/icons/app/ghostty.svg" +import iterm2 from "../assets/icons/app/iterm2.svg" +import powershell from "../assets/icons/app/powershell.svg" +import terminal from "../assets/icons/app/terminal.png" +import textmate from "../assets/icons/app/textmate.png" +import vscode from "../assets/icons/app/vscode.svg" +import xcode from "../assets/icons/app/xcode.png" +import zed from "../assets/icons/app/zed.svg" + +const icons = { + vscode, + cursor, + zed, + finder, + terminal, + iterm2, + ghostty, + xcode, + "android-studio": androidStudio, + antigravity, + textmate, + powershell, +} satisfies Record + +export type AppIconProps = Omit, "src"> & { + id: IconName +} + +export const AppIcon: Component = (props) => { + const [local, rest] = splitProps(props, ["id", "class", "classList", "alt", "draggable"]) + return ( + {local.alt + ) +} diff --git a/packages/ui/src/components/app-icons/sprite.svg b/packages/ui/src/components/app-icons/sprite.svg new file mode 100644 index 000000000..68361f413 --- /dev/null +++ b/packages/ui/src/components/app-icons/sprite.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/ui/src/components/app-icons/types.ts b/packages/ui/src/components/app-icons/types.ts new file mode 100644 index 000000000..81964b8da --- /dev/null +++ b/packages/ui/src/components/app-icons/types.ts @@ -0,0 +1,18 @@ +// This file is generated by icon spritesheet generator + +export const iconNames = [ + "vscode", + "cursor", + "zed", + "finder", + "terminal", + "iterm2", + "ghostty", + "xcode", + "android-studio", + "antigravity", + "textmate", + "powershell", +] as const + +export type IconName = (typeof iconNames)[number] diff --git a/packages/ui/src/styles/index.css b/packages/ui/src/styles/index.css index c038f69f6..c85df7ba3 100644 --- a/packages/ui/src/styles/index.css +++ b/packages/ui/src/styles/index.css @@ -7,6 +7,7 @@ @import "katex/dist/katex.min.css" layer(base); @import "../components/accordion.css" layer(components); +@import "../components/app-icon.css" layer(components); @import "../components/avatar.css" layer(components); @import "../components/basic-tool.css" layer(components); @import "../components/button.css" layer(components); -- cgit v1.2.3