Compare commits

...

32 Commits
stable ... dev

Author SHA1 Message Date
mr. m
560c92cc0e fix: Fixed custom tab icons not inheriting color fills on essentials, b=no-bug, c=common, tabs 2026-01-01 23:47:00 +01:00
mr. m
699c42cce4 chore: Change folder structure for icons to match their system name, p=#11784, c=common 2026-01-01 18:30:18 +01:00
mr. m
f6ba087539 feat: Make sure to sync tab's permanent key to other windows, b=bug #11750, c=folders, split-view 2026-01-01 17:43:57 +01:00
mr-cheffy
5fb096865c docs: Update monthly issue metrics, b=(no bug), c={docs} 2026-01-01 02:55:53 +00:00
mr. m
ff69cbe259 feat: Increase inner padding for toolbar buttons for windows and linux, b=no-bug, c=common 2025-12-31 19:54:07 +01:00
mr. m
be0668561f feat: Better menu bar integration, p=#11780, c=workspaces, common, kbs
* feat: Better menu bar integration, b=no-bug, c=workspaces, common, kbs
2025-12-31 18:34:30 +01:00
mr. m
7af0aab07f feat: Optimized SVGs after properly merging paths with inkscape's CLI tool, b=no-bug, c=common, media 2025-12-31 15:25:19 +01:00
mr. m
07b2a74a66 feat: Revert icon optimizations and change welcome essentials, b=no-bug, c=common, media, images, welcome 2025-12-31 13:20:05 +01:00
mr. m
07150962a2 feat: Wait for the next cycle to set a drag image, b=no-bug, c=no-component 2025-12-30 19:30:51 +01:00
mr. m
bfee94c7bf feat: Always restore sessions but clear unpinned tabs when persistent private mode is enabled, b=closes #11751, c=no-component 2025-12-30 18:46:12 +01:00
mr. m
810d959fbf fix: Fixed PGO builds causing daily builds to fail, b=no-bug, c=workspaces 2025-12-30 12:55:32 +01:00
mr. m
639eb9a267 feat: Initialize closed windows if no normal restorable windows have been found, b=no-bug, c=workspaces 2025-12-30 00:47:03 +01:00
mr. m
ec398760c6 feat: Optimized SVGs and improved small details, b=no-bug, c=common, media, tabs, workspaces 2025-12-29 15:46:39 +01:00
mr. m
7a8ac8bd9c feat: Improved pinned tabs collapse impl and disable window sync for tests, b=no-bug, c=tabs, common, workspaces 2025-12-29 02:01:31 +01:00
mr. m
86f9031b67 Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-12-28 20:05:27 +01:00
mr. m
335c024e6d chore: Drag and drop refactor, p=#11723
* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Start making use of IDs instead of sync identifiers, b=no-bug, c=folders

* feat: Listen to new tab opens for new sync system, b=no-bug, c=common, folders, tabs

* feat: Listen for more tab events and properly sync them, b=no-bug, c=common, folders, tabs

* feat: Start moving browser views to the selected windows, b=no-bug, c=no-component

* chore: Remove extra patch, b=no-bug, c=no-component

* feat: Leave a screenshot of the page behind when switching windows or tabs, b=no-bug, c=common

* feat: Run session saves right before writing and quiting, b=no-bug, c=common

* fix: Fixed going back to a different window not allowing to type on inputs, b=no-bug, c=no-component

* feat: Start syncing folders as well, b=no-bug, c=folders

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* chore: Update patches to ff 146, b=no-bug, c=no-component

* feat: Early support for unsynced windoiws, b=no-bug, c=workspaces

* fix: Move back active views when closing a window, b=no-bug, c=no-component

* feat: Stop rendering sub-layers when swaping browsers, b=no-bug, c=common

* feat: Improved support for unsynced windows support, b=no-bug, c=workspaces, folders

* feat: Implemented 'Move To...' Button for unsynced windows, b=no-bug, c=workspaces, common

* feat: Make sure to properly flush all windows when making a new one and fix removing progress listeners, b=no-bug, c=workspaces

* feat: Make sure to not lose any tabs when opening from a private window, b=no-bug, c=workspaces

* feat: Allow unload to run instantly and fix closing windows on mac, b=no-bug, c=no-component

* feat: Make sure to always initialize an empty state with the sidebar object, b=no-bug, c=workspaces

* chore: Small fixes and QA checks, b=no-bug, c=tabs, workspaces

* fix: Fixed tab labels not changing on unfocused windows, b=no-bug, c=no-component

* feat: Fixed closing windows on macos not returning to the original views, b=no-bug, c=no-component

* chore: Turn off debug flags by default, b=no-bug, c=no-component

* feat: Start implementing old pinned tab behaviour we used to have, b=no-bug, c=common, tabs

* feat: Unsynced windows should always be allowed to change labels, b=no-bug, c=welcome

* feat: Make sure we wait long enough before we initialize workspaces, b=no-bug, c=workspaces

* feat: Dont mix remoteness when changing browser views and restore window spaces, b=no-bug, c=common, folders, workspaces

* test: Fixed tests for the pinned tabs manager, b=no-bug, c=tabs, folders, tests, welcome

* feat: Added partial support for split views, b=no-bug, c=split-view

* chore: Finished basic support for split views, b=no-bug, c=folders, split-view

* feat: Always make sure to save the last closed window to the sidebar object, b=no-bug, c=no-component

* feat: Implement workspace sync store into the session file, b=closes #10857, c=common, tabs, tests, workspaces

* feat: New drag and drop system, b=no-bug, c=tabs, common, folders

* feat: Add support for drag-and-dropping tabs into groups, b=no-bug, c=common, folders, tabs, workspaces

* feat: Add a default value for the workspace cache, b=no-bug, c=workspaces

* fix: Default assign an array instead of an object to the workspaces cache, b=no-bug, c=workspaces

* feat: Take into consideration win data may not have allocated spaces, b=no-bug, c=workspaces

* feat: Always make sure we are assigning the correct space ID, b=no-bug, c=workspaces

* feat: Make sure to initialize windows even if there are no tabs, b=no-bug, c=no-component

* feat: Improved drag and drop simulation, b=no-bug, c=common, tabs

* feat: Implement opacity changes to the drag image, b=no-bug, c=tabs, common, split-view

* feat: Support for drag and dropping outside the window, b=no-bug, c=split-view

* feat: Added transitions when reordering, b=no-bug, c=split-view, tabs

* feat: Started working on drag and dropping to essentials, b=no-bug, c=no-component

* Discard changes to locales/en-US/browser/browser/zen-workspaces.ftl

* Discard changes to prefs/zen/view.yaml

* Discard changes to prefs/zen/zen.yaml

* Discard changes to src/browser/base/content/zen-assets.inc.xhtml

* Discard changes to src/browser/base/content/zen-assets.jar.inc.mn

* Discard changes to src/browser/base/content/zen-panels/popups.inc

* Discard changes to src/browser/base/content/zen-preloaded.inc.xhtml

* Discard changes to src/browser/components/places/content/editBookmark-js.patch

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/sessionstore/TabState-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/urlbar/UrlbarProviderPlaces-sys-mjs.patch

* Discard changes to src/zen/ZenComponents.manifest

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* feat: Finish migration, b=no-bug, c=no-component

* feat: Add support for multi tabs dragging, b=no-bug, c=tabs

* feat: Added support for essential tabs, b=no-bug, c=split-view, tabs, workspaces

* feat: Added support to switch space when holding on the side of the sidebar, b=no-bug, c=common, split-view, workspaces

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* chore: Fixed merge conflicts, b=no-bug, c=no-component

* feat: Added support for split views, b=no-bug, c=split-view

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-12-28 18:26:52 +01:00
mr. m
b66b05dcf6 feat: Allow pinned tabs to be collapsible, p=#11753, c=tabs, folders, workspaces
* fix: Fixed restoring the previous pinned state clearing up the custom icon, b=no-bug, c=tabs

* feat: Allow pinned tabs to be collapsible, b=no-bug, c=tabs, folders, workspaces

* fix: Fixed new folder context menu item not working, b=no-bug, c=common, folders
2025-12-28 17:58:18 +01:00
mr. m
32a9267af2 fix: Fixed restoring the previous pinned state clearing up the custom icon, b=no-bug, c=tabs 2025-12-28 14:58:35 +01:00
mr. m
1338b43e10 feat: Add migration logic for zen_pins database to window sync, b=no-bug, c=common, tabs 2025-12-27 18:52:09 +01:00
mr. m
ec8b14e8f1 fix: Fixed custom tab icons not persisting across sessions, p=#11744
* fix: Fixed custom tab icons not persisting across sessions, b=no-bug, c=common, tabs

* feat: Allow rename tab context menu to appear on expanded mode, b=no-bug, c=tabs
2025-12-27 12:26:34 +01:00
mr. m
47c03d03c8 fix: Run a mouse tracker event on compact mode to check for closes, b=no-bug, c=compact-mode 2025-12-27 12:00:40 +01:00
mr. m
fb7eeebfdb fix: Fixed tab icons disappearing when being restored, b=no-bug, c=tabs 2025-12-25 16:59:15 +01:00
mr. m
d74cf98f6f feat: Make sure to restore spaces even when restore is disabled, b=closes #11724, c=no-component 2025-12-25 15:46:49 +01:00
mr. m
2cba5b94ec feat: Improve migration for new profiles updating to window sync, b=no-bug, c=workspaces 2025-12-25 01:48:10 +01:00
mr. m
6bd199a0b3 fix: Initialize a default space if none exist, b=closes #11720, c=workspaces 2025-12-25 01:12:46 +01:00
mr. m
4c2cb60412 feat: Fixed folders on new windows not expanding at startup, b=no-bug, c=common, folders, tabs, workspaces 2025-12-24 17:34:29 +01:00
mr. m
b3ea7f0e8d feat: Ignore screen sizes when trying to align the tabs toolbar, b=no-bug, c=tabs 2025-12-23 23:28:03 +01:00
mr. m
c761608f27 feat: Fixed spacing for pin reset button, b=no-bug, c=tabs 2025-12-23 21:36:25 +01:00
mr. m
7753202623 feat: Return a copy of workspaces when trying to fetch it to prevent mutations, b=no-bug, c=tabs, workspaces 2025-12-23 20:15:00 +01:00
Dennis Koch
2cc545762e feat: Add print to command palette, p=#11696
* Add print to command palette

* Do not show print command on empty tab
2025-12-22 20:26:52 +01:00
mr. m
578c28df92 feat: Allow tabs to have custom icons and other cleanups, p=#11697
* feat: Allow tabs to have custom icons and other cleanups, b=closes #11686, closees https://github.com/zen-browser/desktop/issues/9972, closes https://github.com/zen-browser/desktop/issues/9251, c=folders, workspaces, tabs, common


* chore: Lint, b=no-bug, c=tabs
2025-12-22 20:26:44 +01:00
mr. m
d93c46fe20 feat: Full cross-window workspace syncing, p=#10034
* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Full cross-window workspace syncing, b=no-bug, c=workspaces

* feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces

* feat: Dont session duplicate the tabs, b=no-bug, c=workspaces

* feat: Start on new session restore, b=no-bug, c=no-component

* feat: Properly handle tab moves, b=no-bug, c=workspaces

* Discard changes to prefs/browser.yaml

* feat: Start doing out own session restore, b=no-bug, c=folders, tabs

* feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces

* feat: Dont restore windows that are already initialized, b=no-bug, c=no-component

* chore: Update patches to ff 145, b=no-bug, c=no-component

* Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch

* Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs

* feat: Run session saver before opening a new winodw, b=no-bug, c=tabs

* feat: Clone the previous state, b=no-bug, c=no-component

* feat: Move window sync to its own JS module, b=no-bug, c=workspaces

* feat: Run session saver before opening a new window, b=no-bug, c=no-component

* feat: Start making use of IDs instead of sync identifiers, b=no-bug, c=folders

* feat: Listen to new tab opens for new sync system, b=no-bug, c=common, folders, tabs

* feat: Listen for more tab events and properly sync them, b=no-bug, c=common, folders, tabs

* feat: Start moving browser views to the selected windows, b=no-bug, c=no-component

* chore: Remove extra patch, b=no-bug, c=no-component

* feat: Leave a screenshot of the page behind when switching windows or tabs, b=no-bug, c=common

* feat: Run session saves right before writing and quiting, b=no-bug, c=common

* fix: Fixed going back to a different window not allowing to type on inputs, b=no-bug, c=no-component

* feat: Start syncing folders as well, b=no-bug, c=folders

* Discard changes to src/browser/components/tabbrowser/content/tab-js.patch

* chore: Update patches to ff 146, b=no-bug, c=no-component

* feat: Early support for unsynced windoiws, b=no-bug, c=workspaces

* fix: Move back active views when closing a window, b=no-bug, c=no-component

* feat: Stop rendering sub-layers when swaping browsers, b=no-bug, c=common

* feat: Improved support for unsynced windows support, b=no-bug, c=workspaces, folders

* feat: Implemented 'Move To...' Button for unsynced windows, b=no-bug, c=workspaces, common

* feat: Make sure to properly flush all windows when making a new one and fix removing progress listeners, b=no-bug, c=workspaces

* feat: Make sure to not lose any tabs when opening from a private window, b=no-bug, c=workspaces

* feat: Allow unload to run instantly and fix closing windows on mac, b=no-bug, c=no-component

* feat: Make sure to always initialize an empty state with the sidebar object, b=no-bug, c=workspaces

* chore: Small fixes and QA checks, b=no-bug, c=tabs, workspaces

* fix: Fixed tab labels not changing on unfocused windows, b=no-bug, c=no-component

* feat: Fixed closing windows on macos not returning to the original views, b=no-bug, c=no-component

* chore: Turn off debug flags by default, b=no-bug, c=no-component

* feat: Start implementing old pinned tab behaviour we used to have, b=no-bug, c=common, tabs

* feat: Unsynced windows should always be allowed to change labels, b=no-bug, c=welcome

* feat: Make sure we wait long enough before we initialize workspaces, b=no-bug, c=workspaces

* feat: Dont mix remoteness when changing browser views and restore window spaces, b=no-bug, c=common, folders, workspaces

* test: Fixed tests for the pinned tabs manager, b=no-bug, c=tabs, folders, tests, welcome

* feat: Added partial support for split views, b=no-bug, c=split-view

* chore: Finished basic support for split views, b=no-bug, c=folders, split-view

* feat: Always make sure to save the last closed window to the sidebar object, b=no-bug, c=no-component

* feat: Implement workspace sync store into the session file, b=closes #10857, c=common, tabs, tests, workspaces

* feat: Add a default value for the workspace cache, b=no-bug, c=workspaces

* fix: Default assign an array instead of an object to the workspaces cache, b=no-bug, c=workspaces

* feat: Take into consideration win data may not have allocated spaces, b=no-bug, c=workspaces

* feat: Always make sure we are assigning the correct space ID, b=no-bug, c=workspaces

* feat: Make sure to initialize windows even if there are no tabs, b=no-bug, c=no-component

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-12-22 11:12:52 +01:00
460 changed files with 6540 additions and 5812 deletions

View File

@@ -8,6 +8,8 @@ files:
translation: browser/browser/zen-general.ftl
- source: en-US/browser/browser/zen-split-view.ftl
translation: browser/browser/zen-split-view.ftl
- source: en-US/browser/browser/zen-menubar.ftl
translation: browser/browser/zen-menubar.ftl
- source: en-US/browser/browser/zen-vertical-tabs.ftl
translation: browser/browser/zen-vertical-tabs.ftl
- source: en-US/browser/browser/zen-welcome.ftl

View File

