224 Commits

Author SHA1 Message Date
5469c30b75 Update GPLv2 text, Add feature request template. 2026-07-01 18:25:48 -06:00
fe9a2ee202 Preparation for 2.18.3 2026-06-29 20:49:41 -06:00
deepend-tildeclub
5e27dc7e9f Merge pull request #315 from ZoiteChat/python-script-compatibility-fix
Snapshot Python hooks during plugin unload
2026-06-29 20:41:00 -06:00
deepend-tildeclub
69d083e3c0 Merge pull request #314 from ZoiteChat/openssl4-build-fixes
Support OpenSSL 4 APIs
2026-06-29 20:38:39 -06:00
2b95f9724e Snapshot Python hooks during plugin unload 2026-06-29 19:13:18 -06:00
4066a07892 Support OpenSSL 4 API 2026-06-29 18:47:46 -06:00
deepend-tildeclub
443ab58f65 Merge pull request #313 from ZoiteChat/fix-lag-ping-timeout-window
Fix lag ping timeout window.
2026-06-27 11:56:38 -06:00
e0116acbe4 Fix lag ping timeout window. 2026-06-27 11:46:51 -06:00
deepend-tildeclub
91e9bf0207 Merge pull request #311 from ZoiteChat/fix-pm-echo-routing
Fix self-echoed PM routing to target tab
2026-06-27 01:59:20 -06:00
aff0335f7e Fix self-echoed PM routing to target tab 2026-06-27 01:42:23 -06:00
deepend-tildeclub
4d8baaa19b Merge pull request #310 from ZoiteChat/fix-tray-right-click-menu
Fix Windows GtkStatusIcon tray menu popup
2026-06-26 14:47:23 -06:00
65452d80f1 Use native Win32 tray context menu 2026-06-26 14:32:12 -06:00
deepend-tildeclub
df4d432151 Merge pull request #308 from ZoiteChat/replace-depreciated-ipv4-conversion-calls
Replace legacy IPv4 APIs
2026-06-25 21:34:39 -06:00
deepend-tildeclub
1390f2c783 Merge pull request #307 from ZoiteChat/ircv3-typing-reply-messagetags-echo-message
IRCv3 +message-tags, +echo-message, +typing +replies
2026-06-25 20:32:24 -06:00
be99d0e900 Add reply cache, composer bar, and nick-menu replies 2026-06-25 14:51:04 -06:00
97fcf1d5fc Replace legacy IPv4 APIs 2026-06-24 14:24:43 -06:00
c9b14d7c45 fix github bug template 2026-06-22 16:20:46 -06:00
3d0dda0347 Add github bug report template 2026-06-22 16:17:24 -06:00
deepend-tildeclub
8d69b35d67 Merge pull request #303 from ZoiteChat/fix-invalid-cert-setting
Restore accept-invalid-cert TLS bypass behavior
2026-06-22 16:00:55 -06:00
7ba142a9f2 Restore accept-invalid-cert TLS bypass behavior 2026-06-20 19:07:19 -06:00
deepend-tildeclub
56ac55806d Merge pull request #302 from ZoiteChat/theme-gtk3-tests-revert
Revert previous fixes merged to master without forcing.
2026-06-20 11:04:25 -06:00
47f53c14db Adjust Fedora package checks for GTK3 test stability 2026-06-20 10:59:10 -06:00
a47d40b914 Guard GTK3 theme tests for headless Xwayland 2026-06-20 10:25:02 -06:00
be33ae30bb Guard GTK theme ops when screen/seat missing 2026-06-20 09:51:16 -06:00
6d5f1306bf Guard legacy OpenSSL cleanup for 4.x builds 2026-06-20 09:24:05 -06:00
ad3dc716e7 2.18.2 release preparation 2026-06-20 08:44:47 -06:00
deepend-tildeclub
089b125a89 Merge pull request #301 from ZoiteChat/mode-button-multi-line-settings
Add topic layout prefs for inline modes/multiline topics
2026-06-20 07:58:25 -06:00
dfd4554a11 Move Topic Bar prefs under Appearance 2026-06-20 04:48:47 -06:00
1b98297881 Add topic layout prefs for inline modes/multiline topics 2026-06-20 04:09:45 -06:00
deepend-tildeclub
cacc8fcafe Merge pull request #299 from ZoiteChat/fix-unload-crash
Fix DBus unload null filename path
2026-06-18 19:45:38 -06:00
ac07d39db8 Fix DBus unload null filename path 2026-06-18 19:25:11 -06:00
deepend-tildeclub
e27aa77cec Merge pull request #296 from ZoiteChat/fishlim-manager
Add FiSHLiM manager and context menu hooks
2026-06-18 19:11:11 -06:00
cbc9f68dd6 Isolate GTK3 settings test data home + use xwayland-run 2026-06-18 18:57:49 -06:00
944d0f5a70 adding fedora packaging spec file. 2026-06-17 04:00:30 -06:00
9ded7ef830 Clarify FiSHLiM key manager invite wording 2026-06-16 15:47:56 -06:00
adb18b7ce3 Improve FiSHLiM key delete flow + CBC warnings 2026-06-15 23:26:59 -06:00
deepend-tildeclub
8220e60257 Merge pull request #297 from ZoiteChat/fix-flatpak-tabs-tree-errors
Expose hidden channel tree for tab switcher compatibility
2026-06-15 23:01:03 -06:00
b09af655e7 Add FiSHLiM GTK key manager + context menu access 2026-06-15 22:56:50 -06:00
5833f8a3d8 Expose hidden channel tree for tab switcher compatibility 2026-06-15 22:52:20 -06:00
deepend-tildeclub
72132d5e88 Merge pull request #283 from ZoiteChat/tray-iconified-restore
Fix tray restore for iconified windows
2026-06-15 14:22:47 -06:00
deepend-tildeclub
4167c4db78 Merge pull request #293 from ZoiteChat/feat-reset-keybinds
Add keybind reset while preserving custom rows
2026-06-12 10:37:36 -06:00
3e1f6b9137 Add keybind reset while preserving custom rows 2026-06-12 08:22:03 -06:00
deepend-tildeclub
bb08b19c0d Merge pull request #291 from ZoiteChat/extend-keybind-change-page-targeting
Allow keybinds to switch by channel name
2026-06-10 16:28:18 -06:00
deepend-tildeclub
7497919e8f Merge pull request #290 from ZoiteChat/ssl-init--modern-apis
Harden TLS defaults, cert checks, and hostname failures
2026-06-10 16:24:19 -06:00
deepend-tildeclub
41cbe7b31c Merge pull request #287 from ZoiteChat/customize-all-keybinds
Customize all keybinds
2026-06-10 16:22:52 -06:00
425e951341 Allow keybinds to switch by channel name 2026-06-10 16:19:01 -06:00
2e4a0b92fc Harden TLS defaults, cert checks, and hostname failures 2026-06-10 16:13:59 -06:00
9f839579e2 Show live menu accelerators from keybinds 2026-06-10 15:57:23 -06:00
900066b9d4 Add option to hide join/part hostmasks 2026-06-10 15:09:47 -06:00
97534b0670 Add option to hide join/part hostmasks 2026-06-10 15:05:00 -06:00
deepend-tildeclub
62672ade04 Merge pull request #285 from ZoiteChat/no_proxy_option
Add -noproxy to /server
2026-06-10 09:05:39 -06:00
b22e1c1ccc Add -noproxy to /server 2026-06-10 08:47:52 -06:00
deepend-tildeclub
1b8e60c26d Merge pull request #284 from ZoiteChat/windows-taskbar-improvement
Limit Win32 taskbar workaround to size state changes
2026-06-10 08:20:33 -06:00
035dfdd332 Limit Win32 taskbar workaround to size state changes 2026-06-09 14:02:41 -06:00
d1707d3c72 Fix tray restore for iconified windows 2026-06-09 13:55:43 -06:00
deepend-tildeclub
c9bed097ba Merge pull request #282 from ZoiteChat/improve-theme-switching-consistency
Fix GTK3 theme background refresh/saving
2026-06-09 11:37:44 -06:00
5acb90025f Fix GTK3 theme background refresh/saving 2026-06-09 11:23:38 -06:00
deepend-tildeclub
2d12da79b0 Merge pull request #279 from ZoiteChat/resolver-api-updates
Replace DCC IPv4 lookups with getaddrinfo
2026-06-06 20:21:42 -06:00
deepend-tildeclub
bede379021 Merge pull request #267 from ZoiteChat/keyring-support
Keyring support
2026-06-06 15:54:47 -06:00
38acde1b20 Replace DCC IPv4 lookups with getaddrinfo 2026-06-06 15:50:52 -06:00
d0c4a5addd Fix keyring mode switching and password reveal state 2026-06-05 10:38:16 -06:00
deepend-tildeclub
b8a7ccf005 Merge pull request #277 from ZoiteChat/fix-window-restore
Defer topic relayout after restore-down
2026-06-05 09:15:10 -06:00
68fc53585e Defer topic relayout after restore-down 2026-06-04 15:24:37 -06:00
26afc125c7 Add optional keyring + encrypted password fallback 2026-06-02 15:57:28 -06:00
deepend-tildeclub
090b39f78b Merge pull request #266 from ZoiteChat/network-meter-alignment
Align text network meter columns
2026-06-02 15:41:57 -06:00
3722de6b13 Align text network meter columns 2026-06-02 14:49:29 -06:00
deepend-tildeclub
d93c9aa780 Merge pull request #255 from ZoiteChat/kde-dialog-native-controls
Use native file chooser dialogs everywhere
2026-05-26 13:14:24 -06:00
ea56504aee Use native file chooser dialogs everywhere 2026-05-26 02:24:06 -06:00
46b91edfdf Bundle Perl paths into AppImage runtime 2026-05-25 23:08:41 -06:00
deepend-tildeclub
d2dfde519d Merge pull request #253 from ZoiteChat/timedate-tooltop
Add timestamp/date hover tooltips
2026-05-25 15:58:40 -06:00
1eac56f22c Add timestamp/date hover tooltips 2026-05-25 14:49:30 -06:00
deepend-tildeclub
fb491a6bb2 Merge pull request #249 from ZoiteChat/lost-connection-fixes
Add configurable stale-link ping checks
2026-05-25 12:21:45 -06:00
3da7c89b66 Add configurable stale-link ping checks 2026-05-25 11:43:10 -06:00
deepend-tildeclub
e842cf3a57 Merge pull request #248 from ZoiteChat/scroll-speed-fix
Fix xtext wheel scroll speed handling + prefs slider
2026-05-25 10:29:40 -06:00
85b0e8f1a6 Fix xtext wheel scroll speed handling + prefs slider 2026-05-25 09:45:22 -06:00
deepend-tildeclub
b8e03ff6c1 Merge pull request #247 from ZoiteChat/fishlim-fixes
Fix FiSHLiM OpenSSL provider/context init issues
2026-05-25 02:24:32 -06:00
54b1703d67 Make FiSHLiM OpenSSL provider loading non-fatal 2026-05-25 02:13:24 -06:00
15d647a0ec Fix detached tab reattach UAF crash path 2026-05-22 14:50:44 -06:00
deepend-tildeclub
353558ddb3 Merge pull request #243 from sney/project-readme
Project readme updates
2026-05-22 09:24:37 -06:00
Jesse Rhodes
9f58d30050 Add more short description. 2026-05-22 09:47:13 -04:00
Jesse Rhodes
4f0632cdf1 Update existing links. 2026-05-22 09:44:29 -04:00
Jesse Rhodes
ff8ba71948 Remove link to incomplete/outdated (?) troubleshooting guide. 2026-05-22 09:41:23 -04:00
Jesse Rhodes
a367591327 Fix download link 404. 2026-05-22 09:38:07 -04:00
Jesse Rhodes
c91925fbc2 Match intro to distro package short descriptions. 2026-05-22 09:36:44 -04:00
479f1649ef Bump release metadata to 2.18.1 2026-05-21 18:11:33 -06:00
deepend-tildeclub
06f69184b6 Merge pull request #239 from ZoiteChat/size_t_int_fixes
Size t int fixes
2026-05-21 17:10:07 -06:00
deepend-tildeclub
3471d9a57c Merge pull request #241 from ZoiteChat/win32-relax-arch-check
Use x64compatible for Windows installer arch checks
2026-05-21 17:09:51 -06:00
28d4035477 Use x64compatible for Windows installer arch checks 2026-05-21 02:50:49 -06:00
deepend-tildeclub
3e1d151efd Merge pull request #240 from ZoiteChat/win32-dependency-update
Use new GTK3 bundle zip in Windows CI
2026-05-21 02:21:51 -06:00
556cfc3036 Use new GTK3 bundle zip in Windows CI 2026-05-20 21:25:37 -06:00
c49b757be6 Clamp Win32 sysinfo UTF length casts 2026-05-20 15:51:07 -06:00
cec7e2caf3 Use size_t for strlen length temporaries 2026-05-20 15:34:19 -06:00
9a0c07a461 Clean up Win32 size/length casts 2026-05-20 15:22:06 -06:00
c7064c18b9 Clamp spell-provider length casts on Win32 2026-05-20 14:51:06 -06:00
deepend-tildeclub
fb897310c8 Merge pull request #238 from ZoiteChat/win32-taskbar-icon-identity
Set Windows AppUserModelID before GTK startup
2026-05-20 11:56:38 -06:00
5944849326 Guard fullscreen menu sync against null session 2026-05-20 10:34:35 -06:00
1255f1e6c7 Fix Win taskbar toggle restore check 2026-05-20 10:19:51 -06:00
d7bc09d859 Fix Win minimize-to-tray taskbar bounce 2026-05-20 09:46:33 -06:00
f84a448351 Fix Win tray restore timer loop/reentry 2026-05-19 21:39:02 -06:00
7e34690e0c Set Windows AppUserModelID before GTK startup 2026-05-19 17:20:08 -06:00
deepend-tildeclub
6f6d378600 Merge pull request #237 from ZoiteChat/ddh-null-gdkwindow
Guard GTK drag/drop handlers against null GdkWindow
2026-05-19 15:55:21 -06:00
deepend-tildeclub
216b463b8f Merge pull request #236 from ZoiteChat/native-dialog-box
Make native file chooser modal on Windows
2026-05-19 15:55:01 -06:00
4ad84cb5e5 Guard GTK drag/drop handlers against null GdkWindow 2026-05-19 15:46:06 -06:00
19e0946717 Make native file chooser modal on Windows 2026-05-19 15:11:55 -06:00
0de1ad06cd Null-safe /set string preference rendering 2026-05-19 15:07:21 -06:00
deepend-tildeclub
72427006dd Merge pull request #231 from mlt/py-eol
fix(python): concatenate bytes in compile_line of py console
2026-05-12 15:34:31 -06:00
deepend-tildeclub
0e5f702651 Merge pull request #233 from ZoiteChat/userlist-button-meter-layout-fix
Tighten userlist button/meter layout
2026-05-11 08:17:02 -06:00
4f1b0fc838 Tighten userlist button/meter layout 2026-05-11 01:35:57 -06:00
Mikhail Titov
23d0963c2d fix(python): decode the console input to str in _on_say_command 2026-05-10 23:57:43 -05:00
deepend-tildeclub
dcb35fb80f Merge pull request #230 from ZoiteChat/fix-scrollbar-consistency
UI Consistency: Use native GTK scrollbars across main panes
2026-05-10 08:31:15 -06:00
b1768854c3 Tighten userlist count/pane width behavior 2026-05-09 12:53:35 -06:00
4ed4eaf8e8 fix FSF address. 2026-05-08 20:50:51 -06:00
deepend-tildeclub
d167b53b17 Merge pull request #227 from ZoiteChat/fix-tab-scroll-skip
Consume handled tab wheel events
2026-05-08 07:52:37 -06:00
18eff80a30 UI Consistency: Use native GTK scrollbars across main panes 2026-05-07 13:29:22 -06:00
a44ec5f624 Consume handled tab wheel events 2026-05-07 12:03:41 -06:00
deepend-tildeclub
5da518f50e Merge pull request #226 from mlt/close-file-stream
fix(checksum): Make sure file stream is closed
2026-05-07 09:21:28 -06:00
Mikhail Titov
ebb11a8ac5 fix(checksum): Make sure file stream is closed 2026-05-07 09:11:10 -05:00
deepend-tildeclub
dd9c5db1aa Merge pull request #224 from ZoiteChat/channel_switcher_mouse_wheel_fix
Fix and Enable mouse wheel channel switching by default
2026-05-06 13:35:13 -06:00
984ac9763e Fix and Enable mouse wheel channel switching by default 2026-05-06 13:10:30 -06:00
deepend-tildeclub
ad67af2f8f Merge pull request #222 from ZoiteChat/fix-autocorrect-replace
Fix auto-replace to respect whole-word matches
2026-05-05 17:32:29 -06:00
cc8460d366 Fix auto-replace to respect whole-word matches 2026-05-05 17:22:56 -06:00
1dc9b9c956 Use Lua 5.4 deps in CI 2026-04-29 16:21:01 -06:00
deepend-tildeclub
20b552ad9d Merge pull request #214 from ZoiteChat/bump_perl_version_5_42_2
flatpak: bump perl to 5.42.2
2026-04-29 16:15:42 -06:00
deepend-tildeclub
12f4885ad7 Merge pull request #217 from ZoiteChat/remove-winamp-plugin
Remove Winamp Plugin.
2026-04-29 16:14:59 -06:00
9c1fdef286 Default Lua pkg-config target to lua-5.4 2026-04-29 16:10:06 -06:00
c125a154da More missed Winamp references. 2026-04-29 16:08:42 -06:00
028d768b23 Remove another Winamp reference. 2026-04-29 15:57:19 -06:00
42972e01b0 Remove Winamp Plugin. 2026-04-29 15:42:11 -06:00
1bd37af7d0 Refresh menu sizing after theme switch 2026-04-27 15:36:22 -06:00
5fad2d0c02 flatpak: bump perl to 5.42.2 2026-04-27 13:43:13 -06:00
deepend-tildeclub
bd9adeb795 Merge pull request #211 from ZoiteChat/gtk-state-mismatch
Fix palette color reads to preserve base GTK state
2026-04-27 13:40:28 -06:00
deepend-tildeclub
5fd3c7c9d9 Merge pull request #210 from ZoiteChat/dbus_gdbus_migration
Migrate to gdbus.
2026-04-27 13:38:52 -06:00
937184429f Drop leftover dbus-glib refs/deps 2026-04-27 13:30:24 -06:00
e31ccff3f8 Fix palette color reads to preserve base GTK state 2026-04-27 13:26:53 -06:00
edaafba7eb Drop dbus-glib deps, port example to GDBus 2026-04-27 13:13:16 -06:00
87018fa7fe Migrate to gdbus. 2026-04-27 11:04:04 -06:00
8fcec519d0 Fix tab section scrolling on overflow 2026-04-27 10:44:12 -06:00
aa52236c01 New Release: 2.18.0 2026-04-20 11:56:03 -06:00
cd5b61d9d0 Use KiB/MiB units for DCC speed limits 2026-04-20 10:38:22 -06:00
4eefdd6011 Stop palette CSS from styling radio rings 2026-04-20 10:32:54 -06:00
deepend-tildeclub
21748b3133 Merge pull request #204 from ZoiteChat/flatpak-improvements
Tighten Flatpak perms, pin lgi source
2026-04-16 10:53:49 -06:00
deepend-tildeclub
e7db202f88 Merge pull request #207 from ZoiteChat/domain-url-parsing
Validate host links with PSL rules
2026-04-15 02:36:09 -06:00
a93e76eaf4 Add PSL fetch step to Flatpak CI 2026-04-14 15:56:43 -06:00
3c5bdb2ab2 Revert Meson PSL input wiring, keep generator fallback logic 2026-04-14 09:53:16 -06:00
8f7c40caf1 Validate host links with PSL rules 2026-04-13 20:10:28 -06:00
150ad62771 Fix GTK populate test stub linkage 2026-04-13 14:54:59 -06:00
deepend-tildeclub
5e3715dc31 Merge pull request #206 from ZoiteChat/close-undo-close-tabs
Add Ctrl+W close + Ctrl+Shift+T tab reopen
2026-04-13 11:44:44 -06:00
05648ba8e3 Add Ctrl+W close + Ctrl+Shift+T tab reopen 2026-04-13 10:55:59 -06:00
deepend-tildeclub
0956471a10 Merge pull request #205 from ZoiteChat/fix-nickname-in-topic-linking
Tighten topic link detect/open rules
2026-04-13 07:57:26 -06:00
1f79e62f53 Tighten topic link detect/open rules 2026-04-13 00:08:00 -06:00
deepend-tildeclub
c123e93704 Merge pull request #203 from ZoiteChat/fix-network-tree-collapse-channel-focus
Ignore collapsed parent selects in chanview tree
2026-04-12 23:50:59 -06:00
e49333340f Tighten Flatpak perms, pin lgi source 2026-04-12 23:43:12 -06:00
7210f16dfc Ignore collapsed parent selects in chanview tree 2026-04-12 23:09:52 -06:00
deepend-tildeclub
2825e992df Merge pull request #201 from ZoiteChat/fix-notification-icon
fix notification icon + fix flatpak screenshot
2026-04-12 21:00:37 -06:00
8e8f534c21 fix notification icon + fix flatpak screenshot 2026-04-12 20:46:47 -06:00
d3d5ac905c Enabled colored nicknames in the userlist by default 2026-04-12 15:41:20 -06:00
deepend-tildeclub
4cca23a283 Merge pull request #198 from ZoiteChat/Expand_palette_and_selection_CSS
Expand palette and selection css
2026-04-11 09:07:21 -06:00
0f3fffc728 Broaden GTK3 palette/state selector coveragez even more. 2026-04-10 15:40:58 -06:00
7261d8637d Expand palette CSS + selection state coverage 2026-04-10 14:12:14 -06:00
deepend-tildeclub
8a1e82986a Merge pull request #197 from ZoiteChat/pevents_import_from_hct
Import pevents from .hct too, show clearer result dialog
2026-04-09 13:23:17 -06:00
deepend-tildeclub
e8d421b3df Merge pull request #196 from ZoiteChat/topic_bar_height
Auto-size topic bar to wrapped text
2026-04-09 13:23:03 -06:00
cb2c09b2ba Import pevents from .hct too, show clearer result dialog 2026-04-09 12:30:23 -06:00
a14026f0d1 Add vertical padding to topic text view 2026-04-09 10:56:39 -06:00
e237df31f4 Auto-size topic bar to wrapped text 2026-04-09 10:03:59 -06:00
deepend-tildeclub
a9421c63a9 Merge pull request #195 from ZoiteChat/hct_import_support
Add .hct support to colors.conf import
2026-04-09 08:55:48 -06:00
4f2938d957 Add .hct support to colors.conf import 2026-04-08 17:47:51 -06:00
deepend-tildeclub
8fa9d3678b Merge pull request #194 from ZoiteChat/add-python-perl-lua-versions-to-installer
Label installer runtimes with exact versions
2026-04-07 09:16:41 -06:00
4bbc23c185 Label installer runtimes with exact versions 2026-04-07 08:42:23 -06:00
deepend-tildeclub
73733e4176 Merge pull request #193 from ZoiteChat/pasted_path_fix
Refine cmd-char parsing for pasted path text
2026-04-06 15:17:37 -06:00
9f8faf0a6e Refine cmd-char parsing for pasted path text mentioned at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897426 2026-04-06 14:26:47 -06:00
deepend-tildeclub
5ff704459c Merge pull request #192 from sney/use-appstream
Improve appstream metainfo validation
2026-04-06 14:00:52 -06:00
Jesse Rhodes
0ccc730d85 test: Validate plugin metainfo. 2026-04-05 10:35:54 -04:00
Jesse Rhodes
093ffe791e test: Switch to appstreamcli for metainfo validation. 2026-04-05 10:31:19 -04:00
b9ff051043 Drop forced bold from userlist prefixes 2026-04-03 08:15:38 -06:00
10b6d5927b Tighten tab layout, right-align close button 2026-04-03 07:54:01 -06:00
0052b6589e updated svg. removed unused svg files 2026-04-01 22:52:27 -06:00
51e9ac15df fix zoitechat.svg 2026-04-01 00:21:44 -06:00
deepend-tildeclub
4df579e0d3 Merge pull request #185 from ZoiteChat/improve-appimage-URI-folder-opening
Sanitize Linux open env for AppImage, add safer fallbacks
2026-04-01 00:15:53 -06:00
2cf69d2e67 Sanitize Linux open env for AppImage, add safer fallbacks 2026-03-31 23:26:40 -06:00
deepend-tildeclub
64bffd0dc8 Merge pull request #184 from ZoiteChat/add-gtk3-themes-windows-installer
Theme: Adding themes users can select at install time.
2026-03-31 19:38:40 -06:00
deepend-tildeclub
b451240dfd Merge pull request #181 from ZoiteChat/prefs-option-disable-tab-close-button
Add pref for tab close buttons
2026-03-31 19:30:26 -06:00
41cc1f617f Theme: Adding themes users can select at install time. 2026-03-31 19:28:45 -06:00
ed671eac25 Add pref for tab close buttons 2026-03-31 18:10:28 -06:00
9f2529adb6 Update all links to new domain. 2026-03-30 18:25:26 -06:00
deepend-tildeclub
3903d7b9e5 Change official documentation link in README
Updated the link for the official documentation from zoitechat.zoite.net to zoitechat.org.
2026-03-30 17:16:01 -06:00
ec4d698021 Bump to 2.18.0~pre6 2026-03-30 13:04:00 -06:00
deepend-tildeclub
da06c71389 Merge pull request #177 from ZoiteChat/client-cert-importer
Add client SSL cert import action
2026-03-30 12:30:26 -06:00
0f508bf438 Sanitize OpenSSL env for client cert actions 2026-03-30 11:57:58 -06:00
97dd7c5d57 Add client SSL cert import action 2026-03-30 11:46:08 -06:00
deepend-tildeclub
78219bf9e1 Merge pull request #176 from ZoiteChat/fix-font-consistency
Apply pref font to topic/tree/userlist/input
2026-03-30 11:07:59 -06:00
deepend-tildeclub
1c30cbfab1 Merge pull request #175 from ZoiteChat/fix-menu-hover-highlight
Fix fallback GTK menu highlight states
2026-03-30 11:07:43 -06:00
ac33dc5250 Apply pref font to topic/tree/userlist/input 2026-03-30 10:33:43 -06:00
8de5db18d6 Fix fallback GTK menu highlight states 2026-03-30 10:29:05 -06:00
deepend-tildeclub
913aa49df4 Merge pull request #169 from ZoiteChat/tab-close-button
UI: add close button to tabs
2026-03-30 09:44:01 -06:00
5e4633ee53 UI: Adjust channel tab height 2026-03-30 09:31:25 -06:00
deepend-tildeclub
30e573d87a Merge pull request #174 from ZoiteChat/mutli-line-topic-fix
Wrap topic bar in scroller, bound height
2026-03-30 09:20:37 -06:00
9e91d60bb1 Wrap topic bar in scroller, bound height 2026-03-29 17:48:56 -06:00
deepend-tildeclub
069652a5f1 Merge pull request #172 from sney/sysinfo-disable-disk
sysinfo: disable disk info
2026-03-29 17:38:55 -06:00
Jesse Rhodes
ab1e25bfb1 sysinfo: Disable storage output by default; it is always wrong. 2026-03-29 11:27:11 -04:00
Jesse Rhodes
862aa0ede5 sysinfo: Correct usage text DISK->STORAGE. 2026-03-29 11:25:44 -04:00
f75c27c843 Make tab close button smaller + flat 2026-03-28 22:20:21 -06:00
687b5fb40d UI: add close button to tabs 2026-03-28 11:33:03 -06:00
bb36651548 UI: Adjust headerbar icon size/padding. 2026-03-28 09:48:51 -06:00
65a2702294 CI: small installer logo fix. 2026-03-28 01:50:04 -06:00
94bcb57118 CI: installer logos 2026-03-28 01:43:39 -06:00
deepend-tildeclub
17856a97e4 Merge pull request #167 from ZoiteChat/channellist-search-functionality
Add channel-only mode to Ctrl+F search
2026-03-27 15:37:24 -06:00
d4926030b8 Add channel-only mode to Ctrl+F search 2026-03-27 15:27:31 -06:00
deepend-tildeclub
432a43d7c2 Merge pull request #166 from ZoiteChat/theme-dropdown-none-option
Add None option for GTK3 theme reset
2026-03-27 14:27:54 -06:00
deepend-tildeclub
62232ee9db Merge pull request #165 from ZoiteChat/clean-and-remove-icons
UI: Removed unused and un-needed icons.
2026-03-27 14:21:59 -06:00
4be98bd3b8 Add None option for GTK3 theme reset 2026-03-27 14:18:07 -06:00
ab2b95b502 UI: Removed unused and un-needed icons. 2026-03-27 10:38:26 -06:00
deepend-tildeclub
718858a8ca Merge pull request #164 from ZoiteChat/preferences-performance
Lazy-load prefs pages on first open
2026-03-27 09:36:06 -06:00
89e1160b12 Lazy-load prefs pages on first open 2026-03-27 09:30:27 -06:00
deepend-tildeclub
808976eefe Merge pull request #162 from ZoiteChat/chanlist_colors_fix
Fix short-palette fallback clobbering tab colors
2026-03-26 13:45:57 -06:00
ee735b80d5 Fix short-palette fallback clobbering tab colors 2026-03-26 13:28:11 -06:00
7a1317a803 Fix Ctrl+K color entry caret visibility 2026-03-26 08:35:20 -06:00
dac1cbfe30 Make GTK3 theme selector text-only 2026-03-26 08:28:07 -06:00
deepend-tildeclub
0ca099c1a0 Merge pull request #161 from ZoiteChat/99-colors-support
feat: add support for 99 colors.
2026-03-26 01:12:13 -06:00
deepend-tildeclub
f01211ae2e Merge pull request #160 from ZoiteChat/xtext-link-hit-fix
Fix xtext link hit-testing coords
2026-03-26 01:11:51 -06:00
7c23a48ef8 feat: add support for 99 colors. 2026-03-26 00:45:03 -06:00
89f20a93e0 Fix xtext link hit-testing coords 2026-03-26 00:14:16 -06:00
f3fd7fd2b3 fixed new logo image sizes. 2026-03-25 23:45:16 -06:00
10940a37dd new logo 2026-03-25 22:53:43 -06:00
8249be816a Fix input caret contrast in spell entry 2026-03-25 17:42:14 -06:00
241 changed files with 6902 additions and 3572 deletions

