Compare commits

...
Author SHA1 Message Date
deepend-tildeclub 394de09cb1 Merge pull request #137 from ZoiteChat/network-tree-width-stacked
Preserve saved right pane size on first layout
2026-03-20 08:43:34 -06:00
deepend 5213669fbc Preserve saved right pane size on first layout 2026-03-20 08:33:16 -06:00
deepend 8471e2feac license: add license text to new files. 2026-03-19 11:03:29 -06:00
deepend-tildeclub dd53a92ecf Merge pull request #136 from ZoiteChat/fix-license-website-links-about
Make About dialog links explicit, add GPL URL
2026-03-19 00:19:20 -06:00
deepend 0ff4c3608e Make About dialog links explicit, add GPL URL 2026-03-18 23:58:57 -06:00
deepend-tildeclub 909854ae12 Merge pull request #135 from ZoiteChat/vcredist_fix
Make VC++ redist installer option smarter
2026-03-18 21:52:16 -06:00
deepend 725da0065b installer: fixed vcredist download url. 2026-03-18 21:43:13 -06:00
deepend c8801dd5d3 Add non-plugin installer download fallback 2026-03-18 21:37:48 -06:00
deepend 80c59795d7 Use registry check for VC++ runtime detect 2026-03-18 21:30:33 -06:00
deepend b1f74094f1 Make VC++ redist installer option smarter 2026-03-18 21:22:07 -06:00
deepend-tildeclub 255089a0a5 Merge pull request #130 from ZoiteChat/save-fixes
Save fixes
2026-03-18 09:20:59 -06:00
deepend 7c24c1137d Split topic/mode rows, tighten mode bar spacing 2026-03-18 09:10:40 -06:00
deepend 7138a8f397 Tighten userlist header/count spacing 2026-03-18 09:06:10 -06:00
deepend b32f6522ac Persist GTK userlist column widths 2026-03-17 13:09:40 -06:00
deepend b7e4548d2a refactor: setup OK acts transactional now; apply staged theme before save, roll back on fail 2026-03-17 11:01:40 -06:00
deepend 0cfb63f301 style: normalize GTK signal names to canonical dash-case 2026-03-17 10:30:54 -06:00
deepend e90b68967c refactor: split mg_configure_cb main/dialog geometry paths; drop sess mutation 2026-03-17 10:11:41 -06:00
deepend 0155b07c9d refactor: route exit saves through FE persistence wrapper; keep text mode simple 2026-03-17 10:07:34 -06:00
deepend 592d74e788 fix: preview staged theme values from staged model, not raw callback input 2026-03-17 09:53:56 -06:00
deepend 854a913911 refactor: stage theme prefs edits; preview live, commit on OK, discard on cancel 2026-03-17 09:43:50 -06:00
deepend 48b551b188 refactor: stage theme saves w/ atomic rename; add finalize/discard persistence tests 2026-03-17 09:35:20 -06:00
deepend 9e808c57b4 refactor: coord prefs/theme saves in one staged path; drop broken manager wrappers 2026-03-16 22:45:30 -06:00
deepend 896a761e24 perf: debounce GUI config saves; flush pending write on close 2026-03-16 21:57:21 -06:00
deepend 96af9bdde6 fix: surface zoitechat.conf/colors.conf save failures; add missing theme prefs fwd decl 2026-03-16 21:55:36 -06:00
deepend e90f0188c1 fix: drop realpath path canon; use GLib-only absolute path build 2026-03-16 21:02:26 -06:00
deepend 0ab7eb7207 fix: Meson libperl parse cleanup; tighten topic URL hit-testing so only actual links click 2026-03-16 19:10:49 -06:00
deepend 81dcdbe648 pkg: make libayatana-appindicator a required dep in PKGBUILD 2026-03-16 18:38:04 -06:00
deepend f4090cb0e5 fix: ensure tree layout in chanview; left-align headers. 2026-03-16 10:47:54 -06:00
deepend 0f5dfb147e fix: native GTK theme import, proper file:// paths 2026-03-16 10:45:29 -06:00
deepend 0bcd369426 fix: tighten URL host/IP matching; reject more bogus hosts, keep IPv6 brackets right 2026-03-16 10:31:49 -06:00
deepend-tildeclub b316d4a281 Merge pull request #126 from ZoiteChat/userlist-chanlist-width-fix
ui: let right sidebar shrink proper; left-align counts, ellipsize lis…
2026-03-16 02:25:21 -06:00
deepend 86ab0135ce ui: let right sidebar shrink proper; left-align counts, ellipsize lists, stop content forcing width 2026-03-16 01:49:18 -06:00
deepend 2d42d4e181 build(ci): bump Win deps incl Perl 5.42/Python 3.14.3; refresh libs; drop old Inno dl plugin 2026-03-16 01:25:01 -06:00
deepend 23e6313e2f ui: let right sidebar shrink proper; left-align counts, ellipsize lists, stop content forcing width 2026-03-15 18:21:01 -06:00
deepend b5c5810913 fix: harden F9 menubar toggle; skip risky menu-item sync 2026-03-14 21:32:11 -06:00
deepend b5ebba4521 release: bump 2.18.0~pre4 + release notes. 2026-03-14 20:09:55 -06:00
deepend 4fe8e273e4 fix: open theme folder via fe_open_url; drop flaky file:// pre-check 2026-03-14 20:01:58 -06:00
deepend 12d8f5e69c feat: multiline topic bar w/ clickable URLs + no bare-/ opens 2026-03-14 19:57:42 -06:00
deepend 8a1cf3080e Fix: prevent sidebar collapse on fresh installs 2026-03-14 19:43:01 -06:00
deepend-tildeclub b9bd0ed61c Merge pull request #123 from ZoiteChat/text_highlight_fix
fix: style GTK selection nodes too, not just rows/cells
2026-03-14 17:27:46 -06:00
deepend 1f33ed8034 fix: style GTK selection nodes too, not just rows/cells 2026-03-14 17:15:59 -06:00
deepend-tildeclub 38f38cd2c4 Merge pull request #122 from ZoiteChat/119-ctrla-sets-away
fix: use away_mask for Marked Away accel; stop stealing Ctrl+A
2026-03-14 17:13:05 -06:00
deepend 71478a0262 fix: use away_mask for Marked Away accel; stop stealing Ctrl+A 2026-03-14 17:04:36 -06:00
deepend-tildeclub f76f2cd94c Merge pull request #121 from ZoiteChat/120-f9-or-gui-menu-toggle-cause-segment-fault
fix: guard stale gui sessions; block re-entrant menu toggle sync crash
2026-03-14 17:03:16 -06:00
deepend 183b134817 Squash: Fix GUI toggle crash by guarding stale sessions and blocking re-entrant menu sync callbacks. 2026-03-14 16:49:58 -06:00
deepend 6a7d2012a5 fix: guard stale gui sessions; block re-entrant menu toggle sync crash 2026-03-14 16:44:15 -06:00
deepend-tildeclub 7762d689f8 Merge pull request #110 from ZoiteChat/appimage-emoji
ci: bundle GTK emoji chooser data into AppImage runtime
2026-03-13 14:52:07 -06:00
deepend-tildeclub f2ee361b3a Merge pull request #116 from ZoiteChat/appimage-workflow-fixes
Appimage workflow fixes
2026-03-13 14:51:41 -06:00
deepend-tildeclub a0345c831a Merge pull request #117 from ZoiteChat/pre3-incoming
release: bump 2.18.0~pre3; sync version refs + release notes
2026-03-13 14:47:17 -06:00
deepend-tildeclub 61c4a7f3eb Merge pull request #115 from ZoiteChat/enable-installer-dir-selector
installer: show install dir page on Windows setup
2026-03-13 14:46:37 -06:00
deepend 7fc7eaa847 fix: AppImage locks GIO to bundled modules; drops host GTK junk 2026-03-13 14:43:32 -06:00
deepend 7bb2331f43 release: bump 2.18.0~pre3; sync version refs + release notes 2026-03-13 14:41:42 -06:00
deepend e373000cdb installer: show install dir page on Windows setup 2026-03-13 14:36:38 -06:00
deepend-tildeclub a228110583 Merge pull request #114 from ZoiteChat/button-icon-consistency
ui: bundle ok/cancel icons; improve emoji fallback, incl PNG/SVG on W…
2026-03-13 13:47:20 -06:00
deepend 6ae1956b2a ui: updated icons, changed close button over as well. 2026-03-13 13:32:08 -06:00
deepend a8a879f2a0 ui: bundle ok/cancel icons; improve emoji fallback, incl PNG/SVG on Windows 2026-03-13 12:39:55 -06:00
deepend 7e113cdec2 ci: bump upload-artifact to v6 for newer Node runtime 2026-03-13 11:05:14 -06:00
deepend f9111c1107 fix: AppImage GTK runtime cleanup; clear host env, bundle modules/theme, set GTK_PATH 2026-03-13 10:11:24 -06:00
deepend 1fdd7f3804 missed servlist.c checker script in previous PR. 2026-03-13 09:56:48 -06:00
deepend-tildeclub 288fa3caf7 Merge pull request #112 from ZoiteChat/servlist.c_update
Updated servlist.c to remove dead servers + Added bash script for che…
2026-03-13 09:44:22 -06:00
deepend 27e9b4933d Updated servlist.c to remove dead servers + Added bash script for checking servlist.c. 2026-03-13 09:19:19 -06:00
deepend-tildeclub c43915d609 Merge pull request #111 from ZoiteChat/perl-python-flatpak
flatpak: enable Python/Perl plugins; bundle Perl runtime module
2026-03-13 01:04:32 -06:00
deepend 989ecc5a23 flatpak: bump pycparser/cffi 2026-03-13 00:48:56 -06:00
deepend a225af6d71 fix: add strings.h for Perl strcasecmp funcs 2026-03-12 22:33:28 -06:00
deepend d2407c39c7 flatpak: fix Perl source checksum for 5.40.1 build 2026-03-12 20:38:54 -06:00
deepend 4754cf3927 flatpak: enable Python/Perl plugins; bundle Perl runtime module 2026-03-12 20:28:24 -06:00
deepend-tildeclub b23c1a73ca Merge pull request #109 from ZoiteChat/fix-tray-icon-restore-hide
fix: keep tray hide/restore label synced to real window state
2026-03-12 19:40:40 -06:00
deepend 4cebe2ac8b fix: expose shared tray label updater on Windows; keep non-win tray bits guarded 2026-03-12 19:34:17 -06:00
deepend 44431d2c10 fix: unnest tray cb guards so Windows callbacks actually get defined 2026-03-12 19:13:26 -06:00
deepend 14a1ac0dfb fix: keep tray hide/restore label synced to real window state 2026-03-12 18:51:07 -06:00
deepend-tildeclub 166542f1e3 Merge pull request #108 from ZoiteChat/fix-flatpak-titlebar
Fix flatpak titlebar
2026-03-12 18:45:48 -06:00
deepend 05f4bf382d flatpak: enable GTK_CSD=1 for GTK titlebars on KDE 2026-03-12 18:39:22 -06:00
deepend 52af960175 fix: refresh AppIndicator tray label on menu map/open 2026-03-12 18:31:20 -06:00
deepend-tildeclub a2e2bdf803 Merge pull request #106 from ZoiteChat/remove-icons
ui: drop menubar icons
2026-03-12 18:15:12 -06:00
deepend-tildeclub 3baa5d92f4 Merge pull request #105 from ZoiteChat/plugins-retention
fix: persist manual addons by copying em into user addon dir
2026-03-12 16:54:27 -06:00
deepend 99f97b82a6 ui: drop menubar icons; make Away plain item w/ toggle handler 2026-03-12 16:52:06 -06:00
deepend-tildeclub 6d1e7da475 Merge pull request #104 from ZoiteChat/bug-fixes-pre3-prep
Merge color-changer: import colors.conf, fix userlist/GTK3 tabs, embed SVG icon, clean GTK/OpenSSL warnings.
2026-03-12 15:22:04 -06:00
deepend 81ad7c5816 fix: persist manual addons by copying em into user addon dir 2026-03-12 15:16:42 -06:00
deepend 84544a5e91 feat: import colors.conf; fix userlist colors, GTK3 defaults, chanview tabs 2026-03-12 14:51:10 -06:00
deepend 7ece6faaad ui: embed zoitechat.svg; use 32px headerbar icon w/ PNG fallback 2026-03-11 21:04:00 -06:00
deepend 031018a29e ci: bump checkout/upload-artifact/setup-python actions to current versions 2026-03-11 09:21:42 -06:00
deepend 0f036383b2 build: GTK deprecation cleanup + follow-up warning fixes 2026-03-11 01:49:14 -06:00
deepend c0e5ef79ec build: fix GTK/OpenSSL warnings + tab color OOB 2026-03-10 23:05:56 -06:00
deepend 0aa6c26490 fix: quiet GTK/GLib warn spam; fix include order; normalize imported CSS 2026-03-09 14:21:20 -06:00
deepend-tildeclub a11687e3eb Merge pull request #8 from deepend-tildeclub/color-changer
Color changer
2026-03-09 11:37:00 -06:00
deepend-tildeclub f676aa56e6 Merge pull request #103 from ZoiteChat/theme-features-fixes
Theme update
2026-03-09 10:50:12 -06:00
deepend a53802cfef fix(win): tolerate tar/PS nonzero if files extracted; add path_tree_has_entries() to verify real output 2026-03-08 10:40:20 -06:00
deepend b47c45d4cc feat: merge GTK3 Theme into Appearance (new Advanced section); fix+scale chat bg image + use FileChooserNative picker 2026-03-08 10:10:59 -06:00
deepend f2354a7fa2 refactor: unify tree/xtext/input colors via ThemeWidgetStyleValues (canonical widget-style path) 2026-03-07 22:11:09 -07:00
deepend ca043be197 fix: KDE Wayland alert flash—detect Plasma+Wayland, present() before urgency hint 2026-03-07 19:21:37 -07:00
deepend 50346683a1 feat: GTK3-only theming overhaul—new theme service (discover/import/inherits), layered CSS+settings.ini apply w/ safe rollback + caching; widget/xtext palette mapping + all-colors editor; lots of win32/CI libarchive plumbing + installer assets; 2026-03-04 23:28:01 -07:00
deepend-tildeclub 43374f4fae Merge pull request #4 from deepend-tildeclub/theme-module
feat: centralize theming in theme-manager (palette/tokens, CSS, dark-…
2026-03-02 20:44:49 -07:00
deepend-tildeclub 5e86f363ed Merge pull request #100 from ZoiteChat/theme-module
Theme module
2026-03-02 19:59:43 -07:00
deepend d9be0a7b1c feat: centralize theming in theme-manager (palette/tokens, CSS, dark-mode, setup UI), add tests + win32/meson wiring 2026-03-02 19:42:48 -07:00
deepend-tildeclub f3086fa389 Merge pull request #2 from deepend-tildeclub/consistent-icons
gtk: centralize icon lookup (new icon-resolver), move mappings out of…
2026-03-01 15:01:19 -07:00
deepend-tildeclub 0523b0639b Merge pull request #99 from ZoiteChat/consistent-icons
icon-resolver unifies gtk icons; win32/ci now ships real hicolor theme
2026-03-01 14:55:32 -07:00
deepend 1a32bff274 win32 icons: actually copy hicolor subdirs. 2026-03-01 13:16:52 -07:00
deepend 349d7f4c55 win32: install hicolor icons + CI now pulls real hicolor-icon-theme 2026-03-01 11:09:19 -07:00
deepend 734d194cb0 win32: stage hicolor icon theme into rel share/icons 2026-03-01 10:58:17 -07:00
deepend 5983befd5b icons: add system_icon_name API, make gtkutil fall back via resolver registry 2026-03-01 10:14:41 -07:00
deepend e63e68dfde icons: dedupe resolver tables, add unified menu-action API, route gtkutil/pixmaps through one registry + fallback chain 2026-03-01 09:58:04 -07:00
deepend 1ef81951b7 win32: wire icon-resolver into VS build, kill old menu icon payload (copy + installer) 2026-02-28 23:39:08 -07:00
deepend 395ccb0706 gtk: centralize icon lookup (new icon-resolver), move mappings out of gtkutil/pixmaps, add sane fallback chain + meson hookup 2026-02-28 23:17:27 -07:00
deepend-tildeclub b3f692f00c Update server addresses for Zoite 2026-02-28 23:02:02 -07:00
deepend-tildeclub 64c2fd4e51 Merge pull request #96 from ZoiteChat/win-dependencies-cleanup
Win dependencies cleanup
2026-02-28 10:44:44 -07:00
deepend-tildeclub dd698ecab4 Merge pull request #95 from ZoiteChat/userlist-highlight
userlist highlight: focusable treeview
2026-02-28 10:23:23 -07:00
deepend b93bad9859 windows x64-only purge: kill Win32 configs, simplify installer. 2026-02-28 09:53:37 -07:00
deepend 733f932b78 squash: win32 packaging detox (no comsupp/VC2013, trim payload, gate lua/python) 2026-02-28 09:36:50 -07:00
deepend 50d99e1314 userlist highlight: focusable treeview + palette CSS gets real :selected theme colors 2026-02-27 09:28:44 -07:00
deepend-tildeclub 90b7d7c5a1 Delete packaging/solus directory
Removing Solus build.  Will bring this back in future when I have more time.
2026-02-26 12:51:51 -07:00
deepend-tildeclub 7e422e10a6 Delete .github/workflows/solus-eopkg-build.yml
Removing Solus Build.  Will possibly bring this back when I have more time.
2026-02-26 12:51:11 -07:00
deepend-tildeclub 2bf32fc770 Merge pull request #90 from ZoiteChat/code-cleanup
Code cleanup
2026-02-25 18:16:54 -07:00
deepend 3e095c3c33 Removed two redundant inline comments in the file dialog response/done handlers, leaving the behavior unchanged and the control flow cleaner.
Removed an old commented-out helper function block (gtkutil_treeview_get_selected_iter) that was dead/commented code.
2026-02-25 18:07:26 -07:00
deepend 3445d946bc Removed a redundant inline comment in icon loading/scaling logic, leaving behavior unchanged.
Removed a redundant inline comment in the Windows sysinfo volume-name guard path, with no functional impact.
Removed a redundant inline comment in WinRT toast setup while keeping the same notification/audio attribute behavior.
2026-02-25 18:05:21 -07:00
deepend 7578928199 Cleaned up redundant/outdated inline comments in the text frontend argument/config and GUI control paths while leaving behavior unchanged (comment-only cleanup). 2026-02-25 16:22:46 -07:00
deepend-tildeclub 428127ef40 Merge pull request #91 from ZoiteChat/fix-application-focus
Added a Windows-only helper (mg_win32_allow_autohide_taskbar) that ge…
2026-02-25 16:20:47 -07:00
deepend e3f932aa6b Updated the Win32 window-state handling to include shellapi.h and query taskbar auto-hide/taskbar edge state via SHAppBarMessage, so maximized windows can leave a 1px reveal edge for the auto-hidden taskbar.
Added monitor-aware work-area adjustment when maximized (MonitorFromWindow + GetMonitorInfo) and shrink by 1px on the detected taskbar edge (including bottom edge), then apply that rectangle with SetWindowPos. This addresses the “mouse at bottom edge should unhide taskbar” behavior.
Kept the existing HWND_NOTOPMOST safeguard in place after the adjustment, preserving prior not-topmost behavior.
2026-02-25 14:48:18 -07:00
deepend 7cfa3b3513 Added a Windows-only helper (mg_win32_allow_autohide_taskbar) that gets the native HWND and calls SetWindowPos(..., HWND_NOTOPMOST, ...) for non-fullscreen window-state transitions, so a maximized ZoiteChat window no longer blocks the taskbar auto-hide reveal edge.
Hooked that helper into mg_windowstate_cb so it runs whenever the main window state changes (while preserving existing maximize/fullscreen preference handling).
2026-02-25 14:18:23 -07:00
deepend 81c691491c Removed three redundant inline comments in joind_ok_cb that duplicated obvious control flow, leaving behavior unchanged and improving readability. 2026-02-25 13:55:44 -07:00
deepend c361602b1a Removed four unneeded section comments in src/common/notify.h (WATCH/MONITOR/general/old ISON labels), leaving only the function declarations for a cleaner header interface. 2026-02-25 13:51:22 -07:00
deepend 99b969067e Removed one stale, commented-out debug/error line in the PCI device-name lookup path (pci_find_fullname), leaving behavior unchanged and making the function cleaner. 2026-02-25 13:29:20 -07:00
deepend 6e8b750c68 Removed an obsolete commented-out hdiutil line from the macOS bundling script, leaving only the active packaging path (zip) to keep the script cleaner and easier to scan. 2026-02-25 13:04:05 -07:00
deepend df37b44cc8 Cleaned up unneeded comment noise in the Solus eopkg workflow by replacing an 11-line explanatory block with a concise 2-line comment while preserving the key rationale for --ignore-file-conflicts and required Meson tooling install. 2026-02-25 13:01:21 -07:00
deepend 9548be0cec Removed redundant inline comments in the Winamp plugin by simplifying the plugin handle declaration and cleanup comments around initialization/return values, while keeping functional comments intact.
Removed the redundant return 1 inline comment in the Exec plugin init function.
2026-02-25 12:57:42 -07:00
deepend-tildeclub 588e27b456 Remove Debian Build badge from README
Removed Debian Build badge from README.
2026-02-25 10:32:21 -07:00
deepend-tildeclub 7032d0c6b7 Update contact email in appdata XML file 2026-02-25 10:23:59 -07:00
deepend-tildeclub 72e9a99315 Update developer information and homepage URL 2026-02-25 10:17:14 -07:00
deepend 3cff6742f5 Removed unneeded inline comments around the Win32 error-formatting fallback in errorstring() and simplified matching block-closing lines, without changing behavior. 2026-02-25 02:37:08 -07:00
deepend 6a02f578b6 Removed obsolete commented-out lines from fe_cleanup() so the function no longer contains dead commented code.
Removed an unnecessary explanatory comment above the unconditional early return in log_handler(), leaving only the active behavior.

Removed an unneeded section marker comment before fe_idle() to keep surrounding code cleaner.
2026-02-25 02:34:50 -07:00
deepend e62769b361 Cleaned up unneeded comments in DCC receive/connect code by removing:
a stale commented-out ACK block in the DCC receive error path,

    an unnecessary speculative note before the quoted filename handling,

    and an editorial inline comment on a static variable declaration.
2026-02-25 02:30:46 -07:00
deepend 9df9776238 Removed a stale multi-line # TODO note block from the common Meson build file to clean up unneeded comments without changing build logic.
Removed an old commented-out /* FIXME ... */ prototype block from servlist.h, leaving only active declarations.
2026-02-25 02:28:10 -07:00
deepend 4beabb6bf5 Removed a stale commented-out debug function block from the fishlim plugin source to reduce dead/commented code.
Removed the corresponding commented-out RAW LINE hook entry so only active handlers remain in plugin initialization.
2026-02-25 02:24:11 -07:00
deepend 10d5bb91ab Cleaned up unneeded, commented-out debug logging lines in Perl plugin callback handlers (server_cb, command_cb, and print_cb) without changing runtime behavior. 2026-02-25 02:14:38 -07:00
deepend 7c9c615aed Removed redundant inline comments from the fishlim IRC parsing helpers where the comments only repeated obvious code behavior, while preserving all function docblocks and logic. 2026-02-25 02:12:10 -07:00
deepend fd48c97209 Removed four redundant inline comments in src/fe-gtk/urlgrab.c to clean up readability without changing behavior (treeview enum declaration area, right-click selection block, headers visibility call, and URL list overflow trimming block). 2026-02-25 02:09:35 -07:00
deepend e58bf2be22 Cleaned up redundant comments in dcc_listen_init by removing obvious/explanatory noise and an obsolete commented-out debug printf, while leaving logic unchanged. 2026-02-25 02:07:38 -07:00
deepend dc6453e230 Removed redundant inline comments in lastact_update and lastact_getfirst where the code was already self-explanatory, without changing behavior.
Simplified away_check by removing comment clutter and keeping only the logic flow, including the WHO batching behavior.
Removed unneeded commentary around lag-check helpers and timer reinitialization to keep the core timer code cleaner and easier to scan.
2026-02-25 02:04:31 -07:00
deepend b3a0288fd9 Cleaned up stale inline comments in the tab scrolling handlers by removing outdated explanatory text while keeping behavior unchanged (tab_left_is_moving / tab_right_is_moving reset paths).
Removed an old commented-out gtk_container_set_border_width(...) line that was dead/commented code in cv_tabs_init.
Simplified the tab-switch condition by removing a legacy commented expression from if (is_switching).
2026-02-25 02:01:11 -07:00
deepend 9c86f18982 Cleaned up unneeded inline comments in plugins/python/python.py while keeping runtime behavior unchanged (comment-only cleanup around version declaration, compile helpers, wordlist/timer handling, and autoload path handling). 2026-02-25 01:58:19 -07:00
deepend 1bf0140652 Cleaned up redundant inline comments in the SCRAM implementation so the file is less noisy while preserving behavior exactly as-is (no logic changes). 2026-02-25 01:54:34 -07:00
deepend bb72f8afab Removed redundant inline comments from the common header includes/platform guards in src/common/zoitechat.h (e.g., comments like “need time_t”, “for win32”, “for unix”), while preserving meaningful explanatory comments. 2026-02-25 01:50:00 -07:00
deepend bb11c4676b Cleaned up src/fe-gtk/meson.build by removing an outdated commented-out WinRT build block in the Windows section, leaving only active build logic.
Removed an inline TODO comment from the gnome.compile_resources call to keep the Meson configuration concise and focused on current settings.
2026-02-25 01:47:32 -07:00
deepend 32fe3e54f1 Removed redundant section-divider comments in the Windows spellcheck provider to reduce clutter without changing behavior.
Removed non-essential inline comments that restated obvious return values and assignment intent (return -1/1/0, add_to_exclude alias), keeping logic identical.
2026-02-25 01:45:20 -07:00
deepend 9d2187ca4d Cleaned up unneeded inline comments in src/fe-text/fe-text.c where control-character switch cases were already self-explanatory, while keeping behavior unchanged.
Removed a redundant comment from the done global flag declaration for a cleaner declaration section.
2026-02-25 01:43:01 -07:00
deepend 0e94432c24 Removed four redundant comments in plugins/sysinfo/sysinfo.c while keeping behavior unchanged (the command parsing, channel checks, and menu add/remove calls are intact). 2026-02-25 01:40:34 -07:00
deepend c4890d157a Cleaned up redundant inline comments in the exec plugin’s command execution path (pipe creation, buffer termination, per-line announce handling, sleep loop, and trailing newline output) without changing behavior. 2026-02-25 01:38:06 -07:00
deepend ef2befa698 Cleaned up redundant comments in src/fe-gtk/fkeys.c by removing section-divider noise and a stale XXX line near key-action helpers, while keeping useful function-level documentation.
Removed repetitive inline comments from return 2; statements in tab-move/history key actions, since behavior is already clear from the surrounding code.
Removed an unnecessary separator comment before replace_handle() for a cleaner transition between functions.
2026-02-25 01:35:30 -07:00
deepend 5f9ce549f8 Removed redundant inline comments in the timer plugin that did not add useful context (plugin handle declaration and return value comment), keeping behavior unchanged.
Removed an obsolete visual alignment guide comment above the timer list header print call to clean up the function body.
2026-02-25 01:32:27 -07:00
deepend cb435f0d15 Cleaned up unneeded comments in default config initialization by removing:
a stale commented-out assignment line,

    an outdated inline TODO/FIXME note on hex_irc_who_join,

    and an inline /*FIXME*/ marker on hex_flood_msg_time.
2026-02-25 01:29:05 -07:00
deepend 105e259f2c Removed redundant inline /* plugin handle */ comments from the ph declarations in three plugin source files, keeping behavior unchanged and making the declarations cleaner. 2026-02-25 01:06:13 -07:00
deepend 51bf0c3fe0 Removed redundant explanatory comments in chanopt_command so the control flow reads cleanly without inline narration, while keeping behavior unchanged.
Simplified the chanopt_in_memory struct and helper routines by removing comments that repeated obvious intent (allocation/default initialization/loading notes), with no logic changes.
2026-02-25 01:02:37 -07:00
deepend e6311a5fe7 Removed two stale, commented-out lines in ignore_showlist() (an unused EMIT_SIGNAL call and its note), cleaning up unneeded comments without changing runtime behavior. 2026-02-25 00:59:53 -07:00
deepend 2c90c14d72 Removed an unneeded comment above the $(CONFIG_STAMP) target in Makefile, leaving behavior unchanged and just cleaning up the file. 2026-02-25 00:57:30 -07:00
deepend 6c9aeac36f Cleaned up unneeded inline comments in swtype by removing index/reserved annotations that didn’t add value, while keeping the data unchanged.
Removed a stale commented-out ST_HEADER line from tabs_settings so the settings table only contains active entries.
Removed a dead commented-out call from setup_apply_trans to reduce noise in the function body.
Removed redundant trailing declaration comments from proxy_user and proxy_pass since the types are already explicit.
2026-02-25 00:55:37 -07:00
deepend 48f7693eac Removed redundant comments in the notification plugin implementation to clean up the code without changing behavior (including comments around color stripping, alert gating logic, and special-event hook registration). 2026-02-25 00:53:10 -07:00
deepend 71d3ba576f Removed an outdated TODO comment in plugins/python/python.py above the module-level state variables, keeping behavior unchanged while reducing noise.
Removed two stale TODO comments in plugins/python/_zoitechat.py above command() and hook_command(), with no functional changes to those APIs.
2026-02-25 00:49:54 -07:00
deepend 067670bd01 Removed three redundant inline comments in the server helper code to clean up readability without changing any behavior:
Deleted comment above the serv->network check in server_get_network.
 Deleted comment above the server_session->channel check in server_get_network.
 Deleted comment above the name != serv->servername guard in server_set_name.
2026-02-25 00:46:18 -07:00
deepend 610d6fa1c0 Removed stale, commented-out SSL debug code in ssl_cb_info, leaving the function behavior unchanged while cleaning dead comments.
Removed an old commented-out rsa_tmp_bits certificate logging block in the SSL certificate info path.
Removed commented-out “Verify OK” signal lines in the SSL verification switch for cleaner control-flow comments.
2026-02-25 00:43:03 -07:00
deepend 5d6fa503c9 Cleaned up redundant CI workflow comments in AppImage workflow sections where the commands are already self-explanatory, including plugin listing and environment export blocks.
Replaced a long explanatory Solus packaging comment block with a concise single-line comment that preserves the key intent for --ignore-file-conflicts and toolchain installation.
Removed unneeded inline comments in the Windows build workflow around Python root resolution and junction creation while keeping behavior unchanged.
2026-02-25 00:40:36 -07:00
deepend 375e747014 Removed four redundant section-label comments from plugins/python/generate_plugin.py to clean up non-essential commentary while keeping behavior unchanged (# zoitechat-plugin.h, # This is very specific..., # python.py, # python.c). 2026-02-25 00:38:03 -07:00
deepend 5cab7be8a9 Removed redundant inline comments in notify network filtering and server-entry lookup paths to clean up noise without changing behavior.
Simplified notify list preparation in notify_save into a single reverse-copy expression and normalized GLib call spacing for consistency.
2026-02-25 00:34:59 -07:00
deepend 4808d83b26 Cleaned up unneeded inline comments in IRC inbound handling by removing redundant // comments around session selection and SCRAM auth status branches, with no logic changes. 2026-02-25 00:32:23 -07:00
deepend c4951a06f3 Cleaned up unneeded commented-out debug lines in maingui.c (old printf/puts and an obsolete commented call), without changing behavior or logic flow.
Committed the cleanup on the current branch with commit message: Remove stale debug comments from maingui.
2026-02-25 00:29:52 -07:00
deepend bd418160e1 Removed four redundant inline comments in print_sha256_result so the function is cleaner without changing behavior or control flow. 2026-02-25 00:26:56 -07:00
deepend 90a3d6d839 Removed redundant comments in url_save_node() and url_add() so the function bodies are cleaner without changing logic.
Removed an outdated performance note comment before the cached match state variables and a redundant comment in match_nick(); behavior remains unchanged.
2026-02-25 00:23:42 -07:00
deepend-tildeclub e2511e8be1 Delete .github/workflows/debian-build.yml 2026-02-24 22:41:00 -07:00
deepend-tildeclub 33e1403b98 Delete debian directory 2026-02-24 22:40:49 -07:00
deepend-tildeclub 596a134ef3 Add Manjaro Package Build badge to README 2026-02-24 22:11:51 -07:00
316 changed files with 16684 additions and 5312 deletions
+65 -4
View File
@@ -17,7 +17,7 @@ jobs:
artifact-metadata: write artifact-metadata: write
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
with: with:
submodules: true submodules: true
@@ -29,12 +29,14 @@ jobs:
build-essential pkg-config meson ninja-build cmake \ build-essential pkg-config meson ninja-build cmake \
gettext \ gettext \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev \ libcanberra-dev libdbus-glib-1-dev libglib2.0-dev \
libarchive-dev \
libgtk-3-dev \ libgtk-3-dev \
libwayland-client0 libwayland-cursor0 libwayland-egl1 \ libwayland-client0 libwayland-cursor0 libwayland-egl1 \
libxkbcommon0 \ libxkbcommon0 \
libgtk-3-bin libglib2.0-bin shared-mime-info gsettings-desktop-schemas \ libgtk-3-bin libglib2.0-bin shared-mime-info gsettings-desktop-schemas \
libluajit-5.1-dev libpci-dev libperl-dev libssl-dev libayatana-appindicator3-dev \ libluajit-5.1-dev libpci-dev libperl-dev libssl-dev libayatana-appindicator3-dev \
perl python3 python3-minimal python3-dev python3-cffi mono-devel desktop-file-utils \ perl python3 python3-minimal python3-dev python3-cffi mono-devel desktop-file-utils \
fonts-noto-color-emoji breeze-gtk-theme \
patchelf file curl patchelf file curl
- name: Configure - name: Configure
@@ -103,6 +105,26 @@ jobs:
cp -a /usr/lib/x86_64-linux-gnu/libpython3*.so* AppDir/usr/lib/x86_64-linux-gnu/ cp -a /usr/lib/x86_64-linux-gnu/libpython3*.so* AppDir/usr/lib/x86_64-linux-gnu/
fi fi
if [ -d "/usr/share/gtk-3.0/emoji" ]; then
install -d AppDir/usr/share/gtk-3.0
cp -a /usr/share/gtk-3.0/emoji AppDir/usr/share/gtk-3.0/
fi
if [ -f "/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf" ]; then
install -d AppDir/usr/share/fonts/truetype/noto
cp -a /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf AppDir/usr/share/fonts/truetype/noto/
fi
if [ -d "/usr/lib/x86_64-linux-gnu/gtk-3.0/modules" ]; then
install -d AppDir/usr/lib/x86_64-linux-gnu/gtk-3.0
cp -a /usr/lib/x86_64-linux-gnu/gtk-3.0/modules AppDir/usr/lib/x86_64-linux-gnu/gtk-3.0/
fi
if [ -d "/usr/lib/gtk-3.0/modules" ]; then
install -d AppDir/usr/lib/gtk-3.0
cp -a /usr/lib/gtk-3.0/modules AppDir/usr/lib/gtk-3.0/
fi
- name: Verify bundled plugins - name: Verify bundled plugins
run: | run: |
set -eux set -eux
@@ -143,6 +165,26 @@ jobs:
export PATH="${PATH:-/usr/bin:/bin}:$APPDIR/usr/bin" export PATH="${PATH:-/usr/bin:/bin}:$APPDIR/usr/bin"
export LD_LIBRARY_PATH="$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}" export LD_LIBRARY_PATH="$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}"
export XDG_DATA_DIRS="$APPDIR/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" export XDG_DATA_DIRS="$APPDIR/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
export GTK_EXE_PREFIX="$APPDIR/usr"
export GTK_DATA_PREFIX="$APPDIR/usr"
gtk_path_entries=""
if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/gtk-3.0" ]; then
gtk_path_entries="$APPDIR/usr/lib/x86_64-linux-gnu/gtk-3.0"
fi
if [ -d "$APPDIR/usr/lib/gtk-3.0" ]; then
gtk_path_entries="${gtk_path_entries:+$gtk_path_entries:}$APPDIR/usr/lib/gtk-3.0"
fi
if [ -n "$gtk_path_entries" ]; then
export GTK_PATH="$gtk_path_entries${GTK_PATH:+:$GTK_PATH}"
fi
if [ -d "$APPDIR/etc/fonts" ]; then
export FONTCONFIG_SYSROOT="$APPDIR"
export FONTCONFIG_PATH="$APPDIR/etc/fonts${FONTCONFIG_PATH:+:$FONTCONFIG_PATH}"
if [ -f "$APPDIR/etc/fonts/fonts.conf" ]; then
export FONTCONFIG_FILE="$APPDIR/etc/fonts/fonts.conf"
fi
fi
if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins" ]; then if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins" ]; then
export ZOITECHAT_LIBDIR="$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins" export ZOITECHAT_LIBDIR="$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins"
@@ -155,11 +197,20 @@ jobs:
fi fi
if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/gio/modules" ]; then if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/gio/modules" ]; then
export GIO_EXTRA_MODULES="$APPDIR/usr/lib/x86_64-linux-gnu/gio/modules${GIO_EXTRA_MODULES:+:$GIO_EXTRA_MODULES}" gio_module_dir="$APPDIR/usr/lib/x86_64-linux-gnu/gio/modules"
elif [ -d "$APPDIR/usr/lib/gio/modules" ]; then elif [ -d "$APPDIR/usr/lib/gio/modules" ]; then
export GIO_EXTRA_MODULES="$APPDIR/usr/lib/gio/modules${GIO_EXTRA_MODULES:+:$GIO_EXTRA_MODULES}" gio_module_dir="$APPDIR/usr/lib/gio/modules"
else
gio_module_dir=""
fi fi
if [ -n "$gio_module_dir" ]; then
export GIO_MODULE_DIR="$gio_module_dir"
export GIO_EXTRA_MODULES="$gio_module_dir"
fi
unset GTK_MODULES
export PYTHONHOME="$APPDIR/usr" export PYTHONHOME="$APPDIR/usr"
python_stdlib_dir="$(find "$APPDIR/usr/lib" -maxdepth 1 -type d -name 'python3.*' | head -n 1 || true)" python_stdlib_dir="$(find "$APPDIR/usr/lib" -maxdepth 1 -type d -name 'python3.*' | head -n 1 || true)"
pythonpath_entries="" pythonpath_entries=""
@@ -191,6 +242,16 @@ jobs:
fi fi
fi fi
for hook_dir in "$APPDIR/apprun-hooks" "$APPDIR/usr/apprun-hooks"; do
if [ -d "$hook_dir" ]; then
for hook in "$hook_dir"/*.sh; do
if [ -f "$hook" ]; then
. "$hook"
fi
done
fi
done
exec "$APPDIR/usr/bin/zoitechat" "$@" exec "$APPDIR/usr/bin/zoitechat" "$@"
EOF EOF
chmod +x AppRun chmod +x AppRun
@@ -216,7 +277,7 @@ jobs:
subject-path: Zoitechat-*-x86_64.AppImage subject-path: Zoitechat-*-x86_64.AppImage
- name: Upload AppImage artifact - name: Upload AppImage artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v6
with: with:
name: zoitechat-appimage name: zoitechat-appimage
path: Zoitechat-*-x86_64.AppImage path: Zoitechat-*-x86_64.AppImage
-48
View File
@@ -1,48 +0,0 @@
name: Debian Build
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
debian_build:
runs-on: ubuntu-24.04
container:
image: debian:bookworm
steps:
- name: Install packaging tooling and build dependencies
run: |
set -eux
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends \
git ca-certificates \
build-essential dpkg-dev debhelper fakeroot \
pkg-config meson ninja-build \
gettext iso-codes \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev libgtk-3-dev libayatana-appindicator3-dev \
liblua5.3-dev libpci-dev libperl-dev libssl-dev \
python3-dev python3-cffi desktop-file-utils
- uses: actions/checkout@v4
with:
submodules: true
- name: Build Debian packages
run: |
set -eux
dpkg-buildpackage -us -uc -b
- name: Collect Debian artifacts
run: |
set -eux
mkdir -p artifacts
cp -v ../*.deb ../*.changes ../*.buildinfo artifacts/
- name: Upload Debian artifacts
uses: actions/upload-artifact@v4
with:
name: zoitechat-debian-packages
path: artifacts/*
+2 -2
View File
@@ -21,7 +21,7 @@ jobs:
options: --privileged options: --privileged
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
with: with:
submodules: true submodules: true
@@ -36,7 +36,7 @@ jobs:
- name: Upload Flatpak Bundle - name: Upload Flatpak Bundle
id: upload_flatpak id: upload_flatpak
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v6
with: with:
name: zoitechat.flatpak name: zoitechat.flatpak
path: zoitechat.flatpak path: zoitechat.flatpak
+2 -2
View File
@@ -44,7 +44,7 @@ jobs:
pciutils pciutils
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
fetch-depth: 0 fetch-depth: 0
submodules: true submodules: true
@@ -74,7 +74,7 @@ jobs:
cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/.SRCINFO artifacts/ cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/.SRCINFO artifacts/
- name: Upload package artifacts - name: Upload package artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v6
with: with:
name: zoitechat-manjaro-package name: zoitechat-manjaro-package
path: artifacts/* path: artifacts/*
-88
View File
@@ -1,88 +0,0 @@
name: Solus eopkg build
on:
workflow_dispatch:
inputs:
package_yml:
description: "Path to Solus package.yml for ypkg build"
required: false
default: "packaging/solus/package.yml"
solus_image:
description: "Solus container image"
required: false
default: "docker.io/silkeh/solus:latest"
push:
branches:
- main
- master
permissions:
contents: read
packages: read
jobs:
build-eopkg:
runs-on: ubuntu-latest
env:
SOLUS_IMAGE: ${{ inputs.solus_image || 'docker.io/silkeh/solus:latest' }}
PACKAGE_YML: ${{ inputs.package_yml || 'packaging/solus/package.yml' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Log in to GHCR (for ghcr.io images)
if: startsWith(env.SOLUS_IMAGE, 'ghcr.io/')
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Build eopkg package in Solus container
run: |
if [ ! -f "$PACKAGE_YML" ]; then
echo "Expected Solus packaging file at $PACKAGE_YML" >&2
echo "Available package.yml files:" >&2
find . -name "package.yml" -print >&2 || true
echo "Add a package.yml (ypkg) file or update the workflow input PACKAGE_YML." >&2
exit 1
fi
if ! docker pull "$SOLUS_IMAGE"; then
echo "Failed to pull SOLUS_IMAGE=$SOLUS_IMAGE" >&2
echo "Set workflow input 'solus_image' to a valid image that provides eopkg/ypkg." >&2
exit 1
fi
docker run --rm \
-v "$PWD":/workspace \
-w /workspace \
-e PACKAGE_YML="$PACKAGE_YML" \
"$SOLUS_IMAGE" \
sh -lc '
set -euo pipefail
eopkg update-repo -y
# Do not remove openssl-11 here: it can trigger a very large
# dependency cascade (including python3/eopkg itself), which
# breaks the build environment before package build starts.
# Some Solus base images still contain openssl-11 files that
# conflict with openssl 3.x when the package set is refreshed.
# Allowing file-conflict resolution keeps the CI image usable
# long enough to install ypkg and complete the package build.
# The base image does not guarantee Meson toolchain packages,
# while our package.yml setup phase calls meson directly.
# Install the essential build tools up front to avoid
# `/tmp/ypkg-setup*: meson: command not found` failures.
eopkg install -y --ignore-file-conflicts \
ypkg git meson ninja pkgconf gcc gettext
ypkg build "$PACKAGE_YML"
mkdir -p /workspace/artifacts
find . -maxdepth 3 -name "*.eopkg" -type f -exec cp -v {} /workspace/artifacts/ \;
'
- name: Upload eopkg artifacts
uses: actions/upload-artifact@v4
with:
name: solus-eopkg
path: artifacts/*.eopkg
if-no-files-found: error
+67 -21
View File
@@ -25,55 +25,99 @@ jobs:
fail-fast: false fail-fast: false
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v5
- uses: actions/setup-python@v5 - uses: actions/setup-python@v6
with: with:
python-version: '3.14.2' python-version: '3.14.3'
architecture: ${{ matrix.arch }} architecture: ${{ matrix.arch }}
- name: Install Dependencies - name: Install Dependencies
run: | run: |
New-Item -Name "deps" -ItemType "Directory" -Force | Out-Null New-Item -Name "deps" -ItemType "Directory" -Force | Out-Null
Invoke-WebRequest https://files.jrsoftware.org/is/6/innosetup-6.7.0.exe -OutFile deps\innosetup-unicode.exe python -m pip install --upgrade pip
python -m pip install cffi
python -m pip install zstandard
$ProgressPreference = 'SilentlyContinue'
function Download-WithRetry {
param(
[string]$Url,
[string]$OutFile,
[int]$MaxAttempts = 5,
[int]$InitialDelaySeconds = 2
)
for ($attempt = 1; $attempt -le $MaxAttempts; $attempt++) {
try {
Invoke-WebRequest -Uri $Url -OutFile $OutFile -ErrorAction Stop
return
}
catch {
if ($attempt -eq $MaxAttempts) {
throw
}
Start-Sleep -Seconds ($InitialDelaySeconds * [math]::Pow(2, $attempt - 1))
}
}
}
Download-WithRetry -Url https://github.com/jrsoftware/issrc/releases/download/is-6_7_1/innosetup-6.7.1.exe -OutFile deps\innosetup-unicode.exe
& deps\innosetup-unicode.exe /VERYSILENT | Out-Null & deps\innosetup-unicode.exe /VERYSILENT | Out-Null
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/idpsetup-1.5.1.exe -OutFile deps\idpsetup.exe Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.0-pre1/GTK3_Gvsbuild_zoitechat-2.18.0-pre1_${{ matrix.platform }}.7z -OutFile deps\gtk-${{ matrix.arch }}.7z
& deps\idpsetup.exe /VERYSILENT
Invoke-WebRequest https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.0-pre1/GTK3_Gvsbuild_zoitechat-2.18.0-pre1_${{ matrix.platform }}.7z -OutFile deps\gtk-${{ matrix.arch }}.7z
& 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk\x64\release & 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk\x64\release
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/gendef-20111031.7z -OutFile deps\gendef.7z Download-WithRetry -Url https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-hicolor-icon-theme-0.18-1-any.pkg.tar.zst -OutFile deps\hicolor-icon-theme.pkg.tar.zst
python -c "import tarfile,zstandard,pathlib;archive=pathlib.Path(r'deps\\hicolor-icon-theme.pkg.tar.zst');target=pathlib.Path(r'C:\\gtk-build\\gtk\\x64\\release');dctx=zstandard.ZstdDecompressor();f=archive.open('rb');reader=dctx.stream_reader(f);tf=tarfile.open(fileobj=reader,mode='r|');[tf.extract(m,path=target) for m in tf if m.name.startswith('mingw64/share/icons/hicolor/')];tf.close();reader.close();f.close()"
Download-WithRetry -Url https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-libarchive-3.8.6-1-any.pkg.tar.zst -OutFile deps\libarchive.pkg.tar.zst
python -c "import tarfile,zstandard,pathlib;archive=pathlib.Path(r'deps\\libarchive.pkg.tar.zst');target=pathlib.Path(r'C:\\gtk-build\\gtk\\x64\\release');dctx=zstandard.ZstdDecompressor();f=archive.open('rb');reader=dctx.stream_reader(f);tf=tarfile.open(fileobj=reader,mode='r|');[tf.extract(m,path=target) for m in tf if m.name.startswith(('mingw64/include/archive','mingw64/lib/libarchive','mingw64/bin/libarchive'))];tf.close();reader.close();f.close()"
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\share\icons\hicolor) {
New-Item -Path C:\gtk-build\gtk\x64\release\share\icons -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\share\icons\hicolor -Destination C:\gtk-build\gtk\x64\release\share\icons\hicolor -Recurse -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\include) {
New-Item -Path C:\gtk-build\gtk\x64\release\include -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\include\archive* -Destination C:\gtk-build\gtk\x64\release\include -Recurse -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\lib) {
New-Item -Path C:\gtk-build\gtk\x64\release\lib -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\lib\libarchive* -Destination C:\gtk-build\gtk\x64\release\lib -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64\bin) {
New-Item -Path C:\gtk-build\gtk\x64\release\bin -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\gtk-build\gtk\x64\release\mingw64\bin\libarchive*.dll -Destination C:\gtk-build\gtk\x64\release\bin -Force
}
if (Test-Path C:\gtk-build\gtk\x64\release\mingw64) {
Remove-Item -Path C:\gtk-build\gtk\x64\release\mingw64 -Recurse -Force
}
Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.0-pre4/gendef20260315.7z -OutFile deps\gendef.7z
& 7z.exe x deps\gendef.7z -oC:\gtk-build & 7z.exe x deps\gendef.7z -oC:\gtk-build
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/WinSparkle-20151011.7z -OutFile deps\WinSparkle.7z Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.0-pre4/WinSparkle-20260315.7z -OutFile deps\WinSparkle.7z
& 7z.exe x deps\WinSparkle.7z -oC:\gtk-build\WinSparkle & 7z.exe x deps\WinSparkle.7z -oC:\gtk-build\WinSparkle
Invoke-WebRequest https://github.com/zoitechat/gvsbuild/releases/download/zoitechat-2.17.0/perl-5.20.0-${{ matrix.arch }}.7z -OutFile deps\perl-${{ matrix.arch }}.7z Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.0-pre4/perl-5.42.0.1-${{ matrix.arch }}.7z -OutFile deps\perl-${{ matrix.arch }}.7z
& 7z.exe x deps\perl-${{ matrix.arch }}.7z -oC:\gtk-build\perl-5.20\${{ matrix.platform }} & 7z.exe x deps\perl-${{ matrix.arch }}.7z -oC:\gtk-build\perl-5.42.0.1\${{ matrix.platform }}
# Resolve python root from setup-python
$pyRoot = $env:pythonLocation $pyRoot = $env:pythonLocation
if (-not $pyRoot) { $pyRoot = & python -c "import sys; print(sys.prefix)" } if (-not $pyRoot) { $pyRoot = & python -c "import sys; print(sys.prefix)" }
# Create BOTH paths because the .vcxproj hard-codes python-3.14\... foreach ($pyDir in @("C:\gtk-build\python-3.14.3", "C:\gtk-build\python-3.14")) {
foreach ($pyDir in @("C:\gtk-build\python-3.14.2", "C:\gtk-build\python-3.14")) {
New-Item -Path $pyDir -ItemType Directory -Force | Out-Null New-Item -Path $pyDir -ItemType Directory -Force | Out-Null
$target = Join-Path $pyDir "${{ matrix.platform }}" $target = Join-Path $pyDir "${{ matrix.platform }}"
if (Test-Path $target) { Remove-Item $target -Recurse -Force } if (Test-Path $target) { Remove-Item $target -Recurse -Force }
New-Item -Path $pyDir -Name "${{ matrix.platform }}" -ItemType Junction -Value $pyRoot | Out-Null New-Item -Path $pyDir -Name "${{ matrix.platform }}" -ItemType Junction -Value $pyRoot | Out-Null
} }
python -m pip install --upgrade pip
python -m pip install cffi
- name: Build - name: Build
run: | run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
set "PYTHON_DIR=C:\gtk-build\python-3.14.2\${{ matrix.platform }}" set "PYTHON_DIR=C:\gtk-build\python-3.14.3\${{ matrix.platform }}"
if not exist "%PYTHON_DIR%\libs\python314.lib" ( if not exist "%PYTHON_DIR%\libs\python314.lib" (
echo Missing %PYTHON_DIR%\libs\python314.lib echo Missing %PYTHON_DIR%\libs\python314.lib
dir "%PYTHON_DIR%\libs" dir "%PYTHON_DIR%\libs"
@@ -83,6 +127,8 @@ jobs:
set "LIB=%PYTHON_DIR%\libs;%LIB%" set "LIB=%PYTHON_DIR%\libs;%LIB%"
set "INCLUDE=%PYTHON_DIR%\include;%INCLUDE%" set "INCLUDE=%PYTHON_DIR%\include;%INCLUDE%"
powershell -NoProfile -ExecutionPolicy Bypass -Command "$archiveLib='C:\gtk-build\gtk\x64\release\lib\libarchive.lib'; if (-not (Test-Path $archiveLib)) { $archiveDll = Get-ChildItem 'C:\gtk-build\gtk\x64\release\bin\libarchive*.dll' | Select-Object -First 1; if ($archiveDll) { Push-Location 'C:\gtk-build\gtk\x64\release\lib'; & 'C:\gtk-build\gendef\gendef.exe' $archiveDll.FullName | Out-Null; $archiveDef = Get-ChildItem 'libarchive*.def' | Select-Object -First 1; if ($archiveDef) { & lib /def:$archiveDef.Name /machine:${{ matrix.platform }} /out:libarchive.lib | Out-Null }; Pop-Location } }"
msbuild win32\zoitechat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=${{ matrix.platform }} msbuild win32\zoitechat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=${{ matrix.platform }}
shell: cmd shell: cmd
@@ -94,7 +140,7 @@ jobs:
- name: Upload Installer - name: Upload Installer
id: upload_installer id: upload_installer
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v6
with: with:
name: Installer ${{ matrix.arch }} name: Installer ${{ matrix.arch }}
path: ZoiteChat-*.exe path: ZoiteChat-*.exe
@@ -108,7 +154,7 @@ jobs:
- name: Upload Build Files - name: Upload Build Files
id: upload_buildfiles id: upload_buildfiles
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v6
with: with:
name: Build Files ${{ matrix.arch }} name: Build Files ${{ matrix.arch }}
path: zoitechat-build path: zoitechat-build
-1
View File
@@ -14,7 +14,6 @@ CONFIG_STAMP := $(BUILD_DIR)/build.ninja
all: build all: build
# Only run initial meson setup if we don't have a configured build dir yet.
$(CONFIG_STAMP): $(CONFIG_STAMP):
@mkdir -p $(BUILD_DIR) @mkdir -p $(BUILD_DIR)
@env NINJA=$(NINJA) $(MESON) setup $(BUILD_DIR) --prefix=$(PREFIX) $(MESON_SETUP_ARGS) @env NINJA=$(NINJA) $(MESON) setup $(BUILD_DIR) --prefix=$(PREFIX) $(MESON_SETUP_ARGS)
+28
View File
@@ -1,6 +1,34 @@
ZoiteChat ChangeLog ZoiteChat ChangeLog
================= =================
2.18.0~pre4 (2026-03-15)
------------------------
- Fixed a regression where Ctrl+A could incorrectly mark you away instead of selecting all text.
- Fixed a crash when toggling the GUI with F9 or the menu toggle action.
- Fixed sidebar collapse behavior on fresh installs.
- Added multiline topic bar support with clickable URLs.
- Improved GTK selection styling so text selection is shown visually on topic and chat text box.
2.18.0~pre3 (2026-03-13)
------------------------
- Added a major GTK3 theming overhaul with improved theme importing, inheritance, rollback safety, and caching.
- Merged theme settings into Appearance and added a new Advanced section.
- Added a full color editor and improved widget, chat text, userlist, and tab color handling.
- Added `colors.conf` import support and improved compatibility with older themes.
- Improved chat background image handling and switched to a native file picker.
- Bundled more built-in icons, including OK/Cancel, and improved emoji fallback support.
- Embedded the app SVG icon and improved headerbar icon handling.
- Fixed KDE Wayland alert flashing.
- Fixed tray hide/restore labels so they stay in sync with the real window state.
- Fixed several GTK3 styling issues, warning spam, and imported CSS cleanup problems.
- Removed menubar icons and simplified Away menu behavior.
- Improved Flatpak behavior on KDE and enabled Python/Perl plugin support.
- Manual addons now persist properly by being copied into the user addon directory.
- Updated `servlist.c` to remove dead servers and added a checker script.
2.18.0~pre2 (2026-02-25) 2.18.0~pre2 (2026-02-25)
------------------------ ------------------------
Binary file not shown.

Before

Width:  |  Height:  |  Size: 841 B

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

After

Width:  |  Height:  |  Size: 646 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M8 7v4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="8" cy="4.8" r=".9" fill="#e5e7eb"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="5.5" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 7v4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="4.8" r=".9" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 316 B

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 708 B

+16 -3
View File
@@ -1,3 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="4.8" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M8 5.8v4.4M5.8 8h4.4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#22a05a" stroke="#157347" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="4.8" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 5.8v4.4M5.8 8h4.4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 885 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

+12
View File
@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<defs>
<filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#ff6b81" stroke="#d9485f" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="rgba(255,255,255,0.25)" stroke-width="0.9" stroke-linecap="round"/>
</g>
<path d="M5.0 5.0l6.0 6.0M11.0 5.0l-6.0 6.0" stroke="#ffffff" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 616 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="3.5" cy="5.5" r=".2" fill="#e5e7eb"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#6366f1" stroke="#4338ca" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<rect xmlns="http://www.w3.org/2000/svg" x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="3.5" cy="5.5" r=".2" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 685 B

+21 -6
View File
@@ -1,6 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M3.2 5.2h9.6" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <defs>
<path d="M5 5.2v7.3c0 .6.4 1 1 1h4c.6 0 1-.4 1-1V5.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<path d="M6.5 3.5h3" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
<path d="M6.8 7v4M9.2 7v4" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/> </filter>
</svg> </defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#6b7280" stroke="#4b5563" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M3.2 5.2h9.6" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M5 5.2v7.3c0 .6.4 1 1 1h4c.6 0 1-.4 1-1V5.2" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.5 3.5h3" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.8 7v4M9.2 7v4" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 468 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 445 B

After

Width:  |  Height:  |  Size: 669 B

+17 -4
View File
@@ -1,4 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2.5" y="2.5" width="11" height="11" rx="1.6" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M5.2 5.2l5.6 5.6M10.8 5.2 5.2 10.8" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
</svg> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<rect xmlns="http://www.w3.org/2000/svg" x="2.5" y="2.5" width="11" height="11" rx="1.6" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M5.2 5.2l5.6 5.6M10.8 5.2 5.2 10.8" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 B

After

Width:  |  Height:  |  Size: 682 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M4.5 10.5h7" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="8" cy="8" r="1.1" fill="#e5e7eb"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#14b8a6" stroke="#0f766e" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4.5 10.5h7" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="1.1" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 969 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 B

After

Width:  |  Height:  |  Size: 594 B

+17 -3
View File
@@ -1,3 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M6 4.5h6.5v8H6z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M3.5 2.5H10v1.8" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/><path d="M3.5 2.5v8.8H5.3" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M6 4.5h6.5v8H6z" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M3.5 2.5H10v1.8" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M3.5 2.5v8.8H5.3" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 B

After

Width:  |  Height:  |  Size: 626 B

+18 -3
View File
@@ -1,3 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M5.2 5.3h5.6v7.2H5.2z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M4 5.3h8" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/><path d="M6.3 3.7h3.4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/><path d="M7.1 6.6v4.6M8.9 6.6v4.6" stroke="#e5e7eb" stroke-width="1.1" stroke-linecap="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M5.2 5.3h5.6v7.2H5.2z" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4 5.3h8" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.3 3.7h3.4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M7.1 6.6v4.6M8.9 6.6v4.6" stroke="#ffffff" stroke-width="1.1" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 661 B

+17 -4
View File
@@ -1,4 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2" y="4" width="8" height="8" rx="1.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M8 8h5M10.5 5.5 13 8l-2.5 2.5" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
</svg> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#6b7280" stroke="#4b5563" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<rect xmlns="http://www.w3.org/2000/svg" x="2" y="4" width="8" height="8" rx="1.2" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 8h5M10.5 5.5 13 8l-2.5 2.5" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 949 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

After

Width:  |  Height:  |  Size: 720 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M4.5 10.5h7" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<path d="M5 5l6 6" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4.5 10.5h7" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M5 5l6 6" stroke="#ffffff" stroke-width="1.4" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 536 B

After

Width:  |  Height:  |  Size: 625 B

+17 -1
View File
@@ -1 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><circle cx="8" cy="8" r="5.6" fill="rgb(255,199,64)" stroke="rgb(240,240,240)" stroke-width="1"/><circle cx="6" cy="7" r="0.8" fill="rgb(240,240,240)"/><circle cx="10" cy="7" r="0.8" fill="rgb(240,240,240)"/><path d="M5.5 9.4c.6 1 1.4 1.6 2.5 1.6s1.9-.6 2.5-1.6" fill="none" stroke="rgb(240,240,240)" stroke-width="1" stroke-linecap="round"/></svg> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<defs>
<filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#f4b63b" stroke="#c98d0f" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="5.6" fill="#ffffff" stroke="#ffffff" stroke-width="1" />
<circle xmlns="http://www.w3.org/2000/svg" cx="6" cy="7" r="0.8" fill="#ffffff" />
<circle xmlns="http://www.w3.org/2000/svg" cx="10" cy="7" r="0.8" fill="#ffffff" />
<path xmlns="http://www.w3.org/2000/svg" d="M5.5 9.4c.6 1 1.4 1.6 2.5 1.6s1.9-.6 2.5-1.6" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 431 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 664 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="7" cy="7" r="3.5" fill="none" stroke="#e5e7eb" stroke-width="1.4"/> <defs>
<path d="M9.8 9.8 13 13" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<path d="M7 5.4v3.2M5.4 7h3.2" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="7" cy="7" r="3.5" fill="none" stroke="#ffffff" stroke-width="1.4" />
<path xmlns="http://www.w3.org/2000/svg" d="M9.8 9.8 13 13" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M7 5.4v3.2M5.4 7h3.2" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 1011 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 579 B

After

Width:  |  Height:  |  Size: 678 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M6.4 6.2a1.8 1.8 0 1 1 2.8 1.5c-.7.5-1.2.9-1.2 1.8" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="8" cy="11.8" r=".8" fill="#e5e7eb"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="5.5" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.4 6.2a1.8 1.8 0 1 1 2.8 1.5c-.7.5-1.2.9-1.2 1.8" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="11.8" r=".8" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 1016 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 664 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2.5 8h6" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <defs>
<path d="M6 5l3 3-3 3" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<rect x="10" y="3" width="3.5" height="10" rx="1" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#22a05a" stroke="#157347" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M2.5 8h6" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M6 5l3 3-3 3" fill="none" stroke="#ffffff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" />
<rect xmlns="http://www.w3.org/2000/svg" x="10" y="3" width="3.5" height="10" rx="1" fill="none" stroke="#ffffff" stroke-width="1.3" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 410 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

After

Width:  |  Height:  |  Size: 636 B

+21 -6
View File
@@ -1,6 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2.5 8h6" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <defs>
<path d="M6 5l2.8 3L6 11" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<rect x="9" y="4" width="4.5" height="8" rx="1" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
<path d="M11.25 6v1.8" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> </filter>
</svg> </defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#f59e0b" stroke="#c87500" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M2.5 8h6" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M6 5l2.8 3L6 11" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" />
<rect xmlns="http://www.w3.org/2000/svg" x="9" y="4" width="4.5" height="8" rx="1" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M11.25 6v1.8" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 616 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="3.5" cy="5.5" r=".2" fill="#e5e7eb"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#6366f1" stroke="#4338ca" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<rect xmlns="http://www.w3.org/2000/svg" x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="3.5" cy="5.5" r=".2" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 655 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M3 2.5h6l4 4V13.5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M9 2.5v4h4" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<path d="M8 8v4M6 10h4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#22a05a" stroke="#157347" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M3 2.5h6l4 4V13.5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M9 2.5v4h4" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 8v4M6 10h4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 601 B

+15 -3
View File
@@ -1,3 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M5.5 3.5 10.5 8l-5 4.5" fill="none" stroke="#e5e7eb" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M5.5 3.5 10.5 8l-5 4.5" fill="none" stroke="#ffffff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 240 B

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

+12
View File
@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<defs>
<filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#37d67a" stroke="#1f9d57" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="rgba(255,255,255,0.25)" stroke-width="0.9" stroke-linecap="round"/>
</g>
<path d="M4.1 8.2l2.1 2.2L11.9 4.8" stroke="#ffffff" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 659 B

+17 -4
View File
@@ -1,4 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="2.1" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<path d="M8 2.8v1.4M8 11.8v1.4M13.2 8h-1.4M4.2 8H2.8M11.7 4.3l-1 1M5.3 10.7l-1 1M11.7 11.7l-1-1M5.3 5.3l-1-1" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
</svg> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#8b5cf6" stroke="#6d28d9" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="2.1" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 2.8v1.4M8 11.8v1.4M13.2 8h-1.4M4.2 8H2.8M11.7 4.3l-1 1M5.3 10.7l-1 1M11.7 11.7l-1-1M5.3 5.3l-1-1" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 965 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 598 B

+15 -3
View File
@@ -1,3 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M10.5 3.5 5.5 8l5 4.5" fill="none" stroke="#e5e7eb" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M10.5 3.5 5.5 8l5 4.5" fill="none" stroke="#ffffff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 702 B

+17 -4
View File
@@ -1,4 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M8 2.5v5" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/> <defs>
<path d="M5 4.3a5 5 0 1 0 6 0" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
</svg> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M8 2.5v5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M5 4.3a5 5 0 1 0 6 0" fill="none" stroke="#ffffff" stroke-width="1.4" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 294 B

After

Width:  |  Height:  |  Size: 898 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

After

Width:  |  Height:  |  Size: 660 B

+16 -3
View File
@@ -1,3 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M12.8 7.4A4.8 4.8 0 1 0 8 12.8" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round"/><path d="M13 3.5v3.7H9.3" fill="none" stroke="#e5e7eb" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#06b6d4" stroke="#0e7490" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M12.8 7.4A4.8 4.8 0 1 0 8 12.8" fill="none" stroke="#ffffff" stroke-width="1.4" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M13 3.5v3.7H9.3" fill="none" stroke="#ffffff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 346 B

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B

After

Width:  |  Height:  |  Size: 694 B

+16 -3
View File
@@ -1,3 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="4.8" fill="none" stroke="#e5e7eb" stroke-width="1.3"/><path d="M5.8 8h4.4" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="4.8" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M5.8 8h4.4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 271 B

After

Width:  |  Height:  |  Size: 875 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

After

Width:  |  Height:  |  Size: 643 B

+21 -6
View File
@@ -1,6 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M3 2.5h8l2 2v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<rect x="5" y="3.5" width="4.5" height="2.5" fill="none" stroke="#e5e7eb" stroke-width="1.2"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<rect x="5" y="9" width="3.4" height="3" fill="none" stroke="#e5e7eb" stroke-width="1.2"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
<path d="M9.8 8.9v3.6M8.1 10.7l1.7-1.8 1.8 1.8" fill="none" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/> </filter>
</svg> </defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M3 2.5h8l2 2v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#ffffff" stroke-width="1.3" />
<rect xmlns="http://www.w3.org/2000/svg" x="5" y="3.5" width="4.5" height="2.5" fill="none" stroke="#ffffff" stroke-width="1.2" />
<rect xmlns="http://www.w3.org/2000/svg" x="5" y="9" width="3.4" height="3" fill="none" stroke="#ffffff" stroke-width="1.2" />
<path xmlns="http://www.w3.org/2000/svg" d="M9.8 8.9v3.6M8.1 10.7l1.7-1.8 1.8 1.8" fill="none" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 547 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

After

Width:  |  Height:  |  Size: 633 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M3 2.5h8l2 2v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#e5e7eb" stroke-width="1.3"/> <defs>
<rect x="5" y="3.5" width="4.5" height="2.5" fill="none" stroke="#e5e7eb" stroke-width="1.2"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<rect x="5" y="9" width="6" height="3" fill="none" stroke="#e5e7eb" stroke-width="1.2"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M3 2.5h8l2 2v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1z" fill="none" stroke="#ffffff" stroke-width="1.3" />
<rect xmlns="http://www.w3.org/2000/svg" x="5" y="3.5" width="4.5" height="2.5" fill="none" stroke="#ffffff" stroke-width="1.2" />
<rect xmlns="http://www.w3.org/2000/svg" x="5" y="9" width="6" height="3" fill="none" stroke="#ffffff" stroke-width="1.2" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 400 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 666 B

+17 -4
View File
@@ -1,4 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="7" cy="7" r="3.5" fill="none" stroke="#e5e7eb" stroke-width="1.4"/> <defs>
<path d="M9.8 9.8 13 13" stroke="#e5e7eb" stroke-width="1.5" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
</svg> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="7" cy="7" r="3.5" fill="none" stroke="#ffffff" stroke-width="1.4" />
<path xmlns="http://www.w3.org/2000/svg" d="M9.8 9.8 13 13" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 B

After

Width:  |  Height:  |  Size: 692 B

+16 -3
View File
@@ -1,3 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M4 4.2h4M6 4.2v7.4M3.2 7.2h5.6" fill="none" stroke="#e5e7eb" stroke-width="1.2" stroke-linecap="round"/><path d="m8.9 9.3 1.5 1.5 2.8-3" fill="none" stroke="#e5e7eb" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#14b8a6" stroke="#0f766e" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M4 4.2h4M6 4.2v7.4M3.2 7.2h5.6" fill="none" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="m8.9 9.3 1.5 1.5 2.8-3" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 B

After

Width:  |  Height:  |  Size: 623 B

+14 -1
View File
@@ -1 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><g fill="none" stroke="rgb(240,240,240)" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 5.8A5.5 5.5 0 1 0 5 13"/><path d="M13 2.2v3h-3"/><path d="M3 10.2A5.5 5.5 0 1 0 11 3"/><path d="M3 13.8v-3h3"/></g></svg> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<defs>
<filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#06b6d4" stroke="#0e7490" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<g xmlns="http://www.w3.org/2000/svg" fill="none" stroke="#ffffff" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 5.8A5.5 5.5 0 1 0 5 13" fill="#ffffff" /><path d="M13 2.2v3h-3" fill="#ffffff" /><path d="M3 10.2A5.5 5.5 0 1 0 11 3" fill="#ffffff" /><path d="M3 13.8v-3h3" fill="#ffffff" /></g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 514 B

After

Width:  |  Height:  |  Size: 646 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#1f2937" stroke-width="1.3"/> <defs>
<path d="M8 7v4" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="8" cy="4.8" r=".9" fill="#1f2937"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="5.5" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 7v4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="4.8" r=".9" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 316 B

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 486 B

After

Width:  |  Height:  |  Size: 708 B

+16 -3
View File
@@ -1,3 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="4.8" fill="none" stroke="#1f2937" stroke-width="1.3"/><path d="M8 5.8v4.4M5.8 8h4.4" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#22a05a" stroke="#157347" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="4.8" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 5.8v4.4M5.8 8h4.4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 885 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 B

+12
View File
@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<defs>
<filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="rgba(255,255,255,0.35)" stroke-width="0.9" stroke-linecap="round"/>
</g>
<path d="M5.0 5.0l6.0 6.0M11.0 5.0l-6.0 6.0" stroke="#ffffff" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 616 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#1f2937" stroke-width="1.3"/> <defs>
<path d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="3.5" cy="5.5" r=".2" fill="#1f2937"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#6366f1" stroke="#4338ca" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<rect xmlns="http://www.w3.org/2000/svg" x="2.5" y="3" width="11" height="10" rx="1.2" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4.5 5.5h7M4.5 8h7M4.5 10.5h5" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="3.5" cy="5.5" r=".2" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 685 B

+21 -6
View File
@@ -1,6 +1,21 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M3.2 5.2h9.6" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <defs>
<path d="M5 5.2v7.3c0 .6.4 1 1 1h4c.6 0 1-.4 1-1V5.2" fill="none" stroke="#1f2937" stroke-width="1.3"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<path d="M6.5 3.5h3" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
<path d="M6.8 7v4M9.2 7v4" stroke="#1f2937" stroke-width="1.2" stroke-linecap="round"/> </filter>
</svg> </defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#6b7280" stroke="#4b5563" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M3.2 5.2h9.6" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M5 5.2v7.3c0 .6.4 1 1 1h4c.6 0 1-.4 1-1V5.2" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.5 3.5h3" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.8 7v4M9.2 7v4" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 468 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 B

After

Width:  |  Height:  |  Size: 669 B

+17 -4
View File
@@ -1,4 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2.5" y="2.5" width="11" height="11" rx="1.6" fill="none" stroke="#1f2937" stroke-width="1.3"/> <defs>
<path d="M5.2 5.2l5.6 5.6M10.8 5.2 5.2 10.8" stroke="#1f2937" stroke-width="1.5" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
</svg> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<rect xmlns="http://www.w3.org/2000/svg" x="2.5" y="2.5" width="11" height="11" rx="1.6" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M5.2 5.2l5.6 5.6M10.8 5.2 5.2 10.8" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

After

Width:  |  Height:  |  Size: 682 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#1f2937" stroke-width="1.3"/> <defs>
<path d="M4.5 10.5h7" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="8" cy="8" r="1.1" fill="#1f2937"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#14b8a6" stroke="#0f766e" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4.5 10.5h7" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="1.1" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 969 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 594 B

+17 -3
View File
@@ -1,3 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M6 4.5h6.5v8H6z" fill="none" stroke="#1f2937" stroke-width="1.3"/><path d="M3.5 2.5H10v1.8" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/><path d="M3.5 2.5v8.8H5.3" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M6 4.5h6.5v8H6z" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M3.5 2.5H10v1.8" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M3.5 2.5v8.8H5.3" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 626 B

+18 -3
View File
@@ -1,3 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M5.2 5.3h5.6v7.2H5.2z" fill="none" stroke="#1f2937" stroke-width="1.3"/><path d="M4 5.3h8" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/><path d="M6.3 3.7h3.4" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/><path d="M7.1 6.6v4.6M8.9 6.6v4.6" stroke="#1f2937" stroke-width="1.1" stroke-linecap="round"/> <defs>
</svg> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M5.2 5.3h5.6v7.2H5.2z" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4 5.3h8" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.3 3.7h3.4" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M7.1 6.6v4.6M8.9 6.6v4.6" stroke="#ffffff" stroke-width="1.1" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 661 B

+17 -4
View File
@@ -1,4 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<rect x="2" y="4" width="8" height="8" rx="1.2" fill="none" stroke="#1f2937" stroke-width="1.3"/> <defs>
<path d="M8 8h5M10.5 5.5 13 8l-2.5 2.5" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
</svg> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#6b7280" stroke="#4b5563" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<rect xmlns="http://www.w3.org/2000/svg" x="2" y="4" width="8" height="8" rx="1.2" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M8 8h5M10.5 5.5 13 8l-2.5 2.5" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 949 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

After

Width:  |  Height:  |  Size: 720 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#1f2937" stroke-width="1.3"/> <defs>
<path d="M4.5 10.5h7" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<path d="M5 5l6 6" stroke="#1f2937" stroke-width="1.4" stroke-linecap="round"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#d9485f" stroke="#b02a37" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M2.5 8a5.5 5.5 0 0 1 11 0" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M4.5 10.5h7" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M5 5l6 6" stroke="#ffffff" stroke-width="1.4" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 625 B

+17 -1
View File
@@ -1 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><circle cx="8" cy="8" r="5.6" fill="rgb(255,211,67)" stroke="rgb(56,56,56)" stroke-width="1"/><circle cx="6" cy="7" r="0.8" fill="rgb(56,56,56)"/><circle cx="10" cy="7" r="0.8" fill="rgb(56,56,56)"/><path d="M5.5 9.4c.6 1 1.4 1.6 2.5 1.6s1.9-.6 2.5-1.6" fill="none" stroke="rgb(56,56,56)" stroke-width="1" stroke-linecap="round"/></svg> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<defs>
<filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#f4b63b" stroke="#c98d0f" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="5.6" fill="#ffffff" stroke="#ffffff" stroke-width="1" />
<circle xmlns="http://www.w3.org/2000/svg" cx="6" cy="7" r="0.8" fill="#ffffff" />
<circle xmlns="http://www.w3.org/2000/svg" cx="10" cy="7" r="0.8" fill="#ffffff" />
<path xmlns="http://www.w3.org/2000/svg" d="M5.5 9.4c.6 1 1.4 1.6 2.5 1.6s1.9-.6 2.5-1.6" fill="none" stroke="#ffffff" stroke-width="1" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 664 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="7" cy="7" r="3.5" fill="none" stroke="#1f2937" stroke-width="1.4"/> <defs>
<path d="M9.8 9.8 13 13" stroke="#1f2937" stroke-width="1.5" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<path d="M7 5.4v3.2M5.4 7h3.2" stroke="#1f2937" stroke-width="1.2" stroke-linecap="round"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="7" cy="7" r="3.5" fill="none" stroke="#ffffff" stroke-width="1.4" />
<path xmlns="http://www.w3.org/2000/svg" d="M9.8 9.8 13 13" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M7 5.4v3.2M5.4 7h3.2" stroke="#ffffff" stroke-width="1.2" stroke-linecap="round" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 1011 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 587 B

After

Width:  |  Height:  |  Size: 678 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<circle cx="8" cy="8" r="5.5" fill="none" stroke="#1f2937" stroke-width="1.3"/> <defs>
<path d="M6.4 6.2a1.8 1.8 0 1 1 2.8 1.5c-.7.5-1.2.9-1.2 1.8" fill="none" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<circle cx="8" cy="11.8" r=".8" fill="#1f2937"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#2d8cff" stroke="#1d63c6" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="8" r="5.5" fill="none" stroke="#ffffff" stroke-width="1.3" />
<path xmlns="http://www.w3.org/2000/svg" d="M6.4 6.2a1.8 1.8 0 1 1 2.8 1.5c-.7.5-1.2.9-1.2 1.8" fill="none" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<circle xmlns="http://www.w3.org/2000/svg" cx="8" cy="11.8" r=".8" fill="#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 1016 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 B

After

Width:  |  Height:  |  Size: 664 B

+19 -5
View File
@@ -1,5 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">
<path d="M2.5 8h6" stroke="#1f2937" stroke-width="1.3" stroke-linecap="round"/> <defs>
<path d="M6 5l3 3-3 3" fill="none" stroke="#1f2937" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> <filter id="shadow" x="-25%" y="-25%" width="150%" height="150%">
<rect x="10" y="3" width="3.5" height="10" rx="1" fill="none" stroke="#1f2937" stroke-width="1.3"/> <feDropShadow dx="0" dy="0.5" stdDeviation="0.45" flood-color="#000000" flood-opacity="0.18"/>
</svg> </filter>
</defs>
<g filter="url(#shadow)">
<circle cx="8" cy="8" r="6.5" fill="#22a05a" stroke="#157347" stroke-width="1"/>
<path d="M3.8 4.0A5.2 5.2 0 0 1 8 2.8c1.4 0 2.7 0.45 3.8 1.2" stroke="#ffffff" stroke-opacity="0.35" stroke-width="0.9" stroke-linecap="round"/>
</g>
<g transform="translate(2.240 2.240) scale(0.720)">
<path xmlns="http://www.w3.org/2000/svg" d="M2.5 8h6" stroke="#ffffff" stroke-width="1.3" stroke-linecap="round" />
<path xmlns="http://www.w3.org/2000/svg" d="M6 5l3 3-3 3" fill="none" stroke="#ffffff" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" />
<rect xmlns="http://www.w3.org/2000/svg" x="10" y="3" width="3.5" height="10" rx="1" fill="none" stroke="#ffffff" stroke-width="1.3" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 410 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 B

After

Width:  |  Height:  |  Size: 636 B

Some files were not shown because too many files have changed in this diff Show More