@@ -0,0 +1,178 @@
# Issue Metrics
| Metric | Average | Median | 90th percentile |
| --- | --- | --- | ---: |
| Time to first response | 1 day, 0:30:20 | 5:02:49 | 2 days, 2:05:28 |
| Time to close | 1 day, 6:06:03 | 15:57:36 | 3 days, 0:29:29 |
| Metric | Count |
| --- | ---: |
| Number of items that remain open | 75 |
| Number of items closed | 85 |
| Total number of items created | 160 |
| Title | URL | Time to first response | Time to close |
| --- | --- | --- | --- |
| Downloads with "always ask you where to save files" occur twice -- in the downloads folder as well as in the path specified after popup | https://github.com/zen-browser/desktop/issues/11779 | None | None |
| Change tab to a different workspace option is not visible | https://github.com/zen-browser/desktop/issues/11778 | 20:10:39 | 20:10:39 |
| Closing Tab Does Not Go To Previous Tab for Pinned tabs | https://github.com/zen-browser/desktop/issues/11775 | None | None |
| Folders tab glance not working on Windows v1.17.15b (64-bit) | https://github.com/zen-browser/desktop/issues/11774 | 1 day, 2:08:49 | None |
| Browser Layout resets after Toggle Sidebar's Width | https://github.com/zen-browser/desktop/issues/11771 | 1 day, 5:27:23 | 1 day, 5:27:23 |
| PDF Download | https://github.com/zen-browser/desktop/issues/11768 | 1 day, 5:48:10 | 1 day, 5:48:10 |
| “Show search suggestions” setting unchecks itself &#124; Settings UI value not synced with about:config | https://github.com/zen-browser/desktop/issues/11767 | 1 day, 6:26:12 | 1 day, 6:26:12 |
| Full screen mode not working in YouTube while using Glance mode | https://github.com/zen-browser/desktop/issues/11766 | 1:59:37 | None |
| Guacamole paste | https://github.com/zen-browser/desktop/issues/11765 | 2:04:31 | 2:04:31 |
| Workspace icons as dots | https://github.com/zen-browser/desktop/issues/11763 | 0:03:17 | 0:23:41 |
| Printing Issue | https://github.com/zen-browser/desktop/issues/11762 | 11:29:55 | None |
| My profiles folder is not loading after the last update. | https://github.com/zen-browser/desktop/issues/11761 | 3:00:38 | None |
| Video Playback Issues | https://github.com/zen-browser/desktop/issues/11760 | 16:12:17 | 16:12:17 |
| When closing the window on mac and reopening the browser, the session isn't restored | https://github.com/zen-browser/desktop/issues/11759 | None | 17:41:15 |
| Identical filenames for clipboard images (image.png) prevents multiple uploads in Gemini | https://github.com/zen-browser/desktop/issues/11758 | 18:30:44 | 18:30:44 |
| Search suggestions cannot be hidden | https://github.com/zen-browser/desktop/issues/11755 | 1:14:56 | 1 day, 3:42:17 |
| [Bug] [Twilight] [Win 11] New window in virtual desktop bugs and opens several new windows | https://github.com/zen-browser/desktop/issues/11754 | 1 day, 10:56:04 | 2 days, 18:04:04 |
| [Twilight] Pinned tab reset when restart | https://github.com/zen-browser/desktop/issues/11751 | 2 days, 2:05:28 | 2 days, 8:02:26 |
| Profile locks are being ignored, causing weird synced behavior | https://github.com/zen-browser/desktop/issues/11750 | 11:19:12 | None |
| selecting tabs, Right Click to add them to a New Folder no longer works | https://github.com/zen-browser/desktop/issues/11745 | 2:42:55 | 3 days, 0:31:33 |
| When Zen Browser is set as the default browser, it cannot open links clicked from external applications under KDE. | https://github.com/zen-browser/desktop/issues/11743 | 7:19:40 | 7:19:40 |
| After updating all the folders and essential tabs are empty | https://github.com/zen-browser/desktop/issues/11741 | 4:15:52 | 3 days, 5:50:29 |
| Poor performance in OnShape | https://github.com/zen-browser/desktop/issues/11740 | None | None |
| Can't hide tab groups. | https://github.com/zen-browser/desktop/issues/11739 | 2:27:37 | 7:47:28 |
| Cannot install extension via local file if sidebar and toolbar are hidden | https://github.com/zen-browser/desktop/issues/11738 | None | 8:26:16 |
| [Bug] White space padding below minimized parent folder containing partially minimized subfolders | https://github.com/zen-browser/desktop/issues/11736 | 3 days, 14:36:08 | 3 days, 14:36:08 |
| Youtube Shorts Video is hidden out of view, but loaded | https://github.com/zen-browser/desktop/issues/11734 | 5:52:53 | None |
| Websites not funcationing correctly in latest version | https://github.com/zen-browser/desktop/issues/11733 | 0:15:44 | 0:15:44 |
| Sidebar not hiding when in compact mode | https://github.com/zen-browser/desktop/issues/11732 | None | None |
| Lag when restoring sessions with addons like Tab Session Manager? | https://github.com/zen-browser/desktop/issues/11731 | 10:52:46 | None |
| Crash and no load video | https://github.com/zen-browser/desktop/issues/11729 | 0:35:39 | 0:35:39 |
| Bug: Right-Click Menu Text Not Visible | https://github.com/zen-browser/desktop/issues/11728 | 5:49:57 | None |
| Firefox Extension pop-up doesnt open when side-panel is hidden | https://github.com/zen-browser/desktop/issues/11727 | None | 0:55:53 |
| Master Password Prompt on duckai | https://github.com/zen-browser/desktop/issues/11725 | None | None |
| [Twilight] Spaces are removed after updating to December 25 version | https://github.com/zen-browser/desktop/issues/11724 | 2:03:12 | None |
| Memory leak on arch linux? | https://github.com/zen-browser/desktop/issues/11721 | 5:03:16 | None |
| Upgrade to 1.18t lost everything. | https://github.com/zen-browser/desktop/issues/11720 | 5:02:49 | 5:14:44 |
| Can't show Kaomoji on Zen. (Special unicode characters Chinese, Korean, Japanese, etc) | https://github.com/zen-browser/desktop/issues/11719 | 1:28:17 | 2 days, 22:27:07 |
| Inconsistent Essential tabs unloading | https://github.com/zen-browser/desktop/issues/11717 | 3:40:23 | None |
| browser is laggy | https://github.com/zen-browser/desktop/issues/11715 | 9:19:37 | 18:42:49 |
| Duplicate “Find on Page” entry in Search & Find shortcut settings | https://github.com/zen-browser/desktop/issues/11714 | None | None |
| Zen sets itself as default | https://github.com/zen-browser/desktop/issues/11712 | 0:17:54 | None |
| Zen does not display data in IndexedDB while on localhost | https://github.com/zen-browser/desktop/issues/11711 | 10:12:55 | 18:12:11 |
| YouTube fullscreen controls are cut off when Zen Browser is in fullscreen mode | https://github.com/zen-browser/desktop/issues/11710 | None | 10:16:10 |
| Chess.com doesn't fit on a page since last update | https://github.com/zen-browser/desktop/issues/11708 | 0:14:05 | 0:14:05 |
| YouTube videos lose contrast when in full screen mode. | https://github.com/zen-browser/desktop/issues/11706 | 6:06:04 | None |
| Disappeared Font Rendering on Wayland Zen Browser | https://github.com/zen-browser/desktop/issues/11705 | None | 2:45:33 |
| TopCV website doesn't displayed correctly | https://github.com/zen-browser/desktop/issues/11704 | 7:52:49 | None |
| Zen not remembering where the tabs opened in the previous sessions. | https://github.com/zen-browser/desktop/issues/11700 | None | 3:04:19 |
| When RestoreDown/maximazing/moving browser the video in Picture-in-Picture mode is returning to the tab by itself | https://github.com/zen-browser/desktop/issues/11698 | 15:05:45 | None |
| I can't continue from where I left off; I need to log in again. | https://github.com/zen-browser/desktop/issues/11695 | 4:19:58 | 4:19:58 |
| Drag addressbar Link to Desktop no longer works | https://github.com/zen-browser/desktop/issues/11694 | 8:13:08 | None |
| opening a link from external application on zen browser | https://github.com/zen-browser/desktop/issues/11692 | 0:08:44 | 0:08:44 |
| Widow border highlight is diffrent depending of the platform | https://github.com/zen-browser/desktop/issues/11691 | 3:53:57 | 3:53:57 |
| Vertical maximize via mouse (Aero Snap) does not work in Zen Browser | https://github.com/zen-browser/desktop/issues/11690 | None | None |
| Some styles appear to be displaying abnormally (context menu, Library) | https://github.com/zen-browser/desktop/issues/11689 | None | None |
| Moving pinned tabs with media playing between windows broken | https://github.com/zen-browser/desktop/issues/11688 | None | None |
| Context menu on tabs says "workspace" instead of "space" | https://github.com/zen-browser/desktop/issues/11686 | None | 1 day, 0:02:12 |
| Can't change folder name | https://github.com/zen-browser/desktop/issues/11683 | 1:50:39 | 6:38:14 |
| Opening DevTools make the browser crash | https://github.com/zen-browser/desktop/issues/11681 | 0:35:01 | 0:35:01 |
| ZEN DOES NOT UPDATE AUTOMATICALLY | https://github.com/zen-browser/desktop/issues/11680 | 0:41:30 | 19:54:17 |
| Visual glitches while scrolling in the bottom of the page. | https://github.com/zen-browser/desktop/issues/11678 | None | None |
| Full screen mode not occupying complete available screen space. | https://github.com/zen-browser/desktop/issues/11676 | None | None |
| On Mac, first item in bookmarks toolbar disappears after closing window and reopening (without closing app) | https://github.com/zen-browser/desktop/issues/11674 | None | None |
| Some web pages freeze for aparently no reason | https://github.com/zen-browser/desktop/issues/11668 | 0:34:14 | None |
| Unable to install Browser Addons in Compact Mode | https://github.com/zen-browser/desktop/issues/11667 | 7:01:49 | None |
| WebGL2 is not working | https://github.com/zen-browser/desktop/issues/11665 | None | 0:04:30 |
| Tab dissapeared after reopening browser after lagging | https://github.com/zen-browser/desktop/issues/11662 | None | None |
| High CPU usage on idle and even higher CPU usage when opening Twitch (even in Troubleshoot Mode) | https://github.com/zen-browser/desktop/issues/11661 | 1:32:07 | 1:47:33 |
| Audio stopped working - Mac | https://github.com/zen-browser/desktop/issues/11660 | None | 23:33:37 |
| Zorin os freeze/crash on video playback | https://github.com/zen-browser/desktop/issues/11657 | None | None |
| "Material Icons" not displaying correctly (but they are in Firefox desktop app) | https://github.com/zen-browser/desktop/issues/11656 | 5:10:45 | None |
| Browser Padding top bar not removable | https://github.com/zen-browser/desktop/issues/11654 | 3:40:52 | 3:40:52 |
| Update to 1.18t: 1) unresponsive on start, 2) duplicated all pinned tabs. | https://github.com/zen-browser/desktop/issues/11653 | 4:27:05 | 4:27:05 |
| Zen doesn't save splitview configuration correctly with "open previous windows and tabs" enabled | https://github.com/zen-browser/desktop/issues/11652 | 1 day, 9:11:28 | 1 day, 9:25:45 |
| Zen reacts to system sound device changes while watching media (youtube) only after playing with the timeline | https://github.com/zen-browser/desktop/issues/11651 | None | None |
| Workspace is synchronized, but bookmarks within the Workspace are not synchronized as well. | https://github.com/zen-browser/desktop/issues/11650 | 9:24:51 | 9:24:51 |
| Zen becomes unresponsive when playing YouTube videos | https://github.com/zen-browser/desktop/issues/11649 | 1 day, 19:29:58 | None |
| proton mail sign up fails on every container except the first container | https://github.com/zen-browser/desktop/issues/11648 | None | None |
| The translation function that comes with Firefox cannot be used after I reinstall ZEN | https://github.com/zen-browser/desktop/issues/11647 | 1 day, 13:40:21 | None |
| Trackpad gesture doesn't work for switching between spaces | https://github.com/zen-browser/desktop/issues/11645 | 4:10:42 | 1 day, 20:43:04 |
| 多工具栏设置无法生效 | https://github.com/zen-browser/desktop/issues/11643 | 1 day, 6:32:46 | 1 day, 18:53:53 |
| A small section of split tabs' border is visible on glance and can be used to resize split tabs | https://github.com/zen-browser/desktop/issues/11641 | None | 2 days, 3:52:57 |
| Opening Zen via a hyperlink doesn't open the link it was given | https://github.com/zen-browser/desktop/issues/11639 | None | 2 days, 6:06:13 |
| Tabs don't show on hover in compact mode when "Tabs are on the right" setting is enabled | https://github.com/zen-browser/desktop/issues/11638 | 0:26:15 | None |
| "New split view" in command bar opens a new tab instead | https://github.com/zen-browser/desktop/issues/11637 | 12:16:48 | 3 days, 3:03:38 |
| The disappearance of the Firefox toolbar extension management icon is a bug or intentional | https://github.com/zen-browser/desktop/issues/11634 | 2:09:59 | 3 days, 0:26:24 |
| Google reverse image search doesn't work, only uploads stripes instead of the actual image | https://github.com/zen-browser/desktop/issues/11633 | 1:34:48 | 2 days, 10:21:07 |
| MacOS: Context Windows appear always on main monitor | https://github.com/zen-browser/desktop/issues/11632 | 3:02:07 | None |
| update firefox version &#124; amazon music and many more media websites not loading | https://github.com/zen-browser/desktop/issues/11631 | 0:30:37 | 0:30:37 |
| UI Scaling issue on linux desktop | https://github.com/zen-browser/desktop/issues/11629 | 3 days, 17:28:00 | None |
| Window can't shrink enough for W11 On-Screen Keyboard | https://github.com/zen-browser/desktop/issues/11628 | 0:50:10 | None |
| Split tab divider can't be moved to resize with bookmarks sidebar open | https://github.com/zen-browser/desktop/issues/11626 | 2 days, 19:07:37 | None |
| Container information cannot be saved correctly. | https://github.com/zen-browser/desktop/issues/11622 | 2:10:41 | 2:10:41 |
| Slow syncing state and browser crashes if trying to delete a space | https://github.com/zen-browser/desktop/issues/11621 | 1 day, 13:13:35 | None |
| Tabs not loaded in beforehand have full favicon transparency | https://github.com/zen-browser/desktop/issues/11620 | 3:00:50 | None |
| Browser keeps crashing when playing videos or just scrolling rapidly. | https://github.com/zen-browser/desktop/issues/11618 | 3:43:34 | 7:22:44 |
| The tab crashes when searching certain words | https://github.com/zen-browser/desktop/issues/11615 | 2 days, 0:53:45 | None |
| Zen profile problems after update and uninstall | https://github.com/zen-browser/desktop/issues/11614 | 11:21:11 | None |
| No button to access extension menu in order to pin when side and top bar enabled | https://github.com/zen-browser/desktop/issues/11612 | 1:54:17 | 1:54:31 |
| Youtube crashes Zen | https://github.com/zen-browser/desktop/issues/11610 | 17:48:03 | None |
| Scree gliches and flashes rapidly | https://github.com/zen-browser/desktop/issues/11606 | None | None |
| Perplexity disappeared in the new version and the app had to installed, all my configurations dissappeared | https://github.com/zen-browser/desktop/issues/11604 | None | 6:03:27 |
| Content under transparent menus appears frozen after menu is opened | https://github.com/zen-browser/desktop/issues/11603 | None | None |
| Nvidia RTX video is broken again for non-fullscreen video on 1.17.13b (2025-12-11) | https://github.com/zen-browser/desktop/issues/11602 | None | None |
| Perplexity gets removed even when added as custom search engine. | https://github.com/zen-browser/desktop/issues/11601 | 9:10:41 | 19:37:58 |
| No content is displaying, just transparent browser | https://github.com/zen-browser/desktop/issues/11599 | 9:27:02 | 1 day, 10:30:08 |
| Bookmarks Side-Panel Font is white on white background when using Windows 11 Dark Theme | https://github.com/zen-browser/desktop/issues/11597 | None | 9 days, 3:57:43 |
| Can't download files from Element | https://github.com/zen-browser/desktop/issues/11596 | 3:27:57 | None |
| The toolbar breaks when changing the browser layout | https://github.com/zen-browser/desktop/issues/11595 | None | None |
| Windows Explorer doesn't open after opening a file through Zen | https://github.com/zen-browser/desktop/issues/11594 | None | None |
| Zen launching instead of opening links | https://github.com/zen-browser/desktop/issues/11593 | None | None |
| Missing spacing between media controls and sidebar notification | https://github.com/zen-browser/desktop/issues/11592 | None | 3:25:48 |
| Addons (extensions) not added when side bar not open | https://github.com/zen-browser/desktop/issues/11591 | 7 days, 7:20:32 | 7 days, 7:20:32 |
| No video streaming on Twitch.TV | https://github.com/zen-browser/desktop/issues/11590 | 1:40:34 | 2:13:10 |
| Zen Browser loops when visiting pionex.us instead of loading and stopping | https://github.com/zen-browser/desktop/issues/11589 | 0:22:45 | 5:25:13 |
| Firefox add-ons fail to auto update | https://github.com/zen-browser/desktop/issues/11586 | 8:36:24 | None |
| Opening two instances (windows) of Zen Browser | https://github.com/zen-browser/desktop/issues/11585 | 1 day, 22:15:12 | None |
| Compact mode word translation(Turkish) error in right click menu in vertical tabs | https://github.com/zen-browser/desktop/issues/11583 | 10 days, 19:56:47 | None |
| Tab reordering does not trigger haptic feedback on MacOS | https://github.com/zen-browser/desktop/issues/11582 | None | None |
| Blur text and content when window is maximized (but not in full full screen) on Mac using Apple Studio display | https://github.com/zen-browser/desktop/issues/11580 | 1:53:06 | 5:20:16 |
| Closing a recently opened tab returns to the top tab, not the previously focused tab | https://github.com/zen-browser/desktop/issues/11576 | 9 days, 1:26:27 | None |
| Toolbar appearing on hover in compact mode results in jittery page | https://github.com/zen-browser/desktop/issues/11575 | 1:27:27 | None |
| Firefox Sync doesn't sync extensions to new instance | https://github.com/zen-browser/desktop/issues/11574 | None | None |
| Spotify no sound | https://github.com/zen-browser/desktop/issues/11570 | 0:02:19 | 0:35:22 |
| performance issue | https://github.com/zen-browser/desktop/issues/11569 | 1:49:29 | 1:49:28 |
| [macOS] Default Unsplit shortcut (Opt+Cmd+U) conflicts with native 'View Source' binding | https://github.com/zen-browser/desktop/issues/11568 | 6 days, 13:28:07 | None |
| pdf markup undo would undo random things a few steps prior. | https://github.com/zen-browser/desktop/issues/11567 | None | None |
| Changing keyboard language closes tab bar | https://github.com/zen-browser/desktop/issues/11563 | 3:38:59 | 3:38:59 |
| Zen started randomly crashing | https://github.com/zen-browser/desktop/issues/11562 | 3:49:51 | 4 days, 5:32:07 |
| "Show all tabs" keyboard shortcut not working | https://github.com/zen-browser/desktop/issues/11560 | 13 days, 1:31:35 | None |
| Unable to go full screen when in split view | https://github.com/zen-browser/desktop/issues/11559 | None | None |
| Closing sequence of windows, makes Zen loose all the unpinned tabs | https://github.com/zen-browser/desktop/issues/11558 | 7 days, 12:45:23 | None |
| Discord Link on https://zen-browser.app/ is Invalid | https://github.com/zen-browser/desktop/issues/11557 | 22:21:31 | 22:21:31 |
| Zen Browser not saving the tabs I had - V1.17.12b | https://github.com/zen-browser/desktop/issues/11555 | 4:07:02 | 2 days, 7:05:04 |
| Hidden Navbar Not Triggering on Hover (Compact Mode) | https://github.com/zen-browser/desktop/issues/11554 | 1 day, 0:22:48 | None |
| Dom manipulation causes massive performance issues | https://github.com/zen-browser/desktop/issues/11553 | 5:49:40 | None |
| "Unload and switch to tab" button kills navigation history | https://github.com/zen-browser/desktop/issues/11552 | None | None |
| Bookmarks in a folder open in reverse order | https://github.com/zen-browser/desktop/issues/11551 | None | 0:05:28 |
| If glance tab opens in a different container than parent tab, glance tab is moved to a regular new tab | https://github.com/zen-browser/desktop/issues/11544 | None | None |
| New tab not opening the normal homepage but opening the floating searchbar instead | https://github.com/zen-browser/desktop/issues/11543 | 0:19:37 | 1:16:54 |
| After my Mac wakes from sleep, Zen often stops loading pages for a few minutes. | https://github.com/zen-browser/desktop/issues/11541 | 7 days, 2:10:40 | None |
| Boxes in the Background | https://github.com/zen-browser/desktop/issues/11538 | None | None |
| Zen Browser Icon disappears from taskbar when the app isn't pinned | https://github.com/zen-browser/desktop/issues/11536 | 1:32:38 | None |
| The Space Icon/Name overlaps the New Tab Button when many tabs are open | https://github.com/zen-browser/desktop/issues/11531 | None | 0:01:23 |
| full screen does not hide the side/top bars | https://github.com/zen-browser/desktop/issues/11530 | 1 day, 1:45:36 | 1 day, 1:45:36 |
| Floading Bookmarks Bar Issue | https://github.com/zen-browser/desktop/issues/11529 | 2:18:35 | 13 days, 19:33:54 |
| Bug on Youtube Playing | https://github.com/zen-browser/desktop/issues/11528 | 0:26:20 | 15:57:36 |
| Site display issue on nokotime.com | https://github.com/zen-browser/desktop/issues/11525 | 7:58:19 | 1 day, 21:13:57 |
| can't load twitch page after update 1.17.12b | https://github.com/zen-browser/desktop/issues/11524 | 0:03:23 | 0:05:16 |
| Browser layout does not return to Single Toolbar after expanding Collapsed Sidebar, reverts to dual toolbars instead. | https://github.com/zen-browser/desktop/issues/11521 | 0:40:45 | 0:40:45 |
| Can't play youtube live video after update | https://github.com/zen-browser/desktop/issues/11518 | 0:42:10 | 16:06:02 |
| Mouse back/forward button didn't work anymore to switch between workspaces | https://github.com/zen-browser/desktop/issues/11517 | 0:44:38 | 0:53:37 |
| Bug on youtube | https://github.com/zen-browser/desktop/issues/11514 | 2 days, 17:49:10 | 2 days, 17:49:10 |
| Manual install issue | https://github.com/zen-browser/desktop/issues/11511 | 5:05:51 | 18:53:21 |
| Tab misplacements and Slow Internet Performance | https://github.com/zen-browser/desktop/issues/11510 | None | 0:13:33 |
| Incorrect origin point of glance animation when opening from split view | https://github.com/zen-browser/desktop/issues/11506 | None | None |
| Zen using passkey from apple keychain instead vaultwarden | https://github.com/zen-browser/desktop/issues/11498 | 1:10:26 | 1 day, 8:36:24 |
| Sidebar jitters due to trying to render more buttons than it can fit (at the top) | https://github.com/zen-browser/desktop/issues/11497 | None | None |
| z index mismatch on this page is slowing down your page modal | https://github.com/zen-browser/desktop/issues/11496 | None | 3 days, 21:12:36 |
_This report was generated with the [Issue Metrics Action](https://github.com/github/issue-metrics)_
Search query used to find these items: `repo:zen-browser/desktop is:issue created:2025-12-01..2025-12-31`

View File

@@ -23,9 +23,6 @@ zen-folders-panel-convert-folder-to-space =
zen-folders-panel-change-folder-space =
.label = Change Space...
zen-folders-panel-change-icon-folder =
.label = Change Icon
zen-folders-unload-all-tooltip =
.tooltiptext = Unload active in this folder

View File

@@ -18,6 +18,10 @@ tab-context-zen-remove-essential =
tab-context-zen-replace-pinned-url-with-current =
.label = Replace Pinned URL with Current
.accesskey = C
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
.label = Change Icon...
zen-themes-corrupted = Your { -brand-short-name } mods file is corrupted. They have been reset to the default theme.
zen-shortcuts-corrupted = Your { -brand-short-name } shortcuts file is corrupted. They have been reset to the default shortcuts.
@@ -33,7 +37,6 @@ pictureinpicture-minimize-btn =
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Custom Color
zen-panel-ui-gradient-generator-saved-message = Successfully saved the gradient!
zen-copy-current-url-confirmation = Copied current URL!
@@ -47,12 +50,6 @@ zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
.label = Mods
zen-toggle-compact-mode-button =
.label = Compact Mode
.tooltiptext = Toggle Compact Mode

View File

@@ -0,0 +1,20 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-menubar-toggle-pinned-tabs =
.label =
{ $pinnedAreCollapsed ->
[true] Expand Pinned Tabs
*[false] Collapse Pinned Tabs
}
zen-menubar-appearance =
.label = Website Appearance
zen-menubar-appearance-auto =
.label = Automatic
zen-menubar-appearance-light =
.label = Light
zen-menubar-appearance-dark =
.label = Dark

View File

@@ -4,6 +4,9 @@
zen-panel-ui-workspaces-text = Spaces
zen-panel-ui-spaces-label =
.label = Spaces
zen-panel-ui-workspaces-create =
.label = Create Space
@@ -43,12 +46,8 @@ zen-workspaces-panel-context-edit =
.label = Edit Space
.accesskey = E
context-zen-change-workspace-tab =
.label = Change Tab(s) To Workspace
.accesskey = C
zen-bookmark-edit-panel-workspace-selector =
.value = Workspaces
.value = Spaces
.accesskey = W
zen-panel-ui-gradient-generator-algo-complementary =
@@ -66,6 +65,10 @@ zen-panel-ui-gradient-click-to-add = Click to add a color
zen-workspace-creation-name =
.placeholder = Space Name
zen-move-tab-to-workspace-button =
.label = Move To...
.tooltiptext = Move all tabs in this window to a Space
zen-workspaces-panel-context-reorder =
.label = Reorder Spaces
@@ -83,3 +86,9 @@ zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcu
zen-workspaces-close-all-unpinned-tabs-title =
.label = Clear
.tooltiptext = Close all unpinned tabs
zen-panel-ui-workspaces-change-forward =
.label = Next Space
zen-panel-ui-workspaces-change-back =
.label = Previous Space

View File

@@ -6,7 +6,7 @@
value: true
- name: zen.folders.search.hover-delay
value: 900 # ms
value: 700 # ms
- name: zen.folders.max-subfolders
value: 5

View File

@@ -0,0 +1,9 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
- name: zen.session-store.backup-file
value: true
- name: zen.session-store.log
value: '@IS_TWILIGHT@'

View File

@@ -40,14 +40,8 @@
- name: zen.view.window.scheme
value: 2
- name: zen.view.drag-and-drop.move-over-threshold
value: 70
- name: zen.view.drag-and-drop.edge-zone-threshold
value: 25
- name: zen.view.context-menu.refresh
value: false
value: '@IS_TWILIGHT@'
- name: zen.view.borderless-fullscreen
value: true

View File

@@ -0,0 +1,9 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
- name: zen.window-sync.enabled
value: true
- name: zen.window-sync.log
value: false

View File

@@ -20,6 +20,15 @@
- name: zen.tabs.close-window-with-empty
value: true
- name: zen.tabs.use-legacy-drag-and-drop
value: false
- name: zen.tabs.folder-dragover-threshold-percent
value: 20 # Percentage of folder height to trigger dragover
- name: zen.tabs.dnd-switch-space-delay
value: 1000 # milliseconds
- name: zen.ctrlTab.show-pending-tabs
value: false

View File

@@ -0,0 +1,12 @@
diff --git a/browser/base/content/browser-profiles.js b/browser/base/content/browser-profiles.js
index fb260896c14b90734182d2f232e33350287f0209..9984a2d18dfd33e3606adac0e8c5f80f7e35e682 100644
--- a/browser/base/content/browser-profiles.js
+++ b/browser/base/content/browser-profiles.js
@@ -70,6 +70,7 @@ var gProfiles = {
},
toggleProfileMenus(isEnabled) {
+ isEnabled &&= Services.prefs.getBoolPref("browser.profiles.enabled", false);
let profilesMenu = document.getElementById("profiles-menu");
profilesMenu.hidden = !isEnabled;
},

View File

@@ -45,7 +45,6 @@
# Scripts used all over the browser
<script type="module" src="chrome://browser/content/zen-components/ZenFolder.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenMediaController.mjs"></script>

View File

@@ -4,6 +4,7 @@
#include ../../../zen/common/jar.inc.mn
#include ../../../zen/compact-mode/jar.inc.mn
#include ../../../zen/drag-and-drop/jar.inc.mn
#include ../../../zen/split-view/jar.inc.mn
#include ../../../zen/mods/jar.inc.mn
#include ../../../zen/workspaces/jar.inc.mn

View File

@@ -6,6 +6,7 @@
<link rel="localization" href="browser/zen-workspaces.ftl"/>
<link rel="localization" href="browser/zen-split-view.ftl"/>
<link rel="localization" href="browser/zen-general.ftl"/>
<link rel="localization" href="browser/zen-menubar.ftl"/>
<link rel="localization" href="browser/zen-vertical-tabs.ftl"/>
<link rel="localization" href="browser/zen-folders.ftl"/>
</linkset>

View File

@@ -36,7 +36,7 @@
<menupopup id="zenFolderActions">
<menuitem id="context_zenFolderRename" data-l10n-id="zen-folders-panel-rename-folder"/>
<menuitem id="context_zenFolderChangeIcon" data-l10n-id="zen-folders-panel-change-icon-folder"/>
<menuitem id="context_zenFolderChangeIcon" data-l10n-id="tab-context-zen-edit-icon"/>
<menuseparator />
<menuitem id="context_zenFolderUnloadAll" data-l10n-id="zen-folders-unload-folder"/>
<menuitem id="context_zenFolderNewSubfolder" data-l10n-id="zen-folders-new-subfolder"/>
@@ -59,3 +59,8 @@
<menuseparator />
<menuitem id="context_zenOpenSiteSettings" data-l10n-id="zen-site-data-site-settings"/>
</menupopup>
<menupopup id="zenMoveTabsToSyncedWorkspacePopup">
# Popup to move tabs to a synced workspace.
# This would be automatically populated with the list of available synced workspaces.
</menupopup>

View File

@@ -6,7 +6,6 @@
# the window is fully loaded.
# Make sure they are loaded before the global-scripts.inc file.
<script type="text/javascript" src="chrome://browser/content/zen-sets.js"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenHasPolyfill.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspaces.mjs"></script>

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/places/content/editBookmark.js b/browser/components/places/content/editBookmark.js
index f562f19741d882d92365da531b55e2810a0e79ea..9339e1158b074c41fc19bf91cbfde3c4016594b9 100644
index f562f19741d882d92365da531b55e2810a0e79ea..a68ce8191314845c589f3a9f14b56028e0532628 100644
--- a/browser/components/places/content/editBookmark.js
+++ b/browser/components/places/content/editBookmark.js
@@ -387,6 +387,10 @@ var gEditItemOverlay = {
@@ -31,34 +31,11 @@ index f562f19741d882d92365da531b55e2810a0e79ea..9339e1158b074c41fc19bf91cbfde3c4
}
break;
}
@@ -1280,6 +1288,148 @@ var gEditItemOverlay = {
@@ -1280,6 +1288,128 @@ var gEditItemOverlay = {
get bookmarkState() {
return this._bookmarkState;
},
+
+ async _initWorkspaceSelector() {
+ if(document.documentElement.getAttribute("windowtype") === "Places:Organizer") {
+ return;
+ }
+ this._workspaces = await ZenWorkspacesStorage.getWorkspaces();
+
+ const selectElement = this._workspaceSelect;
+
+ // Clear any existing options
+ while (selectElement.firstChild) {
+ selectElement.removeChild(selectElement.firstChild);
+ }
+
+ // For each workspace, create an option element
+ for (let workspace of this._workspaces) {
+ const option = document.createElementNS("http://www.w3.org/1999/xhtml", "option");
+ option.textContent = workspace.name;
+ option.value = workspace.uuid;
+ selectElement.appendChild(option);
+ }
+
+ selectElement.disabled = this.readOnly;
+ },
+ async onWorkspaceSelectionChange(event) {
+ if(document.documentElement.getAttribute("windowtype") === "Places:Organizer") {
+ return;
@@ -129,7 +106,10 @@ index f562f19741d882d92365da531b55e2810a0e79ea..9339e1158b074c41fc19bf91cbfde3c4
+ if(document.documentElement.getAttribute("windowtype") === "Places:Organizer") {
+ return;
+ }
+ this._workspaces = await ZenWorkspacesStorage.getWorkspaces();
+ const { ZenSessionStore } = ChromeUtils.importESModule(
+ "resource:///modules/zen/ZenSessionManager.sys.mjs"
+ );
+ this._workspaces = ZenSessionStore.getClonedSpaces();
+ const workspaceList = this._workspaceList;
+ if(aInfo.node?.bookmarkGuid) {
+ this._selectedWorkspaces = await ZenWorkspaceBookmarksStorage.getBookmarkWorkspaces(aInfo.node.bookmarkGuid);
@@ -180,7 +160,7 @@ index f562f19741d882d92365da531b55e2810a0e79ea..9339e1158b074c41fc19bf91cbfde3c4
};
ChromeUtils.defineLazyGetter(gEditItemOverlay, "_folderTree", () => {
@@ -1318,6 +1468,9 @@ for (let elt of [
@@ -1318,6 +1448,9 @@ for (let elt of [
"locationField",
"keywordField",
"tagsField",

View File

@@ -0,0 +1,21 @@
diff --git a/browser/components/sessionstore/SessionFile.sys.mjs b/browser/components/sessionstore/SessionFile.sys.mjs
index 31140cb8be3b529a0952ca8dc55165690b0e2120..605c9e0aa84da0a2d3171a0573e8cd95e27bd0c4 100644
--- a/browser/components/sessionstore/SessionFile.sys.mjs
+++ b/browser/components/sessionstore/SessionFile.sys.mjs
@@ -22,6 +22,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
RunState: "resource:///modules/sessionstore/RunState.sys.mjs",
SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs",
SessionWriter: "resource:///modules/sessionstore/SessionWriter.sys.mjs",
+ ZenSessionStore: "resource:///modules/zen/ZenSessionManager.sys.mjs",
});
const PREF_UPGRADE_BACKUP = "browser.sessionstore.upgradeBackup.latestBuildID";
@@ -380,7 +381,7 @@ var SessionFileInternal = {
this._readOrigin = result.origin;
result.noFilesFound = noFilesFound;
-
+ await lazy.ZenSessionStore.readFile();
return result;
},

View File

@@ -0,0 +1,29 @@
diff --git a/browser/components/sessionstore/SessionSaver.sys.mjs b/browser/components/sessionstore/SessionSaver.sys.mjs
index 9141793550f7c7ff6aa63d4c85bf571b4499e2d0..6906fd9be7ae6ca4316133e0d6552b797c54a7ec 100644
--- a/browser/components/sessionstore/SessionSaver.sys.mjs
+++ b/browser/components/sessionstore/SessionSaver.sys.mjs
@@ -20,6 +20,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
SessionFile: "resource:///modules/sessionstore/SessionFile.sys.mjs",
SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs",
sessionStoreLogger: "resource:///modules/sessionstore/SessionLogger.sys.mjs",
+ ZenSessionStore: "resource:///modules/zen/ZenSessionManager.sys.mjs",
});
/*
@@ -250,7 +251,7 @@ var SessionSaverInternal = {
// Cancel any pending timeouts.
this.cancel();
- if (lazy.PrivateBrowsingUtils.permanentPrivateBrowsing) {
+ if (false) {
// Don't save (or even collect) anything in permanent private
// browsing mode
@@ -305,6 +306,7 @@ var SessionSaverInternal = {
this._maybeClearCookiesAndStorage(state);
Glean.sessionRestore.collectData.stopAndAccumulate(timerId);
+ lazy.ZenSessionStore.saveState(state);
return this._writeState(state);
},

View File

@@ -0,0 +1,45 @@
diff --git a/browser/components/sessionstore/SessionStartup.sys.mjs b/browser/components/sessionstore/SessionStartup.sys.mjs
index be23213ae9ec7e59358a17276c6c3764d38d9996..c7bb413d7e2d8ce3f9bc38a925d57e59d882111d 100644
--- a/browser/components/sessionstore/SessionStartup.sys.mjs
+++ b/browser/components/sessionstore/SessionStartup.sys.mjs
@@ -40,6 +40,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
StartupPerformance:
"resource:///modules/sessionstore/StartupPerformance.sys.mjs",
sessionStoreLogger: "resource:///modules/sessionstore/SessionLogger.sys.mjs",
+ ZenSessionStore: "resource:///modules/zen/ZenSessionManager.sys.mjs",
});
const STATE_RUNNING_STR = "running";
@@ -85,7 +86,7 @@ export var SessionStartup = {
}
// do not need to initialize anything in auto-started private browsing sessions
- if (lazy.PrivateBrowsingUtils.permanentPrivateBrowsing) {
+ if (false) {
this._initialized = true;
gOnceInitializedDeferred.resolve();
return;
@@ -179,6 +180,9 @@ export var SessionStartup = {
this._initialState = parsed;
}
+ this._initialState ||= {};
+ lazy.ZenSessionStore.onFileRead(this._initialState);
+
if (this._initialState == null) {
// No valid session found.
this._sessionType = this.NO_SESSION;
@@ -335,12 +339,7 @@ export var SessionStartup = {
isAutomaticRestoreEnabled() {
if (this._resumeSessionEnabled === null) {
this._resumeSessionEnabled =
- !lazy.PrivateBrowsingUtils.permanentPrivateBrowsing &&
- (Services.prefs.getBoolPref(
- "browser.sessionstore.resume_session_once"
- ) ||
- Services.prefs.getIntPref("browser.startup.page") ==
- BROWSER_STARTUP_RESUME_SESSION);
+ true;
}
return this._resumeSessionEnabled;

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e5dd96222 100644
index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..7513021ff75742231f03df4ec598bf297aae78c6 100644
--- a/browser/components/sessionstore/SessionStore.sys.mjs
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
@@ -127,6 +127,8 @@ const TAB_EVENTS = [
@@ -11,7 +11,27 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
];
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
@@ -1911,6 +1913,8 @@ var SessionStoreInternal = {
@@ -196,6 +198,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
TabStateCache: "resource:///modules/sessionstore/TabStateCache.sys.mjs",
TabStateFlusher: "resource:///modules/sessionstore/TabStateFlusher.sys.mjs",
setTimeout: "resource://gre/modules/Timer.sys.mjs",
+ ZenSessionStore: "resource:///modules/zen/ZenSessionManager.sys.mjs",
});
ChromeUtils.defineLazyGetter(lazy, "blankURI", () => {
@@ -1238,10 +1241,7 @@ var SessionStoreInternal = {
*/
get willAutoRestore() {
return (
- !PrivateBrowsingUtils.permanentPrivateBrowsing &&
- (Services.prefs.getBoolPref("browser.sessionstore.resume_session_once") ||
- Services.prefs.getIntPref("browser.startup.page") ==
- BROWSER_STARTUP_RESUME_SESSION)
+ true
);
},
@@ -1911,6 +1911,8 @@ var SessionStoreInternal = {
case "TabPinned":
case "TabUnpinned":
case "SwapDocShells":
@@ -20,19 +40,76 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
this.saveStateDelayed(win);
break;
case "TabGroupCreate":
@@ -2384,11 +2388,9 @@ var SessionStoreInternal = {
tabbrowser.selectedTab.label;
@@ -2020,6 +2022,10 @@ var SessionStoreInternal = {
this._windows[aWindow.__SSi].isTaskbarTab = true;
}
+ if (aWindow.document.documentElement.hasAttribute("zen-unsynced-window")) {
+ this._windows[aWindow.__SSi].isZenUnsynced = true;
+ }
+
let tabbrowser = aWindow.gBrowser;
// add tab change listeners to all already existing tabs
@@ -2107,6 +2113,7 @@ var SessionStoreInternal = {
null,
"sessionstore-one-or-no-tab-restored"
);
+ lazy.ZenSessionStore.onNewEmptySession(aWindow);
this._deferredAllWindowsRestored.resolve();
}
// this window was opened by _openWindowWithState
@@ -2151,7 +2158,6 @@ var SessionStoreInternal = {
if (closedWindowState) {
let newWindowState;
if (
- AppConstants.platform == "macosx" ||
!lazy.SessionStartup.willRestore()
) {
// We want to split the window up into pinned tabs and unpinned tabs.
@@ -2215,6 +2221,15 @@ var SessionStoreInternal = {
});
this._shouldRestoreLastSession = false;
}
+ else if (!aInitialState && isRegularWindow) {
+ let windowPromises = [];
+ for (let window of this._browserWindows) {
+ windowPromises.push(lazy.TabStateFlusher.flushWindow(window));
+ }
+ Promise.all(windowPromises).finally(() => {
+ lazy.ZenSessionStore.restoreNewWindow(aWindow, this);
+ });
+ }
if (this._restoreLastWindow && aWindow.toolbar.visible) {
// always reset (if not a popup window)
@@ -2465,7 +2480,7 @@ var SessionStoreInternal = {
// 2) Flush the window.
// 3) When the flush is complete, revisit our decision to store the window
// in _closedWindows, and add/remove as necessary.
- if (!winData.isPrivate && !winData.isTaskbarTab) {
+ if (!winData.isPrivate && !winData.isTaskbarTab && !winData.isZenUnsynced) {
this.maybeSaveClosedWindow(winData, isLastWindow);
}
- if (AppConstants.platform != "macosx") {
// Until we decide otherwise elsewhere, this window is part of a series
// of closing windows to quit.
winData._shouldRestore = true;
- }
@@ -2486,7 +2501,7 @@ var SessionStoreInternal = {
// Store the window's close date to figure out when each individual tab
// was closed. This timestamp should allow re-arranging data based on how
@@ -3373,7 +3375,7 @@ var SessionStoreInternal = {
// Save non-private windows if they have at
// least one saveable tab or are the last window.
- if (!winData.isPrivate && !winData.isTaskbarTab) {
+ if (!winData.isPrivate && !winData.isTaskbarTab && !winData.isZenUnsynced) {
this.maybeSaveClosedWindow(winData, isLastWindow);
if (!isLastWindow && winData.closedId > -1) {
@@ -2582,6 +2597,7 @@ var SessionStoreInternal = {
let alreadyStored = winIndex != -1;
// If sidebar command is truthy, i.e. sidebar is open, store sidebar settings
let shouldStore = hasSaveableTabs || isLastWindow;
+ lazy.ZenSessionStore.maybeSaveClosedWindow(winData, isLastWindow);
if (shouldStore && !alreadyStored) {
let index = this._closedWindows.findIndex(win => {
@@ -3373,7 +3389,7 @@ var SessionStoreInternal = {
if (!isPrivateWindow && tabState.isPrivate) {
return;
}
@@ -41,12 +118,12 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
return;
}
@@ -4089,6 +4091,12 @@ var SessionStoreInternal = {
@@ -4089,6 +4105,12 @@ var SessionStoreInternal = {
Math.min(tabState.index, tabState.entries.length)
);
tabState.pinned = false;
+ tabState.zenEssential = false;
+ tabState.zenPinnedId = null;
+ tabState.zenSyncId = null;
+ tabState.zenIsGlance = false;
+ tabState.zenGlanceId = null;
+ tabState.zenHasStaticLabel = false;
@@ -54,7 +131,7 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
if (inBackground === false) {
aWindow.gBrowser.selectedTab = newTab;
@@ -4525,6 +4533,7 @@ var SessionStoreInternal = {
@@ -4525,6 +4547,7 @@ var SessionStoreInternal = {
// Append the tab if we're opening into a different window,
tabIndex: aSource == aTargetWindow ? pos : Infinity,
pinned: state.pinned,
@@ -62,7 +139,7 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
userContextId: state.userContextId,
skipLoad: true,
preferredRemoteType,
@@ -5374,7 +5383,7 @@ var SessionStoreInternal = {
@@ -5374,7 +5397,7 @@ var SessionStoreInternal = {
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
let tab = tabbrowser.tabs[i];
@@ -71,16 +148,16 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
removableTabs.push(tab);
}
}
@@ -5434,7 +5443,7 @@ var SessionStoreInternal = {
}
@@ -5483,7 +5506,7 @@ var SessionStoreInternal = {
let workspaceID = aWindow.getWorkspaceID();
- if (workspaceID) {
+ if (workspaceID && !(this.isLastRestorableWindow() && AppConstants.platform == "macosx")) {
winData.workspaceID = workspaceID;
}
},
@@ -5625,11 +5634,12 @@ var SessionStoreInternal = {
// collect the data for all windows
for (ix in this._windows) {
- if (this._windows[ix]._restoring || this._windows[ix].isTaskbarTab) {
+ if (this._windows[ix]._restoring || this._windows[ix].isTaskbarTab && !this._windows[ix].isZenUnsynced) {
// window data is still in _statesToRestore
continue;
}
@@ -5625,11 +5648,12 @@ var SessionStoreInternal = {
}
let tabbrowser = aWindow.gBrowser;
@@ -94,15 +171,17 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
// update the internal state data for this window
for (let tab of tabs) {
if (tab == aWindow.FirefoxViewHandler.tab) {
@@ -5640,6 +5650,7 @@ var SessionStoreInternal = {
@@ -5640,6 +5664,9 @@ var SessionStoreInternal = {
tabsData.push(tabData);
}
+ winData.folders = aWindow.gZenFolders?.storeDataForSessionStore() || [];
+ winData.activeZenSpace = aWindow.gZenWorkspaces?.activeWorkspace || null;
+ winData.spaces = aWindow.gZenWorkspaces?.getWorkspacesForSessionStore();
// update tab group state for this window
winData.groups = [];
for (let tabGroup of aWindow.gBrowser.tabGroups) {
@@ -5652,7 +5663,7 @@ var SessionStoreInternal = {
@@ -5652,7 +5679,7 @@ var SessionStoreInternal = {
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
// since it's only inserted into the tab strip after it's selected).
if (aWindow.FirefoxViewHandler.tab?.selected) {
@@ -111,7 +190,7 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
winData.title = tabbrowser.tabs[0].label;
}
winData.selected = selectedIndex;
@@ -5765,8 +5776,8 @@ var SessionStoreInternal = {
@@ -5765,8 +5792,8 @@ var SessionStoreInternal = {
// selectTab represents.
let selectTab = 0;
if (overwriteTabs) {
@@ -122,7 +201,7 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
selectTab = Math.min(selectTab, winData.tabs.length);
}
@@ -5788,6 +5799,7 @@ var SessionStoreInternal = {
@@ -5788,6 +5815,7 @@ var SessionStoreInternal = {
if (overwriteTabs) {
for (let i = tabbrowser.browsers.length - 1; i >= 0; i--) {
if (!tabbrowser.tabs[i].selected) {
@@ -130,16 +209,17 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
tabbrowser.removeTab(tabbrowser.tabs[i]);
}
}
@@ -5809,6 +5821,8 @@ var SessionStoreInternal = {
winData.tabs,
winData.groups ?? []
@@ -5821,6 +5849,9 @@ var SessionStoreInternal = {
savedTabGroup => !openTabGroupIdsInWindow.has(savedTabGroup.id)
);
+ aWindow.gZenFolders?.restoreDataFromSessionStore(winData.folders);
+ aWindow.gZenViewSplitter?.restoreDataFromSessionStore(winData.splitViewData);
this._log.debug(
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
);
@@ -6372,6 +6386,25 @@ var SessionStoreInternal = {
}
+ aWindow.gZenFolders?.restoreDataFromSessionStore(winData.folders);
+ aWindow.gZenViewSplitter?.restoreDataFromSessionStore(winData.splitViewData);
+ aWindow.gZenWorkspaces?.restoreWorkspacesFromSessionStore(winData);
// Move the originally open tabs to the end.
if (initialTabs) {
@@ -6372,6 +6403,25 @@ var SessionStoreInternal = {
// Most of tabData has been restored, now continue with restoring
// attributes that may trigger external events.
@@ -150,11 +230,11 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
+ if (tabData.zenIsEmpty) {
+ tab.setAttribute("zen-empty-tab", "true");
+ }
+ if (tabData.zenHasStaticLabel) {
+ tab.setAttribute("zen-has-static-label", "true");
+ if (tabData.zenStaticLabel) {
+ tab.zenStaticLabel = tabData.zenStaticLabel;
+ }
+ if (tabData.zenPinnedId) {
+ tab.setAttribute("zen-pin-id", tabData.zenPinnedId);
+ if (tabData.zenHasStaticIcon && tabData.image) {
+ tab.zenStaticIcon = tabData.image;
+ }
+ if (tabData.zenDefaultUserContextId) {
+ tab.setAttribute("zenDefaultUserContextId", true);
@@ -165,7 +245,7 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
if (tabData.pinned) {
tabbrowser.pinTab(tab);
@@ -7290,7 +7323,7 @@ var SessionStoreInternal = {
@@ -7290,7 +7340,7 @@ var SessionStoreInternal = {
let groupsToSave = new Map();
for (let tIndex = 0; tIndex < window.tabs.length; ) {
@@ -174,7 +254,7 @@ index 2c2f43bf743ef458b378e85e9ed44a971711e1d9..6894412f5dcf632c1d4c3dabeffabf9e
// Adjust window.selected
if (tIndex + 1 < window.selected) {
window.selected -= 1;
@@ -7305,7 +7338,7 @@ var SessionStoreInternal = {
@@ -7305,7 +7355,7 @@ var SessionStoreInternal = {
);
// We don't want to increment tIndex here.
continue;

View File

@@ -1,22 +1,24 @@
diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs
index 82721356d191055bec0d4b0ca49e481221988801..1ea5c394c704da295149443d7794961a12f2060b 100644
index 82721356d191055bec0d4b0ca49e481221988801..ffa95005b96ea384433f18dace63faa35d2d21bf 100644
--- a/browser/components/sessionstore/TabState.sys.mjs
+++ b/browser/components/sessionstore/TabState.sys.mjs
@@ -85,7 +85,22 @@ class _TabState {
@@ -85,7 +85,24 @@ class _TabState {
tabData.groupId = tab.group.id;
}
+ tabData.zenWorkspace = tab.getAttribute("zen-workspace-id");
+ tabData.zenPinnedId = tab.getAttribute("zen-pin-id");
+ tabData.zenSyncId = tab.getAttribute("id");
+ tabData.zenEssential = tab.getAttribute("zen-essential");
+ tabData.pinned = tabData.pinned || tabData.zenEssential;
+ tabData.zenDefaultUserContextId = tab.getAttribute("zenDefaultUserContextId");
+ tabData.zenPinnedEntry = tab.getAttribute("zen-pinned-entry");
+ tabData.zenPinnedIcon = tab.getAttribute("zen-pinned-icon");
+ tabData.zenIsEmpty = tab.hasAttribute("zen-empty-tab");
+ tabData.zenHasStaticLabel = tab.hasAttribute("zen-has-static-label");
+ tabData.zenStaticLabel = tab.zenStaticLabel;
+ tabData.zenHasStaticIcon = !!tab.zenStaticIcon;
+ tabData.zenGlanceId = tab.getAttribute("glance-id");
+ tabData.zenIsGlance = tab.hasAttribute("zen-glance-tab");
+ tabData._zenPinnedInitialState = tab._zenPinnedInitialState;
+ tabData._zenIsActiveTab = tab._zenContentsVisible;
+
tabData.searchMode = tab.ownerGlobal.gURLBar.getSearchMode(browser, true);
+ if (tabData.searchMode?.source === tab.ownerGlobal.UrlbarUtils.RESULT_SOURCE.ZEN_ACTIONS) {
@@ -25,3 +27,12 @@ index 82721356d191055bec0d4b0ca49e481221988801..1ea5c394c704da295149443d7794961a
tabData.userContextId = tab.userContextId || 0;
@@ -98,7 +115,7 @@ class _TabState {
// Copy data from the tab state cache only if the tab has fully finished
// restoring. We don't want to overwrite data contained in __SS_data.
- this.copyFromCache(browser.permanentKey, tabData, options);
+ this.copyFromCache(tab.permanentKey, tabData, options);
// After copyFromCache() was called we check for properties that are kept
// in the cache only while the tab is pending or restoring. Once that

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js
index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9548dce83 100644
index 97b931c3c7385a52d20204369fcf6d6999053687..bd64a97046d2a62e842cc922764ad129da99905f 100644
--- a/browser/components/tabbrowser/content/drag-and-drop.js
+++ b/browser/components/tabbrowser/content/drag-and-drop.js
@@ -32,6 +32,9 @@
@@ -12,26 +12,33 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
if (isTab(element)) {
return element;
}
@@ -112,6 +115,10 @@
@@ -112,6 +115,9 @@
}
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
+ if (draggedTab && dropEffect === "move") {
+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab);
+ gZenViewSplitter.onBrowserDragEndToSplit(event);
+ }
if (
(dropEffect == "move" || dropEffect == "copy") &&
document == draggedTab.ownerDocument &&
@@ -266,6 +273,18 @@
@@ -130,10 +136,6 @@
// Pinned tabs in expanded vertical mode are on a grid format and require
// different logic to drag and drop.
- if (this._isContainerVerticalPinnedGrid(draggedTab)) {
- this._animateExpandedPinnedTabMove(event);
- return;
- }
this._animateTabMove(event);
return;
}
@@ -266,6 +268,15 @@
this._tabDropIndicator.hidden = true;
event.stopPropagation();
+ if (draggedTab?.hasAttribute("zen-has-splitted")) {
+ draggedTab.removeAttribute("zen-has-splitted");
+ draggedTab._visuallySelected = false;
+ }
+ if (draggedTab && dropEffect == "move") {
+ this.handle_drop_transition?.(draggedTab._dragData.dropElement, draggedTab, movingTabs, draggedTab._dragData.dropBefore);
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
+
+ if (moved) {
@@ -42,7 +49,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
if (draggedTab && dropEffect == "copy") {
let duplicatedDraggedTab;
let duplicatedTabs = [];
@@ -291,8 +310,9 @@
@@ -291,8 +302,9 @@
let translateOffsetY = oldTranslateY % tabHeight;
let newTranslateX = oldTranslateX - translateOffsetX;
let newTranslateY = oldTranslateY - translateOffsetY;
@@ -54,7 +61,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
if (this._isContainerVerticalPinnedGrid(draggedTab)) {
// Update both translate axis for pinned vertical expanded tabs
@@ -308,8 +328,8 @@
@@ -308,8 +320,8 @@
}
} else {
let tabs = this._tabbrowserTabs.ariaFocusableItems.slice(
@@ -65,7 +72,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
);
let size = this._tabbrowserTabs.verticalMode ? "height" : "width";
let screenAxis = this._tabbrowserTabs.verticalMode
@@ -362,11 +382,13 @@
@@ -362,11 +374,13 @@
this._dragToPinPromoCard,
];
let shouldPin =
@@ -79,7 +86,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
isTab(draggedTab) &&
draggedTab.pinned &&
this._tabbrowserTabs.arrowScrollbox.contains(event.target);
@@ -384,6 +406,7 @@
@@ -384,6 +398,7 @@
(oldTranslateY && oldTranslateY != newTranslateY);
} else if (this._tabbrowserTabs.verticalMode) {
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
@@ -87,7 +94,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
} else {
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
}
@@ -440,7 +463,7 @@
@@ -440,7 +455,7 @@
item.removeAttribute("tabdrop-samewindow");
resolve();
};
@@ -96,7 +103,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
postTransitionCleanup();
} else {
let onTransitionEnd = transitionendEvent => {
@@ -581,6 +604,7 @@
@@ -581,6 +596,7 @@
let nextItem = this._tabbrowserTabs.ariaFocusableItems[newIndex];
let tabGroup = isTab(nextItem) && nextItem.group;
@@ -104,7 +111,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
gBrowser.loadTabs(urls, {
inBackground,
replace,
@@ -618,7 +642,16 @@
@@ -618,7 +634,16 @@
this._expandGroupOnDrop(draggedTab);
}
this._resetTabsAfterDrop(draggedTab.ownerDocument);
@@ -122,7 +129,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
if (
dt.mozUserCancelled ||
dt.dropEffect != "none" ||
@@ -822,7 +855,10 @@
@@ -822,7 +847,10 @@
_getDragTarget(event, { ignoreSides = false } = {}) {
let { target } = event;
while (target) {
@@ -134,7 +141,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
break;
}
target = target.parentNode;
@@ -839,14 +875,17 @@
@@ -839,14 +867,17 @@
return null;
}
}
@@ -154,7 +161,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
!this._tabbrowserTabs.expandOnHover
);
}
@@ -877,7 +916,8 @@
@@ -877,7 +908,8 @@
isTabGroupLabel(draggedTab) &&
draggedTab._dragData?.expandGroupOnDrop
) {
@@ -164,19 +171,23 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
}
}
@@ -942,10 +982,7 @@
if (this._isContainerVerticalPinnedGrid(tab)) {
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
// Set this before adjusting dragged tab's position
- let pinnedTabs = this._tabbrowserTabs.visibleTabs.slice(
- 0,
- gBrowser.pinnedTabCount
- );
+ let pinnedTabs = this._tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
let tabsPerRow = 0;
let position = RTL_UI
? window.windowUtils.getBoundsWithoutFlushing(
@@ -1112,7 +1149,7 @@
@@ -1055,7 +1087,6 @@
// using updateDragImage. On Linux, we can use a panel.
if (platform == "win" || platform == "macosx") {
captureListener = function () {
- dt.updateDragImage(canvas, dragImageOffset, dragImageOffset);
};
} else {
// Create a panel to use it in setDragImage
@@ -1093,7 +1124,6 @@
);
dragImageOffset = dragImageOffset * scale;
}
- dt.setDragImage(toDrag, dragImageOffset, dragImageOffset);
// _dragData.offsetX/Y give the coordinates that the mouse should be
// positioned relative to the corner of the new window created upon
@@ -1112,7 +1142,7 @@
let dropEffect = this.getDropEffectForTabDrag(event);
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
let collapseTabGroupDuringDrag =
@@ -185,7 +196,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
tab._dragData = {
offsetX: this._tabbrowserTabs.verticalMode
@@ -1122,7 +1159,7 @@
@@ -1122,7 +1152,7 @@
? event.screenY - window.screenY - tabOffset
: event.screenY - window.screenY,
scrollPos:
@@ -194,7 +205,7 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
? this._tabbrowserTabs.pinnedTabsContainer.scrollPosition
: this._tabbrowserTabs.arrowScrollbox.scrollPosition,
screenX: event.screenX,
@@ -1149,6 +1186,7 @@
@@ -1149,6 +1179,7 @@
if (collapseTabGroupDuringDrag) {
tab.group.collapsed = true;
@@ -202,238 +213,45 @@ index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9
}
}
}
@@ -1173,6 +1211,16 @@
@@ -1173,6 +1204,7 @@
if (tabStripItemElement.hasAttribute("dragtarget")) {
return;
}
+ let { movingTabs: zenMovingTabs } = tab._dragData;
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
+ if (isTabGroupLabel(tab)) {
+ movingTab = movingTab.parentElement;
+ }
+ // "dragtarget" contains the following rules which must only be set AFTER the above
+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important}
+ movingTab.setAttribute("zen-dragtarget", "");
+ }
+ return;
let isPinned = tab.pinned;
let numPinned = gBrowser.pinnedTabCount;
let allTabs = this._tabbrowserTabs.ariaFocusableItems;
@@ -1624,10 +1672,7 @@
return;
}
- let tabs = this._tabbrowserTabs.visibleTabs.slice(
- 0,
- gBrowser.pinnedTabCount
- );
+ let tabs = this._tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
let directionX = screenX > dragData.animLastScreenX;
let directionY = screenY > dragData.animLastScreenY;
@@ -1636,6 +1681,8 @@
let { width: tabWidth, height: tabHeight } =
draggedTab.getBoundingClientRect();
+ tabWidth += 4; // Add 4px to account for the gap
+ tabHeight += 4;
let shiftSizeX = tabWidth * movingTabs.length;
let shiftSizeY = tabHeight;
dragData.tabWidth = tabWidth;
@@ -1672,8 +1719,8 @@
let lastBoundX =
lastTabInRow.screenX +
lastTabInRow.getBoundingClientRect().width -
- (lastMovingTabScreenX + tabWidth);
- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight);
+ (lastMovingTabScreenX + tabWidth) + 4;
+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY;
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
@@ -1833,13 +1880,18 @@
this._clearDragOverGroupingTimer();
this.#clearPinnedDropIndicatorTimer();
- let isPinned = draggedTab.pinned;
- let numPinned = gBrowser.pinnedTabCount;
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
+ let essential = draggedTab.hasAttribute("zen-essential");
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
let allTabs = this._tabbrowserTabs.ariaFocusableItems;
let tabs = allTabs.slice(
- isPinned ? 0 : numPinned,
- isPinned ? numPinned : undefined
+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials,
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
);
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
+ draggedTab = draggedTab.group.labelElement;
+ }
if (this._rtlMode) {
tabs.reverse();
@@ -1854,7 +1906,7 @@
let translateAxis = this._tabbrowserTabs.verticalMode
? "translateY"
: "translateX";
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
let tabSize = this._tabbrowserTabs.verticalMode ? tabHeight : tabWidth;
let translateX = event.screenX - dragData.screenX;
let translateY = event.screenY - dragData.screenY;
@@ -1870,6 +1922,12 @@
);
let lastMovingTab = movingTabs.at(-1);
let firstMovingTab = movingTabs[0];
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) {
+ lastMovingTab = lastMovingTab.group;
+ }
+ if (firstMovingTab.group?.hasAttribute("split-view-group")) {
+ firstMovingTab = firstMovingTab.group;
+ }
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
let lastMovingTabScreen = endEdge(lastMovingTab);
let firstMovingTabScreen = firstMovingTab[screenAxis];
@@ -1884,6 +1942,13 @@
let endBound = this._rtlMode
? endEdge(this._tabbrowserTabs) - lastMovingTabScreen
: periphery[screenAxis] - 1 - lastMovingTabScreen;
+ {
+ let firstTab = tabs.at(this._rtlMode ? -1 : 0);
+ let lastTab = tabs.at(this._rtlMode ? 0 : -1);
+ startBound = firstTab[screenAxis] - firstMovingTabScreen;
+ endBound = endEdge(lastTab) - lastMovingTabScreen;
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
+ }
translate = Math.min(Math.max(translate, startBound), endBound);
// Center the tab under the cursor if the tab is not under the cursor while dragging
@@ -2075,6 +2140,8 @@
};
let dropElement = getOverlappedElement();
+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement;
+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event);
let newDropElementIndex;
if (dropElement) {
@@ -2157,7 +2224,7 @@
? Services.prefs.getIntPref(
"browser.tabs.dragDrop.moveOverThresholdPercent"
) / 100
- : 0.5;
+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100;
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
let shouldMoveOver = overlapPercent > moveOverThreshold;
if (logicalForward && shouldMoveOver) {
@@ -2190,6 +2257,7 @@
// If dragging a group over another group, don't make it look like it is
// possible to drop the dragged group inside the other group.
if (
+ false &&
isTabGroupLabel(draggedTab) &&
dropElement?.group &&
(!dropElement.group.collapsed ||
@@ -2216,20 +2284,13 @@
let isOutOfBounds = isPinned
? dropElement.elementIndex >= numPinned
: dropElement.elementIndex < numPinned;
- if (isOutOfBounds) {
- // Drop after last pinned tab
- dropElement = this._tabbrowserTabs.ariaFocusableItems[numPinned - 1];
- dropBefore = false;
- }
}
- if (
- gBrowser._tabGroupsEnabled &&
- isTab(draggedTab) &&
- !isPinned &&
- (!numPinned || newDropElementIndex >= numPinned)
- ) {
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
let dragOverGroupingThreshold = 1 - moveOverThreshold;
+ if (draggedTab && !dropElement?.group) {
+ gZenFolders.highlightGroupOnDragOver(null);
+ }
let groupingDelay = Services.prefs.getIntPref(
"browser.tabs.dragDrop.createGroup.delayMS"
);
@@ -2237,6 +2298,7 @@
// When dragging tab(s) over an ungrouped tab, signal to the user
// that dropping the tab(s) will create a new tab group.
let shouldCreateGroupOnDrop =
+ false &&
!movingTabsSet.has(dropElement) &&
isTab(dropElement) &&
!dropElement?.group &&
@@ -2245,6 +2307,7 @@
// When dragging tab(s) over a collapsed tab group label, signal to the
// user that dropping the tab(s) will add them to the group.
let shouldDropIntoCollapsedTabGroup =
+ false &&
isTabGroupLabel(dropElement) &&
dropElement.group.collapsed &&
overlapPercent > dragOverGroupingThreshold;
@@ -2302,6 +2365,14 @@
dropElement = dropElementGroup.tabs[0];
dropBefore = true;
}
+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel(
+ dropElement,
+ draggedTab,
+ overlapPercent,
+ movingTabs,
+ dropBefore,
+ colorCode
+ ));
}
this._setDragOverGroupColor(colorCode);
this._tabbrowserTabs.toggleAttribute(
@@ -2324,10 +2395,11 @@
dragData.dropBefore = dropBefore;
dragData.animDropElementIndex = newDropElementIndex;
+ gZenFolders.setFolderIndentation(movingTabs, dropElement);
// Shift background tabs to leave a gap where the dragged tab
// would currently be dropped.
for (let item of tabs) {
- if (item == draggedTab) {
+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) {
continue;
}
@@ -2417,11 +2489,13 @@
}
finishAnimateTabMove() {
+ gZenPinnedTabManager.onDragFinish();
if (!this.#isMovingTab()) {
return;
}
this.#setMovingTabMode(false);
+ gZenFolders.highlightGroupOnDragOver(null);
@@ -1598,7 +1630,6 @@
for (let item of this._tabbrowserTabs.ariaFocusableItems) {
item = elementToMove(item);
- item.style.transform = "";
item.removeAttribute("multiselected-move-together");
delete item._moveTogetherSelectedTabsData;
}
@@ -2426,7 +2457,6 @@
for (let item of this._tabbrowserTabs.ariaFocusableItems) {
this._resetGroupTarget(item);
@@ -2457,7 +2531,7 @@
item = elementToMove(item);
- item.style.transform = "";
}
this._tabbrowserTabs.removeAttribute("movingtab-group");
this._tabbrowserTabs.removeAttribute("movingtab-ungroup");
@@ -2457,17 +2487,14 @@
tab.style.left = "";
tab.style.top = "";
tab.style.maxWidth = "";
- tab.removeAttribute("dragtarget");
+ tab.removeAttribute("zen-dragtarget");
}
for (let label of draggedTabDocument.getElementsByClassName(
"tab-group-label-container"
@@ -2467,7 +2541,7 @@
)) {
label.style.width = "";
- label.style.height = "";
label.style.left = "";
label.style.top = "";
label.style.maxWidth = "";
- label.removeAttribute("dragtarget");
+ label.removeAttribute("zen-dragtarget");
}
let periphery = draggedTabDocument.getElementById(
"tabbrowser-arrowscrollbox-periphery"

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbfd6214f77 100644
index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..1cc31b04e0165f7ae6ffc377da08f8d83bee7390 100644
--- a/browser/components/tabbrowser/content/tab.js
+++ b/browser/components/tabbrowser/content/tab.js
@@ -21,6 +21,7 @@
@@ -87,7 +87,7 @@ index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbf
}
get lastAccessed() {
@@ -382,7 +395,12 @@
@@ -382,7 +395,18 @@
}
get group() {
@@ -97,11 +97,17 @@ index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbf
+ }
+ if (gBrowser.isTabGroup(this.parentElement?.parentElement)) {
+ return this.parentElement.parentElement;
+ }
+ if (this.pinned && !this.hasAttribute('zen-essential')) {
+ let collapsiblePins = gZenWorkspaces.workspaceElement(this.getAttribute('zen-workspace-id'))?.collapsiblePins;
+ if (collapsiblePins?.collapsed) {
+ return collapsiblePins;
+ }
+ }
}
get splitview() {
@@ -473,6 +491,8 @@
@@ -473,6 +497,8 @@
this.style.MozUserFocus = "ignore";
} else if (
event.target.classList.contains("tab-close-button") ||
@@ -110,7 +116,7 @@ index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbf
event.target.classList.contains("tab-icon-overlay") ||
event.target.classList.contains("tab-audio-button")
) {
@@ -527,6 +547,10 @@
@@ -527,6 +553,10 @@
this.style.MozUserFocus = "";
}
@@ -121,15 +127,7 @@ index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbf
on_click(event) {
if (event.button != 0) {
return;
@@ -575,6 +599,7 @@
)
);
} else {
+ gZenPinnedTabManager._removePinnedAttributes(this, true);
gBrowser.removeTab(this, {
animate: true,
triggeringEvent: event,
@@ -587,6 +612,14 @@
@@ -587,6 +617,14 @@
// (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true;
}
@@ -144,7 +142,7 @@ index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbf
}
on_dblclick(event) {
@@ -610,6 +643,8 @@
@@ -610,6 +648,8 @@
animate: true,
triggeringEvent: event,
});

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f53bc059b 100644
index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..2dfe1edc8d893e216d6003fbe7bd8bbe4942586b 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -386,6 +386,7 @@
@@ -10,7 +10,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
const browsers = [];
if (this.#activeSplitView) {
for (const tab of this.#activeSplitView.tabs) {
@@ -450,15 +451,64 @@
@@ -450,15 +451,66 @@
return this.tabContainer.visibleTabs;
}
@@ -18,6 +18,8 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
+ return this.#handleTabMove(...args);
+ }
+
+ get zenTabProgressListener() { return TabProgressListener; }
+
+ get _numVisiblePinTabsWithoutCollapsed() {
+ let i = 0;
+ for (let item of this.tabContainer.ariaFocusableItems) {
@@ -77,7 +79,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
set selectedTab(val) {
if (
gSharedTabWarning.willShowSharedTabWarning(val) ||
@@ -613,6 +663,7 @@
@@ -613,6 +665,7 @@
this.tabpanels.appendChild(panel);
let tab = this.tabs[0];
@@ -85,7 +87,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
tab.linkedPanel = uniqueId;
this._selectedTab = tab;
this._selectedBrowser = browser;
@@ -898,13 +949,17 @@
@@ -898,13 +951,18 @@
}
this.showTab(aTab);
@@ -98,17 +100,21 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
);
// If periphery is null, append to end
- this.pinnedTabsContainer.insertBefore(aTab, periphery);
+ this.tabContainer.tabDragAndDrop.handle_drop_transition(this.tabs[this.pinnedTabCount - 1], aTab, [aTab], false);
+ aTab.hasAttribute("zen-essential") ? gZenWorkspaces.getEssentialsSection(aTab).appendChild(aTab) : this.pinnedTabsContainer.insertBefore(aTab, this.pinnedTabsContainer.lastChild)
});
+ }
aTab.setAttribute("pinned", "true");
this._updateTabBarForPinnedTabs();
@@ -917,11 +972,15 @@
@@ -917,11 +975,18 @@
}
this.#handleTabMove(aTab, () => {
+ const handled = gZenFolders.handleTabUnpin(aTab);
+ if (!handled) {
+ this.tabContainer.tabDragAndDrop.handle_drop_transition(this.tabs[this.pinnedTabCount + 1 /* empty + extra */], aTab, [aTab], true);
+ }
+
// we remove this attribute first, so that allTabs represents
// the moving of a tab from the pinned tabs container
@@ -121,16 +127,17 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
});
aTab.style.marginInlineStart = "";
@@ -1098,6 +1157,8 @@
@@ -1098,6 +1163,9 @@
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
+ try {
+ gZenPinnedTabManager.onTabIconChanged(aTab, aIconURL);
+ aIconURL = aTab.zenStaticIcon || aIconURL;
+ gZenPinnedTabManager.onTabIconChanged(aTab, aIconURL);
if (
aIconURL &&
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
@@ -1107,6 +1168,9 @@
@@ -1107,6 +1175,9 @@
);
return;
}
@@ -140,7 +147,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
let browser = this.getBrowserForTab(aTab);
browser.mIconURL = aIconURL;
@@ -1379,7 +1443,6 @@
@@ -1379,7 +1450,6 @@
// Preview mode should not reset the owner
if (!this._previewMode && !oldTab.selected) {
@@ -148,7 +155,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}
let lastRelatedTab = this._lastRelatedTabMap.get(oldTab);
@@ -1470,6 +1533,7 @@
@@ -1470,6 +1540,7 @@
if (!this._previewMode) {
newTab.recordTimeFromUnloadToReload();
newTab.updateLastAccessed();
@@ -156,7 +163,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
oldTab.updateLastAccessed();
// if this is the foreground window, update the last-seen timestamps.
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
@@ -1622,6 +1686,9 @@
@@ -1622,6 +1693,9 @@
}
let activeEl = document.activeElement;
@@ -166,17 +173,19 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// If focus is on the old tab, move it to the new tab.
if (activeEl == oldTab) {
newTab.focus();
@@ -1945,7 +2012,8 @@
@@ -1945,6 +2019,11 @@
}
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
- if (!aLabel || aLabel.includes("about:reader?")) {
+ if (!aTab._zenContentsVisible && !aTab._zenChangeLabelFlag && !aTab._labelIsInitialTitle && !gZenWorkspaces.privateWindowOrDisabled) {
+ return false;
+ }
+ aLabel = aTab.zenStaticLabel || aLabel;
+ gZenPinnedTabManager.onTabLabelChanged(aTab);
+ if (!aLabel || aLabel.includes("about:reader?") || aTab.hasAttribute("zen-has-static-label")) {
if (!aLabel || aLabel.includes("about:reader?")) {
return false;
}
@@ -2053,7 +2121,7 @@
@@ -2053,7 +2132,7 @@
newIndex = this.selectedTab._tPos + 1;
}
@@ -185,7 +194,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (this.isTabGroupLabel(targetTab)) {
throw new Error(
"Replacing a tab group label with a tab is not supported"
@@ -2328,6 +2396,7 @@
@@ -2328,6 +2407,7 @@
uriIsAboutBlank,
userContextId,
skipLoad,
@@ -193,7 +202,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} = {}) {
let b = document.createXULElement("browser");
// Use the JSM global to create the permanentKey, so that if the
@@ -2401,8 +2470,7 @@
@@ -2401,8 +2481,7 @@
// we use a different attribute name for this?
b.setAttribute("name", name);
}
@@ -203,7 +212,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
b.setAttribute("transparent", "true");
}
@@ -2567,7 +2635,7 @@
@@ -2567,7 +2646,7 @@
let panel = this.getPanel(browser);
let uniqueId = this._generateUniquePanelID();
@@ -212,7 +221,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
aTab.linkedPanel = uniqueId;
// Inject the <browser> into the DOM if necessary.
@@ -2626,8 +2694,8 @@
@@ -2626,8 +2705,8 @@
// If we transitioned from one browser to two browsers, we need to set
// hasSiblings=false on both the existing browser and the new browser.
if (this.tabs.length == 2) {
@@ -223,7 +232,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} else {
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
}
@@ -2814,7 +2882,6 @@
@@ -2814,7 +2893,6 @@
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
tabIndex: tab._tPos + 1,
userContextId: tab.userContextId,
@@ -231,16 +240,17 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
focusUrlBar: true,
});
resolve(this.selectedBrowser);
@@ -2923,6 +2990,8 @@
@@ -2923,6 +3001,9 @@
schemelessInput,
hasValidUserGestureActivation = false,
textDirectiveUserActivation = false,
+ _forZenEmptyTab,
+ essential,
+ zenWorkspaceId,
} = {}
) {
// all callers of addTab that pass a params object need to pass
@@ -2933,10 +3002,17 @@
@@ -2933,10 +3014,17 @@
);
}
@@ -258,7 +268,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// If we're opening a foreground tab, set the owner by default.
ownerTab ??= inBackground ? null : this.selectedTab;
@@ -2944,6 +3020,7 @@
@@ -2944,6 +3032,7 @@
if (this.selectedTab.owner) {
this.selectedTab.owner = null;
}
@@ -266,14 +276,16 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// Find the tab that opened this one, if any. This is used for
// determining positioning, and inherited attributes such as the
@@ -2996,6 +3073,19 @@
@@ -2996,6 +3085,21 @@
noInitialLabel,
skipBackgroundNotify,
});
+ if (hasZenDefaultUserContextId) {
+ t.setAttribute("zenDefaultUserContextId", "true");
+ }
+ if (zenForcedWorkspaceId !== undefined) {
+ if (zenWorkspaceId) {
+ t.setAttribute("zen-workspace-id", zenWorkspaceId);
+ } else if (zenForcedWorkspaceId !== undefined) {
+ t.setAttribute("zen-workspace-id", zenForcedWorkspaceId);
+ t.setAttribute("change-workspace", "")
+ }
@@ -286,7 +298,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (insertTab) {
// Insert the tab into the tab container in the correct position.
this.#insertTabAtIndex(t, {
@@ -3004,6 +3094,7 @@
@@ -3004,6 +3108,7 @@
ownerTab,
openerTab,
pinned,
@@ -294,7 +306,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
bulkOrderedOpen,
tabGroup: tabGroup ?? openerTab?.group,
});
@@ -3022,6 +3113,7 @@
@@ -3022,6 +3127,7 @@
openWindowInfo,
skipLoad,
triggeringRemoteType,
@@ -302,7 +314,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}));
if (focusUrlBar) {
@@ -3146,6 +3238,12 @@
@@ -3146,6 +3252,12 @@
}
}
@@ -315,7 +327,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// Additionally send pinned tab events
if (pinned) {
this.#notifyPinnedStatus(t);
@@ -3349,10 +3447,10 @@
@@ -3349,10 +3461,10 @@
isAdoptingGroup = false,
isUserTriggered = false,
telemetryUserCreateSource = "unknown",
@@ -327,7 +339,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}
if (!color) {
@@ -3373,9 +3471,14 @@
@@ -3373,9 +3485,14 @@
label,
isAdoptingGroup
);
@@ -344,7 +356,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
);
group.addTabs(tabs);
@@ -3496,7 +3599,7 @@
@@ -3496,7 +3613,7 @@
}
this.#handleTabMove(tab, () =>
@@ -353,7 +365,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
);
}
@@ -3698,6 +3801,7 @@
@@ -3698,6 +3815,7 @@
openWindowInfo,
skipLoad,
triggeringRemoteType,
@@ -361,7 +373,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}
) {
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
@@ -3767,6 +3871,7 @@
@@ -3767,6 +3885,7 @@
openWindowInfo,
name,
skipLoad,
@@ -369,7 +381,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
});
}
@@ -3955,7 +4060,7 @@
@@ -3955,7 +4074,7 @@
// Add a new tab if needed.
if (!tab) {
let createLazyBrowser =
@@ -378,7 +390,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
let url = "about:blank";
if (tabData.entries?.length) {
@@ -3992,8 +4097,10 @@
@@ -3992,8 +4111,10 @@
insertTab: false,
skipLoad: true,
preferredRemoteType,
@@ -390,7 +402,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (select) {
tabToSelect = tab;
}
@@ -4005,7 +4112,8 @@
@@ -4005,7 +4126,8 @@
this.pinTab(tab);
// Then ensure all the tab open/pinning information is sent.
this._fireTabOpen(tab, {});
@@ -400,7 +412,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
let { groupId } = tabData;
const tabGroup = tabGroupWorkingData.get(groupId);
// if a tab refers to a tab group we don't know, skip any group
@@ -4019,7 +4127,10 @@
@@ -4019,7 +4141,10 @@
tabGroup.stateData.id,
tabGroup.stateData.color,
tabGroup.stateData.collapsed,
@@ -412,7 +424,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
);
tabsFragment.appendChild(tabGroup.node);
}
@@ -4064,9 +4175,23 @@
@@ -4064,9 +4189,23 @@
// to remove the old selected tab.
if (tabToSelect) {
let leftoverTab = this.selectedTab;
@@ -428,15 +440,15 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
+ gZenWorkspaces._initialTab._shouldRemove = true;
+ }
+ }
+ }
}
+ else {
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
}
+ }
+ this._hasAlreadyInitializedZenSessionStore = true;
if (tabs.length > 1 || !tabs[0].selected) {
this._updateTabsAfterInsert();
@@ -4257,11 +4382,14 @@
@@ -4257,11 +4396,14 @@
if (ownerTab) {
tab.owner = ownerTab;
}
@@ -452,7 +464,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (
!bulkOrderedOpen &&
((openerTab &&
@@ -4273,7 +4401,7 @@
@@ -4273,7 +4415,7 @@
let lastRelatedTab =
openerTab && this._lastRelatedTabMap.get(openerTab);
let previousTab = lastRelatedTab || openerTab || this.selectedTab;
@@ -461,7 +473,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
tabGroup = previousTab.group;
}
if (
@@ -4284,7 +4412,7 @@
@@ -4284,7 +4426,7 @@
) {
elementIndex = Infinity;
} else if (previousTab.visible) {
@@ -470,7 +482,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} else if (previousTab == FirefoxViewHandler.tab) {
elementIndex = 0;
}
@@ -4312,14 +4440,14 @@
@@ -4312,14 +4454,14 @@
}
// Ensure index is within bounds.
if (tab.pinned) {
@@ -489,7 +501,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (pinned && !itemAfter?.pinned) {
itemAfter = null;
@@ -4330,7 +4458,7 @@
@@ -4330,7 +4472,7 @@
this.tabContainer._invalidateCachedTabs();
@@ -498,7 +510,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
// Place at the front of, or between tabs in, the same tab group
this.tabContainer.insertBefore(tab, itemAfter);
@@ -4358,7 +4486,11 @@
@@ -4358,7 +4500,11 @@
const tabContainer = pinned
? this.tabContainer.pinnedTabsContainer
: this.tabContainer;
@@ -510,7 +522,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}
this._updateTabsAfterInsert();
@@ -4366,6 +4498,7 @@
@@ -4366,6 +4512,7 @@
if (pinned) {
this._updateTabBarForPinnedTabs();
}
@@ -518,17 +530,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
TabBarVisibility.update();
}
@@ -4655,6 +4788,9 @@
return;
}
+ for (let tab of selectedTabs) {
+ gZenPinnedTabManager._removePinnedAttributes(tab, true);
+ }
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
}
@@ -4916,6 +5052,7 @@
@@ -4916,6 +5063,7 @@
telemetrySource,
} = {}
) {
@@ -536,7 +538,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
// can be considered equivalent to closing the window.
if (
@@ -5005,6 +5142,7 @@
@@ -5005,6 +5153,7 @@
if (lastToClose) {
this.removeTab(lastToClose, aParams);
}
@@ -544,7 +546,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} catch (e) {
console.error(e);
}
@@ -5043,6 +5181,12 @@
@@ -5043,6 +5192,12 @@
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
}
@@ -557,7 +559,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// Handle requests for synchronously removing an already
// asynchronously closing tab.
if (!animate && aTab.closing) {
@@ -5057,6 +5201,9 @@
@@ -5057,6 +5212,9 @@
// state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
let isLastTab = this.#isLastTabInWindow(aTab);
@@ -567,7 +569,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (
!this._beginRemoveTab(aTab, {
closeWindowFastpath: true,
@@ -5105,7 +5252,13 @@
@@ -5105,7 +5263,13 @@
// We're not animating, so we can cancel the animation stopwatch.
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null;
@@ -582,7 +584,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
return;
}
@@ -5239,7 +5392,7 @@
@@ -5239,7 +5403,7 @@
closeWindowWithLastTab != null
? closeWindowWithLastTab
: !window.toolbar.visible ||
@@ -591,7 +593,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here,
@@ -5263,6 +5416,7 @@
@@ -5263,6 +5427,7 @@
newTab = true;
}
@@ -599,7 +601,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation.
@@ -5303,13 +5457,7 @@
@@ -5303,13 +5468,7 @@
aTab._mouseleave();
if (newTab) {
@@ -614,7 +616,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} else {
TabBarVisibility.update();
}
@@ -5442,6 +5590,7 @@
@@ -5442,6 +5601,7 @@
this.tabs[i]._tPos = i;
}
@@ -622,7 +624,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (!this._windowIsClosing) {
// update tab close buttons state
this.tabContainer._updateCloseButtons();
@@ -5663,6 +5812,7 @@
@@ -5663,6 +5823,7 @@
}
let excludeTabs = new Set(aExcludeTabs);
@@ -630,7 +632,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// If this tab has a successor, it should be selectable, since
// hiding or closing a tab removes that tab as a successor.
@@ -5675,13 +5825,13 @@
@@ -5675,13 +5836,13 @@
!excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) {
@@ -646,7 +648,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
);
let tab = this.tabContainer.findNextTab(aTab, {
@@ -5697,7 +5847,7 @@
@@ -5697,7 +5858,7 @@
}
if (tab) {
@@ -655,7 +657,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}
// If no qualifying visible tab was found, see if there is a tab in
@@ -5718,7 +5868,7 @@
@@ -5718,7 +5879,7 @@
});
}
@@ -664,7 +666,47 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}
_blurTab(aTab) {
@@ -6124,10 +6274,10 @@
@@ -5729,7 +5890,7 @@
* @returns {boolean}
* False if swapping isn't permitted, true otherwise.
*/
- swapBrowsersAndCloseOther(aOurTab, aOtherTab) {
+ swapBrowsersAndCloseOther(aOurTab, aOtherTab, zenCloseOther = true) {
// Do not allow transfering a private tab to a non-private window
// and vice versa.
if (
@@ -5783,6 +5944,7 @@
// fire the beforeunload event in the process. Close the other
// window if this was its last tab.
if (
+ zenCloseOther &&
!remoteBrowser._beginRemoveTab(aOtherTab, {
adoptedByTab: aOurTab,
closeWindowWithLastTab: true,
@@ -5794,7 +5956,7 @@
// If this is the last tab of the window, hide the window
// immediately without animation before the docshell swap, to avoid
// about:blank being painted.
- let [closeWindow] = aOtherTab._endRemoveArgs;
+ let [closeWindow] = !zenCloseOther ? [false] : aOtherTab._endRemoveArgs;
if (closeWindow) {
let win = aOtherTab.ownerGlobal;
win.windowUtils.suppressAnimation(true);
@@ -5918,11 +6080,13 @@
}
// Finish tearing down the tab that's going away.
+ if (zenCloseOther) {
if (closeWindow) {
aOtherTab.ownerGlobal.close();
} else {
remoteBrowser._endRemoveTab(aOtherTab);
}
+ }
this.setTabTitle(aOurTab);
@@ -6124,10 +6288,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
}
@@ -677,15 +719,33 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
aTab.selected ||
aTab.closing ||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
@@ -6186,6 +6336,7 @@
@@ -6185,7 +6349,8 @@
*
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
*/
replaceTabWithWindow(aTab, aOptions) {
- replaceTabWithWindow(aTab, aOptions) {
+ replaceTabWithWindow(aTab, aOptions, zenForceSync = false) {
+ if (!this.isTab(aTab)) return; // TODO: Handle tab groups
if (this.tabs.length == 1) {
return null;
}
@@ -6319,7 +6470,7 @@
@@ -6209,12 +6374,14 @@
}
// tell a new window to take the "dropped" tab
- return window.openDialog(
+ let win = window.openDialog(
AppConstants.BROWSER_CHROME_URL,
"_blank",
options,
aTab
);
+ win._zenStartupSyncFlag = zenForceSync ? 'synced' : 'unsynced';
+ return win;
}
/**
@@ -6319,7 +6486,7 @@
* `true` if element is a `<tab-group>`
*/
isTabGroup(element) {
@@ -694,7 +754,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
}
/**
@@ -6404,8 +6555,8 @@
@@ -6404,8 +6571,8 @@
}
// Don't allow mixing pinned and unpinned tabs.
@@ -705,7 +765,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
}
@@ -6431,10 +6582,16 @@
@@ -6431,10 +6598,16 @@
this.#handleTabMove(
element,
() => {
@@ -724,7 +784,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
neighbor.after(element);
} else {
@@ -6492,23 +6649,28 @@
@@ -6492,23 +6665,28 @@
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
if (this.isTabGroupLabel(targetElement)) {
targetElement = targetElement.group;
@@ -759,7 +819,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned
// tab, move the unpinned element to be the first unpinned element
@@ -6521,14 +6683,34 @@
@@ -6521,14 +6699,34 @@
// move the tab group right before the first unpinned tab.
// 4. Moving a tab group and the first unpinned tab is grouped:
// move the tab group right before the first unpinned tab's tab group.
@@ -795,7 +855,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
element.pinned
? this.tabContainer.pinnedTabsContainer
: this.tabContainer;
@@ -6537,7 +6719,7 @@
@@ -6537,7 +6735,7 @@
element,
() => {
if (moveBefore) {
@@ -804,7 +864,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
} else if (targetElement) {
targetElement.after(element);
} else {
@@ -6607,10 +6789,10 @@
@@ -6607,10 +6805,10 @@
* @param {TabMetricsContext} [metricsContext]
*/
moveTabToGroup(aTab, aGroup, metricsContext) {
@@ -817,7 +877,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
return;
}
if (aTab.group && aTab.group.id === aGroup.id) {
@@ -6656,6 +6838,7 @@
@@ -6656,6 +6854,7 @@
let state = {
tabIndex: tab._tPos,
@@ -825,7 +885,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
};
if (tab.visible) {
state.elementIndex = tab.elementIndex;
@@ -6682,7 +6865,7 @@
@@ -6682,7 +6881,7 @@
let changedTabGroup =
previousTabState.tabGroupId != currentTabState.tabGroupId;
@@ -834,7 +894,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
tab.dispatchEvent(
new CustomEvent("TabMove", {
bubbles: true,
@@ -6723,6 +6906,10 @@
@@ -6723,6 +6922,10 @@
moveActionCallback();
@@ -845,7 +905,16 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// Clear tabs cache after moving nodes because the order of tabs may have
// changed.
this.tabContainer._invalidateCachedTabs();
@@ -7623,7 +7810,7 @@
@@ -6815,6 +7018,8 @@
params.userContextId = aTab.getAttribute("usercontextid");
}
let newTab = this.addWebTab("about:blank", params);
+ newTab._zenContentsVisible = true;
+ newTab.zenStaticLabel = aTab.zenStaticLabel;
let newBrowser = this.getBrowserForTab(newTab);
aTab.container.tabDragAndDrop.finishAnimateTabMove();
@@ -7623,7 +7828,7 @@
// preventDefault(). It will still raise the window if appropriate.
break;
}
@@ -854,7 +923,7 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
window.focus();
aEvent.preventDefault();
break;
@@ -7640,7 +7827,6 @@
@@ -7640,7 +7845,6 @@
}
case "TabGroupCollapse":
aEvent.target.tabs.forEach(tab => {
@@ -862,7 +931,17 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
});
break;
case "TabGroupCreateByUser":
@@ -8589,6 +8775,7 @@
@@ -7800,7 +8004,9 @@
let filter = this._tabFilters.get(tab);
if (filter) {
+ try {
browser.webProgress.removeProgressListener(filter);
+ } catch {}
let listener = this._tabListeners.get(tab);
if (listener) {
@@ -8589,6 +8795,7 @@
aWebProgress.isTopLevel
) {
this.mTab.setAttribute("busy", "true");
@@ -870,7 +949,15 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected;
}
@@ -9623,7 +9810,7 @@ var TabContextMenu = {
@@ -8670,6 +8877,7 @@
// known defaults. Note we use the original URL since about:newtab
// redirects to a prerendered page.
const shouldRemoveFavicon =
+ !this.mTab.zenStaticIcon &&
!this.mBrowser.mIconURL &&
!ignoreBlank &&
!(originalLocation.spec in FAVICON_DEFAULTS);
@@ -9623,7 +9831,7 @@ var TabContextMenu = {
);
contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !this.multiselected;
@@ -879,11 +966,3 @@ index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f
// Build Ask Chat items
TabContextMenu.GenAI.buildTabMenu(
document.getElementById("context_askChat"),
@@ -9943,6 +10130,7 @@ var TabContextMenu = {
)
);
} else {
+ gZenPinnedTabManager._removePinnedAttributes(this.contextTab, true);
gBrowser.removeTab(this.contextTab, {
animate: true,
...gBrowser.TabMetrics.userTriggeredContext(

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057ebc71c2f5f 100644
index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..e92927612abf12631c384a8f54b6a607fb699424 100644
--- a/browser/components/tabbrowser/content/tabgroup.js
+++ b/browser/components/tabbrowser/content/tabgroup.js
@@ -14,11 +14,11 @@
@@ -68,10 +68,10 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
- return false;
- });
+ this.appendChild = function (child) {
+ this.querySelector(".tab-group-container").appendChild(child);
+ this.groupContainer.appendChild(child);
+ for (let tab of this.tabs) {
+ if (tab.hasAttribute("zen-empty-tab") && tab.group === this) {
+ this.querySelector(".zen-tab-group-start").after(tab);
+ this.groupStartElement.after(tab);
+ }
+ }
+ };
@@ -92,7 +92,7 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
});
}
- this.#tabChangeObserver.observe(this, { childList: true });
+ const container = this.querySelector(".tab-group-container");
+ const container = this.groupContainer;
+ if (container) {
+ this.#tabChangeObserver.observe(container, { childList: true });
+ }
@@ -117,7 +117,7 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
});
}
@@ -466,13 +492,57 @@
@@ -466,13 +492,65 @@
* @returns {MozTabbrowserTab[]}
*/
get tabs() {
@@ -126,20 +126,29 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
- if (childrenArray[i].tagName == "tab-split-view-wrapper") {
- childrenArray.splice(i, 1, ...childrenArray[i].tabs);
+ // add other group tabs if they are under this group
+ let childs = Array.from(this.querySelector(".tab-group-container")?.children ?? []);
+ let childs = Array.from(this.groupContainer?.children ?? []);
+ const tabsCollect = [];
+ for (let item of childs) {
+ tabsCollect.push(item);
+ if (gBrowser.isTabGroup(item)) {
+ tabsCollect.push(...item.tabs);
+ }
+ }
}
}
- return childrenArray.filter(node => node.matches("tab"));
+ return tabsCollect.filter(node => node.matches("tab"));
+ }
+
+ get groupContainer() {
+ return this.querySelector(".tab-group-container");
+ }
+
+ get groupStartElement() {
+ return this.querySelector(".zen-tab-group-start");
+ }
+
+ get childGroupsAndTabs() {
+ const result = [];
+ const container = this.querySelector(".tab-group-container");
+ const container = this.groupContainer;
+
+ for (const item of Array.from(container.children)) {
+ if (gBrowser.isTab(item)) {
@@ -169,9 +178,8 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
+ currentGroup = currentGroup?.group;
+ if (currentGroup.collapsed) {
+ return false;
}
}
- return childrenArray.filter(node => node.matches("tab"));
+ }
+ }
+ return true;
+ }
+
@@ -180,7 +188,7 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
}
/**
@@ -553,7 +623,6 @@
@@ -553,7 +631,6 @@
addTabs(tabs, metricsContext) {
for (let tab of tabs) {
if (tab.pinned) {
@@ -188,7 +196,7 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
}
let tabToMove =
this.ownerGlobal === tab.ownerGlobal
@@ -616,7 +685,7 @@
@@ -616,7 +693,7 @@
*/
on_click(event) {
let isToggleElement =
@@ -197,7 +205,7 @@ index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057eb
event.target === this.#overflowCountLabel;
if (isToggleElement && event.button === 0) {
event.preventDefault();
@@ -687,5 +756,6 @@
@@ -687,5 +764,6 @@
}
}

View File

@@ -1,7 +1,16 @@
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac8793422474052f476573 100644
index 6b6c04599fe80983d13d2069ca62b99d8ad70271..ebe4818a71b37e8b7cd2937f72cc60f202dadef8 100644
--- a/browser/components/tabbrowser/content/tabs.js
+++ b/browser/components/tabbrowser/content/tabs.js
@@ -235,7 +235,7 @@
true
)
? new window.TabStacking(this)
- : new window.TabDragAndDrop(this);
+ : Services.prefs.getBoolPref("zen.tabs.use-legacy-drag-and-drop") ? new window.TabDragAndDrop(this) : new window.ZenDragAndDrop(this);
this.tabDragAndDrop.init();
}
@@ -436,7 +436,7 @@
// and we're not hitting the scroll buttons.
if (
@@ -54,7 +63,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
return this.hasAttribute("overflow");
}
@@ -837,29 +839,54 @@
@@ -837,29 +839,56 @@
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
pinnedChildren.pop();
}
@@ -81,6 +90,8 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
+ tabs.splice(i, 1);
+ // add the tabs in the group to the list
+ tabs.splice(i, 0, ...tab.tabs);
+ } else if (tab.classList.contains("zen-tab-group-start")) {
+ tabs.splice(i, 1);
+ }
+ }
+ };
@@ -119,7 +130,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
}
/**
@@ -926,17 +953,10 @@
@@ -926,17 +955,10 @@
let elementIndex = 0;
@@ -135,11 +146,11 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
- }
- }
- for (let child of unpinnedChildren) {
+ for (let child of [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.pinnedTabsContainer.children, ...children]) {
+ for (let child of [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...(gZenWorkspaces.activeWorkspaceElement?.hasCollapsedPinnedTabs ? [] : this.pinnedTabsContainer.children), ...children]) {
if (isTab(child) && child.visible) {
child.elementIndex = elementIndex++;
focusableItems.push(child);
@@ -944,11 +964,13 @@
@@ -944,11 +966,13 @@
child.labelElement.elementIndex = elementIndex++;
focusableItems.push(child.labelElement);
@@ -154,7 +165,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
} else if (child.tagName == "tab-split-view-wrapper") {
let visibleTabsInSplitView = child.tabs.filter(tab => tab.visible);
visibleTabsInSplitView.forEach(tab => {
@@ -992,6 +1014,7 @@
@@ -992,6 +1016,7 @@
_invalidateCachedTabs() {
this.#allTabs = null;
this._invalidateCachedVisibleTabs();
@@ -162,7 +173,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
}
_invalidateCachedVisibleTabs() {
@@ -1095,7 +1118,7 @@
@@ -1095,7 +1120,7 @@
if (node == null) {
// We have a container for non-tab elements at the end of the scrollbox.
@@ -171,7 +182,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
}
node.before(tab);
@@ -1193,7 +1216,7 @@
@@ -1193,7 +1218,7 @@
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
// Attach the long click popup to all of them.
@@ -180,7 +191,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
const newTab2 = this.newTabButton;
const newTabVertical = document.getElementById(
"vertical-tabs-newtab-button"
@@ -1294,8 +1317,10 @@
@@ -1294,8 +1319,10 @@
*/
_handleTabSelect(aInstant) {
let selectedTab = this.selectedItem;
@@ -191,7 +202,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
selectedTab._notselectedsinceload = false;
}
@@ -1304,7 +1329,7 @@
@@ -1304,7 +1331,7 @@
* @param {boolean} [shouldScrollInstantly=false]
*/
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
@@ -200,7 +211,7 @@ index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac879342247405
if (arrowScrollbox?.overflowing) {
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
}
@@ -1437,7 +1462,7 @@
@@ -1437,7 +1464,7 @@
}
_notifyBackgroundTab(aTab) {

View File

@@ -1,44 +0,0 @@
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
index 4db61038e5e476bad3a61dbdb707e5222c1f08f8..9eca13d9cfac3b762917aaaa942267effb743cf7 100644
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
@@ -45,11 +45,13 @@ function defaultQuery(conditions = "") {
let query = `
SELECT h.url, h.title, ${SQL_BOOKMARK_TAGS_FRAGMENT}, h.id, t.open_count,
${lazy.PAGES_FRECENCY_FIELD} AS frecency, t.userContextId,
- h.last_visit_date, NULLIF(t.groupId, '') groupId
+ h.last_visit_date, NULLIF(t.groupId, '') groupId, zp.url AS pinned_url, zp.title AS pinned_title
FROM moz_places h
LEFT JOIN moz_openpages_temp t
ON t.url = h.url
AND (t.userContextId = :userContextId OR (t.userContextId <> -1 AND :userContextId IS NULL))
+ LEFT JOIN zen_pins zp
+ ON zp.url = h.url
WHERE (
(:switchTabsEnabled AND t.open_count > 0) OR
${lazy.PAGES_FRECENCY_FIELD} <> 0
@@ -63,7 +65,7 @@ function defaultQuery(conditions = "") {
:matchBehavior, :searchBehavior, NULL)
ELSE
AUTOCOMPLETE_MATCH(:searchString, h.url,
- h.title, '',
+ IFNULL(zp.title, h.title), '',
h.visit_count, h.typed,
0, t.open_count,
:matchBehavior, :searchBehavior, NULL)
@@ -1176,11 +1178,13 @@ class Search {
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
: undefined;
let tabGroup = row.getResultByName("groupId");
+ let pinnedTitle = row.getResultByIndex(12);
+ let pinnedUrl = row.getResultByIndex("pinned_url");
let match = {
placeId,
- value: url,
- comment: bookmarkTitle || historyTitle,
+ value: pinnedUrl || url,
+ comment: pinnedTitle || bookmarkTitle || historyTitle,
icon: UrlbarUtils.getIconForUrl(url),
frecency: frecency || FRECENCY_DEFAULT,
userContextId,

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df432311b0081e1 100644
index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..086171783cd9a8629ccf4b2e90813e58c4793878 100644
--- a/browser/themes/shared/tabbrowser/tabs.css
+++ b/browser/themes/shared/tabbrowser/tabs.css
@@ -21,7 +21,7 @@
@@ -39,12 +39,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
&::before {
position: absolute;
@@ -498,14 +498,11 @@
.tab-icon-image {
-moz-context-properties: fill, stroke;
fill: currentColor;
+ border-radius: 4px;
@@ -502,10 +502,6 @@
/* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("browser.tabs.fadeOutUnloadedTabs") {
&[pending] {
@@ -55,7 +50,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
opacity: 0.5;
/* Fade the favicon out */
transition-property: filter, opacity;
@@ -522,10 +519,6 @@
@@ -522,10 +518,6 @@
/* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") {
&[pending][discarded] {
@@ -66,7 +61,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
opacity: 0.5;
/* Fade the favicon out */
transition-property: filter, opacity;
@@ -593,7 +586,7 @@
@@ -593,7 +585,7 @@
z-index: 1; /* Overlay tab title */
#tabbrowser-tabs[orient="vertical"] & {
@@ -75,7 +70,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
}
&[crashed] {
@@ -601,7 +594,7 @@
@@ -601,7 +593,7 @@
}
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
@@ -84,7 +79,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
&[soundplaying] {
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
}
@@ -658,7 +651,7 @@
@@ -658,7 +650,7 @@
}
}
@@ -93,7 +88,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
&[crashed] {
display: revert;
}
@@ -759,7 +752,7 @@
@@ -759,7 +751,7 @@
has not been added to root. There are certain scenarios when that attribute is temporarily
removed from root such as when toggling the sidebar to expand with the toolbar button. */
#tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]),
@@ -102,7 +97,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
&:is([soundplaying], [muted], [activemedia-blocked]) {
display: flex;
}
@@ -1446,7 +1439,7 @@ tab-group {
@@ -1446,7 +1438,7 @@ tab-group {
}
#tabbrowser-tabs[orient="vertical"][expanded] {
@@ -111,16 +106,16 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
&[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) {
margin-inline-start: var(--space-medium);
}
@@ -1893,7 +1886,7 @@ tab-group {
@@ -1893,7 +1885,7 @@ tab-group {
}
}
-#tabbrowser-arrowscrollbox[orient="vertical"] > #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button,
+#tabbrowser-arrowscrollbox[orient="vertical"] #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button,
+#tabs-newtab-button,
#vertical-tabs-newtab-button {
appearance: none;
min-height: var(--tab-min-height);
@@ -1904,7 +1897,7 @@ tab-group {
@@ -1904,7 +1896,7 @@ tab-group {
margin-inline: var(--tab-inner-inline-margin);
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
@@ -129,7 +124,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
}
&:hover {
@@ -1928,7 +1921,7 @@ tab-group {
@@ -1928,7 +1920,7 @@ tab-group {
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
* we don't want a gap (between tabs), so we have to add some margin.
*/
@@ -138,7 +133,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
margin-block: var(--tab-block-margin);
}
@@ -2116,7 +2109,6 @@ tab-group {
@@ -2116,7 +2108,6 @@ tab-group {
&:not([expanded]) {
.tabbrowser-tab[pinned] {
@@ -146,7 +141,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
}
.tab-background {
@@ -2156,8 +2148,8 @@ tab-group {
@@ -2156,8 +2147,8 @@ tab-group {
display: block;
position: absolute;
inset: auto;
@@ -157,7 +152,7 @@ index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df43231
&:-moz-window-inactive {
background-image:
@@ -2276,7 +2268,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
@@ -2276,7 +2267,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
list-style-image: url(chrome://global/skin/icons/plus.svg);
}

View File

@@ -1,8 +1,59 @@
diff --git a/browser/themes/shared/toolbarbuttons.css b/browser/themes/shared/toolbarbuttons.css
index e2b8a7cae70ed2bd3c80ee4214a09dbdb68a0d01..71320c7268d92aaa06bfa15c74bdbf02f1442745 100644
index e2b8a7cae70ed2bd3c80ee4214a09dbdb68a0d01..ab1b50a06b68cc6941789b31494b44da6aecdb19 100644
--- a/browser/themes/shared/toolbarbuttons.css
+++ b/browser/themes/shared/toolbarbuttons.css
@@ -279,7 +279,7 @@ toolbar .toolbaritem-combined-buttons {
@@ -44,20 +44,6 @@
--toolbarbutton-inner-padding: 9px;
--bookmark-block-padding: 7px;
}
- @media (width <= 900px) {
- --toolbarbutton-outer-padding: 1px;
- }
- @media (width <= 800px) {
- --toolbarbutton-inner-padding: 7px;
- &:where([uidensity="touch"]) {
- --toolbarbutton-inner-padding: 8px;
- }
- }
- /* 700px is just above half of the popular 1366px screen width, so two browser
- windows put next to each other will be below this threshold. */
- @media (width <= 700px) {
- --toolbarbutton-inner-padding: 6px;
- }
&:where([uidensity="compact"]) {
--toolbarbutton-inner-padding: 6px;
--bookmark-block-padding: 1px;
@@ -67,9 +53,7 @@
#TabsToolbar {
/* Override the inner padding to ensure the dimensions match the tabs, but also making sure
different types of buttons (combined-buttons-dropmarker or text) still look correct. */
- @media (width > 900px) {
--toolbarbutton-inner-padding: calc((var(--tab-min-height) - 16px) / 2);
- }
}
/* Primary toolbar buttons */
@@ -148,8 +132,8 @@ toolbar .toolbarbutton-1 {
> .toolbarbutton-icon {
/* horizontal padding + actual icon width */
- width: calc(2 * var(--toolbarbutton-inner-padding) + 16px);
- height: calc(2 * var(--toolbarbutton-inner-padding) + 16px);
+ width: calc(2 * var(--toolbarbutton-inner-padding) + var(--zen-toolbar-button-size, 16px));
+ height: calc(2 * var(--toolbarbutton-inner-padding) + var(--zen-toolbar-button-size, 16px));
}
> .toolbarbutton-text {
@@ -159,7 +143,7 @@ toolbar .toolbarbutton-1 {
* height as the button icons and the same vertical padding, but as a minimum,
* because otherwise an increase in text sizes would break things.
*/
- min-height: calc(16px + 2 * var(--toolbarbutton-inner-padding));
+ min-height: calc(var(--zen-toolbar-button-size, 16px) + 2 * var(--toolbarbutton-inner-padding));
@media (-moz-platform: macos) {
padding-top: calc(var(--toolbarbutton-inner-padding) + 1px);
@@ -279,7 +263,7 @@ toolbar .toolbaritem-combined-buttons {
#nav-bar-overflow-button {
list-style-image: url("chrome://global/skin/icons/chevron.svg");
@@ -11,7 +62,7 @@ index e2b8a7cae70ed2bd3c80ee4214a09dbdb68a0d01..71320c7268d92aaa06bfa15c74bdbf02
display: none;
}
@@ -489,7 +489,7 @@ toolbarbutton.bookmark-item:not(.subviewbutton) {
@@ -489,7 +473,7 @@ toolbarbutton.bookmark-item:not(.subviewbutton) {
*/
align-items: stretch;
> .toolbarbutton-icon {

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M186.62 464H160a16 16 0 01-14.57-22.6l64.46-142.25L113.1 297l-35.3 42.77C71.07 348.23 65.7 352 52 352H34.08a17.66 17.66 0 01-14.7-7.06c-2.38-3.21-4.72-8.65-2.44-16.41l19.82-71c.15-.53.33-1.06.53-1.58a.38.38 0 000-.15 14.82 14.82 0 01-.53-1.59l-19.84-71.45c-2.15-7.61.2-12.93 2.56-16.06a16.83 16.83 0 0113.6-6.7H52c10.23 0 20.16 4.59 26 12l34.57 42.05 97.32-1.44-64.44-142A16 16 0 01160 48h26.91a25 25 0 0119.35 9.8l125.05 152 57.77-1.52c4.23-.23 15.95-.31 18.66-.31C463 208 496 225.94 496 256c0 9.46-3.78 27-29.07 38.16-14.93 6.6-34.85 9.94-59.21 9.94-2.68 0-14.37-.08-18.66-.31l-57.76-1.54-125.36 152a25 25 0 01-19.32 9.75z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 186.62,464 H 160 A 16,16 0 0 1 145.43,441.4 L 209.89,299.15 113.1,297 77.8,339.77 C 71.07,348.23 65.7,352 52,352 H 34.08 a 17.66,17.66 0 0 1 -14.7,-7.06 C 17,341.73 14.66,336.29 16.94,328.53 l 19.82,-71 c 0.15,-0.53 0.33,-1.06 0.53,-1.58 a 0.38,0.38 0 0 0 0,-0.15 14.82,14.82 0 0 1 -0.53,-1.59 L 16.92,182.76 c -2.15,-7.61 0.2,-12.93 2.56,-16.06 A 16.83,16.83 0 0 1 33.08,160 H 52 c 10.23,0 20.16,4.59 26,12 l 34.57,42.05 97.32,-1.44 -64.44,-142 A 16,16 0 0 1 160,48 h 26.91 a 25,25 0 0 1 19.35,9.8 l 125.05,152 57.77,-1.52 c 4.23,-0.23 15.95,-0.31 18.66,-0.31 C 463,208 496,225.94 496,256 c 0,9.46 -3.78,27 -29.07,38.16 -14.93,6.6 -34.85,9.94 -59.21,9.94 -2.68,0 -14.37,-0.08 -18.66,-0.31 l -57.76,-1.54 -125.36,152 A 25,25 0 0 1 186.62,464 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M122.06 122.06c-44.37 44.37-66.71 100.61-78 145.28l200.6 200.56c44.67-11.25 100.91-33.59 145.28-78s66.71-100.61 78-145.28L267.34 44.1c-44.67 11.25-100.91 33.59-145.28 77.96zm256.73 256.72zM300.65 189L323 166.71A15.78 15.78 0 01345.29 189L323 211.35l11.16 11.17a15.78 15.78 0 01-22.32 22.32l-11.16-11.16L278.32 256l11.16 11.16a15.78 15.78 0 11-22.32 22.32L256 278.32l-22.32 22.33 11.16 11.16a15.78 15.78 0 11-22.32 22.32L211.35 323 189 345.29A15.78 15.78 0 01166.71 323L189 300.65l-11.16-11.17a15.78 15.78 0 0122.32-22.32l11.16 11.16L233.68 256l-11.16-11.16a15.78 15.78 0 1122.32-22.32L256 233.68l22.32-22.33-11.16-11.16a15.78 15.78 0 0122.32-22.32zM476.57 199.63c7.31-54.53 4-120.26-20-144.21s-89.68-27.3-144.21-20c-2.51.34-5.16.72-7.91 1.15l171 171c.4-2.78.78-5.43 1.12-7.94zM35.43 312.37c-7.31 54.53-4 120.26 20 144.21C72.17 473.33 109.34 480 148.84 480a387 387 0 0050.79-3.43c2.51-.34 5.16-.72 7.91-1.15l-171-171c-.39 2.79-.77 5.44-1.11 7.95z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 122.06,122.06 c -44.37,44.37 -66.71,100.61 -78,145.28 l 200.6,200.56 c 44.67,-11.25 100.91,-33.59 145.28,-78 44.37,-44.41 66.71,-100.61 78,-145.28 L 267.34,44.1 C 222.67,55.35 166.43,77.69 122.06,122.06 Z M 378.79,378.78 Z M 300.65,189 323,166.71 A 15.78,15.78 0 0 1 345.29,189 l -22.29,22.35 11.16,11.17 a 15.782623,15.782623 0 0 1 -22.32,22.32 l -11.16,-11.16 -22.36,22.32 11.16,11.16 a 15.782623,15.782623 0 1 1 -22.32,22.32 L 256,278.32 l -22.32,22.33 11.16,11.16 a 15.782623,15.782623 0 1 1 -22.32,22.32 L 211.35,323 189,345.29 A 15.78,15.78 0 0 1 166.71,323 L 189,300.65 177.84,289.48 a 15.782623,15.782623 0 0 1 22.32,-22.32 l 11.16,11.16 22.36,-22.32 -11.16,-11.16 a 15.782623,15.782623 0 1 1 22.32,-22.32 l 11.16,11.16 22.32,-22.33 -11.16,-11.16 a 15.782623,15.782623 0 0 1 22.32,-22.32 z m 175.92,10.63 c 7.31,-54.53 4,-120.26 -20,-144.21 -24,-23.95 -89.68,-27.3 -144.21,-20 -2.51,0.34 -5.16,0.72 -7.91,1.15 l 171,171 c 0.4,-2.78 0.78,-5.43 1.12,-7.94 z M 35.43,312.37 c -7.31,54.53 -4,120.26 20,144.21 16.74,16.75 53.91,23.42 93.41,23.42 a 387,387 0 0 0 50.79,-3.43 c 2.51,-0.34 5.16,-0.72 7.91,-1.15 l -171,-171 c -0.39,2.79 -0.77,5.44 -1.11,7.95 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M444 295.67l-.47-26.07a205.42 205.42 0 01-39.27-4.73l-5 17.35a14 14 0 11-26.88-7.81l5-17.38a206.47 206.47 0 01-36.05-17.35l-10.44 14.77a14 14 0 01-22.87-16.16l10.41-14.73a204.8 204.8 0 01-30-30L273.71 204a14 14 0 01-16.16-22.87l14.74-10.42a205.3 205.3 0 01-17.38-36.06l-17.32 5a14 14 0 11-7.81-26.89l17.3-5a205.88 205.88 0 01-4.43-32.59q-.17-3-.24-6l-18.22-.33a14 14 0 01-13.74-14A208 208 0 0055 202.42a16 16 0 0115 15.66l.44 24.43c1.58.05 3.16.11 4.73.2a205.88 205.88 0 0132.59 4.43l5-17.3a14 14 0 0126.89 7.81l-5 17.32a205.21 205.21 0 0136 17.38L181 257.61a14 14 0 0122.87 16.16l-10.39 14.73a205.65 205.65 0 0115.79 14.23 203.79 203.79 0 0114.23 15.79l14.73-10.41A14 14 0 01254.39 331l-14.76 10.43A206.86 206.86 0 01257 377.47l17.38-5.05a14 14 0 017.81 26.89l-17.35 5a205.89 205.89 0 014.7 38.28l18.27.33a16 16 0 0115.71 16.28 11.69 11.69 0 01-.08 1.19 208 208 0 00153.39-151.03A14 14 0 01444 295.67z"/><path d="M301.49 56.2A14 14 0 01287.5 70h-.25l-16.81-.3c.05 1.31.1 2.62.17 3.93a178.83 178.83 0 003.44 26.31l16.29-4.74a14 14 0 017.81 26.8l-16.27 4.73a178.06 178.06 0 0013.33 27.69l13.84-9.78a14 14 0 1116.16 22.87l-13.86 9.79q5.25 6.33 11.12 12.19c3.9 3.91 8 7.6 12.2 11.1l9.78-13.84A14 14 0 11367.32 203l-9.76 13.8a178.83 178.83 0 0027.68 13.33l4.76-16.28a14 14 0 0126.89 7.81l-4.73 16.26a177.72 177.72 0 0030.95 3.65l-.16-9a14 14 0 0113.75-14.24h.25a14.67 14.67 0 012.59.25 208 208 0 00-158-163.51c-.06.4-.04.76-.05 1.13zM208.44 457.55a16 16 0 0116.28-15.71l16.76.29a178.49 178.49 0 00-3.62-29.95l-16.26 4.72a14 14 0 11-7.81-26.9l16.21-4.7a177.92 177.92 0 00-13.33-27.68l-13.8 9.76a14 14 0 11-16.16-22.87l13.84-9.78c-3.5-4.22-7.19-8.3-11.1-12.2s-8-7.62-12.19-11.12l-9.79 13.86a14 14 0 11-22.87-16.16l9.78-13.84a177.16 177.16 0 00-27.69-13.33L122 298.21a14 14 0 11-26.9-7.81l4.73-16.29a177.32 177.32 0 00-26.31-3.44c-.89-.05-1.79-.08-2.68-.12l.16 10.59a16 16 0 01-15.71 16.28H55a16 16 0 01-3.94-.51 208 208 0 00157.65 163.87 15.72 15.72 0 01-.27-3.23z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 301.49,56.2 A 14,14 0 0 1 287.5,70 h -0.25 l -16.81,-0.3 c 0.05,1.31 0.1,2.62 0.17,3.93 a 178.83,178.83 0 0 0 3.44,26.31 l 16.29,-4.74 a 14,14 0 0 1 7.81,26.8 l -16.27,4.73 a 178.06,178.06 0 0 0 13.33,27.69 l 13.84,-9.78 a 14.001629,14.001629 0 1 1 16.16,22.87 l -13.86,9.79 q 5.25,6.33 11.12,12.19 c 3.9,3.91 8,7.6 12.2,11.1 l 9.78,-13.84 A 14.027646,14.027646 0 1 1 367.32,203 l -9.76,13.8 a 178.83,178.83 0 0 0 27.68,13.33 L 390,213.85 a 14.000609,14.000609 0 0 1 26.89,7.81 l -4.73,16.26 a 177.72,177.72 0 0 0 30.95,3.65 l -0.16,-9 a 14,14 0 0 1 13.75,-14.24 h 0.25 a 14.67,14.67 0 0 1 2.59,0.25 208,208 0 0 0 -158,-163.51 c -0.06,0.4 -0.04,0.76 -0.05,1.13 z m -93.05,401.35 a 16,16 0 0 1 16.28,-15.71 l 16.76,0.29 a 178.49,178.49 0 0 0 -3.62,-29.95 L 221.6,416.9 A 14.005411,14.005411 0 1 1 213.79,390 L 230,385.3 a 177.92,177.92 0 0 0 -13.33,-27.68 l -13.8,9.76 a 14.001629,14.001629 0 1 1 -16.16,-22.87 l 13.84,-9.78 c -3.5,-4.22 -7.19,-8.3 -11.1,-12.2 -3.91,-3.9 -8,-7.62 -12.19,-11.12 l -9.79,13.86 A 14.001629,14.001629 0 1 1 144.6,309.11 l 9.78,-13.84 A 177.16,177.16 0 0 0 126.69,281.94 L 122,298.21 A 14.005411,14.005411 0 1 1 95.1,290.4 l 4.73,-16.29 a 177.32,177.32 0 0 0 -26.31,-3.44 c -0.89,-0.05 -1.79,-0.08 -2.68,-0.12 L 71,281.14 A 16,16 0 0 1 55.29,297.42 H 55 a 16,16 0 0 1 -3.94,-0.51 208,208 0 0 0 157.65,163.87 15.72,15.72 0 0 1 -0.27,-3.23 z M 444,295.67 443.53,269.6 a 205.42,205.42 0 0 1 -39.27,-4.73 l -5,17.35 a 14,14 0 1 1 -26.88,-7.81 l 5,-17.38 a 206.47,206.47 0 0 1 -36.05,-17.35 l -10.44,14.77 a 14.001629,14.001629 0 0 1 -22.87,-16.16 l 10.41,-14.73 a 204.8,204.8 0 0 1 -30,-30 L 273.71,204 a 14.001629,14.001629 0 0 1 -16.16,-22.87 l 14.74,-10.42 a 205.3,205.3 0 0 1 -17.38,-36.06 l -17.32,5 a 14.000609,14.000609 0 1 1 -7.81,-26.89 l 17.3,-5 a 205.88,205.88 0 0 1 -4.43,-32.59 q -0.17,-3 -0.24,-6 L 224.19,68.84 A 14,14 0 0 1 210.45,54.84 208,208 0 0 0 55,202.42 16,16 0 0 1 70,218.08 l 0.44,24.43 c 1.58,0.05 3.16,0.11 4.73,0.2 a 205.88,205.88 0 0 1 32.59,4.43 l 5,-17.3 a 14.000609,14.000609 0 0 1 26.89,7.81 l -5,17.32 a 205.21,205.21 0 0 1 36,17.38 L 181,257.61 a 14.001629,14.001629 0 0 1 22.87,16.16 l -10.39,14.73 a 205.65,205.65 0 0 1 15.79,14.23 203.79,203.79 0 0 1 14.23,15.79 l 14.73,-10.41 A 14.009797,14.009797 0 0 1 254.39,331 l -14.76,10.43 A 206.86,206.86 0 0 1 257,377.47 l 17.38,-5.05 a 14.000609,14.000609 0 0 1 7.81,26.89 l -17.35,5 a 205.89,205.89 0 0 1 4.7,38.28 l 18.27,0.33 a 16,16 0 0 1 15.71,16.28 11.69,11.69 0 0 1 -0.08,1.19 A 208,208 0 0 0 456.83,309.36 14,14 0 0 1 444,295.67 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M424.11 192H360L268.8 70.4a16 16 0 00-25.6 0L152 192H87.89a32.57 32.57 0 00-32.62 32.44 30.3 30.3 0 001.31 9l46.27 163.14a50.72 50.72 0 0048.84 36.91h208.62a51.21 51.21 0 0049-36.86l46.33-163.36a15.62 15.62 0 00.46-2.36l.53-4.93a13.3 13.3 0 00.09-1.55A32.57 32.57 0 00424.11 192zM256 106.67L320 192H192zm0 245a37.7 37.7 0 1137.88-37.7A37.87 37.87 0 01256 351.63z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 424.11,192 H 360 L 268.8,70.4 a 16,16 0 0 0 -25.6,0 L 152,192 H 87.89 a 32.57,32.57 0 0 0 -32.62,32.44 30.3,30.3 0 0 0 1.31,9 l 46.27,163.14 a 50.72,50.72 0 0 0 48.84,36.91 h 208.62 a 51.21,51.21 0 0 0 49,-36.86 l 46.33,-163.36 a 15.62,15.62 0 0 0 0.46,-2.36 l 0.53,-4.93 a 13.3,13.3 0 0 0 0.09,-1.55 A 32.57,32.57 0 0 0 424.11,192 Z M 256,106.67 320,192 H 192 Z m 0,245 a 37.7,37.7 0 1 1 37.88,-37.7 37.87,37.87 0 0 1 -37.88,37.66 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M432 230.7a79.44 79.44 0 00-32-6.7H112a79.51 79.51 0 00-32 6.69A80.09 80.09 0 0032 304v112a16 16 0 0032 0v-8a8.1 8.1 0 018-8h368a8.1 8.1 0 018 8v8a16 16 0 0032 0V304a80.09 80.09 0 00-48-73.3zM376 80H136a56 56 0 00-56 56v72a4 4 0 005.11 3.84A95.5 95.5 0 01112 208h4.23a4 4 0 004-3.55A32 32 0 01152 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h24.46a4 4 0 004-3.55A32 32 0 01304 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h4.2a95.51 95.51 0 0126.89 3.85A4 4 0 00432 208v-72a56 56 0 00-56-56z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 432,230.7 A 79.44,79.44 0 0 0 400,224 H 112 A 79.51,79.51 0 0 0 80,230.69 80.09,80.09 0 0 0 32,304 v 112 a 16,16 0 0 0 32,0 v -8 a 8.1,8.1 0 0 1 8,-8 h 368 a 8.1,8.1 0 0 1 8,8 v 8 a 16,16 0 0 0 32,0 V 304 A 80.09,80.09 0 0 0 432,230.7 Z M 376,80 H 136 a 56,56 0 0 0 -56,56 v 72 a 4,4 0 0 0 5.11,3.84 A 95.5,95.5 0 0 1 112,208 h 4.23 a 4,4 0 0 0 4,-3.55 A 32,32 0 0 1 152,176 h 56 a 32,32 0 0 1 31.8,28.45 4,4 0 0 0 4,3.55 h 24.46 a 4,4 0 0 0 4,-3.55 A 32,32 0 0 1 304,176 h 56 a 32,32 0 0 1 31.8,28.45 4,4 0 0 0 4,3.55 h 4.2 a 95.51,95.51 0 0 1 26.89,3.85 A 4,4 0 0 0 432,208 V 136 A 56,56 0 0 0 376,80 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M440.08 341.31c-1.66-2-3.29-4-4.89-5.93-22-26.61-35.31-42.67-35.31-118 0-39-9.33-71-27.72-95-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 01-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.13 3.13 0 01-.81.65c-56.38 23.21-83.78 67.74-83.78 136.14 0 75.36-13.29 91.42-35.31 118-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 00-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H410.5c14.94 0 28-8.06 34.19-21a35.17 35.17 0 00-4.61-37.66zM256 480a80.06 80.06 0 0070.44-42.13 4 4 0 00-3.54-5.87H189.12a4 4 0 00-3.55 5.87A80.06 80.06 0 00256 480z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 440.08,341.31 c -1.66,-2 -3.29,-4 -4.89,-5.93 -22,-26.61 -35.31,-42.67 -35.31,-118 0,-39 -9.33,-71 -27.72,-95 C 358.6,104.65 340.27,91.2 316.11,81.26 a 3,3 0 0 1 -0.82,-0.67 C 306.6,51.49 282.82,32 256,32 229.18,32 205.41,51.49 196.72,80.56 a 3.13,3.13 0 0 1 -0.81,0.65 c -56.38,23.21 -83.78,67.74 -83.78,136.14 0,75.36 -13.29,91.42 -35.31,118 -1.6,1.93 -3.23,3.89 -4.89,5.93 a 35.16,35.16 0 0 0 -4.65,37.62 c 6.17,13 19.32,21.07 34.33,21.07 H 410.5 c 14.94,0 28,-8.06 34.19,-21 a 35.17,35.17 0 0 0 -4.61,-37.66 z M 256,480 A 80.06,80.06 0 0 0 326.44,437.87 4,4 0 0 0 322.9,432 H 189.12 a 4,4 0 0 0 -3.55,5.87 A 80.06,80.06 0 0 0 256,480 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M202.24 74C166.11 56.75 115.61 48.3 48 48a31.36 31.36 0 00-17.92 5.33A32 32 0 0016 79.9V366c0 19.34 13.76 33.93 32 33.93 71.07 0 142.36 6.64 185.06 47a4.11 4.11 0 006.94-3V106.82a15.89 15.89 0 00-5.46-12A143 143 0 00202.24 74zM481.92 53.3A31.33 31.33 0 00464 48c-67.61.3-118.11 8.71-154.24 26a143.31 143.31 0 00-32.31 20.78 15.93 15.93 0 00-5.45 12v337.13a3.93 3.93 0 006.68 2.81c25.67-25.5 70.72-46.82 185.36-46.81a32 32 0 0032-32v-288a32 32 0 00-14.12-26.61z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 202.24,74 C 166.11,56.75 115.61,48.3 48,48 A 31.36,31.36 0 0 0 30.08,53.33 32,32 0 0 0 16,79.9 V 366 c 0,19.34 13.76,33.93 32,33.93 71.07,0 142.36,6.64 185.06,47 a 4.11,4.11 0 0 0 6.94,-3 V 106.82 a 15.89,15.89 0 0 0 -5.46,-12 A 143,143 0 0 0 202.24,74 Z M 481.92,53.3 A 31.33,31.33 0 0 0 464,48 c -67.61,0.3 -118.11,8.71 -154.24,26 a 143.31,143.31 0 0 0 -32.31,20.78 15.93,15.93 0 0 0 -5.45,12 v 337.13 a 3.93,3.93 0 0 0 6.68,2.81 c 25.67,-25.5 70.72,-46.82 185.36,-46.81 a 32,32 0 0 0 32,-32 v -288 A 32,32 0 0 0 481.92,53.3 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M400 480a16 16 0 01-10.63-4L256 357.41 122.63 476A16 16 0 0196 464V96a64.07 64.07 0 0164-64h192a64.07 64.07 0 0164 64v368a16 16 0 01-16 16z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 400,480 a 16,16 0 0 1 -10.63,-4 L 256,357.41 122.63,476 A 16,16 0 0 1 96,464 V 96 a 64.07,64.07 0 0 1 64,-64 h 192 a 64.07,64.07 0 0 1 64,64 v 368 a 16,16 0 0 1 -16,16 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M336 80H176a16 16 0 00-16 16v16h192V96a16 16 0 00-16-16z" fill="none"/><path d="M496 176a64.07 64.07 0 00-64-64h-48V96a48.05 48.05 0 00-48-48H176a48.05 48.05 0 00-48 48v16H80a64.07 64.07 0 00-64 64v48h480zm-144-64H160V96a16 16 0 0116-16h160a16 16 0 0116 16zM336 264a24 24 0 01-24 24H200a24 24 0 01-24-24v-4a4 4 0 00-4-4H16v144a64 64 0 0064 64h352a64 64 0 0064-64V256H340a4 4 0 00-4 4z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 496,176 A 64.07,64.07 0 0 0 432,112 H 384 V 96 A 48.05,48.05 0 0 0 336,48 H 176 a 48.05,48.05 0 0 0 -48,48 v 16 H 80 a 64.07,64.07 0 0 0 -64,64 v 48 H 496 Z M 352,112 H 160 V 96 a 16,16 0 0 1 16,-16 h 160 a 16,16 0 0 1 16,16 z m -16,152 a 24,24 0 0 1 -24,24 H 200 a 24,24 0 0 1 -24,-24 v -4 a 4,4 0 0 0 -4,-4 H 16 v 144 a 64,64 0 0 0 64,64 h 352 a 64,64 0 0 0 64,-64 V 256 H 340 a 4,4 0 0 0 -4,4 z M 336,80 H 176 a 16,16 0 0 0 -16,16 v 16 H 352 V 96 A 16,16 0 0 0 336,80 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M233.15 360.11a15.7 15.7 0 01-4.92-.77 16 16 0 01-10.92-13c-2.15-15-19.95-32.46-36.62-35.85a16 16 0 01-8.69-26.33l211.09-235.1c.19-.22.39-.43.59-.63a56.57 56.57 0 0179.89 0 56.51 56.51 0 01.11 79.78l-219 227a16 16 0 01-11.53 4.9zM119.89 480.11c-32.14 0-65.45-16.89-84.85-43a16 16 0 0112.85-25.54c5.34 0 20-4.87 20-20.57 0-39.07 31.4-70.86 70-70.86s70 31.79 70 70.86c0 49.12-39.48 89.11-88 89.11z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 233.15,360.11 a 15.7,15.7 0 0 1 -4.92,-0.77 16,16 0 0 1 -10.92,-13 c -2.15,-15 -19.95,-32.46 -36.62,-35.85 A 16,16 0 0 1 172,284.16 L 383.09,49.06 c 0.19,-0.22 0.39,-0.43 0.59,-0.63 a 56.57,56.57 0 0 1 79.89,0 56.51,56.51 0 0 1 0.11,79.78 l -219,227 a 16,16 0 0 1 -11.53,4.9 z m -113.26,120 c -32.14,0 -65.45,-16.89 -84.85,-43 a 16,16 0 0 1 12.85,-25.54 c 5.34,0 20,-4.87 20,-20.57 0,-39.07 31.4,-70.86 70,-70.86 38.6,0 70,31.79 70,70.86 0,49.12 -39.48,89.11 -88,89.11 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M463.55 272.13H400v-48.2q0-4.32-.27-8.47c29.57-27.88 32.25-64.63 32.27-103 0-8.61-6.64-16-15.25-16.41A16 16 0 00400 112c0 28-1.86 48.15-9.9 63.84-19.22-41.15-65.78-63.91-134.1-63.91-39.8 0-74.19 9.13-99.43 26.39-14.9 10.19-26.2 22.91-33.7 37.72C114 160.65 112 141 112 112.46c0-8.61-6.6-16-15.2-16.44A16 16 0 0080 112c0 37.63 2.61 73.73 32.44 101.63q-.43 5.06-.44 10.3v48.2H48.45c-8.61 0-16 6.62-16.43 15.23a16 16 0 0016 16.77h64V320a143.32 143.32 0 0010.39 53.69C96.74 396.64 80.18 422 80 463.34c0 8.74 6.62 16.3 15.36 16.65A16 16 0 00112 464c0-27.66 9.1-44.71 26.17-61.32A144.37 144.37 0 00220 459.42a16 16 0 0020-15.49V192.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 192v251.93a16 16 0 0020 15.49 144.4 144.4 0 0081.82-56.74c17 16.54 26.09 33.52 26.17 60.95a16.27 16.27 0 0015.1 16.37A16 16 0 00432 464c0-41.68-16.6-67.23-42.39-90.31A143.32 143.32 0 00400 320v-15.87h64a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z"/><path d="M321.39 104l.32.09c13.57 3.8 25.07-10.55 18.2-22.85A95.86 95.86 0 00256.21 32h-.42a95.87 95.87 0 00-84.19 50.13c-6.84 12.58 5.14 27 18.84 22.86 19.71-6 41.79-9.06 65.56-9.06 24.09 0 46.09 2.72 65.39 8.07z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 321.39,104 0.32,0.09 c 13.57,3.8 25.07,-10.55 18.2,-22.85 A 95.86,95.86 0 0 0 256.21,32 h -0.42 A 95.87,95.87 0 0 0 171.6,82.13 c -6.84,12.58 5.14,27 18.84,22.86 19.71,-6 41.79,-9.06 65.56,-9.06 24.09,0 46.09,2.72 65.39,8.07 z M 463.55,272.13 H 400 v -48.2 q 0,-4.32 -0.27,-8.47 c 29.57,-27.88 32.25,-64.63 32.27,-103 0,-8.61 -6.64,-16 -15.25,-16.41 A 16,16 0 0 0 400,112 c 0,28 -1.86,48.15 -9.9,63.84 -19.22,-41.15 -65.78,-63.91 -134.1,-63.91 -39.8,0 -74.19,9.13 -99.43,26.39 -14.9,10.19 -26.2,22.91 -33.7,37.72 C 114,160.65 112,141 112,112.46 c 0,-8.61 -6.6,-16 -15.2,-16.44 A 16,16 0 0 0 80,112 c 0,37.63 2.61,73.73 32.44,101.63 q -0.43,5.06 -0.44,10.3 v 48.2 H 48.45 c -8.61,0 -16,6.62 -16.43,15.23 a 16,16 0 0 0 16,16.77 h 64 V 320 a 143.32,143.32 0 0 0 10.39,53.69 C 96.74,396.64 80.18,422 80,463.34 c 0,8.74 6.62,16.3 15.36,16.65 A 16,16 0 0 0 112,464 c 0,-27.66 9.1,-44.71 26.17,-61.32 A 144.37,144.37 0 0 0 220,459.42 16,16 0 0 0 240,443.93 V 192.45 c 0,-8.61 6.62,-16 15.23,-16.43 A 16,16 0 0 1 272,192 v 251.93 a 16,16 0 0 0 20,15.49 144.4,144.4 0 0 0 81.82,-56.74 c 17,16.54 26.09,33.52 26.17,60.95 A 16.27,16.27 0 0 0 415.09,480 16,16 0 0 0 432,464 c 0,-41.68 -16.6,-67.23 -42.39,-90.31 A 143.32,143.32 0 0 0 400,320 v -15.87 h 64 a 16,16 0 0 0 16,-16.77 c -0.42,-8.61 -7.84,-15.23 -16.45,-15.23 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M469.54 120.52a16 16 0 00-25.54-4L382.56 178a16.12 16.12 0 01-22.63 0l-26.56-26.6a16 16 0 010-22.63l61.18-61.19a16 16 0 00-4.78-25.92C343.56 21 285.88 31.78 249.51 67.88c-30.9 30.68-40.11 78.62-25.25 131.53a15.89 15.89 0 01-4.49 16L53.29 367.46a64.17 64.17 0 1090.6 90.64l153.68-166.85a15.9 15.9 0 0115.77-4.57 179.3 179.3 0 0046.22 6.37c33.4 0 62.71-10.81 83.85-31.64 39.15-38.57 45.12-103.99 26.13-140.89zM99.48 447.15a32 32 0 1128.34-28.35 32 32 0 01-28.34 28.35z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 469.54,120.52 a 16,16 0 0 0 -25.54,-4 L 382.56,178 a 16.12,16.12 0 0 1 -22.63,0 l -26.56,-26.6 a 16,16 0 0 1 0,-22.63 L 394.55,67.58 A 16,16 0 0 0 389.77,41.66 C 343.56,21 285.88,31.78 249.51,67.88 218.61,98.56 209.4,146.5 224.26,199.41 a 15.89,15.89 0 0 1 -4.49,16 L 53.29,367.46 a 64.17,64.17 0 1 0 90.6,90.64 L 297.57,291.25 a 15.9,15.9 0 0 1 15.77,-4.57 179.3,179.3 0 0 0 46.22,6.37 c 33.4,0 62.71,-10.81 83.85,-31.64 39.15,-38.57 45.12,-103.99 26.13,-140.89 z M 99.48,447.15 a 32,32 0 1 1 28.34,-28.35 32,32 0 0 1 -28.34,28.35 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M432 64H96a16 16 0 00-16 16v192a96.11 96.11 0 0096 96h112a96.11 96.11 0 0096-96v-80h18a62.07 62.07 0 0062-62V96a32 32 0 00-32-32zm0 66a30 30 0 01-30 30h-18V96h48zM400 400H64a16 16 0 000 32h336a16 16 0 000-32z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 432,64 H 96 A 16,16 0 0 0 80,80 v 192 a 96.11,96.11 0 0 0 96,96 h 112 a 96.11,96.11 0 0 0 96,-96 v -80 h 18 a 62.07,62.07 0 0 0 62,-62 V 96 A 32,32 0 0 0 432,64 Z m 0,66 a 30,30 0 0 1 -30,30 H 384 V 96 h 48 z M 400,400 H 64 a 16,16 0 0 0 0,32 h 336 a 16,16 0 0 0 0,-32 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M391 480c-19.52 0-46.94-7.06-88-30-49.93-28-88.55-53.85-138.21-103.38C116.91 298.77 93.61 267.79 61 208.45c-36.84-67-30.56-102.12-23.54-117.13C45.82 73.38 58.16 62.65 74.11 52a176.3 176.3 0 0128.64-15.2c1-.43 1.93-.84 2.76-1.21 4.95-2.23 12.45-5.6 21.95-2 6.34 2.38 12 7.25 20.86 16 18.17 17.92 43 57.83 52.16 77.43 6.15 13.21 10.22 21.93 10.23 31.71 0 11.45-5.76 20.28-12.75 29.81-1.31 1.79-2.61 3.5-3.87 5.16-7.61 10-9.28 12.89-8.18 18.05 2.23 10.37 18.86 41.24 46.19 68.51s57.31 42.85 67.72 45.07c5.38 1.15 8.33-.59 18.65-8.47 1.48-1.13 3-2.3 4.59-3.47 10.66-7.93 19.08-13.54 30.26-13.54h.06c9.73 0 18.06 4.22 31.86 11.18 18 9.08 59.11 33.59 77.14 51.78 8.77 8.84 13.66 14.48 16.05 20.81 3.6 9.53.21 17-2 22-.37.83-.78 1.74-1.21 2.75a176.49 176.49 0 01-15.29 28.58c-10.63 15.9-21.4 28.21-39.38 36.58A67.42 67.42 0 01391 480z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 391,480 c -19.52,0 -46.94,-7.06 -88,-30 C 253.07,422 214.45,396.15 164.79,346.62 116.91,298.77 93.61,267.79 61,208.45 24.16,141.45 30.44,106.33 37.46,91.32 45.82,73.38 58.16,62.65 74.11,52 a 176.3,176.3 0 0 1 28.64,-15.2 c 1,-0.43 1.93,-0.84 2.76,-1.21 4.95,-2.23 12.45,-5.6 21.95,-2 6.34,2.38 12,7.25 20.86,16 18.17,17.92 43,57.83 52.16,77.43 6.15,13.21 10.22,21.93 10.23,31.71 0,11.45 -5.76,20.28 -12.75,29.81 -1.31,1.79 -2.61,3.5 -3.87,5.16 -7.61,10 -9.28,12.89 -8.18,18.05 2.23,10.37 18.86,41.24 46.19,68.51 27.33,27.27 57.31,42.85 67.72,45.07 5.38,1.15 8.33,-0.59 18.65,-8.47 1.48,-1.13 3,-2.3 4.59,-3.47 10.66,-7.93 19.08,-13.54 30.26,-13.54 h 0.06 c 9.73,0 18.06,4.22 31.86,11.18 18,9.08 59.11,33.59 77.14,51.78 8.77,8.84 13.66,14.48 16.05,20.81 3.6,9.53 0.21,17 -2,22 -0.37,0.83 -0.78,1.74 -1.21,2.75 a 176.49,176.49 0 0 1 -15.29,28.58 c -10.63,15.9 -21.4,28.21 -39.38,36.58 A 67.42,67.42 0 0 1 391,480 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M32 376a56 56 0 0056 56h336a56 56 0 0056-56V222H32zm66-76a30 30 0 0130-30h48a30 30 0 0130 30v20a30 30 0 01-30 30h-48a30 30 0 01-30-30zM424 80H88a56 56 0 00-56 56v26h448v-26a56 56 0 00-56-56z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 32,376 a 56,56 0 0 0 56,56 h 336 a 56,56 0 0 0 56,-56 V 222 H 32 Z m 66,-76 a 30,30 0 0 1 30,-30 h 48 a 30,30 0 0 1 30,30 v 20 a 30,30 0 0 1 -30,30 H 128 A 30,30 0 0 1 98,320 Z M 424,80 H 88 a 56,56 0 0 0 -56,56 v 26 H 480 V 136 A 56,56 0 0 0 424,80 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M398 81.84A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l.19.27c.28.41.57.82.86 1.22s.65.92.73 1.05l.22.4c1.13 2 2 4.44 1.23 6.9l-18.42 66.66a29.13 29.13 0 00-1.2 7.63A25.69 25.69 0 0076.83 480a29.44 29.44 0 0010.45-2.29l67.49-24.36.85-.33a14.75 14.75 0 015.8-1.15 15.12 15.12 0 015.37 1c1.62.63 16.33 6.26 31.85 10.6 12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-45c-10.34-48.62-37.76-92.9-77.22-124.65zM87.48 380zM160 288a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 398,81.84 A 227.4,227.4 0 0 0 255.82,32 C 194.9,32 138,55.47 95.46,98.09 54.35,139.33 31.82,193.78 32,251.37 a 215.66,215.66 0 0 0 35.65,118.76 l 0.19,0.27 c 0.28,0.41 0.57,0.82 0.86,1.22 0.29,0.4 0.65,0.92 0.73,1.05 l 0.22,0.4 c 1.13,2 2,4.44 1.23,6.9 l -18.42,66.66 a 29.13,29.13 0 0 0 -1.2,7.63 25.69,25.69 0 0 0 25.57,25.74 29.44,29.44 0 0 0 10.45,-2.29 l 67.49,-24.36 0.85,-0.33 a 14.75,14.75 0 0 1 5.8,-1.15 15.12,15.12 0 0 1 5.37,1 c 1.62,0.63 16.33,6.26 31.85,10.6 12.9,3.6 39.74,9 60.77,9 59.65,0 115.35,-23.1 156.83,-65.06 C 457.36,365.77 480,310.42 480,251.49 a 213.5,213.5 0 0 0 -4.78,-45 C 464.88,157.87 437.46,113.59 398,81.84 Z M 87.48,380 Z M 160,288 a 32,32 0 1 1 32,-32 32,32 0 0 1 -32,32 z m 96,0 a 32,32 0 1 1 32,-32 32,32 0 0 1 -32,32 z m 96,0 a 32,32 0 1 1 32,-32 32,32 0 0 1 -32,32 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M400 48H112a64.07 64.07 0 00-64 64v288a64.07 64.07 0 0064 64h288a64.07 64.07 0 0064-64V112a64.07 64.07 0 00-64-64zm-35.75 138.29l-134.4 160a16 16 0 01-12 5.71h-.27a16 16 0 01-11.89-5.3l-57.6-64a16 16 0 1123.78-21.4l45.29 50.32 122.59-145.91a16 16 0 0124.5 20.58z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 400,48 H 112 a 64.07,64.07 0 0 0 -64,64 v 288 a 64.07,64.07 0 0 0 64,64 h 288 a 64.07,64.07 0 0 0 64,-64 V 112 A 64.07,64.07 0 0 0 400,48 Z m -35.75,138.29 -134.4,160 a 16,16 0 0 1 -12,5.71 h -0.27 a 16,16 0 0 1 -11.89,-5.3 l -57.6,-64 a 16,16 0 1 1 23.78,-21.4 l 45.29,50.32 122.59,-145.91 a 16,16 0 0 1 24.5,20.58 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 256,464 C 141.31,464 48,370.69 48,256 48,141.31 141.31,48 256,48 c 114.69,0 208,93.31 208,208 0,114.69 -93.31,208 -208,208 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M396 432H136c-36.44 0-70.36-12.57-95.51-35.41C14.38 372.88 0 340 0 304c0-36.58 13.39-68.12 38.72-91.22 18.11-16.53 42.22-28.25 69.18-33.87a16 16 0 0011.37-9.15 156.24 156.24 0 0142.05-56C187.76 91.69 220.5 80 256 80a153.57 153.57 0 01107.14 42.9c24.73 23.81 41.5 55.28 49.18 92a16 16 0 0012.12 12.39C470 237.42 512 270.43 512 328c0 33.39-12.24 60.78-35.41 79.23C456.23 423.43 428.37 432 396 432z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 396,432 H 136 C 99.56,432 65.64,419.43 40.49,396.59 14.38,372.88 0,340 0,304 0,267.42 13.39,235.88 38.72,212.78 56.83,196.25 80.94,184.53 107.9,178.91 a 16,16 0 0 0 11.37,-9.15 156.24,156.24 0 0 1 42.05,-56 C 187.76,91.69 220.5,80 256,80 a 153.57,153.57 0 0 1 107.14,42.9 c 24.73,23.81 41.5,55.28 49.18,92 a 16,16 0 0 0 12.12,12.39 C 470,237.42 512,270.43 512,328 c 0,33.39 -12.24,60.78 -35.41,79.23 C 456.23,423.43 428.37,432 396,432 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M160 389a20.91 20.91 0 01-13.82-5.2l-128-112a21 21 0 010-31.6l128-112a21 21 0 0127.66 31.61L63.89 256l109.94 96.19A21 21 0 01160 389zM352 389a21 21 0 01-13.84-36.81L448.11 256l-109.94-96.19a21 21 0 0127.66-31.61l128 112a21 21 0 010 31.6l-128 112A20.89 20.89 0 01352 389z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 160,389 a 20.91,20.91 0 0 1 -13.82,-5.2 l -128,-112 a 21,21 0 0 1 0,-31.6 l 128,-112 a 21.001593,21.001593 0 0 1 27.66,31.61 L 63.89,256 173.83,352.19 A 21,21 0 0 1 160,389 Z m 192,0 A 21,21 0 0 1 338.16,352.19 L 448.11,256 338.17,159.81 a 21.001593,21.001593 0 0 1 27.66,-31.61 l 128,112 a 21,21 0 0 1 0,31.6 l -128,112 A 20.89,20.89 0 0 1 352,389 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M256 428c-52.35 0-111.39-11.61-157.93-31-17.07-7.19-31.69-18.82-43.64-28a4 4 0 00-6.43 3.18v12.58c0 28.07 23.49 53.22 66.14 70.82C152.29 471.33 202.67 480 256 480s103.7-8.67 141.86-24.42C440.51 438 464 412.83 464 384.76v-12.58a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 28-46.54 19.39-105.57 31-157.92 31zM464 126.51c-.81-27.65-24.18-52.4-66-69.85C359.74 40.76 309.34 32 256 32s-103.74 8.76-141.91 24.66c-41.78 17.41-65.15 42.11-66 69.69L48 144c0 6.41 5.2 16.48 14.63 24.73 11.13 9.73 27.65 19.33 47.78 27.73C153.24 214.36 207.67 225 256 225s102.76-10.68 145.59-28.58c20.13-8.4 36.65-18 47.78-27.73C458.8 160.49 464 150.42 464 144z"/><path d="M413.92 226c-46.53 19.43-105.57 31-157.92 31s-111.39-11.57-157.93-31c-17.07-7.15-31.69-18.79-43.64-28a4 4 0 00-6.43 3.22V232c0 6.41 5.2 14.48 14.63 22.73 11.13 9.74 27.65 19.33 47.78 27.74C153.24 300.34 207.67 311 256 311s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 246.47 464 238.41 464 232v-30.78a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.96z"/><path d="M413.92 312c-46.54 19.41-105.57 31-157.92 31s-111.39-11.59-157.93-31c-17.07-7.17-31.69-18.81-43.64-28a4 4 0 00-6.43 3.2V317c0 6.41 5.2 14.47 14.62 22.71 11.13 9.74 27.66 19.33 47.79 27.74C153.24 385.32 207.66 396 256 396s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 331.44 464 323.37 464 317v-29.8a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.98z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 413.92,312 C 367.38,331.41 308.35,343 256,343 203.65,343 144.61,331.41 98.07,312 81,304.83 66.38,293.19 54.43,284 A 4,4 0 0 0 48,287.2 V 317 c 0,6.41 5.2,14.47 14.62,22.71 11.13,9.74 27.66,19.33 47.79,27.74 42.83,17.87 97.25,28.55 145.59,28.55 48.34,0 102.76,-10.68 145.59,-28.57 20.13,-8.41 36.65,-18 47.78,-27.74 C 458.8,331.44 464,323.37 464,317 v -29.8 a 4,4 0 0 0 -6.43,-3.18 C 445.62,293.19 431,304.83 413.92,312 Z m 0,-86 C 367.39,245.43 308.35,257 256,257 203.65,257 144.61,245.43 98.07,226 81,218.85 66.38,207.21 54.43,198 A 4,4 0 0 0 48,201.22 V 232 c 0,6.41 5.2,14.48 14.63,22.73 11.13,9.74 27.65,19.33 47.78,27.74 42.83,17.87 97.26,28.53 145.59,28.53 48.33,0 102.76,-10.68 145.59,-28.57 20.13,-8.41 36.65,-18 47.78,-27.74 C 458.8,246.47 464,238.41 464,232 v -30.78 a 4,4 0 0 0 -6.43,-3.18 C 445.62,207.21 431,218.85 413.92,226 Z M 256,428 C 203.65,428 144.61,416.39 98.07,397 81,389.81 66.38,378.18 54.43,369 A 4,4 0 0 0 48,372.18 v 12.58 c 0,28.07 23.49,53.22 66.14,70.82 C 152.29,471.33 202.67,480 256,480 309.33,480 359.7,471.33 397.86,455.58 440.51,438 464,412.83 464,384.76 V 372.18 A 4,4 0 0 0 457.57,369 C 445.62,378.17 431,389.81 413.92,397 367.38,416.39 308.35,428 256,428 Z M 464,126.51 C 463.19,98.86 439.82,74.11 398,56.66 359.74,40.76 309.34,32 256,32 202.66,32 152.26,40.76 114.09,56.66 72.31,74.07 48.94,98.77 48.09,126.35 L 48,144 c 0,6.41 5.2,16.48 14.63,24.73 11.13,9.73 27.65,19.33 47.78,27.73 42.83,17.9 97.26,28.54 145.59,28.54 48.33,0 102.76,-10.68 145.59,-28.58 20.13,-8.4 36.65,-18 47.78,-27.73 C 458.8,160.49 464,150.42 464,144 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M503.58 126.2a16.85 16.85 0 00-27.07-4.55l-51.15 51.15a11.15 11.15 0 01-15.66 0l-22.48-22.48a11.17 11.17 0 010-15.67l50.88-50.89a16.85 16.85 0 00-5.27-27.4c-39.71-17-89.08-7.45-120 23.29-26.81 26.61-34.83 68-22 113.7a11 11 0 01-3.16 11.1L114.77 365.1a56.76 56.76 0 1080.14 80.18L357 272.08a11 11 0 0110.9-3.17c45 12 86 4 112.43-22 15.2-15 25.81-36.17 29.89-59.71 3.83-22.2 1.41-44.44-6.64-61z"/><path d="M437.33 378.41c-13.94-11.59-43.72-38.4-74.07-66.22l-66.07 70.61c28.24 30 53.8 57.85 65 70.88l.07.08A30 30 0 00383.72 464h1.1a30.11 30.11 0 0021-8.62l.07-.07 33.43-33.37a29.46 29.46 0 00-2-43.53zM118.54 214.55a20.48 20.48 0 00-3-10.76 2.76 2.76 0 012.62-4.22h.06c.84.09 5.33.74 11.7 4.61 4.73 2.87 18.23 12.08 41.73 35.54a34.23 34.23 0 007.22 22.12l66.23-61.55a33.73 33.73 0 00-21.6-9.2 2.65 2.65 0 01-.21-.26l-.65-.69-24.54-33.84a28.45 28.45 0 01-4-26.11 35.23 35.23 0 0111.78-16.35c5.69-4.41 18.53-9.72 29.44-10.62a52.92 52.92 0 0115.19.94 65.57 65.57 0 017.06 2.13 15.46 15.46 0 002.15.63 16 16 0 0016.38-25.06c-.26-.35-1.32-1.79-2.89-3.73a91.85 91.85 0 00-9.6-10.36c-8.15-7.36-29.27-19.77-57-19.77a123.13 123.13 0 00-46.3 9c-38.37 15.45-63.47 36.58-75.01 47.79l-.09.09A222.14 222.14 0 0063.7 129.5a27 27 0 00-4.7 11.77 7.33 7.33 0 01-7.71 6.17H50.2a20.65 20.65 0 00-14.59 5.9L6.16 182.05l-.32.32a20.89 20.89 0 00-.24 28.72c.19.2.37.39.57.58L53.67 258a21 21 0 0014.65 6 20.65 20.65 0 0014.59-5.9l29.46-28.79a20.51 20.51 0 006.17-14.76z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 437.33,378.41 c -13.94,-11.59 -43.72,-38.4 -74.07,-66.22 l -66.07,70.61 c 28.24,30 53.8,57.85 65,70.88 l 0.07,0.08 A 30,30 0 0 0 383.72,464 h 1.1 a 30.11,30.11 0 0 0 21,-8.62 l 0.07,-0.07 33.43,-33.37 a 29.46,29.46 0 0 0 -2,-43.53 z M 118.54,214.55 a 20.48,20.48 0 0 0 -3,-10.76 2.76,2.76 0 0 1 2.62,-4.22 h 0.06 c 0.84,0.09 5.33,0.74 11.7,4.61 4.73,2.87 18.23,12.08 41.73,35.54 a 34.23,34.23 0 0 0 7.22,22.12 l 66.23,-61.55 a 33.73,33.73 0 0 0 -21.6,-9.2 2.65,2.65 0 0 1 -0.21,-0.26 l -0.65,-0.69 -24.54,-33.84 a 28.45,28.45 0 0 1 -4,-26.11 35.23,35.23 0 0 1 11.78,-16.35 c 5.69,-4.41 18.53,-9.72 29.44,-10.62 a 52.92,52.92 0 0 1 15.19,0.94 65.57,65.57 0 0 1 7.06,2.13 15.46,15.46 0 0 0 2.15,0.63 16,16 0 0 0 16.38,-25.06 c -0.26,-0.35 -1.32,-1.79 -2.89,-3.73 a 91.85,91.85 0 0 0 -9.6,-10.36 C 255.46,60.41 234.34,48 206.61,48 a 123.13,123.13 0 0 0 -46.3,9 C 121.94,72.45 96.84,93.58 85.3,104.79 l -0.09,0.09 A 222.14,222.14 0 0 0 63.7,129.5 27,27 0 0 0 59,141.27 7.33,7.33 0 0 1 51.29,147.44 H 50.2 a 20.65,20.65 0 0 0 -14.59,5.9 L 6.16,182.05 5.84,182.37 A 20.89,20.89 0 0 0 5.6,211.09 c 0.19,0.2 0.37,0.39 0.57,0.58 L 53.67,258 a 21,21 0 0 0 14.65,6 20.65,20.65 0 0 0 14.59,-5.9 l 29.46,-28.79 a 20.51,20.51 0 0 0 6.17,-14.76 z M 503.58,126.2 a 16.85,16.85 0 0 0 -27.07,-4.55 l -51.15,51.15 a 11.15,11.15 0 0 1 -15.66,0 l -22.48,-22.48 a 11.17,11.17 0 0 1 0,-15.67 L 438.1,83.76 a 16.85,16.85 0 0 0 -5.27,-27.4 c -39.71,-17 -89.08,-7.45 -120,23.29 -26.81,26.61 -34.83,68 -22,113.7 a 11,11 0 0 1 -3.16,11.1 L 114.77,365.1 a 56.76,56.76 0 1 0 80.14,80.18 L 357,272.08 a 11,11 0 0 1 10.9,-3.17 c 45,12 86,4 112.43,-22 15.2,-15 25.81,-36.17 29.89,-59.71 3.83,-22.2 1.41,-44.44 -6.64,-61 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M357.57 223.94a79.48 79.48 0 0056.58-23.44l77-76.95c6.09-6.09 6.65-16 .85-22.39a16 16 0 00-23.17-.56l-68.63 68.58a12.29 12.29 0 01-17.37 0c-4.79-4.78-4.53-12.86.25-17.64l68.33-68.33a16 16 0 00-.56-23.16A15.62 15.62 0 00440.27 56a16.71 16.71 0 00-11.81 4.9l-68.27 68.26a12.29 12.29 0 01-17.37 0c-4.78-4.78-4.53-12.86.25-17.64l68.33-68.31a16 16 0 00-.56-23.16A15.62 15.62 0 00400.26 16a16.73 16.73 0 00-11.81 4.9L311.5 97.85a79.49 79.49 0 00-23.44 56.59v8.23a16 16 0 01-4.69 11.33l-35.61 35.62a4 4 0 01-5.66 0L68.82 36.33a16 16 0 00-22.58-.06C31.09 51.28 23 72.47 23 97.54c-.1 41.4 21.66 89 56.79 124.08l85.45 85.45A64.79 64.79 0 00211 326a64 64 0 0016.21-2.08 16.24 16.24 0 014.07-.53 15.93 15.93 0 0110.83 4.25l11.39 10.52a16.12 16.12 0 014.6 11.23v5.54a47.73 47.73 0 0013.77 33.65l90.05 91.57.09.1a53.29 53.29 0 0075.36-75.37L302.39 269.9a4 4 0 010-5.66L338 228.63a16 16 0 0111.32-4.69z"/><path d="M211 358a97.32 97.32 0 01-68.36-28.25l-13.86-13.86a8 8 0 00-11.3 0l-85 84.56c-15.15 15.15-20.56 37.45-13.06 59.29a30.63 30.63 0 001.49 3.6C31 484 50.58 496 72 496a55.68 55.68 0 0039.64-16.44L225 365.66a4.69 4.69 0 001.32-3.72v-.26a4.63 4.63 0 00-5.15-4.27A97.09 97.09 0 01211 358z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 211,358 a 97.32,97.32 0 0 1 -68.36,-28.25 l -13.86,-13.86 a 8,8 0 0 0 -11.3,0 l -85,84.56 C 17.33,415.6 11.92,437.9 19.42,459.74 a 30.63,30.63 0 0 0 1.49,3.6 C 31,484 50.58,496 72,496 a 55.68,55.68 0 0 0 39.64,-16.44 L 225,365.66 a 4.69,4.69 0 0 0 1.32,-3.72 v -0.26 A 4.63,4.63 0 0 0 221.17,357.41 97.09,97.09 0 0 1 211,358 Z M 357.57,223.94 a 79.48,79.48 0 0 0 56.58,-23.44 l 77,-76.95 c 6.09,-6.09 6.65,-16 0.85,-22.39 a 16,16 0 0 0 -23.17,-0.56 l -68.63,68.58 a 12.29,12.29 0 0 1 -17.37,0 c -4.79,-4.78 -4.53,-12.86 0.25,-17.64 L 451.41,83.21 A 16,16 0 0 0 450.85,60.05 15.62,15.62 0 0 0 440.27,56 16.71,16.71 0 0 0 428.46,60.9 l -68.27,68.26 a 12.29,12.29 0 0 1 -17.37,0 c -4.78,-4.78 -4.53,-12.86 0.25,-17.64 L 411.4,43.21 A 16,16 0 0 0 410.84,20.05 15.62,15.62 0 0 0 400.26,16 16.73,16.73 0 0 0 388.45,20.9 L 311.5,97.85 a 79.49,79.49 0 0 0 -23.44,56.59 v 8.23 A 16,16 0 0 1 283.37,174 l -35.61,35.62 a 4,4 0 0 1 -5.66,0 L 68.82,36.33 A 16,16 0 0 0 46.24,36.27 C 31.09,51.28 23,72.47 23,97.54 c -0.1,41.4 21.66,89 56.79,124.08 l 85.45,85.45 A 64.79,64.79 0 0 0 211,326 a 64,64 0 0 0 16.21,-2.08 16.24,16.24 0 0 1 4.07,-0.53 15.93,15.93 0 0 1 10.83,4.25 l 11.39,10.52 a 16.12,16.12 0 0 1 4.6,11.23 v 5.54 a 47.73,47.73 0 0 0 13.77,33.65 l 90.05,91.57 0.09,0.1 a 53.291103,53.291103 0 0 0 75.36,-75.37 L 302.39,269.9 a 4,4 0 0 1 0,-5.66 L 338,228.63 a 16,16 0 0 1 11.32,-4.69 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M256 480c-52.57 0-96.72-17.54-127.7-50.73C96.7 395.4 80 346.05 80 286.55 80 230.5 101.48 168 138.93 115 175.65 63 219.41 32 256 32s80.35 31 117.07 83C410.52 168 432 230.5 432 286.55c0 59.5-16.7 108.85-48.3 142.72C352.72 462.46 308.57 480 256 480z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 256,480 C 203.43,480 159.28,462.46 128.3,429.27 96.7,395.4 80,346.05 80,286.55 80,230.5 101.48,168 138.93,115 175.65,63 219.41,32 256,32 c 36.59,0 80.35,31 117.07,83 37.45,53 58.93,115.5 58.93,171.55 0,59.5 -16.7,108.85 -48.3,142.72 C 352.72,462.46 308.57,480 256,480 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M345.14 480H274a18 18 0 01-18-18v-27.71a31.32 31.32 0 00-9.71-22.77c-7.78-7.59-19.08-11.8-30.89-11.51-21.36.5-39.4 19.3-39.4 41.06V462a18 18 0 01-18 18H87.62A55.62 55.62 0 0132 424.38V354a18 18 0 0118-18h27.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0012.2-29.92C114.7 273.89 97.26 256 76.91 256H50a18 18 0 01-18-18v-70.38A55.62 55.62 0 0187.62 112h55.24a8 8 0 008-8v-6.48A65.53 65.53 0 01217.54 32c35.49.62 64.36 30.38 64.36 66.33V104a8 8 0 008 8h55.24A54.86 54.86 0 01400 166.86v55.24a8 8 0 008 8h5.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H408a8 8 0 00-8 8v56A54.86 54.86 0 01345.14 480z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 345.14,480 H 274 a 18,18 0 0 1 -18,-18 v -27.71 a 31.32,31.32 0 0 0 -9.71,-22.77 c -7.78,-7.59 -19.08,-11.8 -30.89,-11.51 -21.36,0.5 -39.4,19.3 -39.4,41.06 V 462 a 18,18 0 0 1 -18,18 H 87.62 A 55.62,55.62 0 0 1 32,424.38 V 354 a 18,18 0 0 1 18,-18 h 27.71 c 9.16,0 18.07,-3.92 25.09,-11 A 42.06,42.06 0 0 0 115,295.08 C 114.7,273.89 97.26,256 76.91,256 H 50 A 18,18 0 0 1 32,238 V 167.62 A 55.62,55.62 0 0 1 87.62,112 h 55.24 a 8,8 0 0 0 8,-8 V 97.52 A 65.53,65.53 0 0 1 217.54,32 c 35.49,0.62 64.36,30.38 64.36,66.33 V 104 a 8,8 0 0 0 8,8 h 55.24 A 54.86,54.86 0 0 1 400,166.86 v 55.24 a 8,8 0 0 0 8,8 h 5.66 c 36.58,0 66.34,29 66.34,64.64 0,36.61 -29.39,66.4 -65.52,66.4 H 408 a 8,8 0 0 0 -8,8 v 56 A 54.86,54.86 0 0 1 345.14,480 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><circle cx="256" cy="256" r="64"/><path d="M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96c-42.52 0-84.33 12.15-124.27 36.11-40.73 24.43-77.63 60.12-109.68 106.07a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416c46.71 0 93.81-14.43 136.2-41.72 38.46-24.77 72.72-59.66 99.08-100.92a32.2 32.2 0 00-.1-34.76zM256 352a96 96 0 1196-96 96.11 96.11 0 01-96 96z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 490.84,238.6 C 464.38,197.68 430.05,162.92 391.57,138.07 349,110.55 302,96 255.66,96 213.14,96 171.33,108.15 131.39,132.11 90.66,156.54 53.76,192.23 21.71,238.18 a 31.92,31.92 0 0 0 -0.64,35.54 c 26.41,41.33 60.4,76.14 98.28,100.65 C 162,402 207.9,416 255.66,416 c 46.71,0 93.81,-14.43 136.2,-41.72 38.46,-24.77 72.72,-59.66 99.08,-100.92 a 32.2,32.2 0 0 0 -0.1,-34.76 z M 256,352 a 96,96 0 1 1 96,-96 96.11,96.11 0 0 1 -96,96 z m 64,-96 a 64,64 0 0 1 -64,64 64,64 0 0 1 -64,-64 64,64 0 0 1 64,-64 64,64 0 0 1 64,64 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M368 128h.09M479.55 96h-91.06l8.92-35.66 38.32-13.05c8.15-2.77 13-11.43 10.65-19.71a16 16 0 00-20.54-10.73l-47 16a16 16 0 00-10.36 11.27L355.51 96H224.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00224 128h2.75l1 8.66A8.3 8.3 0 00236 144c39 0 73.66 10.9 100.12 31.52A121.9 121.9 0 01371 218.07a123.4 123.4 0 0110.12 29.51 7.83 7.83 0 003.29 4.88 72 72 0 0126.38 86.43 7.92 7.92 0 00-.15 5.53A96 96 0 01416 376c0 22.34-7.6 43.63-21.4 59.95a80.12 80.12 0 01-28.78 21.67 8 8 0 00-4.21 4.37 108.19 108.19 0 01-17.37 29.86 2.5 2.5 0 001.9 4.11h49.21a48.22 48.22 0 0047.85-44.14L477.4 128h2.6a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z"/><path d="M108.69 320a23.87 23.87 0 0117 7l15.51 15.51a4 4 0 005.66 0L162.34 327a23.87 23.87 0 0117-7h196.58a8 8 0 008.08-7.92V312a40.07 40.07 0 00-32-39.2c-.82-29.69-13-54.54-35.51-72C295.67 184.56 267.85 176 236 176h-72c-68.22 0-114.43 38.77-116 96.8A40.07 40.07 0 0016 312a8 8 0 008 8zM185.94 352a8 8 0 00-5.66 2.34l-22.14 22.15a20 20 0 01-28.28 0l-22.14-22.15a8 8 0 00-5.66-2.34h-69.4a15.93 15.93 0 00-15.76 13.17A65.22 65.22 0 0016 376c0 30.59 21.13 55.51 47.26 56 2.43 15.12 8.31 28.78 17.16 39.47C93.51 487.28 112.54 496 134 496h132c21.46 0 40.49-8.72 53.58-24.55 8.85-10.69 14.73-24.35 17.16-39.47 26.13-.47 47.26-25.39 47.26-56a65.22 65.22 0 00-.9-10.83A15.93 15.93 0 00367.34 352z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 108.69,320 a 23.87,23.87 0 0 1 17,7 l 15.51,15.51 a 4,4 0 0 0 5.66,0 L 162.34,327 a 23.87,23.87 0 0 1 17,-7 H 375.92 A 8,8 0 0 0 384,312.08 V 312 a 40.07,40.07 0 0 0 -32,-39.2 c -0.82,-29.69 -13,-54.54 -35.51,-72 C 295.67,184.56 267.85,176 236,176 H 164 C 95.78,176 49.57,214.77 48,272.8 a 40.07,40.07 0 0 0 -32,39.2 8,8 0 0 0 8,8 z m 77.25,32 a 8,8 0 0 0 -5.66,2.34 l -22.14,22.15 a 20,20 0 0 1 -28.28,0 L 107.72,354.34 A 8,8 0 0 0 102.06,352 H 32.66 A 15.93,15.93 0 0 0 16.9,365.17 65.22,65.22 0 0 0 16,376 c 0,30.59 21.13,55.51 47.26,56 2.43,15.12 8.31,28.78 17.16,39.47 C 93.51,487.28 112.54,496 134,496 h 132 c 21.46,0 40.49,-8.72 53.58,-24.55 8.85,-10.69 14.73,-24.35 17.16,-39.47 26.13,-0.47 47.26,-25.39 47.26,-56 A 65.22,65.22 0 0 0 383.1,365.15 15.93,15.93 0 0 0 367.34,352 Z M 368,128 h 0.09 M 479.55,96 h -91.06 l 8.92,-35.66 38.32,-13.05 c 8.15,-2.77 13,-11.43 10.65,-19.71 A 16,16 0 0 0 425.84,16.85 l -47,16 A 16,16 0 0 0 368.48,44.12 L 355.51,96 H 224.45 c -8.61,0 -16,6.62 -16.43,15.23 A 16,16 0 0 0 224,128 h 2.75 l 1,8.66 A 8.3,8.3 0 0 0 236,144 c 39,0 73.66,10.9 100.12,31.52 a 121.9,121.9 0 0 1 34.88,42.55 123.4,123.4 0 0 1 10.12,29.51 7.83,7.83 0 0 0 3.29,4.88 72,72 0 0 1 26.38,86.43 7.92,7.92 0 0 0 -0.15,5.53 A 96,96 0 0 1 416,376 c 0,22.34 -7.6,43.63 -21.4,59.95 a 80.12,80.12 0 0 1 -28.78,21.67 8,8 0 0 0 -4.21,4.37 108.19,108.19 0 0 1 -17.37,29.86 2.5,2.5 0 0 0 1.9,4.11 h 49.21 A 48.22,48.22 0 0 0 443.2,451.82 L 477.4,128 h 2.6 a 16,16 0 0 0 16,-16.77 C 495.58,102.62 488.16,96 479.55,96 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M512 256c0-16.54-14.27-46.76-45.61-74a207.06 207.06 0 00-60.28-36.12 3.15 3.15 0 00-3.93 1.56c-.15.29-.3.57-.47.86l-9.59 15.9a183.24 183.24 0 00.07 183.78l.23.39 8.74 16a4 4 0 004.94 1.82C479.63 337.42 512 281.49 512 256zm-93.92-.14a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79z"/><path d="M335.45 256a214.8 214.8 0 0129.08-108l.12-.21 4.62-7.67a4 4 0 00-2.59-6 284.29 284.29 0 00-39.26-5.39 7.94 7.94 0 01-4.29-1.6c-19.28-14.66-57.5-40.3-96.46-46.89a16 16 0 00-18 20.18l10.62 37.17a4 4 0 01-2.42 4.84c-36.85 13.69-68.59 38.75-91.74 57.85a8 8 0 01-10.06.06q-4.72-3.75-9.69-7.39c-39.64-28.95-86.21-32.76-88.17-32.9a16 16 0 00-16.83 19.4c.42 1.93 9.19 40.69 31.7 71.61a8.09 8.09 0 010 9.55C9.57 291.52.8 330.29.38 332.22a16 16 0 0016.83 19.4c2-.14 48.53-4 88.12-32.88q4.85-3.56 9.47-7.22a8 8 0 0110.06.07c23.25 19.19 55.05 44.28 92 58a4 4 0 012.42 4.83l-10.66 37.18a16 16 0 0018 20.18c17.16-2.9 51.88-12.86 96.05-46.83a8.15 8.15 0 014.36-1.65 287.36 287.36 0 0039.22-5.3 4 4 0 002.69-5.83l-4.51-8.29A214.81 214.81 0 01335.45 256z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 335.45,256 a 214.8,214.8 0 0 1 29.08,-108 l 0.12,-0.21 4.62,-7.67 a 4,4 0 0 0 -2.59,-6 284.29,284.29 0 0 0 -39.26,-5.39 7.94,7.94 0 0 1 -4.29,-1.6 c -19.28,-14.66 -57.5,-40.3 -96.46,-46.89 a 16,16 0 0 0 -18,20.18 l 10.62,37.17 a 4,4 0 0 1 -2.42,4.84 c -36.85,13.69 -68.59,38.75 -91.74,57.85 a 8,8 0 0 1 -10.06,0.06 q -4.72,-3.75 -9.69,-7.39 C 65.74,164 19.17,160.19 17.21,160.05 a 16,16 0 0 0 -16.83,19.4 c 0.42,1.93 9.19,40.69 31.7,71.61 a 8.09,8.09 0 0 1 0,9.55 C 9.57,291.52 0.8,330.29 0.38,332.22 a 16,16 0 0 0 16.83,19.4 c 2,-0.14 48.53,-4 88.12,-32.88 q 4.85,-3.56 9.47,-7.22 a 8,8 0 0 1 10.06,0.07 c 23.25,19.19 55.05,44.28 92,58 a 4,4 0 0 1 2.42,4.83 l -10.66,37.18 a 16,16 0 0 0 18,20.18 c 17.16,-2.9 51.88,-12.86 96.05,-46.83 a 8.15,8.15 0 0 1 4.36,-1.65 287.36,287.36 0 0 0 39.22,-5.3 4,4 0 0 0 2.69,-5.83 l -4.51,-8.29 A 214.81,214.81 0 0 1 335.45,256 Z M 512,256 c 0,-16.54 -14.27,-46.76 -45.61,-74 a 207.06,207.06 0 0 0 -60.28,-36.12 3.15,3.15 0 0 0 -3.93,1.56 c -0.15,0.29 -0.3,0.57 -0.47,0.86 l -9.59,15.9 a 183.24,183.24 0 0 0 0.07,183.78 l 0.23,0.39 8.74,16 a 4,4 0 0 0 4.94,1.82 C 479.63,337.42 512,281.49 512,256 Z m -93.92,-0.14 a 16,16 0 1 1 13.79,-13.79 16,16 0 0 1 -13.79,13.79 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M80 480a16 16 0 01-16-16V68.13a24 24 0 0111.9-20.72C88 40.38 112.38 32 160 32c37.21 0 78.83 14.71 115.55 27.68C305.12 70.13 333.05 80 352 80a183.84 183.84 0 0071-14.5 18 18 0 0125 16.58v219.36a20 20 0 01-12 18.31c-8.71 3.81-40.51 16.25-84 16.25-24.14 0-54.38-7.14-86.39-14.71C229.63 312.79 192.43 304 160 304c-36.87 0-55.74 5.58-64 9.11V464a16 16 0 01-16 16z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 80,480 A 16,16 0 0 1 64,464 V 68.13 A 24,24 0 0 1 75.9,47.41 C 88,40.38 112.38,32 160,32 197.21,32 238.83,46.71 275.55,59.68 305.12,70.13 333.05,80 352,80 a 183.84,183.84 0 0 0 71,-14.5 18,18 0 0 1 25,16.58 v 219.36 a 20,20 0 0 1 -12,18.31 C 427.29,323.56 395.49,336 352,336 327.86,336 297.62,328.86 265.61,321.29 229.63,312.79 192.43,304 160,304 c -36.87,0 -55.74,5.58 -64,9.11 V 464 a 16,16 0 0 1 -16,16 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M394.23 197.56a300.43 300.43 0 00-53.37-90C301.2 61.65 249.05 32 208 32a16 16 0 00-15.48 20c13.87 53-14.88 97.07-45.31 143.72C122 234.36 96 274.27 96 320c0 88.22 71.78 160 160 160s160-71.78 160-160c0-43.3-7.32-84.49-21.77-122.44zm-105.9 221.13C278 429.69 265.05 432 256 432s-22-2.31-32.33-13.31S208 390.24 208 368c0-25.14 8.82-44.28 17.34-62.78 4.95-10.74 10-21.67 13-33.37a8 8 0 0112.49-4.51A126.48 126.48 0 01275 292c18.17 24 29 52.42 29 76 0 22.24-5.42 39.77-15.67 50.69z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 394.23,197.56 a 300.43,300.43 0 0 0 -53.37,-90 C 301.2,61.65 249.05,32 208,32 a 16,16 0 0 0 -15.48,20 c 13.87,53 -14.88,97.07 -45.31,143.72 C 122,234.36 96,274.27 96,320 c 0,88.22 71.78,160 160,160 88.22,0 160,-71.78 160,-160 0,-43.3 -7.32,-84.49 -21.77,-122.44 z M 288.33,418.69 C 278,429.69 265.05,432 256,432 246.95,432 234,429.69 223.67,418.69 213.34,407.69 208,390.24 208,368 c 0,-25.14 8.82,-44.28 17.34,-62.78 4.95,-10.74 10,-21.67 13,-33.37 A 8,8 0 0 1 250.83,267.34 126.48,126.48 0 0 1 275,292 c 18.17,24 29,52.42 29,76 0,22.24 -5.42,39.77 -15.67,50.69 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M452.32 365L327.4 167.12a48.07 48.07 0 01-7.4-25.64V64h15.56c8.61 0 16-6.62 16.43-15.23A16 16 0 00336 32H176.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00176 64h16v77.48a47.92 47.92 0 01-7.41 25.63L59.68 365a74 74 0 00-2.5 75.84C70.44 465.19 96.36 480 124.13 480h263.74c27.77 0 53.69-14.81 66.95-39.21a74 74 0 00-2.5-75.79zM211.66 184.2A79.94 79.94 0 00224 141.48V68a4 4 0 014-4h56a4 4 0 014 4v73.48a79.94 79.94 0 0012.35 42.72l57.8 91.53a8 8 0 01-6.78 12.27H160.63a8 8 0 01-6.77-12.27z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 452.32,365 327.4,167.12 A 48.07,48.07 0 0 1 320,141.48 V 64 h 15.56 c 8.61,0 16,-6.62 16.43,-15.23 A 16,16 0 0 0 336,32 H 176.45 c -8.61,0 -16,6.62 -16.43,15.23 A 16,16 0 0 0 176,64 h 16 v 77.48 a 47.92,47.92 0 0 1 -7.41,25.63 L 59.68,365 a 74,74 0 0 0 -2.5,75.84 C 70.44,465.19 96.36,480 124.13,480 h 263.74 c 27.77,0 53.69,-14.81 66.95,-39.21 A 74,74 0 0 0 452.32,365 Z M 211.66,184.2 A 79.94,79.94 0 0 0 224,141.48 V 68 a 4,4 0 0 1 4,-4 h 56 a 4,4 0 0 1 4,4 v 73.48 a 79.94,79.94 0 0 0 12.35,42.72 l 57.8,91.53 A 8,8 0 0 1 351.37,288 H 160.63 a 8,8 0 0 1 -6.77,-12.27 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M496 152a56 56 0 00-56-56H220.11a23.89 23.89 0 01-13.31-4L179 73.41A55.77 55.77 0 00147.89 64H72a56 56 0 00-56 56v48a8 8 0 008 8h464a8 8 0 008-8zM16 392a56 56 0 0056 56h368a56 56 0 0056-56V216a8 8 0 00-8-8H24a8 8 0 00-8 8z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 496,152 A 56,56 0 0 0 440,96 H 220.11 A 23.89,23.89 0 0 1 206.8,92 L 179,73.41 A 55.77,55.77 0 0 0 147.89,64 H 72 a 56,56 0 0 0 -56,56 v 48 a 8,8 0 0 0 8,8 h 464 a 8,8 0 0 0 8,-8 z M 16,392 a 56,56 0 0 0 56,56 h 368 a 56,56 0 0 0 56,-56 V 216 a 8,8 0 0 0 -8,-8 H 24 a 8,8 0 0 0 -8,8 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M483.13 245.38C461.92 149.49 430 98.31 382.65 84.33A107.13 107.13 0 00352 80c-13.71 0-25.65 3.34-38.28 6.88C298.5 91.15 281.21 96 256 96s-42.51-4.84-57.76-9.11C185.6 83.34 173.67 80 160 80a115.74 115.74 0 00-31.73 4.32c-47.1 13.92-79 65.08-100.52 161C4.61 348.54 16 413.71 59.69 428.83a56.62 56.62 0 0018.64 3.22c29.93 0 53.93-24.93 70.33-45.34 18.53-23.1 40.22-34.82 107.34-34.82 59.95 0 84.76 8.13 106.19 34.82 13.47 16.78 26.2 28.52 38.9 35.91 16.89 9.82 33.77 12 50.16 6.37 25.82-8.81 40.62-32.1 44-69.24 2.57-28.48-1.39-65.89-12.12-114.37zM208 240h-32v32a16 16 0 01-32 0v-32h-32a16 16 0 010-32h32v-32a16 16 0 0132 0v32h32a16 16 0 010 32zm84 4a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-19.95A20 20 0 01336 288zm0-88a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 483.13,245.38 C 461.92,149.49 430,98.31 382.65,84.33 A 107.13,107.13 0 0 0 352,80 c -13.71,0 -25.65,3.34 -38.28,6.88 C 298.5,91.15 281.21,96 256,96 230.79,96 213.49,91.16 198.24,86.89 185.6,83.34 173.67,80 160,80 a 115.74,115.74 0 0 0 -31.73,4.32 c -47.1,13.92 -79,65.08 -100.52,161 C 4.61,348.54 16,413.71 59.69,428.83 a 56.62,56.62 0 0 0 18.64,3.22 c 29.93,0 53.93,-24.93 70.33,-45.34 18.53,-23.1 40.22,-34.82 107.34,-34.82 59.95,0 84.76,8.13 106.19,34.82 13.47,16.78 26.2,28.52 38.9,35.91 16.89,9.82 33.77,12 50.16,6.37 25.82,-8.81 40.62,-32.1 44,-69.24 2.57,-28.48 -1.39,-65.89 -12.12,-114.37 z M 208,240 h -32 v 32 a 16,16 0 0 1 -32,0 v -32 h -32 a 16,16 0 0 1 0,-32 h 32 v -32 a 16,16 0 0 1 32,0 v 32 h 32 a 16,16 0 0 1 0,32 z m 84,4 a 20,20 0 1 1 20,-20 20,20 0 0 1 -20,20 z m 44,44 A 20,20 0 1 1 356,268.05 20,20 0 0 1 336,288 Z m 0,-88 a 20,20 0 1 1 20,-20 20,20 0 0 1 -20,20 z m 44,44 a 20,20 0 1 1 20,-20 20,20 0 0 1 -20,20 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M288 464h-64a16 16 0 000 32h64a16 16 0 000-32zM304 416h-96a16 16 0 000 32h96a16 16 0 000-32zM369.42 62.69C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0096 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v24a16 16 0 0016 16h24a8 8 0 008-8V274.82a8 8 0 00-5.13-7.47A130.73 130.73 0 01208.71 253a16 16 0 1118.58-26c7.4 5.24 21.65 13 28.71 13s21.31-7.78 28.73-13a16 16 0 0118.56 26 130.73 130.73 0 01-26.16 14.32 8 8 0 00-5.13 7.47V392a8 8 0 008 8h24a16 16 0 0016-16v-24c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 00-46.58-113.31z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 288,464 h -64 a 16,16 0 0 0 0,32 h 64 a 16,16 0 0 0 0,-32 z m 16,-48 h -96 a 16,16 0 0 0 0,32 h 96 a 16,16 0 0 0 0,-32 z M 369.42,62.69 C 339.35,32.58 299.07,16 256,16 A 159.62,159.62 0 0 0 96,176 c 0,46.62 17.87,90.23 49,119.64 l 4.36,4.09 C 167.37,316.57 192,339.64 192,360 v 24 a 16,16 0 0 0 16,16 h 24 a 8,8 0 0 0 8,-8 V 274.82 a 8,8 0 0 0 -5.13,-7.47 130.73,130.73 0 0 1 -26.16,-14.35 16,16 0 1 1 18.58,-26 c 7.4,5.24 21.65,13 28.71,13 7.06,0 21.31,-7.78 28.73,-13 a 16,16 0 0 1 18.56,26 130.73,130.73 0 0 1 -26.16,14.32 8,8 0 0 0 -5.13,7.47 V 392 a 8,8 0 0 0 8,8 h 24 a 16,16 0 0 0 16,-16 v -24 c 0,-19.88 24.36,-42.93 42.15,-59.77 l 4.91,-4.66 C 399.08,265 416,223.61 416,176 A 159.16,159.16 0 0 0 369.42,62.69 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M368 96H144a16 16 0 010-32h224a16 16 0 010 32zM400 144H112a16 16 0 010-32h288a16 16 0 010 32zM419.13 448H92.87A44.92 44.92 0 0148 403.13V204.87A44.92 44.92 0 0192.87 160h326.26A44.92 44.92 0 01464 204.87v198.26A44.92 44.92 0 01419.13 448z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 368,96 H 144 a 16,16 0 0 1 0,-32 h 224 a 16,16 0 0 1 0,32 z m 32,48 H 112 a 16,16 0 0 1 0,-32 h 288 a 16,16 0 0 1 0,32 z m 19.13,304 H 92.87 A 44.92,44.92 0 0 1 48,403.13 V 204.87 A 44.92,44.92 0 0 1 92.87,160 H 419.13 A 44.92,44.92 0 0 1 464,204.87 V 403.13 A 44.92,44.92 0 0 1 419.13,448 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M204 240H68a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM444 240H308a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM204 480H68a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM444 480H308a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 204,240 H 68 A 36,36 0 0 1 32,204 V 68 A 36,36 0 0 1 68,32 h 136 a 36,36 0 0 1 36,36 v 136 a 36,36 0 0 1 -36,36 z m 240,0 H 308 A 36,36 0 0 1 272,204 V 68 a 36,36 0 0 1 36,-36 h 136 a 36,36 0 0 1 36,36 v 136 a 36,36 0 0 1 -36,36 z M 204,480 H 68 A 36,36 0 0 1 32,444 V 308 a 36,36 0 0 1 36,-36 h 136 a 36,36 0 0 1 36,36 v 136 a 36,36 0 0 1 -36,36 z m 240,0 H 308 A 36,36 0 0 1 272,444 V 308 a 36,36 0 0 1 36,-36 h 136 a 36,36 0 0 1 36,36 v 136 a 36,36 0 0 1 -36,36 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M104 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 464a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 464a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 464a56 56 0 1156-56 56.06 56.06 0 01-56 56z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 104,160 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z m 152,0 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z m 152,0 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z M 104,312 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z m 152,0 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z m 152,0 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z M 104,464 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z m 152,0 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z m 152,0 a 56,56 0 1 1 56,-56 56.06,56.06 0 0 1 -56,56 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M256 448a32 32 0 01-18-5.57c-78.59-53.35-112.62-89.93-131.39-112.8-40-48.75-59.15-98.8-58.61-153C48.63 114.52 98.46 64 159.08 64c44.08 0 74.61 24.83 92.39 45.51a6 6 0 009.06 0C278.31 88.81 308.84 64 352.92 64c60.62 0 110.45 50.52 111.08 112.64.54 54.21-18.63 104.26-58.61 153-18.77 22.87-52.8 59.45-131.39 112.8a32 32 0 01-18 5.56z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 256,448 a 32,32 0 0 1 -18,-5.57 C 159.41,389.08 125.38,352.5 106.61,329.63 66.61,280.88 47.46,230.83 48,176.63 48.63,114.52 98.46,64 159.08,64 c 44.08,0 74.61,24.83 92.39,45.51 a 6,6 0 0 0 9.06,0 C 278.31,88.81 308.84,64 352.92,64 c 60.62,0 110.45,50.52 111.08,112.64 0.54,54.21 -18.63,104.26 -58.61,153 -18.77,22.87 -52.8,59.45 -131.39,112.8 A 32,32 0 0 1 256,448 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M183 352c-21.84-.52-39-18.9-39-40.74v-34.07a8 8 0 00-6-7.74c-33.75-8.85-58-39.71-58-77.45a80.14 80.14 0 0166.27-78.82 8 8 0 006.62-6.83 104 104 0 01206.22 0 8 8 0 006.62 6.83A80 80 0 01352 272a74.33 74.33 0 01-47.45-17.41 7.93 7.93 0 00-9.92-.14A62.89 62.89 0 01256 268a80.47 80.47 0 01-21.8-3.18 8 8 0 00-10.2 7.69V312a40 40 0 01-41 40z"/><path d="M263.39 299.7a8 8 0 00-7.39 7.91V312a72.11 72.11 0 01-50.69 68.76 8 8 0 00-4.91 10.78l40.91 94.8A16 16 0 00256 496a16 16 0 0014.69-9.7l73.78-172.15a8 8 0 00-6.2-11.07 106.31 106.31 0 01-35.9-11.59 8 8 0 00-7.13-.2 95 95 0 01-31.85 8.41z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 263.39,299.7 A 8,8 0 0 0 256,307.61 V 312 a 72.11,72.11 0 0 1 -50.69,68.76 8,8 0 0 0 -4.91,10.78 l 40.91,94.8 A 16,16 0 0 0 256,496 a 16,16 0 0 0 14.69,-9.7 l 73.78,-172.15 a 8,8 0 0 0 -6.2,-11.07 106.31,106.31 0 0 1 -35.9,-11.59 8,8 0 0 0 -7.13,-0.2 95,95 0 0 1 -31.85,8.41 z M 183,352 c -21.84,-0.52 -39,-18.9 -39,-40.74 v -34.07 a 8,8 0 0 0 -6,-7.74 C 104.25,260.6 80,229.74 80,192 a 80.14,80.14 0 0 1 66.27,-78.82 8,8 0 0 0 6.62,-6.83 104,104 0 0 1 206.22,0 8,8 0 0 0 6.62,6.83 A 80,80 0 0 1 352,272 74.33,74.33 0 0 1 304.55,254.59 7.93,7.93 0 0 0 294.63,254.45 62.89,62.89 0 0 1 256,268 80.47,80.47 0 0 1 234.2,264.82 8,8 0 0 0 224,272.51 V 312 a 40,40 0 0 1 -41,40 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M416 64H96a64.07 64.07 0 00-64 64v256a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64V128a64.07 64.07 0 00-64-64zm-80 64a48 48 0 11-48 48 48.05 48.05 0 0148-48zM96 416a32 32 0 01-32-32v-67.63l94.84-84.3a48.06 48.06 0 0165.8 1.9l64.95 64.81L172.37 416zm352-32a32 32 0 01-32 32H217.63l121.42-121.42a47.72 47.72 0 0161.64-.16L448 333.84z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 416,64 H 96 a 64.07,64.07 0 0 0 -64,64 v 256 a 64.07,64.07 0 0 0 64,64 h 320 a 64.07,64.07 0 0 0 64,-64 V 128 A 64.07,64.07 0 0 0 416,64 Z m -80,64 a 48,48 0 1 1 -48,48 48.05,48.05 0 0 1 48,-48 z M 96,416 A 32,32 0 0 1 64,384 v -67.63 l 94.84,-84.3 a 48.06,48.06 0 0 1 65.8,1.9 L 289.59,298.78 172.37,416 Z m 352,-32 a 32,32 0 0 1 -32,32 H 217.63 L 339.05,294.58 a 47.72,47.72 0 0 1 61.64,-0.16 L 448,333.84 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M479.66 268.7l-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0032 272v112a64 64 0 0064 64h320a64 64 0 0064-64V272a16.65 16.65 0 00-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 01-3.92 4.82H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 256H72.65a4 4 0 01-3.92-4.82z"/><path d="M368 160H144a16 16 0 010-32h224a16 16 0 010 32zM384 224H128a16 16 0 010-32h256a16 16 0 010 32z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 368,160 H 144 a 16,16 0 0 1 0,-32 h 224 a 16,16 0 0 1 0,32 z m 16,64 H 128 a 16,16 0 0 1 0,-32 h 256 a 16,16 0 0 1 0,32 z m 95.66,44.7 -32,-151.81 C 441.48,83.77 417.68,64 384,64 H 128 c -16.8,0 -31,4.69 -42.1,13.94 -11.1,9.25 -18.37,22.31 -21.58,38.89 l -32,151.87 A 16.65,16.65 0 0 0 32,272 v 112 a 64,64 0 0 0 64,64 h 320 a 64,64 0 0 0 64,-64 V 272 a 16.65,16.65 0 0 0 -0.34,-3.3 z m -384,-145.4 v -0.28 c 3.55,-18.43 13.81,-27 32.29,-27 H 384 c 18.61,0 28.87,8.55 32.27,26.91 0,0.13 0.05,0.26 0.07,0.39 l 26.93,127.88 a 4,4 0 0 1 -3.92,4.82 H 320 a 15.92,15.92 0 0 0 -16,15.82 48,48 0 1 1 -96,0 A 15.92,15.92 0 0 0 192,256 H 72.65 a 4,4 0 0 1 -3.92,-4.82 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 00-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 11-32-32 32 32 0 0132 32z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 218.1,167.17 c 0,13 0,25.6 4.1,37.4 -43.1,50.6 -156.9,184.3 -167.5,194.5 a 20.17,20.17 0 0 0 -6.7,15 c 0,8.5 5.2,16.7 9.6,21.3 6.6,6.9 34.8,33 40,28 15.4,-15 18.5,-19 24.8,-25.2 9.5,-9.3 -1,-28.3 2.3,-36 3.3,-7.7 6.8,-9.2 12.5,-10.4 5.7,-1.2 15.8,2.9 23.7,3 8.3,0.1 12.8,-3.4 19,-9.2 5,-4.6 8.6,-8.9 8.7,-15.6 0.2,-9 -12.8,-20.9 -3.1,-30.4 9.7,-9.5 23.7,6.2 34,5 10.3,-1.2 22.8,-15.5 24.1,-21.6 1.3,-6.1 -11.7,-21.8 -9.7,-30.7 0.7,-3 6.8,-10 11.4,-11 4.6,-1 25,6.9 29.6,5.9 5.6,-1.2 12.1,-7.1 17.4,-10.4 15.5,6.7 29.6,9.4 47.7,9.4 68.5,0 124,-53.4 124,-119.2 C 464,101.17 408.5,48 340,48 271.5,48 218.1,101.37 218.1,167.17 Z M 400,144 a 32,32 0 1 1 -32,-32 32,32 0 0 1 32,32 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M256 256c-13.47 0-26.94-2.39-37.44-7.17l-148-67.49C63.79 178.26 48 169.25 48 152.24s15.79-26 22.58-29.12l149.28-68.07c20.57-9.4 51.61-9.4 72.19 0l149.37 68.07c6.79 3.09 22.58 12.1 22.58 29.12s-15.79 26-22.58 29.11l-148 67.48C282.94 253.61 269.47 256 256 256zm176.76-100.86z"/><path d="M441.36 226.81L426.27 220l-38.77 17.74-94 43c-10.5 4.8-24 7.19-37.44 7.19s-26.93-2.39-37.42-7.19l-94.07-43L85.79 220l-15.22 6.84C63.79 229.93 48 239 48 256s15.79 26.08 22.56 29.17l148 67.63C229 357.6 242.49 360 256 360s26.94-2.4 37.44-7.19l147.87-67.61c6.81-3.09 22.69-12.11 22.69-29.2s-15.77-26.07-22.64-29.19z"/><path d="M441.36 330.8l-15.09-6.8-38.77 17.73-94 42.95c-10.5 4.78-24 7.18-37.44 7.18s-26.93-2.39-37.42-7.18l-94.07-43L85.79 324l-15.22 6.84C63.79 333.93 48 343 48 360s15.79 26.07 22.56 29.15l148 67.59C229 461.52 242.54 464 256 464s26.88-2.48 37.38-7.27l147.92-67.57c6.82-3.08 22.7-12.1 22.7-29.16s-15.77-26.07-22.64-29.2z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 441.36,330.8 -15.09,-6.8 -38.77,17.73 -94,42.95 c -10.5,4.78 -24,7.18 -37.44,7.18 -13.44,0 -26.93,-2.39 -37.42,-7.18 l -94.07,-43 L 85.79,324 70.57,330.84 C 63.79,333.93 48,343 48,360 c 0,17 15.79,26.07 22.56,29.15 l 148,67.59 C 229,461.52 242.54,464 256,464 c 13.46,0 26.88,-2.48 37.38,-7.27 L 441.3,389.16 c 6.82,-3.08 22.7,-12.1 22.7,-29.16 0,-17.06 -15.77,-26.07 -22.64,-29.2 z m 0,-103.99 -15.09,-6.81 -38.77,17.74 -94,43 c -10.5,4.8 -24,7.19 -37.44,7.19 -13.44,0 -26.93,-2.39 -37.42,-7.19 l -94.07,-43 L 85.79,220 70.57,226.84 C 63.79,229.93 48,239 48,256 c 0,17 15.79,26.08 22.56,29.17 l 148,67.63 c 10.44,4.8 23.93,7.2 37.44,7.2 13.51,0 26.94,-2.4 37.44,-7.19 L 441.31,285.2 C 448.12,282.11 464,273.09 464,256 464,238.91 448.23,229.93 441.36,226.81 Z M 256,256 c -13.47,0 -26.94,-2.39 -37.44,-7.17 l -148,-67.49 C 63.79,178.26 48,169.25 48,152.24 c 0,-17.01 15.79,-26 22.58,-29.12 L 219.86,55.05 c 20.57,-9.4 51.61,-9.4 72.19,0 l 149.37,68.07 c 6.79,3.09 22.58,12.1 22.58,29.12 0,17.02 -15.79,26 -22.58,29.11 l -148,67.48 C 282.94,253.61 269.47,256 256,256 Z M 432.76,155.14 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M161.35 242a16 16 0 0122.62-.68c73.63 69.36 147.51 111.56 234.45 133.07 11.73-32 12.77-67.22 2.64-101.58-13.44-45.59-44.74-85.31-90.49-114.86-40.84-26.38-81.66-33.25-121.15-39.89-49.82-8.38-96.88-16.3-141.79-63.85-5-5.26-11.81-7.37-18.32-5.66-7.44 2-12.43 7.88-14.82 17.6-5.6 22.75-2 86.51 13.75 153.82 25.29 108.14 65.65 162.86 95.06 189.73 38 34.69 87.62 53.9 136.93 53.9a186 186 0 0027.77-2.04c41.71-6.32 76.43-27.27 96-57.75-89.49-23.28-165.94-67.55-242-139.16a16 16 0 01-.65-22.65zM467.43 384.19c-16.83-2.59-33.13-5.84-49-9.77a157.71 157.71 0 01-12.13 25.68c-.73 1.25-1.5 2.49-2.29 3.71a584.21 584.21 0 0058.56 12 16 16 0 104.87-31.62z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 161.35,242 a 16,16 0 0 1 22.62,-0.68 c 73.63,69.36 147.51,111.56 234.45,133.07 11.73,-32 12.77,-67.22 2.64,-101.58 C 407.62,227.22 376.32,187.5 330.57,157.95 289.73,131.57 248.91,124.7 209.42,118.06 159.6,109.68 112.54,101.76 67.63,54.21 c -5,-5.26 -11.81,-7.37 -18.32,-5.66 -7.44,2 -12.43,7.88 -14.82,17.6 -5.6,22.75 -2,86.51 13.75,153.82 25.29,108.14 65.65,162.86 95.06,189.73 38,34.69 87.62,53.9 136.93,53.9 A 186,186 0 0 0 308,461.56 c 41.71,-6.32 76.43,-27.27 96,-57.75 C 314.51,380.53 238.06,336.26 162,264.65 A 16,16 0 0 1 161.35,242 Z m 306.08,142.19 c -16.83,-2.59 -33.13,-5.84 -49,-9.77 A 157.71,157.71 0 0 1 406.3,400.1 c -0.73,1.25 -1.5,2.49 -2.29,3.71 a 584.21,584.21 0 0 0 58.56,12 16,16 0 1 0 4.87,-31.62 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M194.82 496a18.36 18.36 0 01-18.1-21.53v-.11L204.83 320H96a16 16 0 01-12.44-26.06L302.73 23a18.45 18.45 0 0132.8 13.71c0 .3-.08.59-.13.89L307.19 192H416a16 16 0 0112.44 26.06L209.24 489a18.45 18.45 0 01-14.42 7z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 194.82,496 a 18.36,18.36 0 0 1 -18.1,-21.53 v -0.11 L 204.83,320 H 96 A 16,16 0 0 1 83.56,293.94 L 302.73,23 a 18.45,18.45 0 0 1 32.8,13.71 c 0,0.3 -0.08,0.59 -0.13,0.89 L 307.19,192 H 416 a 16,16 0 0 1 12.44,26.06 L 209.24,489 a 18.45,18.45 0 0 1 -14.42,7 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><circle cx="256" cy="192" r="32"/><path d="M256 32c-88.22 0-160 68.65-160 153 0 40.17 18.31 93.59 54.42 158.78 29 52.34 62.55 99.67 80 123.22a31.75 31.75 0 0051.22 0c17.42-23.55 51-70.88 80-123.22C397.69 278.61 416 225.19 416 185c0-84.35-71.78-153-160-153zm0 224a64 64 0 1164-64 64.07 64.07 0 01-64 64z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 256,32 c -88.22,0 -160,68.65 -160,153 0,40.17 18.31,93.59 54.42,158.78 29,52.34 62.55,99.67 80,123.22 a 31.75,31.75 0 0 0 51.22,0 c 17.42,-23.55 51,-70.88 80,-123.22 C 397.69,278.61 416,225.19 416,185 416,100.65 344.22,32 256,32 Z m 0,224 a 64,64 0 1 1 64,-64 64.07,64.07 0 0 1 -64,64 z m 32,-64 a 32,32 0 0 1 -32,32 32,32 0 0 1 -32,-32 32,32 0 0 1 32,-32 32,32 0 0 1 32,32 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M368 192h-16v-80a96 96 0 10-192 0v80h-16a64.07 64.07 0 00-64 64v176a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V256a64.07 64.07 0 00-64-64zm-48 0H192v-80a64 64 0 11128 0z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 368,192 h -16 v -80 a 96,96 0 1 0 -192,0 v 80 h -16 a 64.07,64.07 0 0 0 -64,64 v 176 a 64.07,64.07 0 0 0 64,64 h 224 a 64.07,64.07 0 0 0 64,-64 V 256 a 64.07,64.07 0 0 0 -64,-64 z m -48,0 H 192 v -80 a 64,64 0 1 1 128,0 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M108.56 342.78a60.34 60.34 0 1060.56 60.44 60.63 60.63 0 00-60.56-60.44z"/><path d="M48 186.67v86.55c52 0 101.94 15.39 138.67 52.11s52 86.56 52 138.67h86.66c0-151.56-125.66-277.33-277.33-277.33z"/><path d="M48 48v86.56c185.25 0 329.22 144.08 329.22 329.44H464C464 234.66 277.67 48 48 48z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 48,48 v 86.56 c 185.25,0 329.22,144.08 329.22,329.44 H 464 C 464,234.66 277.67,48 48,48 Z m 0,138.67 v 86.55 c 52,0 101.94,15.39 138.67,52.11 36.73,36.72 52,86.56 52,138.67 h 86.66 C 325.33,312.44 199.67,186.67 48,186.67 Z m 60.56,156.11 a 60.34,60.34 0 1 0 60.56,60.44 60.63,60.63 0 0 0 -60.56,-60.44 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M240 480v-36.42C160.53 439 112.25 398.06 112 336h72c1.77 26.34 23.86 46.45 56 50v-98l-26.77-7c-61-14.18-93.64-49.39-93.64-102.08C119.59 116.81 164.08 76.08 240 70V32h32v38c77.39 6.3 119 47.74 120 106h-72c-.76-24.06-15.83-43.39-48-46v92l30.82 7.28C367.61 243.46 400 277 400 332c0 64.34-43.74 105.88-128 111.32V480zm0-264v-86c-27.59 1.52-47.27 18.47-47.27 42.53 0 22.3 16.39 36.88 47.27 43.47zm32 78v92c38.15-1.54 56.38-18.92 56.38-45.77 0-24.58-18.23-41.13-56.38-46.23z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 240,480 V 443.58 C 160.53,439 112.25,398.06 112,336 h 72 c 1.77,26.34 23.86,46.45 56,50 v -98 l -26.77,-7 C 152.23,266.82 119.59,231.61 119.59,178.92 119.59,116.81 164.08,76.08 240,70 V 32 h 32 v 38 c 77.39,6.3 119,47.74 120,106 h -72 c -0.76,-24.06 -15.83,-43.39 -48,-46 v 92 l 30.82,7.28 C 367.61,243.46 400,277 400,332 400,396.34 356.26,437.88 272,443.32 V 480 Z m 0,-264 v -86 c -27.59,1.52 -47.27,18.47 -47.27,42.53 0,22.3 16.39,36.88 47.27,43.47 z m 32,78 v 92 c 38.15,-1.54 56.38,-18.92 56.38,-45.77 0,-24.58 -18.23,-41.13 -56.38,-46.23 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M424 80H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h336a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56zm-14.18 92.63l-144 112a16 16 0 01-19.64 0l-144-112a16 16 0 1119.64-25.26L256 251.73l134.18-104.36a16 16 0 0119.64 25.26z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 424,80 H 88 a 56.06,56.06 0 0 0 -56,56 v 240 a 56.06,56.06 0 0 0 56,56 h 336 a 56.06,56.06 0 0 0 56,-56 V 136 A 56.06,56.06 0 0 0 424,80 Z m -14.18,92.63 -144,112 a 16,16 0 0 1 -19.64,0 l -144,-112 a 16,16 0 1 1 19.64,-25.26 L 256,251.73 390.18,147.37 a 16,16 0 0 1 19.64,25.26 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M48.17 113.34A32 32 0 0032 141.24V438a32 32 0 0047 28.37c.43-.23.85-.47 1.26-.74l84.14-55.05a8 8 0 003.63-6.72V46.45a8 8 0 00-12.51-6.63zM212.36 39.31A8 8 0 00200 46v357.56a8 8 0 003.63 6.72l96 62.42A8 8 0 00312 466V108.67a8 8 0 00-3.64-6.73zM464.53 46.47a31.64 31.64 0 00-31.5-.88 12.07 12.07 0 00-1.25.74l-84.15 55a8 8 0 00-3.63 6.72v357.46a8 8 0 0012.52 6.63l107.07-73.46a32 32 0 0016.41-28v-296a32.76 32.76 0 00-15.47-28.21z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 48.17,113.34 A 32,32 0 0 0 32,141.24 V 438 a 32,32 0 0 0 47,28.37 c 0.43,-0.23 0.85,-0.47 1.26,-0.74 l 84.14,-55.05 a 8,8 0 0 0 3.63,-6.72 V 46.45 A 8,8 0 0 0 155.52,39.82 Z M 212.36,39.31 A 8,8 0 0 0 200,46 v 357.56 a 8,8 0 0 0 3.63,6.72 l 96,62.42 A 8,8 0 0 0 312,466 V 108.67 a 8,8 0 0 0 -3.64,-6.73 z m 252.17,7.16 a 31.64,31.64 0 0 0 -31.5,-0.88 12.07,12.07 0 0 0 -1.25,0.74 l -84.15,55 a 8,8 0 0 0 -3.63,6.72 v 357.46 a 8,8 0 0 0 12.52,6.63 l 107.07,-73.46 a 32,32 0 0 0 16.41,-28 v -296 A 32.76,32.76 0 0 0 464.53,46.47 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M48 176v.66a17.38 17.38 0 01-4.2 11.23v.05C38.4 194.32 32 205.74 32 224c0 16.55 5.3 28.23 11.68 35.91A19 19 0 0148 272a32 32 0 0032 32h8a8 8 0 008-8V152a8 8 0 00-8-8h-8a32 32 0 00-32 32zM452.18 186.55l-.93-.17a4 4 0 01-3.25-3.93V62c0-12.64-8.39-24-20.89-28.32-11.92-4.11-24.34-.76-31.68 8.53a431.18 431.18 0 01-51.31 51.69c-23.63 20-46.24 34.25-67 42.31a8 8 0 00-5.15 7.47V299a16 16 0 009.69 14.69c19.34 8.29 40.24 21.83 62 40.28a433.74 433.74 0 0151.68 52.16 26.22 26.22 0 0021.1 9.87 33.07 33.07 0 0010.44-1.74C439.71 410 448 399.05 448 386.4V265.53a4 4 0 013.33-3.94l.85-.14C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM240 320V152a8 8 0 00-8-8h-96a8 8 0 00-8 8v304a24 24 0 0024 24h52.45a32.66 32.66 0 0025.93-12.45 31.65 31.65 0 005.21-29.05c-1.62-5.18-3.63-11-5.77-17.19-7.91-22.9-18.34-37.07-21.12-69.32A32 32 0 00240 320z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 48,176 v 0.66 a 17.38,17.38 0 0 1 -4.2,11.23 v 0.05 C 38.4,194.32 32,205.74 32,224 c 0,16.55 5.3,28.23 11.68,35.91 A 19,19 0 0 1 48,272 32,32 0 0 0 80,304 h 8 a 8,8 0 0 0 8,-8 V 152 a 8,8 0 0 0 -8,-8 h -8 a 32,32 0 0 0 -32,32 z m 404.18,10.55 -0.93,-0.17 A 4,4 0 0 1 448,182.45 V 62 c 0,-12.64 -8.39,-24 -20.89,-28.32 -11.92,-4.11 -24.34,-0.76 -31.68,8.53 A 431.18,431.18 0 0 1 344.12,93.9 c -23.63,20 -46.24,34.25 -67,42.31 a 8,8 0 0 0 -5.15,7.47 V 299 a 16,16 0 0 0 9.69,14.69 c 19.34,8.29 40.24,21.83 62,40.28 a 433.74,433.74 0 0 1 51.68,52.16 26.22,26.22 0 0 0 21.1,9.87 33.07,33.07 0 0 0 10.44,-1.74 C 439.71,410 448,399.05 448,386.4 V 265.53 a 4,4 0 0 1 3.33,-3.94 l 0.85,-0.14 C 461.8,258.84 480,247.67 480,224 480,200.33 461.8,189.16 452.18,186.55 Z M 240,320 V 152 a 8,8 0 0 0 -8,-8 h -96 a 8,8 0 0 0 -8,8 v 304 a 24,24 0 0 0 24,24 h 52.45 a 32.66,32.66 0 0 0 25.93,-12.45 31.65,31.65 0 0 0 5.21,-29.05 c -1.62,-5.18 -3.63,-11 -5.77,-17.19 -7.91,-22.9 -18.34,-37.07 -21.12,-69.32 A 32,32 0 0 0 240,320 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M264 480A232 232 0 0132 248c0-94 54-178.28 137.61-214.67a16 16 0 0121.06 21.06C181.07 76.43 176 104.66 176 136c0 110.28 89.72 200 200 200 31.34 0 59.57-5.07 81.61-14.67a16 16 0 0121.06 21.06C442.28 426 358 480 264 480z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 264,480 A 232,232 0 0 1 32,248 C 32,154 86,69.72 169.61,33.33 a 16,16 0 0 1 21.06,21.06 C 181.07,76.43 176,104.66 176,136 c 0,110.28 89.72,200 200,200 31.34,0 59.57,-5.07 81.61,-14.67 a 16,16 0 0 1 21.06,21.06 C 442.28,426 358,480 264,480 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M421.84 37.37a25.86 25.86 0 00-22.6-4.46L199.92 86.49A32.3 32.3 0 00176 118v226c0 6.74-4.36 12.56-11.11 14.83l-.12.05-52 18C92.88 383.53 80 402 80 423.91a55.54 55.54 0 0023.23 45.63A54.78 54.78 0 00135.34 480a55.82 55.82 0 0017.75-2.93l.38-.13 21.84-7.94A47.84 47.84 0 00208 423.91v-212c0-7.29 4.77-13.21 12.16-15.07l.21-.06L395 150.14a4 4 0 015 3.86v141.93c0 6.75-4.25 12.38-11.11 14.68l-.25.09-50.89 18.11A49.09 49.09 0 00304 375.92a55.67 55.67 0 0023.23 45.8 54.63 54.63 0 0049.88 7.35l.36-.12 21.84-7.95A47.83 47.83 0 00432 375.92V58a25.74 25.74 0 00-10.16-20.63z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 421.84,37.37 a 25.86,25.86 0 0 0 -22.6,-4.46 L 199.92,86.49 A 32.3,32.3 0 0 0 176,118 v 226 c 0,6.74 -4.36,12.56 -11.11,14.83 l -0.12,0.05 -52,18 C 92.88,383.53 80,402 80,423.91 a 55.54,55.54 0 0 0 23.23,45.63 54.78,54.78 0 0 0 32.11,10.46 55.82,55.82 0 0 0 17.75,-2.93 l 0.38,-0.13 21.84,-7.94 A 47.84,47.84 0 0 0 208,423.91 v -212 c 0,-7.29 4.77,-13.21 12.16,-15.07 l 0.21,-0.06 L 395,150.14 a 4,4 0 0 1 5,3.86 v 141.93 c 0,6.75 -4.25,12.38 -11.11,14.68 l -0.25,0.09 -50.89,18.11 a 49.09,49.09 0 0 0 -33.75,47.11 55.67,55.67 0 0 0 23.23,45.8 54.63,54.63 0 0 0 49.88,7.35 l 0.36,-0.12 21.84,-7.95 A 47.83,47.83 0 0 0 432,375.92 V 58 A 25.74,25.74 0 0 0 421.84,37.37 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M272 464a16 16 0 01-16-16.42V264.13a8 8 0 00-8-8H64.41a16.31 16.31 0 01-15.49-10.65 16 16 0 018.41-19.87l384-176.15a16 16 0 0121.22 21.19l-176 384A16 16 0 01272 464z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 272,464 A 16,16 0 0 1 256,447.58 V 264.13 a 8,8 0 0 0 -8,-8 H 64.41 a 16.31,16.31 0 0 1 -15.49,-10.65 16,16 0 0 1 8.41,-19.87 l 384,-176.15 a 16,16 0 0 1 21.22,21.19 l -176,384 A 16,16 0 0 1 272,464 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zM429 239.92l-93.08-.1a2 2 0 01-1.95-1.57 80.08 80.08 0 00-27.44-44.17 2 2 0 01-.54-2.43l41.32-83.43a2 2 0 012.87-.81A176.2 176.2 0 01431 237.71a2 2 0 01-2 2.21zm-220.8 20.46a48 48 0 1143.42 43.42 48 48 0 01-43.42-43.42zm-43.55-152.16L206 191.65a2 2 0 01-.54 2.43A80.08 80.08 0 00178 238.25a2 2 0 01-2 1.57l-93.08.1a2 2 0 01-2-2.21 176.2 176.2 0 0180.82-130.3 2 2 0 012.91.81zm-.37 295.34l56.31-74.09a2 2 0 012.43-.6 79.84 79.84 0 0066 0 2 2 0 012.43.6l56.31 74.09a2 2 0 01-.54 2.92 175.65 175.65 0 01-182.36 0 2 2 0 01-.58-2.92z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 258.9,48 C 141.92,46.42 46.42,141.92 48,258.9 49.56,371.09 140.91,462.44 253.1,464 370.1,465.6 465.58,370.1 463.98,253.12 462.44,140.91 371.09,49.56 258.9,48 Z m 170.1,191.92 -93.08,-0.1 a 2,2 0 0 1 -1.95,-1.57 80.08,80.08 0 0 0 -27.44,-44.17 2,2 0 0 1 -0.54,-2.43 l 41.32,-83.43 a 2,2 0 0 1 2.87,-0.81 176.2,176.2 0 0 1 80.82,130.3 2,2 0 0 1 -2,2.21 z M 208.2,260.38 A 48,48 0 1 1 251.62,303.8 48,48 0 0 1 208.2,260.38 Z M 164.65,108.22 206,191.65 a 2,2 0 0 1 -0.54,2.43 80.08,80.08 0 0 0 -27.46,44.17 2,2 0 0 1 -2,1.57 l -93.08,0.1 a 2,2 0 0 1 -2,-2.21 176.2,176.2 0 0 1 80.82,-130.3 2,2 0 0 1 2.91,0.81 z m -0.37,295.34 56.31,-74.09 a 2,2 0 0 1 2.43,-0.6 79.84,79.84 0 0 0 66,0 2,2 0 0 1 2.43,0.6 l 56.31,74.09 a 2,2 0 0 1 -0.54,2.92 175.65,175.65 0 0 1 -182.36,0 2,2 0 0 1 -0.58,-2.92 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4z"/><path d="M419.22 188.59L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16h129.81a2 2 0 001.41-3.41z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 419.22,188.59 275.41,44.78 A 2,2 0 0 0 272,46.19 V 176 a 16,16 0 0 0 16,16 h 129.81 a 2,2 0 0 0 1.41,-3.41 z M 428,224 H 288 A 48,48 0 0 1 240,176 V 36 a 4,4 0 0 0 -4,-4 H 144 A 64,64 0 0 0 80,96 v 320 a 64,64 0 0 0 64,64 h 224 a 64,64 0 0 0 64,-64 V 228 a 4,4 0 0 0 -4,-4 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M441 336.2l-.06-.05c-9.93-9.18-22.78-11.34-32.16-12.92l-.69-.12c-9.05-1.49-10.48-2.5-14.58-6.17-2.44-2.17-5.35-5.65-5.35-9.94s2.91-7.77 5.34-9.94l30.28-26.87c25.92-22.91 40.2-53.66 40.2-86.59s-14.25-63.68-40.2-86.6c-35.89-31.59-85-49-138.37-49C223.72 48 162 71.37 116 112.11c-43.87 38.77-68 90.71-68 146.24s24.16 107.47 68 146.23c21.75 19.24 47.49 34.18 76.52 44.42a266.17 266.17 0 0086.87 15h1.81c61 0 119.09-20.57 159.39-56.4 9.7-8.56 15.15-20.83 15.34-34.56.21-14.17-5.37-27.95-14.93-36.84zM112 208a32 32 0 1132 32 32 32 0 01-32-32zm40 135a32 32 0 1132-32 32 32 0 01-32 32zm40-199a32 32 0 1132 32 32 32 0 01-32-32zm64 271a48 48 0 1148-48 48 48 0 01-48 48zm72-239a32 32 0 1132-32 32 32 0 01-32 32z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 441,336.2 -0.06,-0.05 c -9.93,-9.18 -22.78,-11.34 -32.16,-12.92 l -0.69,-0.12 c -9.05,-1.49 -10.48,-2.5 -14.58,-6.17 -2.44,-2.17 -5.35,-5.65 -5.35,-9.94 0,-4.29 2.91,-7.77 5.34,-9.94 l 30.28,-26.87 c 25.92,-22.91 40.2,-53.66 40.2,-86.59 0,-32.93 -14.25,-63.68 -40.2,-86.6 C 387.89,65.41 338.78,48 285.41,48 223.72,48 162,71.37 116,112.11 72.13,150.88 48,202.82 48,258.35 c 0,55.53 24.16,107.47 68,146.23 21.75,19.24 47.49,34.18 76.52,44.42 a 266.17,266.17 0 0 0 86.87,15 h 1.81 c 61,0 119.09,-20.57 159.39,-56.4 9.7,-8.56 15.15,-20.83 15.34,-34.56 0.21,-14.17 -5.37,-27.95 -14.93,-36.84 z M 112,208 a 32,32 0 1 1 32,32 32,32 0 0 1 -32,-32 z m 40,135 a 32,32 0 1 1 32,-32 32,32 0 0 1 -32,32 z m 40,-199 a 32,32 0 1 1 32,32 32,32 0 0 1 -32,-32 z m 64,271 a 48,48 0 1 1 48,-48 48,48 0 0 1 -48,48 z m 72,-239 a 32,32 0 1 1 32,-32 32,32 0 0 1 -32,32 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M490.39 182.75c-5.55-13.19-14.77-22.7-26.67-27.49l-.16-.06a46.46 46.46 0 00-17-3.2h-.64c-27.24.41-55.05 23.56-69.19 57.61-10.37 24.9-11.56 51.68-3.18 71.64 5.54 13.2 14.78 22.71 26.73 27.5l.13.05a46.53 46.53 0 0017 3.2c27.5 0 55.6-23.15 70-57.65 10.24-24.87 11.37-51.63 2.98-71.6zM381.55 329.61c-15.71-9.44-30.56-18.37-40.26-34.41C314.53 250.8 298.37 224 256 224s-58.57 26.8-85.39 71.2c-9.72 16.06-24.6 25-40.36 34.48-18.07 10.86-36.74 22.08-44.8 44.16a66.93 66.93 0 00-4.65 25c0 35.95 28 65.2 62.4 65.2 17.75 0 36.64-6.15 56.63-12.66 19.22-6.26 39.09-12.73 56.27-12.73s37 6.47 56.15 12.73C332.2 457.85 351 464 368.8 464c34.35 0 62.3-29.25 62.3-65.2a67 67 0 00-4.75-25c-8.06-22.1-26.74-33.33-44.8-44.19zM150 188.85c11.9 14.93 27 23.15 42.52 23.15a42.88 42.88 0 006.33-.47c32.37-4.76 52.54-44.26 45.92-90C242 102.3 234.6 84.39 224 71.11 212.12 56.21 197 48 181.49 48a42.88 42.88 0 00-6.33.47c-32.37 4.76-52.54 44.26-45.92 90 2.76 19.2 10.16 37.09 20.76 50.38zM313.16 211.53a42.88 42.88 0 006.33.47c15.53 0 30.62-8.22 42.52-23.15 10.59-13.29 17.95-31.18 20.75-50.4 6.62-45.72-13.55-85.22-45.92-90a42.88 42.88 0 00-6.33-.47C315 48 299.88 56.21 288 71.11c-10.6 13.28-18 31.19-20.76 50.44-6.62 45.72 13.55 85.22 45.92 89.98zM111.59 308.8l.14-.05c11.93-4.79 21.16-14.29 26.69-27.48 8.38-20 7.2-46.75-3.15-71.65C120.94 175.16 92.85 152 65.38 152a46.4 46.4 0 00-17 3.2l-.14.05c-11.9 4.75-21.13 14.29-26.66 27.48-8.38 20-7.2 46.75 3.15 71.65C39.06 288.84 67.15 312 94.62 312a46.4 46.4 0 0016.97-3.2z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 490.39,182.75 c -5.55,-13.19 -14.77,-22.7 -26.67,-27.49 l -0.16,-0.06 a 46.46,46.46 0 0 0 -17,-3.2 h -0.64 c -27.24,0.41 -55.05,23.56 -69.19,57.61 -10.37,24.9 -11.56,51.68 -3.18,71.64 5.54,13.2 14.78,22.71 26.73,27.5 l 0.13,0.05 a 46.53,46.53 0 0 0 17,3.2 c 27.5,0 55.6,-23.15 70,-57.65 10.24,-24.87 11.37,-51.63 2.98,-71.6 z M 381.55,329.61 C 365.84,320.17 350.99,311.24 341.29,295.2 314.53,250.8 298.37,224 256,224 c -42.37,0 -58.57,26.8 -85.39,71.2 -9.72,16.06 -24.6,25 -40.36,34.48 -18.07,10.86 -36.74,22.08 -44.8,44.16 a 66.93,66.93 0 0 0 -4.65,25 c 0,35.95 28,65.2 62.4,65.2 17.75,0 36.64,-6.15 56.63,-12.66 19.22,-6.26 39.09,-12.73 56.27,-12.73 17.18,0 37,6.47 56.15,12.73 19.95,6.47 38.75,12.62 56.55,12.62 34.35,0 62.3,-29.25 62.3,-65.2 a 67,67 0 0 0 -4.75,-25 c -8.06,-22.1 -26.74,-33.33 -44.8,-44.19 z M 150,188.85 c 11.9,14.93 27,23.15 42.52,23.15 a 42.88,42.88 0 0 0 6.33,-0.47 c 32.37,-4.76 52.54,-44.26 45.92,-90 C 242,102.3 234.6,84.39 224,71.11 212.12,56.21 197,48 181.49,48 a 42.88,42.88 0 0 0 -6.33,0.47 c -32.37,4.76 -52.54,44.26 -45.92,90 2.76,19.2 10.16,37.09 20.76,50.38 z m 163.16,22.68 a 42.88,42.88 0 0 0 6.33,0.47 c 15.53,0 30.62,-8.22 42.52,-23.15 10.59,-13.29 17.95,-31.18 20.75,-50.4 6.62,-45.72 -13.55,-85.22 -45.92,-90 a 42.88,42.88 0 0 0 -6.33,-0.47 C 315,48 299.88,56.21 288,71.11 c -10.6,13.28 -18,31.19 -20.76,50.44 -6.62,45.72 13.55,85.22 45.92,89.98 z m -201.57,97.27 0.14,-0.05 c 11.93,-4.79 21.16,-14.29 26.69,-27.48 8.38,-20 7.2,-46.75 -3.15,-71.65 C 120.94,175.16 92.85,152 65.38,152 a 46.4,46.4 0 0 0 -17,3.2 l -0.14,0.05 c -11.9,4.75 -21.13,14.29 -26.66,27.48 -8.38,20 -7.2,46.75 3.15,71.65 C 39.06,288.84 67.15,312 94.62,312 a 46.4,46.4 0 0 0 16.97,-3.2 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M336 256c-20.56 0-40.44-9.18-56-25.84-15.13-16.25-24.37-37.92-26-61-1.74-24.62 5.77-47.26 21.14-63.76S312 80 336 80c23.83 0 45.38 9.06 60.7 25.52 15.47 16.62 23 39.22 21.26 63.63-1.67 23.11-10.9 44.77-26 61C376.44 246.82 356.57 256 336 256zm66-88zM467.83 432H204.18a27.71 27.71 0 01-22-10.67 30.22 30.22 0 01-5.26-25.79c8.42-33.81 29.28-61.85 60.32-81.08C264.79 297.4 299.86 288 336 288c36.85 0 71 9 98.71 26.05 31.11 19.13 52 47.33 60.38 81.55a30.27 30.27 0 01-5.32 25.78A27.68 27.68 0 01467.83 432zM147 260c-35.19 0-66.13-32.72-69-72.93-1.42-20.6 5-39.65 18-53.62 12.86-13.83 31-21.45 51-21.45s38 7.66 50.93 21.57c13.1 14.08 19.5 33.09 18 53.52-2.87 40.2-33.8 72.91-68.93 72.91zM212.66 291.45c-17.59-8.6-40.42-12.9-65.65-12.9-29.46 0-58.07 7.68-80.57 21.62-25.51 15.83-42.67 38.88-49.6 66.71a27.39 27.39 0 004.79 23.36A25.32 25.32 0 0041.72 400h111a8 8 0 007.87-6.57c.11-.63.25-1.26.41-1.88 8.48-34.06 28.35-62.84 57.71-83.82a8 8 0 00-.63-13.39c-1.57-.92-3.37-1.89-5.42-2.89z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 336,256 c -20.56,0 -40.44,-9.18 -56,-25.84 -15.13,-16.25 -24.37,-37.92 -26,-61 -1.74,-24.62 5.77,-47.26 21.14,-63.76 C 290.51,88.9 312,80 336,80 c 23.83,0 45.38,9.06 60.7,25.52 15.47,16.62 23,39.22 21.26,63.63 -1.67,23.11 -10.9,44.77 -26,61 C 376.44,246.82 356.57,256 336,256 Z m 66,-88 z m 65.83,264 H 204.18 a 27.71,27.71 0 0 1 -22,-10.67 30.22,30.22 0 0 1 -5.26,-25.79 c 8.42,-33.81 29.28,-61.85 60.32,-81.08 C 264.79,297.4 299.86,288 336,288 c 36.85,0 71,9 98.71,26.05 31.11,19.13 52,47.33 60.38,81.55 A 30.27,30.27 0 0 1 489.77,421.38 27.68,27.68 0 0 1 467.83,432 Z M 147,260 c -35.19,0 -66.13,-32.72 -69,-72.93 -1.42,-20.6 5,-39.65 18,-53.62 12.86,-13.83 31,-21.45 51,-21.45 20,0 38,7.66 50.93,21.57 13.1,14.08 19.5,33.09 18,53.52 C 213.06,227.29 182.13,260 147,260 Z m 65.66,31.45 c -17.59,-8.6 -40.42,-12.9 -65.65,-12.9 -29.46,0 -58.07,7.68 -80.57,21.62 -25.51,15.83 -42.67,38.88 -49.6,66.71 a 27.39,27.39 0 0 0 4.79,23.36 25.32,25.32 0 0 0 20.09,9.76 h 111 a 8,8 0 0 0 7.87,-6.57 c 0.11,-0.63 0.25,-1.26 0.41,-1.88 8.48,-34.06 28.35,-62.84 57.71,-83.82 a 8,8 0 0 0 -0.63,-13.39 c -1.57,-0.92 -3.37,-1.89 -5.42,-2.89 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M441.82 67.83C383.44 44.73 317.3 32 255.56 32 192 32 125.76 44.53 69 67.26 48.7 75.49 45.21 90 48.71 100.82L52.78 111a16 16 0 0021.31 8.69c10.8-4.76 23.93-10.54 27-11.78C145.1 89.64 198.71 80 256 80c57.47 0 108.09 9.24 154.76 28.25 4.42 1.8 14.88 6.42 26.17 11.46a16 16 0 0021.35-8.59L462 102l.34-.9c3.45-10.21.14-25.05-20.52-33.27z"/><path d="M409.18 140.86C363.67 122.53 307.68 112 255.56 112a425 425 0 00-153.74 28.89c-.53.21-2.06.88-4.29 1.88a16 16 0 00-8 21.27c4 8.71 9.42 20.58 15.5 33.89C137.94 270 199.21 404 227.26 462A31.74 31.74 0 00256 480a31.73 31.73 0 0028.76-18.06l.06-.13 137.3-297.57a15.94 15.94 0 00-8.31-21.45c-2.26-.95-3.85-1.61-4.5-1.87zm-215.1 83.07a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64 128a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64-112a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 409.18,140.86 C 363.67,122.53 307.68,112 255.56,112 a 425,425 0 0 0 -153.74,28.89 c -0.53,0.21 -2.06,0.88 -4.29,1.88 a 16,16 0 0 0 -8,21.27 c 4,8.71 9.42,20.58 15.5,33.89 C 137.94,270 199.21,404 227.26,462 a 31.74,31.74 0 0 0 28.74,18 31.73,31.73 0 0 0 28.76,-18.06 l 0.06,-0.13 137.3,-297.57 a 15.94,15.94 0 0 0 -8.31,-21.45 c -2.26,-0.95 -3.85,-1.61 -4.5,-1.87 z m -215.1,83.07 a 32,32 0 1 1 29.85,-29.85 32,32 0 0 1 -29.85,29.85 z m 64,128 a 32,32 0 1 1 29.85,-29.85 32,32 0 0 1 -29.85,29.85 z m 64,-112 a 32,32 0 1 1 29.85,-29.85 32,32 0 0 1 -29.85,29.85 z M 441.82,67.83 C 383.44,44.73 317.3,32 255.56,32 192,32 125.76,44.53 69,67.26 48.7,75.49 45.21,90 48.71,100.82 L 52.78,111 a 16,16 0 0 0 21.31,8.69 c 10.8,-4.76 23.93,-10.54 27,-11.78 C 145.1,89.64 198.71,80 256,80 c 57.47,0 108.09,9.24 154.76,28.25 4.42,1.8 14.88,6.42 26.17,11.46 a 16,16 0 0 0 21.35,-8.59 L 462,102 l 0.34,-0.9 c 3.45,-10.21 0.14,-25.05 -20.52,-33.27 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M96.85 286.62a8 8 0 00-12.53 8.25C102.07 373.28 172.3 432 256 432a175.31 175.31 0 0052.41-8 8 8 0 00.79-15 1120 1120 0 01-109.48-55.61 1126.24 1126.24 0 01-102.87-66.77zM492.72 339.51c-4.19-5.58-9.11-11.44-14.7-17.53a15.83 15.83 0 00-26.56 5.13c0 .16-.11.31-.17.47a15.75 15.75 0 003.15 16.06c22.74 25 26.42 38.51 25.48 41.36-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0019.54-27.25c.17-.29.35-.58.52-.88A175.39 175.39 0 00432 256a178.87 178.87 0 00-1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 00-106.4 35.89 177.4 177.4 0 00-45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 00-13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2-2.23 15.54-5.87 48.62 1.31A15.82 15.82 0 0096.22 123l.36-.44a15.74 15.74 0 00-8.67-25.43A237.38 237.38 0 0064.13 93c-30.72-3.53-50.83 2.52-59.78 18-3.24 5.58-6.35 15.09-2.72 28.6C7 159.66 26.14 184 53.23 209.5c8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12T137.1 276c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16t28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12H464c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 96.85,286.62 a 8,8 0 0 0 -12.53,8.25 C 102.07,373.28 172.3,432 256,432 a 175.31,175.31 0 0 0 52.41,-8 8,8 0 0 0 0.79,-15 A 1120,1120 0 0 1 199.72,353.39 1126.24,1126.24 0 0 1 96.85,286.62 Z m 395.87,52.89 c -4.19,-5.58 -9.11,-11.44 -14.7,-17.53 a 15.83,15.83 0 0 0 -26.56,5.13 c 0,0.16 -0.11,0.31 -0.17,0.47 a 15.75,15.75 0 0 0 3.15,16.06 c 22.74,25 26.42,38.51 25.48,41.36 -2,2.23 -17.05,6.89 -58.15,-3.53 q -8.83,-2.24 -19.32,-5.46 -6.76,-2.08 -13.79,-4.49 a 176.76,176.76 0 0 0 19.54,-27.25 c 0.17,-0.29 0.35,-0.58 0.52,-0.88 A 175.39,175.39 0 0 0 432,256 178.87,178.87 0 0 0 431,237 C 421.43,148.83 346.6,80 256,80 a 175.37,175.37 0 0 0 -106.4,35.89 177.4,177.4 0 0 0 -45.83,51.84 c -0.16,0.29 -0.34,0.58 -0.51,0.87 a 175.48,175.48 0 0 0 -13.83,30.52 q -5.59,-4.87 -10.79,-9.67 c -5.39,-5 -10.17,-9.63 -14.42,-14 C 34.65,145.19 31.13,129.84 32.06,127 c 2,-2.23 15.54,-5.87 48.62,1.31 A 15.82,15.82 0 0 0 96.22,123 l 0.36,-0.44 A 15.74,15.74 0 0 0 87.91,97.13 237.38,237.38 0 0 0 64.13,93 C 33.41,89.47 13.3,95.52 4.35,111 1.11,116.58 -2,126.09 1.63,139.6 7,159.66 26.14,184 53.23,209.5 c 8.63,8.13 18.06,16.37 28.12,24.64 7.32,6 15,12.06 22.9,18.08 q 7.91,6 16.15,12 8.24,6 16.7,11.78 c 25.41,17.61 52.26,34.52 78.59,49.69 q 14.34,8.26 28.64,16 14.3,7.74 28.37,14.81 c 21.9,11 43.35,20.92 63.86,29.43 q 13.19,5.48 25.81,10.16 c 11.89,4.42 23.37,8.31 34.31,11.59 l 1.1,0.33 c 25.73,7.66 47.42,11.69 64.48,12 H 464 c 21.64,0 36.3,-6.38 43.58,-19 9.09,-15.62 4.08,-36.32 -14.86,-61.5 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M200 144h40v-40a40 40 0 10-40 40zM352 104a40 40 0 00-80 0v40h40a40 40 0 0040-40z" fill="none"/><path d="M80 416a64 64 0 0064 64h92a4 4 0 004-4V292a4 4 0 00-4-4H88a8 8 0 00-8 8zM240 252V144h32v108a4 4 0 004 4h140a47.93 47.93 0 0016-2.75A48.09 48.09 0 00464 208v-16a48 48 0 00-48-48h-40.54a2 2 0 01-1.7-3A72 72 0 00256 58.82 72 72 0 00138.24 141a2 2 0 01-1.7 3H96a48 48 0 00-48 48v16a48.09 48.09 0 0032 45.25A47.93 47.93 0 0096 256h140a4 4 0 004-4zm32-148a40 40 0 1140 40h-40zm-74.86-39.9A40 40 0 01240 104v40h-40a40 40 0 01-2.86-79.89zM276 480h92a64 64 0 0064-64V296a8 8 0 00-8-8H276a4 4 0 00-4 4v184a4 4 0 004 4z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 80,416 a 64,64 0 0 0 64,64 h 92 a 4,4 0 0 0 4,-4 V 292 a 4,4 0 0 0 -4,-4 H 88 a 8,8 0 0 0 -8,8 z M 240,252 V 144 h 32 v 108 a 4,4 0 0 0 4,4 h 140 a 47.93,47.93 0 0 0 16,-2.75 48.09,48.09 0 0 0 32,-45.25 v -16 a 48,48 0 0 0 -48,-48 h -40.54 a 2,2 0 0 1 -1.7,-3 A 72,72 0 0 0 256,58.82 72,72 0 0 0 138.24,141 a 2,2 0 0 1 -1.7,3 H 96 a 48,48 0 0 0 -48,48 v 16 a 48.09,48.09 0 0 0 32,45.25 47.93,47.93 0 0 0 16,2.75 h 140 a 4,4 0 0 0 4,-4 z m 32,-148 a 40,40 0 1 1 40,40 H 272 Z M 197.14,64.1 A 40,40 0 0 1 240,104 v 40 H 200 A 40,40 0 0 1 197.14,64.11 Z M 276,480 h 92 a 64,64 0 0 0 64,-64 V 296 a 8,8 0 0 0 -8,-8 H 276 a 4,4 0 0 0 -4,4 v 184 a 4,4 0 0 0 4,4 z M 200,144 h 40 v -40 a 40,40 0 1 0 -40,40 z m 152,-40 a 40,40 0 0 0 -80,0 v 40 h 40 a 40,40 0 0 0 40,-40 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M328.85 156.79a26.69 26.69 0 1018.88 7.81 26.6 26.6 0 00-18.88-7.81z"/><path d="M477.44 50.06a.29.29 0 010-.09 20.4 20.4 0 00-15.13-15.3c-29.8-7.27-76.68.48-128.63 21.28-52.36 21-101.42 52-134.58 85.22A320.7 320.7 0 00169.55 175c-22.33-1-42 2.18-58.57 9.41-57.74 25.41-74.23 90.44-78.62 117.14a25 25 0 0027.19 29h.13l64.32-7.02c.08.82.17 1.57.24 2.26a34.36 34.36 0 009.9 20.72l31.39 31.41a34.27 34.27 0 0020.71 9.91l2.15.23-7 64.24v.13A25 25 0 00206 480a25.25 25.25 0 004.15-.34C237 475.34 302 459.05 327.34 401c7.17-16.46 10.34-36.05 9.45-58.34a314.78 314.78 0 0033.95-29.55c33.43-33.26 64.53-81.92 85.31-133.52 20.69-51.36 28.48-98.59 21.39-129.53zM370.38 224.94a58.77 58.77 0 110-83.07 58.3 58.3 0 010 83.07z"/><path d="M161.93 386.44a16 16 0 00-11 2.67c-6.39 4.37-12.81 8.69-19.29 12.9-13.11 8.52-28.79-6.44-21-20l12.15-21a16 16 0 00-15.16-24.91A61.25 61.25 0 0072 353.56c-3.66 3.67-14.79 14.81-20.78 57.26A357.94 357.94 0 0048 447.59 16 16 0 0064 464h.4a359.87 359.87 0 0036.8-3.2c42.47-6 53.61-17.14 57.27-20.8a60.49 60.49 0 0017.39-35.74 16 16 0 00-13.93-17.82z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 161.93,386.44 a 16,16 0 0 0 -11,2.67 c -6.39,4.37 -12.81,8.69 -19.29,12.9 -13.11,8.52 -28.79,-6.44 -21,-20 l 12.15,-21 A 16,16 0 0 0 107.63,336.1 61.25,61.25 0 0 0 72,353.56 c -3.66,3.67 -14.79,14.81 -20.78,57.26 A 357.94,357.94 0 0 0 48,447.59 16,16 0 0 0 64,464 h 0.4 a 359.87,359.87 0 0 0 36.8,-3.2 c 42.47,-6 53.61,-17.14 57.27,-20.8 a 60.49,60.49 0 0 0 17.39,-35.74 16,16 0 0 0 -13.93,-17.82 z M 477.44,50.06 a 0.29,0.29 0 0 1 0,-0.09 20.4,20.4 0 0 0 -15.13,-15.3 c -29.8,-7.27 -76.68,0.48 -128.63,21.28 -52.36,21 -101.42,52 -134.58,85.22 A 320.7,320.7 0 0 0 169.55,175 c -22.33,-1 -42,2.18 -58.57,9.41 -57.74,25.41 -74.23,90.44 -78.62,117.14 a 25,25 0 0 0 27.19,29 h 0.13 L 124,323.53 c 0.08,0.82 0.17,1.57 0.24,2.26 a 34.36,34.36 0 0 0 9.9,20.72 l 31.39,31.41 a 34.27,34.27 0 0 0 20.71,9.91 l 2.15,0.23 -7,64.24 v 0.13 A 25,25 0 0 0 206,480 a 25.25,25.25 0 0 0 4.15,-0.34 C 237,475.34 302,459.05 327.34,401 c 7.17,-16.46 10.34,-36.05 9.45,-58.34 a 314.78,314.78 0 0 0 33.95,-29.55 C 404.17,279.85 435.27,231.19 456.05,179.59 476.74,128.23 484.53,81 477.44,50.06 Z M 370.38,224.94 a 58.77,58.77 0 1 1 0,-83.07 58.3,58.3 0 0 1 0,83.07 z m -41.53,-68.15 a 26.69,26.69 0 1 0 18.88,7.81 26.6,26.6 0 0 0 -18.88,-7.81 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M256 368a16 16 0 01-7.94-2.11L108 285.84a8 8 0 00-12 6.94V368a16 16 0 008.23 14l144 80a16 16 0 0015.54 0l144-80a16 16 0 008.23-14v-75.22a8 8 0 00-12-6.94l-140.06 80.05A16 16 0 01256 368z"/><path d="M495.92 190.5v-.11a16 16 0 00-8-12.28l-224-128a16 16 0 00-15.88 0l-224 128a16 16 0 000 27.78l224 128a16 16 0 0015.88 0L461 221.28a2 2 0 013 1.74v144.53c0 8.61 6.62 16 15.23 16.43A16 16 0 00496 368V192a14.76 14.76 0 00-.08-1.5z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 495.92,190.5 v -0.11 a 16,16 0 0 0 -8,-12.28 l -224,-128 a 16,16 0 0 0 -15.88,0 l -224,128 a 16,16 0 0 0 0,27.78 l 224,128 a 16,16 0 0 0 15.88,0 L 461,221.28 a 2,2 0 0 1 3,1.74 v 144.53 c 0,8.61 6.62,16 15.23,16.43 A 16,16 0 0 0 496,368 V 192 a 14.76,14.76 0 0 0 -0.08,-1.5 z M 256,368 a 16,16 0 0 1 -7.94,-2.11 L 108,285.84 a 8,8 0 0 0 -12,6.94 V 368 a 16,16 0 0 0 8.23,14 l 144,80 a 16,16 0 0 0 15.54,0 l 144,-80 A 16,16 0 0 0 416,368 v -75.22 a 8,8 0 0 0 -12,-6.94 L 263.94,365.89 A 16,16 0 0 1 256,368 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M336 336H32a16 16 0 01-14-23.81l152-272a16 16 0 0127.94 0l152 272A16 16 0 01336 336z"/><path d="M336 160a161.07 161.07 0 00-32.57 3.32l74.47 133.27A48 48 0 01336 368H183.33A160 160 0 10336 160z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="m 336,160 a 161.07,161.07 0 0 0 -32.57,3.32 L 377.9,296.59 A 48,48 0 0 1 336,368 H 183.33 A 160,160 0 1 0 336,160 Z m 0,176 H 32 A 16,16 0 0 1 18,312.19 l 152,-272 a 16,16 0 0 1 27.94,0 l 152,272 A 16,16 0 0 1 336,336 Z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M256 96c33.08 0 60.71-25.78 64-58 .3-3-3-6-6-6a13 13 0 00-4.74.9c-.2.08-21.1 8.1-53.26 8.1s-53.1-8-53.26-8.1a16.21 16.21 0 00-5.3-.9h-.06a5.69 5.69 0 00-5.38 6c3.35 32.16 31 58 64 58z"/><path d="M485.29 89.9L356 44.64a4 4 0 00-5.27 3.16 96 96 0 01-189.38 0 4 4 0 00-5.35-3.16L26.71 89.9A16 16 0 0016.28 108l16.63 88a16 16 0 0013.92 12.9l48.88 5.52a8 8 0 017.1 8.19l-7.33 240.9a16 16 0 009.1 14.94A17.49 17.49 0 00112 480h288a17.49 17.49 0 007.42-1.55 16 16 0 009.1-14.94l-7.33-240.9a8 8 0 017.1-8.19l48.88-5.52a16 16 0 0013.92-12.9l16.63-88a16 16 0 00-10.43-18.1z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 485.29,89.9 356,44.64 a 4,4 0 0 0 -5.27,3.16 96,96 0 0 1 -189.38,0 A 4,4 0 0 0 156,44.64 L 26.71,89.9 A 16,16 0 0 0 16.28,108 l 16.63,88 a 16,16 0 0 0 13.92,12.9 l 48.88,5.52 a 8,8 0 0 1 7.1,8.19 l -7.33,240.9 a 16,16 0 0 0 9.1,14.94 17.49,17.49 0 0 0 7.42,1.55 h 288 a 17.49,17.49 0 0 0 7.42,-1.55 16,16 0 0 0 9.1,-14.94 l -7.33,-240.9 a 8,8 0 0 1 7.1,-8.19 l 48.88,-5.52 A 16,16 0 0 0 479.09,196 l 16.63,-88 A 16,16 0 0 0 485.29,89.9 Z M 256,96 c 33.08,0 60.71,-25.78 64,-58 0.3,-3 -3,-6 -6,-6 a 13,13 0 0 0 -4.74,0.9 c -0.2,0.08 -21.1,8.1 -53.26,8.1 -32.16,0 -53.1,-8 -53.26,-8.1 a 16.21,16.21 0 0 0 -5.3,-0.9 h -0.06 A 5.69,5.69 0 0 0 192,38 c 3.35,32.16 31,58 64,58 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M402 76.94C362.61 37.63 310.78 16 256 16h-.37A208 208 0 0048 224v100.67A79.62 79.62 0 0098.29 399l23.71 9.42a15.92 15.92 0 019.75 11.72l10 50.13A32.09 32.09 0 00173.12 496H184a8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01224 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01320 448v40a8 8 0 008 8h10.88a32.09 32.09 0 0031.38-25.72l10-50.14a16 16 0 019.74-11.72l23.71-9.42A79.62 79.62 0 00464 324.67v-99c0-56-22-108.81-62-148.73zM171.66 335.88a56 56 0 1152.22-52.22 56 56 0 01-52.22 52.22zM281 397.25a16.37 16.37 0 01-9.3 2.75h-31.4a16.37 16.37 0 01-9.28-2.75 16 16 0 01-6.6-16.9l15.91-47.6C243 326 247.25 321 254 320.13c8.26-1 14 2.87 17.61 12.22l16 48a16 16 0 01-6.61 16.9zm66.68-61.37a56 56 0 1152.22-52.22 56 56 0 01-52.24 52.22z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 402,76.94 C 362.61,37.63 310.78,16 256,16 h -0.37 A 208,208 0 0 0 48,224 V 324.67 A 79.62,79.62 0 0 0 98.29,399 l 23.71,9.42 a 15.92,15.92 0 0 1 9.75,11.72 l 10,50.13 A 32.09,32.09 0 0 0 173.12,496 H 184 a 8,8 0 0 0 8,-8 v -39.55 c 0,-8.61 6.62,-16 15.23,-16.43 A 16,16 0 0 1 224,448 v 40 a 8,8 0 0 0 8,8 8,8 0 0 0 8,-8 v -39.55 c 0,-8.61 6.62,-16 15.23,-16.43 A 16,16 0 0 1 272,448 v 40 a 8,8 0 0 0 8,8 8,8 0 0 0 8,-8 v -39.55 c 0,-8.61 6.62,-16 15.23,-16.43 A 16,16 0 0 1 320,448 v 40 a 8,8 0 0 0 8,8 h 10.88 a 32.09,32.09 0 0 0 31.38,-25.72 l 10,-50.14 A 16,16 0 0 1 390,408.42 L 413.71,399 A 79.62,79.62 0 0 0 464,324.67 v -99 c 0,-56 -22,-108.81 -62,-148.73 z M 171.66,335.88 a 56,56 0 1 1 52.22,-52.22 56,56 0 0 1 -52.22,52.22 z M 281,397.25 a 16.37,16.37 0 0 1 -9.3,2.75 h -31.4 a 16.37,16.37 0 0 1 -9.28,-2.75 16,16 0 0 1 -6.6,-16.9 l 15.91,-47.6 C 243,326 247.25,321 254,320.13 c 8.26,-1 14,2.87 17.61,12.22 l 16,48 a 16,16 0 0 1 -6.61,16.9 z m 66.68,-61.37 a 56,56 0 1 1 52.22,-52.22 56,56 0 0 1 -52.24,52.22 z"/></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512"><path d="M416 464H96a48.05 48.05 0 01-48-48V96a48.05 48.05 0 0148-48h320a48.05 48.05 0 0148 48v320a48.05 48.05 0 01-48 48z"/></svg>
<svg fill="context-fill" fill-opacity="context-fill-opacity" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><path d="M 416,464 H 96 A 48.05,48.05 0 0 1 48,416 V 96 A 48.05,48.05 0 0 1 96,48 h 320 a 48.05,48.05 0 0 1 48,48 v 320 a 48.05,48.05 0 0 1 -48,48 z"/></svg>

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