132
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,132 @@
---
name: Bug report
about: Report a problem with ZoiteChat
title: "[Bug]: "
labels: bug
assignees: ""
---
```
+------------------------------------------------------------+
| ZoiteChat Bug Report |
| Please fill this out so the bug goblin has enough crumbs. |
+------------------------------------------------------------+
```
## Summary
What went wrong?
```text
Describe the bug clearly and briefly.
```
## Steps to Reproduce
```text
1.
2.
3.
4.
```
## Expected Result
```text
What should have happened?
```
## Actual Result
```text
What happened instead?
```
## ZoiteChat Version
```text
ZoiteChat version:
Build/source: GitHub release / Fedora package / source build / Windows installer / other
Commit hash, if built from source:
```
## System Information
```text
OS:
OS version:
Desktop environment:
Display server: Wayland / X11 / Windows / other
CPU architecture: x86_64 / aarch64 / other
```
## IRC / Network Details
```text
IRC network/server:
Port:
TLS/SSL enabled: yes / no
SASL enabled: yes / no
Using bouncer/ZNC: yes / no
Proxy/VPN involved: yes / no
IRCv3 capabilities involved, if known:
```
## Plugins, Scripts, and Config
```text
Plugins enabled:
Scripts loaded:
Theme/custom CSS:
Custom config changes:
Does the bug still happen with a clean config? yes / no / untested
```
## Logs / Terminal Output
Paste relevant output below.
```text
```
## Raw IRC Lines, If Relevant
Remove passwords, tokens, IPs, private channels, private messages, certs, and account details before posting.
```text
```
## Crash Details, If Relevant
```text
Did ZoiteChat crash? yes / no
Crash reporter output:
Backtrace:
Core dump available: yes / no
```
## Screenshots
Attach screenshots or screen recordings if the issue is visual.
## Regression Check
```text
Did this work in an older version? yes / no / unknown
Last known working version:
First broken version:
```
## Checklist
* [ ] I searched existing issues first.
* [ ] I tested with the latest ZoiteChat version available to me.
* [ ] I included steps to reproduce the issue.
* [ ] I removed private information from logs and raw IRC lines.
* [ ] I included system and network details where relevant.
## Extra Notes
```text
Anything else that might help.
```

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: false

