diff --git a/Cargo.lock b/Cargo.lock index 102d8d9..71b2813 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -313,6 +313,16 @@ dependencies = [ "zbus", ] +[[package]] +name = "assets" +version = "1.0.0" +dependencies = [ + "anyhow", + "gpui", + "log", + "rust-embed", +] + [[package]] name = "async-broadcast" version = "0.7.2" @@ -7754,6 +7764,7 @@ dependencies = [ name = "signed" version = "1.0.0" dependencies = [ + "assets", "gpui", "gpui-component", "gpui_linux", diff --git a/crates/assets/Cargo.toml b/crates/assets/Cargo.toml new file mode 100644 index 0000000..3e3d11f --- /dev/null +++ b/crates/assets/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "assets" +version.workspace = true +edition.workspace = true +publish.workspace = true + +[dependencies] +gpui.workspace = true +anyhow.workspace = true +log.workspace = true +rust-embed.workspace = true diff --git a/crates/assets/assets/.keep b/crates/assets/assets/.keep new file mode 100644 index 0000000..e69de29 diff --git a/crates/assets/assets/icons/README.md b/crates/assets/assets/icons/README.md new file mode 100644 index 0000000..62d9f35 --- /dev/null +++ b/crates/assets/assets/icons/README.md @@ -0,0 +1,115 @@ +# Icons + +Icon set for the Signed app. Each file mirrors the name of the equivalent +[gpui-component](https://github.com/longbridge/gpui-component/tree/main/crates/assets/assets/icons) +icon, but the artwork comes from +[Remix Icon](https://remixicon.com/) v4.9.1 (Apache-2.0) unless noted. + +All SVGs are 24×24 (`viewBox="0 0 24 24"`) and use `fill="currentColor"`, so +gpui renders them with the requested color. + +## Mapping (gpui-component icon → Remix Icon) + +| File | Remix Icon | +| --- | --- | +| `a-large-small.svg` | `font-size` | +| `arrow-down.svg` | `arrow-down-line` | +| `arrow-left.svg` | `arrow-left-line` | +| `arrow-right.svg` | `arrow-right-line` | +| `arrow-up.svg` | `arrow-up-line` | +| `asterisk.svg` | `asterisk` | +| `battery.svg` | `battery-line` | +| `battery-charging.svg` | `battery-charge-line` | +| `battery-low.svg` | `battery-low-line` | +| `bell.svg` | `bell-line` | +| `book-open.svg` | `book-open-line` | +| `bot.svg` | `robot-line` | +| `building-2.svg` | `building-2-line` | +| `calendar.svg` | `calendar-line` | +| `chart-pie.svg` | `pie-chart-2-line` | +| `check.svg` | `check-line` | +| `chevron-down.svg` | `arrow-down-s-line` | +| `chevron-left.svg` | `arrow-left-s-line` | +| `chevron-right.svg` | `arrow-right-s-line` | +| `chevron-up.svg` | `arrow-up-s-line` | +| `chevrons-up-down.svg` | `expand-up-down-line` | +| `circle-check.svg` | `checkbox-circle-line` | +| `circle-user.svg` | `account-circle-line` | +| `circle-x.svg` | `close-circle-line` | +| `close.svg` | `close-line` | +| `copy.svg` | `file-copy-line` | +| `cpu.svg` | `cpu-line` | +| `dash.svg` | `subtract-line` | +| `delete.svg` | `delete-bin-line` | +| `ellipsis.svg` | `more-line` | +| `ellipsis-vertical.svg` | `more-2-line` | +| `external-link.svg` | `external-link-line` | +| `eye.svg` | `eye-line` | +| `eye-off.svg` | `eye-off-line` | +| `file.svg` | `file-line` | +| `folder.svg` | `folder-line` | +| `folder-closed.svg` | `folder-2-line` | +| `folder-open.svg` | `folder-open-line` | +| `github.svg` | `github-line` | +| `globe.svg` | `global-line` | +| `hard-drive.svg` | `hard-drive-2-line` | +| `heart.svg` | `heart-line` | +| `inbox.svg` | `inbox-line` | +| `info.svg` | `information-line` | +| `layout-dashboard.svg` | `dashboard-line` | +| `loader.svg` | `loader-line` | +| `loader-circle.svg` | `loader-4-line` | +| `map.svg` | `map-2-line` | +| `maximize.svg` | `fullscreen-line` | +| `menu.svg` | `menu-line` | +| `minimize.svg` | `fullscreen-exit-line` | +| `minus.svg` | `subtract-line` | +| `moon.svg` | `moon-line` | +| `network.svg` | `share-line` | +| `palette.svg` | `palette-line` | +| `panel-bottom.svg` | `layout-bottom-line` | +| `panel-left.svg` | `layout-left-line` | +| `panel-right.svg` | `layout-right-line` | +| `pause.svg` | `pause-line` | +| `play.svg` | `play-line` | +| `plus.svg` | `add-line` | +| `redo.svg` | `corner-up-right-line` | +| `redo-2.svg` | `arrow-go-forward-line` | +| `replace.svg` | `swap-box-line` | +| `resize-corner.svg` | `corner-right-down-line` | +| `search.svg` | `search-line` | +| `settings.svg` | `settings-line` | +| `settings-2.svg` | `equalizer-line` | +| `sort-ascending.svg` | `sort-asc` | +| `sort-descending.svg` | `sort-desc` | +| `square-terminal.svg` | `terminal-box-line` | +| `star.svg` | `star-line` | +| `star-fill.svg` | `star-fill` | +| `star-off.svg` | `star-off-line` | +| `sun.svg` | `sun-line` | +| `thumbs-down.svg` | `thumb-down-line` | +| `thumbs-up.svg` | `thumb-up-line` | +| `triangle-alert.svg` | `alert-line` | +| `undo.svg` | `corner-up-left-line` | +| `undo-2.svg` | `arrow-go-back-line` | +| `user.svg` | `user-line` | +| `window-close.svg` | `close-line` | +| `window-maximize.svg` | `checkbox-blank-line` | +| `window-minimize.svg` | `subtract-line` | +| `window-restore.svg` | `picture-in-picture-line` | + +## Kept as original (no Remix equivalent) + +These have no close Remix Icon counterpart and keep the original lucide +artwork from gpui-component: + +`battery-full.svg`, `battery-medium.svg`, `battery-warning.svg`, +`case-sensitive.svg`, `frame.svg`, `gallery-vertical-end.svg`, +`heart-off.svg`, `inspector.svg`, `memory-stick.svg`, +`panel-bottom-open.svg`, `panel-left-close.svg`, `panel-left-open.svg`, +`panel-right-close.svg`, `panel-right-open.svg` + +## Licensing + +- Remix Icon SVGs: [Apache-2.0](https://github.com/Remix-Design/RemixIcon/blob/master/License) +- Lucide SVGs (kept originals): [ISC](https://github.com/lucide-icons/lucide/blob/main/LICENSE) diff --git a/crates/assets/assets/icons/a-large-small.svg b/crates/assets/assets/icons/a-large-small.svg new file mode 100644 index 0000000..17d60fc --- /dev/null +++ b/crates/assets/assets/icons/a-large-small.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/arrow-down.svg b/crates/assets/assets/icons/arrow-down.svg new file mode 100644 index 0000000..3246720 --- /dev/null +++ b/crates/assets/assets/icons/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/arrow-left.svg b/crates/assets/assets/icons/arrow-left.svg new file mode 100644 index 0000000..81cf0eb --- /dev/null +++ b/crates/assets/assets/icons/arrow-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/arrow-right.svg b/crates/assets/assets/icons/arrow-right.svg new file mode 100644 index 0000000..d859f2d --- /dev/null +++ b/crates/assets/assets/icons/arrow-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/arrow-up.svg b/crates/assets/assets/icons/arrow-up.svg new file mode 100644 index 0000000..241454c --- /dev/null +++ b/crates/assets/assets/icons/arrow-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/asterisk.svg b/crates/assets/assets/icons/asterisk.svg new file mode 100644 index 0000000..77417cd --- /dev/null +++ b/crates/assets/assets/icons/asterisk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/battery-charging.svg b/crates/assets/assets/icons/battery-charging.svg new file mode 100644 index 0000000..06d1b41 --- /dev/null +++ b/crates/assets/assets/icons/battery-charging.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/battery-full.svg b/crates/assets/assets/icons/battery-full.svg new file mode 100644 index 0000000..4279ecf --- /dev/null +++ b/crates/assets/assets/icons/battery-full.svg @@ -0,0 +1,14 @@ + diff --git a/crates/assets/assets/icons/battery-low.svg b/crates/assets/assets/icons/battery-low.svg new file mode 100644 index 0000000..963008b --- /dev/null +++ b/crates/assets/assets/icons/battery-low.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/battery-medium.svg b/crates/assets/assets/icons/battery-medium.svg new file mode 100644 index 0000000..65d6ac1 --- /dev/null +++ b/crates/assets/assets/icons/battery-medium.svg @@ -0,0 +1,18 @@ + diff --git a/crates/assets/assets/icons/battery-warning.svg b/crates/assets/assets/icons/battery-warning.svg new file mode 100644 index 0000000..aa35819 --- /dev/null +++ b/crates/assets/assets/icons/battery-warning.svg @@ -0,0 +1,16 @@ + diff --git a/crates/assets/assets/icons/battery.svg b/crates/assets/assets/icons/battery.svg new file mode 100644 index 0000000..d83ac0b --- /dev/null +++ b/crates/assets/assets/icons/battery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/bell.svg b/crates/assets/assets/icons/bell.svg new file mode 100644 index 0000000..eadf6f6 --- /dev/null +++ b/crates/assets/assets/icons/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/book-open.svg b/crates/assets/assets/icons/book-open.svg new file mode 100644 index 0000000..5e07c2b --- /dev/null +++ b/crates/assets/assets/icons/book-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/bot.svg b/crates/assets/assets/icons/bot.svg new file mode 100644 index 0000000..9d3b6e0 --- /dev/null +++ b/crates/assets/assets/icons/bot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/building-2.svg b/crates/assets/assets/icons/building-2.svg new file mode 100644 index 0000000..7cc62c4 --- /dev/null +++ b/crates/assets/assets/icons/building-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/calendar.svg b/crates/assets/assets/icons/calendar.svg new file mode 100644 index 0000000..930d804 --- /dev/null +++ b/crates/assets/assets/icons/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/case-sensitive.svg b/crates/assets/assets/icons/case-sensitive.svg new file mode 100644 index 0000000..648134f --- /dev/null +++ b/crates/assets/assets/icons/case-sensitive.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/assets/icons/chart-pie.svg b/crates/assets/assets/icons/chart-pie.svg new file mode 100644 index 0000000..6eb096d --- /dev/null +++ b/crates/assets/assets/icons/chart-pie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/check.svg b/crates/assets/assets/icons/check.svg new file mode 100644 index 0000000..c0272c0 --- /dev/null +++ b/crates/assets/assets/icons/check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/chevron-down.svg b/crates/assets/assets/icons/chevron-down.svg new file mode 100644 index 0000000..e1bc908 --- /dev/null +++ b/crates/assets/assets/icons/chevron-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/chevron-left.svg b/crates/assets/assets/icons/chevron-left.svg new file mode 100644 index 0000000..7f92ade --- /dev/null +++ b/crates/assets/assets/icons/chevron-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/chevron-right.svg b/crates/assets/assets/icons/chevron-right.svg new file mode 100644 index 0000000..94f2d24 --- /dev/null +++ b/crates/assets/assets/icons/chevron-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/chevron-up.svg b/crates/assets/assets/icons/chevron-up.svg new file mode 100644 index 0000000..3a424df --- /dev/null +++ b/crates/assets/assets/icons/chevron-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/chevrons-up-down.svg b/crates/assets/assets/icons/chevrons-up-down.svg new file mode 100644 index 0000000..879deb1 --- /dev/null +++ b/crates/assets/assets/icons/chevrons-up-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/circle-check.svg b/crates/assets/assets/icons/circle-check.svg new file mode 100644 index 0000000..eaffe5e --- /dev/null +++ b/crates/assets/assets/icons/circle-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/circle-user.svg b/crates/assets/assets/icons/circle-user.svg new file mode 100644 index 0000000..b96c221 --- /dev/null +++ b/crates/assets/assets/icons/circle-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/circle-x.svg b/crates/assets/assets/icons/circle-x.svg new file mode 100644 index 0000000..2230aa0 --- /dev/null +++ b/crates/assets/assets/icons/circle-x.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/close.svg b/crates/assets/assets/icons/close.svg new file mode 100644 index 0000000..4ee8e56 --- /dev/null +++ b/crates/assets/assets/icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/copy.svg b/crates/assets/assets/icons/copy.svg new file mode 100644 index 0000000..84dfcd9 --- /dev/null +++ b/crates/assets/assets/icons/copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/cpu.svg b/crates/assets/assets/icons/cpu.svg new file mode 100644 index 0000000..a69c58c --- /dev/null +++ b/crates/assets/assets/icons/cpu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/dash.svg b/crates/assets/assets/icons/dash.svg new file mode 100644 index 0000000..fcc1e94 --- /dev/null +++ b/crates/assets/assets/icons/dash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/delete.svg b/crates/assets/assets/icons/delete.svg new file mode 100644 index 0000000..e074d3a --- /dev/null +++ b/crates/assets/assets/icons/delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/ellipsis-vertical.svg b/crates/assets/assets/icons/ellipsis-vertical.svg new file mode 100644 index 0000000..c48b99d --- /dev/null +++ b/crates/assets/assets/icons/ellipsis-vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/ellipsis.svg b/crates/assets/assets/icons/ellipsis.svg new file mode 100644 index 0000000..52c69ea --- /dev/null +++ b/crates/assets/assets/icons/ellipsis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/external-link.svg b/crates/assets/assets/icons/external-link.svg new file mode 100644 index 0000000..20c991f --- /dev/null +++ b/crates/assets/assets/icons/external-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/eye-off.svg b/crates/assets/assets/icons/eye-off.svg new file mode 100644 index 0000000..0b53e64 --- /dev/null +++ b/crates/assets/assets/icons/eye-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/eye.svg b/crates/assets/assets/icons/eye.svg new file mode 100644 index 0000000..0100f61 --- /dev/null +++ b/crates/assets/assets/icons/eye.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/file.svg b/crates/assets/assets/icons/file.svg new file mode 100644 index 0000000..7ed925e --- /dev/null +++ b/crates/assets/assets/icons/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/folder-closed.svg b/crates/assets/assets/icons/folder-closed.svg new file mode 100644 index 0000000..0c9430b --- /dev/null +++ b/crates/assets/assets/icons/folder-closed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/folder-open.svg b/crates/assets/assets/icons/folder-open.svg new file mode 100644 index 0000000..f950fa2 --- /dev/null +++ b/crates/assets/assets/icons/folder-open.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/folder.svg b/crates/assets/assets/icons/folder.svg new file mode 100644 index 0000000..55c4342 --- /dev/null +++ b/crates/assets/assets/icons/folder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/frame.svg b/crates/assets/assets/icons/frame.svg new file mode 100644 index 0000000..6511851 --- /dev/null +++ b/crates/assets/assets/icons/frame.svg @@ -0,0 +1,22 @@ + diff --git a/crates/assets/assets/icons/gallery-vertical-end.svg b/crates/assets/assets/icons/gallery-vertical-end.svg new file mode 100644 index 0000000..39b1f80 --- /dev/null +++ b/crates/assets/assets/icons/gallery-vertical-end.svg @@ -0,0 +1,18 @@ + diff --git a/crates/assets/assets/icons/github.svg b/crates/assets/assets/icons/github.svg new file mode 100644 index 0000000..f5587c7 --- /dev/null +++ b/crates/assets/assets/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/globe.svg b/crates/assets/assets/icons/globe.svg new file mode 100644 index 0000000..e2147e9 --- /dev/null +++ b/crates/assets/assets/icons/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/hard-drive.svg b/crates/assets/assets/icons/hard-drive.svg new file mode 100644 index 0000000..d0d0cec --- /dev/null +++ b/crates/assets/assets/icons/hard-drive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/heart-off.svg b/crates/assets/assets/icons/heart-off.svg new file mode 100644 index 0000000..68cda02 --- /dev/null +++ b/crates/assets/assets/icons/heart-off.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/assets/icons/heart.svg b/crates/assets/assets/icons/heart.svg new file mode 100644 index 0000000..43be902 --- /dev/null +++ b/crates/assets/assets/icons/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/inbox.svg b/crates/assets/assets/icons/inbox.svg new file mode 100644 index 0000000..456b522 --- /dev/null +++ b/crates/assets/assets/icons/inbox.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/info.svg b/crates/assets/assets/icons/info.svg new file mode 100644 index 0000000..8c02c93 --- /dev/null +++ b/crates/assets/assets/icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/inspector.svg b/crates/assets/assets/icons/inspector.svg new file mode 100644 index 0000000..c3517a4 --- /dev/null +++ b/crates/assets/assets/icons/inspector.svg @@ -0,0 +1,18 @@ + diff --git a/crates/assets/assets/icons/layout-dashboard.svg b/crates/assets/assets/icons/layout-dashboard.svg new file mode 100644 index 0000000..ad64197 --- /dev/null +++ b/crates/assets/assets/icons/layout-dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/loader-circle.svg b/crates/assets/assets/icons/loader-circle.svg new file mode 100644 index 0000000..712d0a8 --- /dev/null +++ b/crates/assets/assets/icons/loader-circle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/loader.svg b/crates/assets/assets/icons/loader.svg new file mode 100644 index 0000000..2dbd761 --- /dev/null +++ b/crates/assets/assets/icons/loader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/map.svg b/crates/assets/assets/icons/map.svg new file mode 100644 index 0000000..508c658 --- /dev/null +++ b/crates/assets/assets/icons/map.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/maximize.svg b/crates/assets/assets/icons/maximize.svg new file mode 100644 index 0000000..6f84e6f --- /dev/null +++ b/crates/assets/assets/icons/maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/memory-stick.svg b/crates/assets/assets/icons/memory-stick.svg new file mode 100644 index 0000000..7d12b57 --- /dev/null +++ b/crates/assets/assets/icons/memory-stick.svg @@ -0,0 +1,22 @@ + diff --git a/crates/assets/assets/icons/menu.svg b/crates/assets/assets/icons/menu.svg new file mode 100644 index 0000000..771d875 --- /dev/null +++ b/crates/assets/assets/icons/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/minimize.svg b/crates/assets/assets/icons/minimize.svg new file mode 100644 index 0000000..7e9cb74 --- /dev/null +++ b/crates/assets/assets/icons/minimize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/minus.svg b/crates/assets/assets/icons/minus.svg new file mode 100644 index 0000000..fcc1e94 --- /dev/null +++ b/crates/assets/assets/icons/minus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/moon.svg b/crates/assets/assets/icons/moon.svg new file mode 100644 index 0000000..aa64d7f --- /dev/null +++ b/crates/assets/assets/icons/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/network.svg b/crates/assets/assets/icons/network.svg new file mode 100644 index 0000000..c6b0fbd --- /dev/null +++ b/crates/assets/assets/icons/network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/palette.svg b/crates/assets/assets/icons/palette.svg new file mode 100644 index 0000000..119e1a4 --- /dev/null +++ b/crates/assets/assets/icons/palette.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/panel-bottom-open.svg b/crates/assets/assets/icons/panel-bottom-open.svg new file mode 100644 index 0000000..df77e5b --- /dev/null +++ b/crates/assets/assets/icons/panel-bottom-open.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/assets/icons/panel-bottom.svg b/crates/assets/assets/icons/panel-bottom.svg new file mode 100644 index 0000000..d70a752 --- /dev/null +++ b/crates/assets/assets/icons/panel-bottom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/panel-left-close.svg b/crates/assets/assets/icons/panel-left-close.svg new file mode 100644 index 0000000..5f26cc6 --- /dev/null +++ b/crates/assets/assets/icons/panel-left-close.svg @@ -0,0 +1,14 @@ + diff --git a/crates/assets/assets/icons/panel-left-open.svg b/crates/assets/assets/icons/panel-left-open.svg new file mode 100644 index 0000000..579e458 --- /dev/null +++ b/crates/assets/assets/icons/panel-left-open.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/assets/icons/panel-left.svg b/crates/assets/assets/icons/panel-left.svg new file mode 100644 index 0000000..3dac79e --- /dev/null +++ b/crates/assets/assets/icons/panel-left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/panel-right-close.svg b/crates/assets/assets/icons/panel-right-close.svg new file mode 100644 index 0000000..5fe9dcd --- /dev/null +++ b/crates/assets/assets/icons/panel-right-close.svg @@ -0,0 +1,14 @@ + diff --git a/crates/assets/assets/icons/panel-right-open.svg b/crates/assets/assets/icons/panel-right-open.svg new file mode 100644 index 0000000..3b5ff0b --- /dev/null +++ b/crates/assets/assets/icons/panel-right-open.svg @@ -0,0 +1 @@ + diff --git a/crates/assets/assets/icons/panel-right.svg b/crates/assets/assets/icons/panel-right.svg new file mode 100644 index 0000000..d37f5e7 --- /dev/null +++ b/crates/assets/assets/icons/panel-right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/pause.svg b/crates/assets/assets/icons/pause.svg new file mode 100644 index 0000000..3ac2f47 --- /dev/null +++ b/crates/assets/assets/icons/pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/play.svg b/crates/assets/assets/icons/play.svg new file mode 100644 index 0000000..4b95321 --- /dev/null +++ b/crates/assets/assets/icons/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/plus.svg b/crates/assets/assets/icons/plus.svg new file mode 100644 index 0000000..15eb956 --- /dev/null +++ b/crates/assets/assets/icons/plus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/redo-2.svg b/crates/assets/assets/icons/redo-2.svg new file mode 100644 index 0000000..abf1431 --- /dev/null +++ b/crates/assets/assets/icons/redo-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/redo.svg b/crates/assets/assets/icons/redo.svg new file mode 100644 index 0000000..06b39d0 --- /dev/null +++ b/crates/assets/assets/icons/redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/replace.svg b/crates/assets/assets/icons/replace.svg new file mode 100644 index 0000000..d1fd435 --- /dev/null +++ b/crates/assets/assets/icons/replace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/resize-corner.svg b/crates/assets/assets/icons/resize-corner.svg new file mode 100644 index 0000000..07f7aa6 --- /dev/null +++ b/crates/assets/assets/icons/resize-corner.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/search.svg b/crates/assets/assets/icons/search.svg new file mode 100644 index 0000000..4273096 --- /dev/null +++ b/crates/assets/assets/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/settings-2.svg b/crates/assets/assets/icons/settings-2.svg new file mode 100644 index 0000000..de5d127 --- /dev/null +++ b/crates/assets/assets/icons/settings-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/settings.svg b/crates/assets/assets/icons/settings.svg new file mode 100644 index 0000000..7703c63 --- /dev/null +++ b/crates/assets/assets/icons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/sort-ascending.svg b/crates/assets/assets/icons/sort-ascending.svg new file mode 100644 index 0000000..b615797 --- /dev/null +++ b/crates/assets/assets/icons/sort-ascending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/sort-descending.svg b/crates/assets/assets/icons/sort-descending.svg new file mode 100644 index 0000000..95bdec9 --- /dev/null +++ b/crates/assets/assets/icons/sort-descending.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/square-terminal.svg b/crates/assets/assets/icons/square-terminal.svg new file mode 100644 index 0000000..d818b08 --- /dev/null +++ b/crates/assets/assets/icons/square-terminal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/star-fill.svg b/crates/assets/assets/icons/star-fill.svg new file mode 100644 index 0000000..e177475 --- /dev/null +++ b/crates/assets/assets/icons/star-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/star-off.svg b/crates/assets/assets/icons/star-off.svg new file mode 100644 index 0000000..3f682ff --- /dev/null +++ b/crates/assets/assets/icons/star-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/star.svg b/crates/assets/assets/icons/star.svg new file mode 100644 index 0000000..8879428 --- /dev/null +++ b/crates/assets/assets/icons/star.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/sun.svg b/crates/assets/assets/icons/sun.svg new file mode 100644 index 0000000..1242b0a --- /dev/null +++ b/crates/assets/assets/icons/sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/thumbs-down.svg b/crates/assets/assets/icons/thumbs-down.svg new file mode 100644 index 0000000..f067dfd --- /dev/null +++ b/crates/assets/assets/icons/thumbs-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/thumbs-up.svg b/crates/assets/assets/icons/thumbs-up.svg new file mode 100644 index 0000000..a46d747 --- /dev/null +++ b/crates/assets/assets/icons/thumbs-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/triangle-alert.svg b/crates/assets/assets/icons/triangle-alert.svg new file mode 100644 index 0000000..a476591 --- /dev/null +++ b/crates/assets/assets/icons/triangle-alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/undo-2.svg b/crates/assets/assets/icons/undo-2.svg new file mode 100644 index 0000000..c72e0ec --- /dev/null +++ b/crates/assets/assets/icons/undo-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/undo.svg b/crates/assets/assets/icons/undo.svg new file mode 100644 index 0000000..a29b7c6 --- /dev/null +++ b/crates/assets/assets/icons/undo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/user.svg b/crates/assets/assets/icons/user.svg new file mode 100644 index 0000000..c4292eb --- /dev/null +++ b/crates/assets/assets/icons/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/window-close.svg b/crates/assets/assets/icons/window-close.svg new file mode 100644 index 0000000..4ee8e56 --- /dev/null +++ b/crates/assets/assets/icons/window-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/window-maximize.svg b/crates/assets/assets/icons/window-maximize.svg new file mode 100644 index 0000000..b5a3265 --- /dev/null +++ b/crates/assets/assets/icons/window-maximize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/window-minimize.svg b/crates/assets/assets/icons/window-minimize.svg new file mode 100644 index 0000000..fcc1e94 --- /dev/null +++ b/crates/assets/assets/icons/window-minimize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/assets/icons/window-restore.svg b/crates/assets/assets/icons/window-restore.svg new file mode 100644 index 0000000..f55fa10 --- /dev/null +++ b/crates/assets/assets/icons/window-restore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/crates/assets/src/lib.rs b/crates/assets/src/lib.rs new file mode 100644 index 0000000..4f06a44 --- /dev/null +++ b/crates/assets/src/lib.rs @@ -0,0 +1,47 @@ +use anyhow::Context; +use gpui::{App, AssetSource, Result, SharedString}; +use rust_embed::RustEmbed; + +#[derive(RustEmbed)] +#[folder = "assets"] +#[include = "icons/**/*.svg"] +#[exclude = "*.DS_Store"] +pub struct Assets; + +impl AssetSource for Assets { + fn load(&self, path: &str) -> Result>> { + Self::get(path) + .map(|f| Some(f.data)) + .with_context(|| format!("loading asset at path {path:?}")) + } + + fn list(&self, path: &str) -> Result> { + Ok(Self::iter() + .filter_map(|p| { + if p.starts_with(path) { + Some(p.into()) + } else { + None + } + }) + .collect()) + } +} + +impl Assets { + pub fn load_fonts(&self, cx: &App) -> anyhow::Result<()> { + let font_paths = self.list("fonts")?; + let mut embedded_fonts = Vec::new(); + for font_path in font_paths { + if font_path.ends_with(".ttf") { + let font_bytes = cx + .asset_source() + .load(&font_path)? + .expect("Assets should never return None"); + embedded_fonts.push(font_bytes); + } + } + + cx.text_system().add_fonts(embedded_fonts) + } +} diff --git a/crates/signed_nostr/src/backend.rs b/crates/signed_nostr/src/backend.rs index 6055a29..ff86625 100644 --- a/crates/signed_nostr/src/backend.rs +++ b/crates/signed_nostr/src/backend.rs @@ -1,3 +1,5 @@ +#[cfg(not(target_arch = "wasm32"))] +use std::path::Path; use std::time::Duration; use anyhow::{Context, Result}; @@ -16,9 +18,7 @@ use crate::signer::UniversalSigner; /// The SDK manages its own internal tokio runtime; the returned client can be /// driven by GPUI's executors. #[cfg(not(target_arch = "wasm32"))] -pub async fn new_backend( - db_path: impl AsRef, -) -> Result<(Client, UniversalSigner)> { +pub async fn new_backend(db_path: impl AsRef) -> Result<(Client, UniversalSigner)> { let signer = UniversalSigner::new(Keys::generate()); let database = NostrLmdb::open(db_path) .await diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 6551e17..53d5083 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -9,6 +9,7 @@ name = "signed" path = "src/main.rs" [dependencies] +assets = { path = "../crates/assets" } paths = { path = "../crates/paths" } signed_state = { path = "../crates/signed_state" } workspace = { path = "../crates/workspace" } diff --git a/desktop/src/main.rs b/desktop/src/main.rs index 61c93bf..b14c693 100644 --- a/desktop/src/main.rs +++ b/desktop/src/main.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use assets::Assets; use gpui::*; use gpui_platform::application; @@ -8,8 +9,13 @@ fn main() { tracing_subscriber::fmt::init(); application() + .with_assets(Assets) .with_http_client(Arc::new(reqwest_client::ReqwestClient::new())) .run(move |cx| { + // Set app identity + cx.set_app_identity("su.reya.signed", "Signed"); + + // Initialize components gpui_component::init(cx); // Initialize backend and stores (connects relays, restores session)