View File

@@ -0,0 +1,57 @@
---
name: Feature request
about: Suggest an improvement for ZoiteChat
title: "[Feature]: "
labels: enhancement
assignees: ""
---
## Summary
```text
Describe the feature or enhancement clearly and briefly.
```
## Problem
```text
What problem would this solve?
```
## Proposed Solution
```text
How should ZoiteChat behave?
```
## Alternatives Considered
```text
Other approaches or workarounds you considered.
```
## Use Case
```text
Who benefits from this, and when would they use it?
```
## Platform Details
```text
OS:
ZoiteChat version:
Build/source: GitHub release / Fedora package / source build / Windows installer / other
```
## Checklist
* [ ] I searched existing issues first.
* [ ] I checked whether this already exists in the latest ZoiteChat version available to me.
* [ ] I explained the problem this would solve.
## Extra Notes
```text
Anything else that might help.
```

View File

@@ -28,13 +28,13 @@ jobs:
sudo apt-get install -y --no-install-recommends \
build-essential pkg-config meson ninja-build cmake \
gettext \
libcanberra-dev libdbus-glib-1-dev libglib2.0-dev \
libcanberra-dev libglib2.0-dev \
libarchive-dev \
libgtk-3-dev \
libwayland-client0 libwayland-cursor0 libwayland-egl1 \
libxkbcommon0 \
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 \
liblua5.4-dev libpci-dev libperl-dev libssl-dev libayatana-appindicator3-dev \
perl python3 python3-minimal python3-dev python3-cffi mono-devel desktop-file-utils \
fonts-noto-color-emoji breeze-gtk-theme \
patchelf file curl
@@ -86,11 +86,21 @@ jobs:
cp -a /usr/lib/x86_64-linux-gnu/python3/dist-packages AppDir/usr/lib/x86_64-linux-gnu/python3/
fi
if [ -d "/usr/lib/x86_64-linux-gnu/perl-base" ]; then
install -d AppDir/usr/lib/x86_64-linux-gnu
cp -a /usr/lib/x86_64-linux-gnu/perl-base AppDir/usr/lib/x86_64-linux-gnu/
fi
if [ -d "/usr/lib/x86_64-linux-gnu/perl" ]; then
install -d AppDir/usr/lib/x86_64-linux-gnu
cp -a /usr/lib/x86_64-linux-gnu/perl AppDir/usr/lib/x86_64-linux-gnu/
fi
if [ -d "/usr/lib/x86_64-linux-gnu/perl5" ]; then
install -d AppDir/usr/lib/x86_64-linux-gnu
cp -a /usr/lib/x86_64-linux-gnu/perl5 AppDir/usr/lib/x86_64-linux-gnu/
fi
if [ -d "/usr/share/perl" ]; then
install -d AppDir/usr/share
cp -a /usr/share/perl AppDir/usr/share/
@@ -100,6 +110,10 @@ jobs:
install -d AppDir/usr/share
cp -a /usr/share/perl5 AppDir/usr/share/
fi
perl -MFile::Spec -e 'print "Build host File::Spec: $INC{\"File/Spec.pm\"}\n"'
find AppDir/usr -path '*/File/Spec.pm' -print -quit | grep -q .
if compgen -G '/usr/lib/x86_64-linux-gnu/libpython3*.so*' > /dev/null; then
install -d AppDir/usr/lib/x86_64-linux-gnu
cp -a /usr/lib/x86_64-linux-gnu/libpython3*.so* AppDir/usr/lib/x86_64-linux-gnu/
@@ -162,7 +176,7 @@ jobs:
APPDIR="${APPDIR:-$(dirname "$(readlink -f "$0")")}"
export PATH="${PATH:-/usr/bin:/bin}:$APPDIR/usr/bin"
export PATH="$APPDIR/usr/bin:${PATH:-/usr/bin:/bin}"
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 GTK_EXE_PREFIX="$APPDIR/usr"
@@ -211,6 +225,23 @@ jobs:
unset GTK_MODULES
perl5lib_entries=""
for dir in \
"$APPDIR/usr/lib/x86_64-linux-gnu/perl-base" \
"$APPDIR/usr/lib/x86_64-linux-gnu/perl"/* \
"$APPDIR/usr/lib/x86_64-linux-gnu/perl5"/* \
"$APPDIR/usr/share/perl"/* \
"$APPDIR/usr/share/perl5"
do
if [ -d "$dir" ]; then
perl5lib_entries="${perl5lib_entries:+$perl5lib_entries:}$dir"
fi
done
if [ -n "$perl5lib_entries" ]; then
export PERL5LIB="$perl5lib_entries${PERL5LIB:+:$PERL5LIB}"
fi
export PYTHONHOME="$APPDIR/usr"
python_stdlib_dir="$(find "$APPDIR/usr/lib" -maxdepth 1 -type d -name 'python3.*' | head -n 1 || true)"
pythonpath_entries=""
@@ -256,7 +287,6 @@ jobs:
EOF
chmod +x AppRun
VERSION="$(git describe --tags --always)"
./linuxdeploy-x86_64.AppImage \

View File

@@ -25,6 +25,9 @@ jobs:
with:
submodules: true
- name: Generate PSL list
run: curl -fsSL https://publicsuffix.org/list/public_suffix_list.dat -o src/common/public_suffix_list.dat
- name: Build Flatpak
id: flatpak_builder
uses: flatpak/flatpak-github-actions/flatpak-builder@v6

View File

@@ -32,10 +32,8 @@ jobs:
glib2-devel \
gtk3 \
openssl \
dbus-glib \
libcanberra \
libayatana-appindicator \
luajit \
iso-codes \
lua \
perl \

View File

@@ -65,8 +65,8 @@ jobs:
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
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
& 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk\x64\release
Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.1/GTK3_Gvsbuild_zoitechat-2.18.1_x64.zip -OutFile deps\gtk-${{ matrix.arch }}.zip
Expand-Archive -LiteralPath deps\gtk-${{ matrix.arch }}.zip -DestinationPath C:\gtk-build\gtk\x64\release -Force
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()"

46
COPYING
View File

@@ -1,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -303,17 +303,15 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
You should have received a copy of the GNU General Public License along
with this program; if not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -330,11 +328,11 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
<signature of Moe Ghoul>, 1 April 1989
Moe Ghoul, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -1,6 +1,98 @@
ZoiteChat ChangeLog
=================
2.18.3 (2026-06-29)
-------------------
- Added IRCv3 support for message tags, echo-message, typing notifications, and replies.
- Restored the accept-invalid-cert TLS bypass behavior.
- Replaced legacy IPv4 APIs and added support for OpenSSL 4 APIs.
- Snapshot Python hooks during plugin unload for safer plugin shutdown.
- Fixed Windows GtkStatusIcon tray menu popup behavior.
- Fixed self-echoed private messages routing to the target tab.
- Fixed the lag ping timeout window.
2.18.2 (2026-06-20)
-------------------
- Improved security and connection handling with stronger TLS defaults,
safer certificate/hostname validation, FiSHLiM OpenSSL fixes, keyring support,
and getaddrinfo-based DCC lookups.
- Expanded FiSHLiM usability with a GTK key manager, context-menu access, and clearer
channel/private-message key handling.
- Improved keyboard and navigation behavior with customizable keybinds, reset support,
channel-name switching, /server -noproxy, and configurable stale-link ping checks.
- Refined the GTK interface with native file chooser dialogs, topic layout preferences,
timestamp/date hover tooltips, better restore-down relayout, text scroll speed controls,
and aligned network meters.
- Added privacy and display options, including hiding join/part hostmasks and improved
topic/multiline mode layout controls.
- Fixed several platform/UI edge cases, including tray restore from iconified state, DBus unload
handling, GTK3 theme refresh/saving, and tab switcher compatibility.
2.18.1 (2026-05-21)
-------------------
- Migrated D-Bus handling to GDBus.
- Enabled mouse wheel channel switching by default and consumed handled tab wheel events.
- Switched main panes to native GTK scrollbars.
- Tightened userlist button and meter layout.
- Made the native Windows file chooser modal.
- Set the Windows AppUserModelID before GTK startup.
- Updated Windows CI to use the new GTK3 bundle zip.
- Updated Windows installer architecture checks to use x64-compatible detection.
- Bumped the Flatpak Perl runtime to 5.42.2.
- Fixed palette color reads to preserve base GTK state.
- Fixed auto-replace whole-word matching.
- Fixed checksum file stream cleanup.
- Fixed byte handling in the Python console.
- Guarded GTK drag-and-drop handlers against null windows.
- Fixed size_t and integer handling issues.
- Removed the Winamp plugin.
2.18.0 (2026-04-20)
-------------------
- Added optional close buttons on tabs.
- Added Ctrl+W to close tabs and Ctrl+Shift+T to reopen recently closed tabs.
- Expanded theme import support with .hct support in colors.conf import.
- Added pevent import support from .hct theme files and improved import result messaging.
- Expanded palette and selection CSS styling for better theme consistency.
- Auto-sizes the topic bar to wrapped text for better multi-line topic handling.
- Refined command-character parsing when pasting path-like text.
- Tightened topic link detection and opening rules.
- Added Public Suffix List validation for host links to reduce bad link matches.
- Improved channel tree behavior by ignoring collapsed parent selections.
- Sanitized the Linux open environment for AppImage builds and added safer fallback handling.
- Labeled Windows installer runtimes with exact versions.
- Fixed the notification icon and corrected the Flatpak screenshot asset.
- Improved AppStream metainfo validation.
2.18.0~pre6 (2026-03-30)
------------------------
- Applied app theme CSS to the menubar consistently across the app.
- Restored horizontal separator lines in menus.
- Improved Windows installer VC++ redistributable handling by failing loudly when missing and using the official Microsoft download endpoint.
- Fixed Windows locale path resolution in both GTK and text frontends.
- Fixed duplicate dialog buttons persisting in the UI.
- Fixed GTK auto-replace cursor snapback.
- Restored hiding of formatting control bytes so only formatted output is shown.
- Added one-click client SSL certificate tools, including generation with P-256 certificates.
- Added client SSL certificate import support in the network editor.
- Added 99-color support.
- Fixed xtext link hit-testing coordinates.
- Fixed short-palette fallback clobbering tab colors.
- Lazy-loads Preferences pages on first open for faster dialog startup.
- Removed unused UI icons.
- Added a None option for resetting the GTK3 theme back to system/default behavior.
- Added channel-only mode to Ctrl+F search.
- Disabled disk info in sysinfo.
- Wrapped the topic bar in a scroller with bounded height.
- Added close buttons to tabs.
- Fixed fallback GTK menu highlight states.
- Applied configured font preferences to the topic bar, channel tree, user list, and input box.
2.18.0~pre5 (2026-03-22)
------------------------
- Overhauled preferences/config saving: fully staged and transactional, debounced

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

View File

@@ -1,19 +0,0 @@
<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="#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: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 708 B

View File

@@ -1,16 +0,0 @@
<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="#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: 885 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 583 B

View File

@@ -1,12 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1006 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

View File

@@ -1,21 +0,0 @@
<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="#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: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 B

View File

@@ -1,17 +0,0 @@
<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="#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: 924 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 682 B

View File

@@ -1,19 +0,0 @@
<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="#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: 969 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

View File

@@ -1,17 +0,0 @@
<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="#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: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 B

View File

@@ -1,18 +0,0 @@
<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="#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: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 661 B

View File

@@ -1,17 +0,0 @@
<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="#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: 949 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 625 B

View File

@@ -1,17 +0,0 @@
<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: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1011 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1016 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 B

View File

@@ -1,21 +0,0 @@
<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="#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: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1006 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 655 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1018 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

View File

@@ -1,15 +0,0 @@
<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="#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: 805 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 B

View File

@@ -1,12 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 659 B

View File

@@ -1,17 +0,0 @@
<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="#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: 965 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 B

View File

@@ -1,15 +0,0 @@
<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="#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: 804 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 702 B

View File

@@ -1,17 +0,0 @@
<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="#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: 898 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 B

View File

@@ -1,16 +0,0 @@
<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)">
<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: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 694 B

View File

@@ -1,16 +0,0 @@
<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="#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: 875 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

View File

@@ -1,21 +0,0 @@
<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="#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: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 633 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 666 B

View File

@@ -1,17 +0,0 @@
<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="#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: 880 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 692 B

View File

@@ -1,16 +0,0 @@
<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="#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: 957 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 623 B

View File

@@ -1,14 +0,0 @@
<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: 964 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

View File

@@ -1,19 +0,0 @@
<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="#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: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 708 B

View File

@@ -1,16 +0,0 @@
<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="#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: 885 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 639 B

View File

@@ -1,12 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1006 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

View File

@@ -1,21 +0,0 @@
<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="#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: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 B

View File

@@ -1,17 +0,0 @@
<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="#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: 924 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 682 B

View File

@@ -1,19 +0,0 @@
<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="#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: 969 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

View File

@@ -1,17 +0,0 @@
<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="#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: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 626 B

View File

@@ -1,18 +0,0 @@
<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="#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: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 661 B

View File

@@ -1,17 +0,0 @@
<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="#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: 949 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 625 B

View File

@@ -1,17 +0,0 @@
<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: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1011 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1016 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

View File

@@ -1,19 +0,0 @@
<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="#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: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 B

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