Merge pull request #850 from webadderallorg/codex/windows-11-cursors

Add Windows 11 cursor styles
This commit is contained in:
webadderall authored and GitHub committed 2026-09-01 16:41:19 +10:00
commit 1821aaa06d
42 files changed
+257 -34

No files matched your search

+1 -4
View File
@@ -1,8 +1,5 @@
import { describe, expect, it } from "vitest";
import {
EXPERIMENTAL_UPDATE_DESCRIPTION,
getUpdateChannelConfiguration,
} from "./updateChannel";
import { EXPERIMENTAL_UPDATE_DESCRIPTION, getUpdateChannelConfiguration } from "./updateChannel";
describe("getUpdateChannelConfiguration", () => {
it("keeps regular clients on stable metadata", () => {
+1 -3
View File
@@ -13,9 +13,7 @@ export function getUpdateChannelConfiguration(
experimentalUpdatesEnabled: boolean,
): UpdateChannelConfiguration {
return {
channel: experimentalUpdatesEnabled
? EXPERIMENTAL_UPDATE_CHANNEL
: STABLE_UPDATE_CHANNEL,
channel: experimentalUpdatesEnabled ? EXPERIMENTAL_UPDATE_CHANNEL : STABLE_UPDATE_CHANNEL,
allowPrerelease: experimentalUpdatesEnabled,
allowDowngrade: false,
};
+1 -4
View File
@@ -5,10 +5,7 @@ import { app, BrowserWindow, dialog } from "electron";
import { autoUpdater } from "electron-updater";
import { USER_DATA_PATH } from "./appPaths";
import { readAppSetting, writeAppSetting } from "./appSettingsStore";
import {
EXPERIMENTAL_UPDATE_DESCRIPTION,
getUpdateChannelConfiguration,
} from "./updateChannel";
import { EXPERIMENTAL_UPDATE_DESCRIPTION, getUpdateChannelConfiguration } from "./updateChannel";
const UPDATE_CHECK_INTERVAL_MS = 6 * 60 * 60 * 1000;
export const UPDATE_REMINDER_DELAY_MS = 3 * 60 * 60 * 1000;
+8 -2
View File
@@ -209,7 +209,9 @@ function getUpdateToastBounds() {
const display = getScreen().getDisplayMatching(hudBounds);
const { workArea } = display;
const x = Math.round(workArea.x + (workArea.width - UPDATE_TOAST_WIDTH) / 2);
const y = Math.round(workArea.y + workArea.height - UPDATE_TOAST_HEIGHT - HUD_EDGE_MARGIN_DIP);
const y = Math.round(
workArea.y + workArea.height - UPDATE_TOAST_HEIGHT - HUD_EDGE_MARGIN_DIP,
);
return {
x,
@@ -460,7 +462,11 @@ export function createHudOverlayWindow(): BrowserWindow {
if (hasShownHudWindow || win.isDestroyed()) {
return;
}
if (updateToastWindow && !updateToastWindow.isDestroyed() && updateToastWindow.isVisible()) {
if (
updateToastWindow &&
!updateToastWindow.isDestroyed() &&
updateToastWindow.isVisible()
) {
hudWasVisibleBeforeUpdateToast = true;
return;
}
@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 7L10 22.8L13.38 19.51L15.61 24.16L18.57 22.66L16.54 18.55H21.5L10 7Z" fill="white" stroke="black" stroke-miterlimit="3.8637"/>
</svg>

After

Width:  |  Height:  |  Size: 243 B

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24 16C24 20.4111 20.4111 24 16 24C11.5889 24 8 20.4111 8 16C8 11.5889 11.5889 8 16 8C20.4111 8 24 11.5889 24 16ZM16 10C14.7546 10 13.5969 10.3818 12.637 11.0339L20.9662 19.3627C21.6182 18.4029 22 17.2454 22 16C22 12.6914 19.3086 10 16 10ZM16 22C17.3424 22 18.5788 21.5516 19.5794 20.8041L11.1957 12.4208C10.4484 13.4214 10 14.6578 10 16C10 19.3086 12.6914 22 16 22Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 537 B

@@ -0,0 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27.7361 11H17.7361V9H27.7361V11Z" fill="#FFFFFE"/>
<path d="M27.7361 25H17.7361V23H27.7361V25Z" fill="#FFFFFE"/>
<path d="M20.7361 16L18.7361 14V11H26.7361V14L24.7361 16V18L26.7361 20V23H18.7361V20L20.7361 18V16Z" fill="#FFFFFE"/>
<path d="M15.4721 18.5341H10.5377L12.5642 22.6566L9.61947 24.1497L7.35907 19.5161L4 22.7919V7L15.4721 18.5341Z" fill="#FFFFFE"/>
<path d="M20.2361 13H21.2361M21.2361 14H22.2361M22.2361 15H23.2361M22.2361 17H23.2361M22.2361 20H23.2361M21.2361 21H22.2361M23.2361 21H24.2361M24.2361 22H25.2361M20.2361 22H21.2361M22.2361 22H23.2361M22.2361 13H23.2361M24.2361 13H25.2361M17.7361 11H27.7361V9H17.7361V11ZM17.7361 25H27.7361V23H17.7361V25ZM20.7361 16L18.7361 14V11H26.7361V14L24.7361 16V18L26.7361 20V23H18.7361V20L20.7361 18V16ZM15.4721 18.5341H10.5377L12.5642 22.6566L9.61947 24.1497L7.35907 19.5161L4 22.7919V7L15.4721 18.5341Z" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 1012 B

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 15V7H17V15H25V17H17V25H15V17H7V15H15Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 212 B

@@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.029 22.5V24H20.029V21C21.029 20 22.029 18.5 22.029 18.5C22.029 18.5 23.029 17 23.029 15L23.029 13C23.029 11 20.029 11 20.029 13.5L20.029 11C20.029 9 17.029 9 17.029 11L17.029 9.5C17.029 8 14.029 8 14.029 9.5L14.029 11.5C14.029 13 13.529 11.5 13.029 10.5C12.029 8.5 9.52899 10 10.029 11.5L11.5 14.5C12 15.5 11.3827 15.8537 11.029 15.5C8.99026 13.4613 7.02899 15 8.52898 17C9.52899 18.3333 11.029 20.5 13.029 22.5Z" fill="white"/>
<path d="M13.029 22.5H13.529C13.529 22.3674 13.4763 22.2402 13.3825 22.1464L13.029 22.5ZM8.52898 17L8.12898 17.3H8.12898L8.52898 17ZM11.029 15.5L10.6754 15.8536H10.6754L11.029 15.5ZM10.029 11.5L10.4762 11.2764L10.4736 11.2713L10.029 11.5ZM14.029 11.5L13.529 11.5V11.5L14.029 11.5ZM14.029 9.5L14.529 9.5L14.5289 9.49275L14.029 9.5ZM17.029 9.5L17.529 9.5L17.5289 9.49275L17.029 9.5ZM17.029 11L17.529 11V11H17.029ZM16.529 14C16.529 14.2761 16.7528 14.5 17.029 14.5C17.3051 14.5 17.529 14.2761 17.529 14L16.529 14ZM20.029 11L19.529 11V11L20.029 11ZM20.029 13.5H20.529V13.5L20.029 13.5ZM19.529 15C19.529 15.2761 19.7528 15.5 20.029 15.5C20.3051 15.5 20.529 15.2761 20.529 15H19.529ZM23 13.5H22.4999L22.5001 13.5097L23 13.5ZM22.029 18.5L22.445 18.7774V18.7774L22.029 18.5ZM20.029 21L19.6754 20.6464C19.5817 20.7402 19.529 20.8674 19.529 21H20.029ZM23.029 15L23.5291 15L23.5289 14.9903L23.029 15ZM11.529 14.5L11.0818 14.7236L11.0818 14.7236L11.529 14.5ZM13.529 24V22.5H12.529V24H13.529ZM13.3825 22.1464C11.4146 20.1785 9.94216 18.0509 8.92899 16.7L8.12898 17.3C9.11582 18.6158 10.6433 20.8215 12.6754 22.8536L13.3825 22.1464ZM8.92899 16.7C8.601 16.2627 8.49696 15.8965 8.50007 15.6413C8.50306 15.3949 8.60225 15.2381 8.73344 15.1487C8.99536 14.9703 9.72616 14.9043 10.6754 15.8536L11.3825 15.1464C10.2931 14.057 9.0239 13.7409 8.17049 14.3222C7.74402 14.6127 7.50672 15.0882 7.50014 15.6291C7.49367 16.1611 7.70697 16.7373 8.12898 17.3L8.92899 16.7ZM10.4736 11.2713C10.2779 10.8909 10.2902 10.574 10.3865 10.336C10.487 10.0876 10.696 9.88368 10.9596 9.77437C11.2209 9.66604 11.5187 9.65764 11.7923 9.77799C12.0613 9.89629 12.3548 10.1607 12.5648 10.6857L13.4932 10.3143C13.2032 9.58927 12.7431 9.10371 12.195 8.86263C11.6516 8.62361 11.069 8.64646 10.5766 8.85063C10.0866 9.05382 9.66878 9.4437 9.45951 9.9609C9.24604 10.4885 9.2656 11.1091 9.58438 11.7287L10.4736 11.2713ZM14.529 11.5L14.529 9.5L13.529 9.5L13.529 11.5L14.529 11.5ZM14.5289 9.49275C14.5237 9.12849 14.6517 8.89452 14.816 8.74656C14.9898 8.59004 15.2387 8.5 15.5072 8.5C15.7756 8.5 16.031 8.59007 16.2141 8.75081C16.3884 8.90373 16.5238 9.14275 16.529 9.50725L17.5289 9.49275C17.5197 8.85725 17.2692 8.34627 16.8737 7.99919C16.4871 7.65993 15.9889 7.5 15.5072 7.5C15.0258 7.5 14.5283 7.65996 14.1469 8.00344C13.7559 8.35548 13.5198 8.87151 13.529 9.50725L14.5289 9.49275ZM16.529 9.5L16.529 11L17.529 11L17.529 9.5L16.529 9.5ZM16.529 11L16.529 14L17.529 14L17.529 11L16.529 11ZM17.529 11C17.529 10.6357 17.6606 10.3992 17.8299 10.2487C18.0084 10.0901 18.2605 10 18.529 10C18.7975 10 19.0496 10.0901 19.2281 10.2487C19.3973 10.3992 19.529 10.6357 19.529 11L20.529 11C20.529 10.3643 20.2856 9.85082 19.8924 9.5013C19.5084 9.15995 19.0105 9 18.529 9C18.0475 9 17.5496 9.15995 17.1656 9.5013C16.7723 9.85082 16.529 10.3643 16.529 11H17.529ZM19.529 11L19.529 13.5L20.529 13.5L20.529 11L19.529 11ZM19.529 13.5V15H20.529V13.5H19.529ZM20.529 13.5C20.529 12.4705 21.1004 12.125 21.5145 12.125C21.9286 12.125 22.5 12.4705 22.5 13.5H23.5C23.5 12.0295 22.5859 11.125 21.5145 11.125C20.4431 11.125 19.529 12.0295 19.529 13.5L20.529 13.5ZM22.029 18.5C21.613 18.2226 21.613 18.2226 21.613 18.2226C21.613 18.2226 21.613 18.2226 21.613 18.2226C21.613 18.2226 21.613 18.2226 21.6129 18.2227C21.6129 18.2228 21.6128 18.223 21.6126 18.2232C21.6122 18.2238 21.6116 18.2247 21.6107 18.226C21.6091 18.2285 21.6064 18.2324 21.6029 18.2377C21.5958 18.2482 21.5851 18.264 21.571 18.2847C21.5427 18.3262 21.5009 18.387 21.4475 18.4633C21.3406 18.616 21.1876 18.8302 21.004 19.075C20.6342 19.5681 20.1507 20.1712 19.6754 20.6464L20.3825 21.3536C20.9073 20.8288 21.4238 20.1819 21.804 19.675C21.9954 19.4198 22.1549 19.1965 22.2667 19.0367C22.3227 18.9568 22.3668 18.8926 22.3972 18.8481C22.4124 18.8258 22.4241 18.8085 22.4321 18.7965C22.4362 18.7905 22.4393 18.7859 22.4414 18.7827C22.4425 18.7811 22.4434 18.7798 22.4439 18.7789C22.4442 18.7785 22.4445 18.7781 22.4447 18.7779C22.4448 18.7777 22.4448 18.7776 22.4449 18.7775C22.4449 18.7775 22.4449 18.7775 22.445 18.7774C22.445 18.7774 22.445 18.7774 22.029 18.5ZM19.529 21V24H20.529V21H19.529ZM22.5001 13.5097L22.5291 15.0097L23.5289 14.9903L23.4999 13.4903L22.5001 13.5097ZM22.529 15C22.529 15.9185 22.2988 16.7291 22.0648 17.3143C21.9482 17.6057 21.832 17.8377 21.7463 17.9949C21.7035 18.0735 21.6684 18.133 21.6449 18.1717C21.6331 18.191 21.6242 18.2051 21.6188 18.2136C21.616 18.2179 21.6141 18.2209 21.6131 18.2224C21.6126 18.2231 21.6124 18.2235 21.6123 18.2236C21.6123 18.2236 21.6124 18.2235 21.6125 18.2234C21.6125 18.2233 21.6126 18.2232 21.6127 18.2231C21.6127 18.223 21.6128 18.2229 21.6128 18.2229C21.6129 18.2228 21.613 18.2226 22.029 18.5C22.445 18.7774 22.4451 18.7772 22.4452 18.7771C22.4452 18.777 22.4453 18.7769 22.4454 18.7768C22.4455 18.7766 22.4457 18.7763 22.4459 18.7761C22.4462 18.7756 22.4466 18.7749 22.4471 18.7742C22.448 18.7728 22.4492 18.771 22.4506 18.7689C22.4534 18.7646 22.4571 18.7589 22.4617 18.7517C22.4708 18.7373 22.4835 18.7172 22.4991 18.6916C22.5302 18.6404 22.5733 18.56Line truncated
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

@@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.3798 20.2398V21.7398H20.3798V20.2398V19.2398C20.3798 18.4455 21.1019 17.7045 21.2872 17.5192C21.6777 17.1287 22.7872 17.0192 22.7872 16.0192V14.0192C22.7872 14.0192 22.5718 12.5192 21.2872 12.5192C20.4231 12.5192 20.3798 13.2398 20.3798 13.2398V12.2398C20.3798 12.2398 20.2872 11.5192 19.3798 11.2398C18.6632 11.0192 17.3798 11.1751 17.3798 11.466V12.2398C17.3798 12.2398 16.8202 11.5192 16.4128 11.2398C15.9303 10.9089 14.8696 10.9315 14.5516 11.2398C14.2123 11.5689 14.459 12.2398 14.2872 12.2398C14.1153 12.2398 13.7872 11.5192 13.3798 11.2398C12.9724 10.9604 11.5977 11.1108 11.2872 11.5192C10.8546 12.0881 10.8432 12.7074 11.2263 13.2398C11.7872 14.0192 12.2872 13.962 12.3798 14.2398C12.4724 14.5177 12.3798 15.2398 12.3798 15.2398H11.3798C11.0159 15.2398 10.4775 15.2398 10.2872 15.5192C9.86835 16.2398 9.91479 16.6744 10.3798 17.2398C10.427 17.2971 11.3798 18.2398 11.3798 18.2398L12.3798 19.2398L13.3798 20.2398Z" fill="white"/>
<path d="M13.3798 21.7398V20.2398L12.3798 19.2398L11.3798 18.2398C11.3798 18.2398 10.427 17.2971 10.3798 17.2398C9.91479 16.6744 9.86835 16.2398 10.2872 15.5192C10.4775 15.2398 11.0159 15.2398 11.3798 15.2398C11.7872 15.2398 12.3798 15.2398 12.3798 15.2398C12.3798 15.2398 12.4724 14.5177 12.3798 14.2398C12.2872 13.962 11.7872 14.0192 11.2263 13.2398C10.8432 12.7074 10.8546 12.0881 11.2872 11.5192C11.5977 11.1108 12.9724 10.9604 13.3798 11.2398C13.7872 11.5192 14.1153 12.2398 14.2872 12.2398C14.459 12.2398 14.2123 11.5689 14.5516 11.2398C14.8696 10.9315 15.9303 10.9089 16.4128 11.2398C16.8202 11.5192 17.3798 12.2398 17.3798 12.2398V11.466C17.3798 11.1751 18.6632 11.0192 19.3798 11.2398C20.2872 11.5192 20.3798 12.2398 20.3798 12.2398V13.2398C20.3798 13.2398 20.4231 12.5192 21.2872 12.5192C22.7872 12.5192 22.7872 14.0192 22.7872 14.0192V16.0192C22.7872 17.0192 21.6777 17.1287 21.2872 17.5192C21.1019 17.7045 20.3798 18.4455 20.3798 19.2398V20.2398V21.7398" stroke="black" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24.1837 23.3573C24.1342 23.2811 24.0948 23.1865 24.0656 23.0741C24.0364 22.9623 24.0224 22.8518 24.0224 22.7438C24.0224 22.5863 24.0428 22.446 24.0834 22.3222C24.124 22.199 24.1825 22.0821 24.2612 21.9716C24.34 21.8618 24.439 21.7506 24.5584 21.6382C24.6778 21.5258 24.8162 21.4039 24.9737 21.2744C25.2074 21.0807 25.4132 20.8933 25.5935 20.7105C25.7739 20.5288 25.9237 20.339 26.0457 20.1411C26.1663 19.9433 26.259 19.7331 26.3213 19.5106C26.3848 19.288 26.4165 19.0397 26.4165 18.7657C26.4165 18.3338 26.3403 17.9642 26.1904 17.6562C26.0393 17.3486 25.831 17.0955 25.563 16.8977C25.2951 16.6999 24.9826 16.5551 24.6219 16.4627C24.2625 16.3706 23.8738 16.3246 23.456 16.3246C23.02 16.3246 22.5974 16.3764 22.1881 16.4795C21.7792 16.5831 21.4017 16.7383 21.0556 16.945V18.9746C21.3928 18.678 21.75 18.4564 22.1275 18.3103C22.5053 18.1643 22.8692 18.0913 23.2198 18.0913C23.3823 18.0913 23.5284 18.116 23.6617 18.1656C23.7938 18.2148 23.9069 18.2824 23.9983 18.3678C24.091 18.4532 24.1621 18.5555 24.2117 18.6745C24.2612 18.7936 24.2853 18.9228 24.2853 19.0622C24.2853 19.2242 24.2625 19.3715 24.218 19.5039C24.1723 19.6366 24.105 19.7646 24.0161 19.8881C23.9259 20.0119 23.8167 20.1354 23.6884 20.2593C23.5601 20.3828 23.4115 20.5165 23.2401 20.6603C23.0785 20.7956 22.9368 20.9315 22.8152 21.0686C22.6939 21.2058 22.593 21.3493 22.512 21.4998C22.431 21.6503 22.3704 21.811 22.3298 21.9818C22.2894 22.1526 22.2691 22.3419 22.2691 22.5483C22.2691 22.6791 22.2815 22.8169 22.3063 22.9629C22.331 23.109 22.3659 23.2404 22.4107 23.3573L24.1837 23.3573ZM24.2764 26.6831C24.5063 26.4723 24.6206 26.2043 24.6206 25.8811C24.6206 25.5616 24.5037 25.2987 24.2701 25.0917C24.0364 24.8809 23.7417 24.7748 23.3861 24.7748C23.0267 24.7748 22.7279 24.8809 22.4894 25.0917C22.2513 25.3032 22.1322 25.5661 22.1322 25.8811C22.1322 26.1865 22.2513 26.452 22.4894 26.6768C22.7279 26.892 23.0267 27 23.3861 27C23.7455 27 24.0427 26.8946 24.2764 26.6831Z" fill="#FFFFFE"/>
<path d="M17.4721 17.8587H12.5377L14.5642 21.9812L11.6195 23.4743L9.35907 18.8407L6 22.1165V6.3246L17.4721 17.8587Z" fill="#FFFFFE"/>
<path d="M24.1837 23.3573L24.1838 23.8573C24.3671 23.8573 24.5358 23.7569 24.6232 23.5958C24.7107 23.4346 24.7029 23.2385 24.603 23.0848L24.1837 23.3573ZM24.0656 23.0741L24.5496 22.9483L24.5494 22.9476L24.0656 23.0741ZM24.0834 22.3222L23.6086 22.1655L23.6083 22.1663L24.0834 22.3222ZM24.2612 21.9716L23.8548 21.6804L23.854 21.6815L24.2612 21.9716ZM24.9737 21.2744L25.2914 21.6605L25.2928 21.6593L24.9737 21.2744ZM25.5935 20.7105L25.2387 20.3581L25.2375 20.3594L25.5935 20.7105ZM26.0457 20.1411L26.4713 20.4035L26.4725 20.4015L26.0457 20.1411ZM26.3213 19.5106L25.8404 19.3734L25.8397 19.3759L26.3213 19.5106ZM26.1904 17.6562L26.64 17.4375L26.6392 17.4358L26.1904 17.6562ZM24.6219 16.4627L24.746 15.9783L24.746 15.9783L24.6219 16.4627ZM22.1881 16.4795L22.0659 15.9947L22.0655 15.9948L22.1881 16.4795ZM21.0556 16.945L20.7992 16.5158C20.6481 16.606 20.5556 16.769 20.5556 16.945H21.0556ZM21.0556 18.9746H20.5556C20.5556 19.171 20.6706 19.3492 20.8495 19.4302C21.0285 19.5111 21.2383 19.4798 21.3858 19.35L21.0556 18.9746ZM22.1275 18.3103L21.9472 17.844L21.9471 17.844L22.1275 18.3103ZM23.6617 18.1656L23.8363 17.697L23.8358 17.6968L23.6617 18.1656ZM23.9983 18.3678L23.657 18.7332L23.6595 18.7356L23.9983 18.3678ZM24.218 19.5039L24.6908 19.6668L24.692 19.663L24.218 19.5039ZM24.0161 19.8881L24.4203 20.1824L24.4219 20.1802L24.0161 19.8881ZM23.6884 20.2593L24.0352 20.6195L24.0357 20.619L23.6884 20.2593ZM23.2401 20.6603L23.561 21.0437L23.5614 21.0434L23.2401 20.6603ZM22.8152 21.0686L22.4411 20.7369L22.4407 20.7374L22.8152 21.0686ZM22.3298 21.9818L21.8433 21.8661L21.8431 21.8669L22.3298 21.9818ZM22.4107 23.3573L21.9438 23.5362C22.0179 23.7296 22.2036 23.8573 22.4107 23.8573L22.4107 23.3573ZM24.2764 26.6831L24.6119 27.0539L24.6144 27.0516L24.2764 26.6831ZM24.2701 25.0917L23.9351 25.463L23.9385 25.466L24.2701 25.0917ZM22.4894 25.0917L22.1582 24.7171L22.1574 24.7178L22.4894 25.0917ZM22.4894 26.6768L22.1461 27.0404L22.1544 27.0479L22.4894 26.6768ZM17.4721 17.8587V18.3587H18.6746L17.8266 17.5061L17.4721 17.8587ZM12.5377 17.8587V17.3587H11.7347L12.0889 18.0793L12.5377 17.8587ZM14.5642 21.9812L14.7903 22.4271L15.2308 22.2038L15.0129 21.7606L14.5642 21.9812ZM11.6195 23.4743L11.1701 23.6935L11.3927 24.1499L11.8456 23.9202L11.6195 23.4743ZM9.35907 18.8407L9.80845 18.6215L9.50518 17.9998L9.00998 18.4828L9.35907 18.8407ZM6 22.1165H5.5V23.3025L6.34909 22.4745L6 22.1165ZM6 6.3246L6.3545 5.972L5.5 5.11288V6.3246H6ZM24.603 23.0848C24.5898 23.0645 24.5689 23.0228 24.5496 22.9483L23.5817 23.1998C23.6208 23.3501 23.6786 23.4976 23.7645 23.6298L24.603 23.0848ZM24.5494 22.9476C24.5308 22.8764 24.5224 22.8084 24.5224 22.7438H23.5224C23.5224 22.8952 23.5421 23.0482 23.5819 23.2005L24.5494 22.9476ZM24.5224 22.7438C24.5224 22.6288 24.5373 22.5425 24.5585 22.4781L23.6083 22.1663C23.5482 22.3495 23.5224 22.5439 23.5224 22.7438H24.5224ZM24.5582 22.4788C24.5833 22.4027 24.6191 22.3309 24.6684 22.2618L23.854 21.6815C23.7458 21.8333 23.6647 21.9953 23.6086 22.1655L24.5582 22.4788ZM24.6676 22.2629C24.7241 22.1842 24.8005 22.0971 24.9012 22.0023L24.2157 21.2742C24.0776 21.4042 23.9559 21.5394 23.8548 21.6804L24.6676 22.2629ZM24.9012 22.0023C25.0116 21.8983 25.1416 21.7837 25.2914 21.6605L24.6561 20.8882C24.4909 21.0241 24.344 21.1534 24.2157 21.2742L24.9012 22.0023ZM25.2928 21.6593C25.5373 21.4567 25.7557 21.2581 25.9495 21.0615L25.2375 20.3594C25.0707 20.5286 24.8776 20.7046 24.6547 20.8894L25.2928 21.6593ZM25.9483 21.0628C26.1541 20.8556 26.3281 20.6358 26.4713 20.4035L25.62 19.8788C25.5193 20.0421 25.3937 20.2021 25.2387 20.3581L25.9483 21.0628ZM26.4725 20.4015C26.6161 20.1661 26.7277 19.9137 26.8028 19.6452L25.8397 19.3759C25.7903 19.5525 25.7165 19.7206 25.6188 19.8808L26.4725 20.4015ZM26.8021 19.6477C26.8804 19.3732 26.9165 19.0778 26.9165 18.7657H25.9165C25.9165 19.0015 25.8891 19.2027 25.8405 19.3734L26.8021 19.6477ZM26.9165 18.7657C26.9165 18.2759 26.8301 17.8281 26.64 17.4375L25.7408 17.875C25.8505 18.1004 25.9165 18.3917 25.9165 18.7657H26.9165ZM26.6392 17.4358C26.4544 17.0595 26.1953 16.7429 25.86 16.4954L25.2661 17.3C25.4667 17.4481 25.6242 17.6376 25.7417 17.8767L26.6392 17.4358ZM25.86 16.4954C25.5348 16.2554 25.1622 16.085 24.746 15.9783L24.4978 16.9471C24.803 17.0252 25.0553 17.1444 25.2661 17.3L25.86 16.4954ZM24.746 15.9783C24.3413 15.8747 23.9105 15.8246 23.456 15.8246V16.8246C23.8372 16.8246 24.1837 16.8666 24.4979 16.9471L24.746 15.9783ZM23.456 15.8246C22.98 15.8246 22.5163 15.8812 22.0659 15.9947L22.3104 16.9644C22.6785 16.8716 23.06 16.8246 23.456 16.8246V15.8246ZM22.0655 15.9948C21.6116 16.1097 21.1887 16.2831 20.7992 16.5158L21.3119 17.3743C21.6146 17.1935 21.9468 17.0564 22.3108 16.9643L22.0655 15.9948ZM20.5556 16.945V18.9746H21.5556V16.945H20.5556ZM21.3858 19.35C21.6838 19.0879 21.9912 18.8992 22.3079 18.7767L21.9471 17.844C21.5087 18.0136 21.1017 18.2681 20.7254 18.5991L21.3858 19.35ZM22.3078 18.7767C22.637 18.6495 22.9397 18.5913 23.2198 18.5913V17.5913C22.7987 17.5913 22.3737 17.6791 21.9472 17.844L22.3078 18.7767ZM23.2198 18.5913C23.3305 Line truncated
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.2941 17.5735V20.8824H9.63235L5 16.25L9.63235 11.6177H10.2941V14.9265H14.9265V10.2941H11.6177V9.63235L16.25 5L20.8824 9.63235V10.2941H17.5735V14.9265H22.2059V11.6177H22.8676L27.5 16.25L22.8676 20.8824H22.2059V17.5735H17.5735V22.2059H20.8824V22.8676L16.25 27.5L11.6177 22.8676V22.2059H14.9265V17.5735H10.2941Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 482 B

@@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 6C6.38276 10.4329 9.60454 13.246 9.60454 13.246L22.1665 25.8079C22.4226 26.064 22.8379 26.064 23.094 25.8079L24.4509 24.4509L25.8079 23.094C26.064 22.8379 26.064 22.4226 25.8079 22.1665L13.246 9.60454C13.246 9.60454 10.4329 6.38276 6 6Z" fill="#FFFFFE" stroke="#000001" stroke-width="1.018" stroke-miterlimit="10"/>
<path d="M14.5446 18.1861L18.1919 14.5389" stroke="black" stroke-width="1.018" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 535 B

@@ -0,0 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.9536 11V6.98606C10.9536 6.98606 10.9536 5.64808 12.2915 5.64808C13.6295 5.64808 13.6295 6.98606 13.6295 6.98606V11" fill="#FFFFFE"/>
<path d="M13.6295 11L13.6295 7.65505C13.6295 7.65505 13.6295 6.31707 14.9675 6.31707C16.3055 6.31707 16.3055 7.65505 16.3055 7.65505V11" fill="#FFFFFE"/>
<path d="M16.3055 11L16.3055 8.32404C16.3055 8.32404 16.3055 6.98606 17.6434 6.98606C18.9814 6.98606 18.9814 8.32404 18.9814 8.32404V14.6794C18.9814 14.6794 19.6504 21.3693 12.9605 21.3693C12.9605 21.3693 10.5 21.5 8.27759 19.3624L3.59466 14.0104C3.59466 14.0104 2.25668 12.6725 3.59466 11.3345C3.59466 11.3345 4.59814 10.331 6.27062 12.0035L7.43223 13.1651C7.74419 13.477 8.27758 13.2561 8.27758 12.8149V1.96863C8.27758 1.96863 8.27758 0.630646 9.61556 0.630646C10.9535 0.630646 10.9535 1.96863 10.9535 1.96863L10.9536 11" fill="#FFFFFE"/>
<path d="M29.4742 30C29.4742 26.9767 27.0233 24.5258 24 24.5258C20.9767 24.5258 18.5258 26.9767 18.5258 30C18.5258 30 19.5 31 24 31C28.5 31 29.4742 30 29.4742 30Z" fill="#FFFFFE"/>
<path d="M24 17C26.0782 17 27.7629 18.6847 27.7629 20.7629C27.7629 22.8411 26.0782 24.5258 24 24.5258C21.9218 24.5258 20.2371 22.8411 20.2371 20.7629C20.2371 18.6847 21.9218 17 24 17Z" fill="#FFFFFE"/>
<path d="M24 24.5258C27.0233 24.5258 29.4742 26.9767 29.4742 30C29.4742 30 28.5 31 24 31C19.5 31 18.5258 30 18.5258 30C18.5258 26.9767 20.9767 24.5258 24 24.5258ZM24 24.5258C26.0782 24.5258 27.7629 22.8411 27.7629 20.7629C27.7629 18.6847 26.0782 17 24 17C21.9218 17 20.2371 18.6847 20.2371 20.7629C20.2371 22.8411 21.9218 24.5258 24 24.5258ZM10.9536 11V6.98606C10.9536 6.98606 10.9536 5.64808 12.2915 5.64808C13.6295 5.64808 13.6295 6.98606 13.6295 6.98606V11L13.6295 7.65505C13.6295 7.65505 13.6295 6.31707 14.9675 6.31707C16.3055 6.31707 16.3055 7.65505 16.3055 7.65505V11L16.3055 8.32404C16.3055 8.32404 16.3055 6.98606 17.6434 6.98606C18.9814 6.98606 18.9814 8.32404 18.9814 8.32404V14.6794C18.9814 14.6794 19.6504 21.3693 12.9605 21.3693C12.9605 21.3693 10.5 21.5 8.27759 19.3624L3.59466 14.0104C3.59466 14.0104 2.25668 12.6725 3.59466 11.3345C3.59466 11.3345 4.59814 10.331 6.27062 12.0035L7.43223 13.1651C7.74419 13.477 8.27758 13.2561 8.27758 12.8149V1.96863C8.27758 1.96863 8.27758 0.630646 9.61556 0.630646C10.9535 0.630646 10.9535 1.96863 10.9535 1.96863L10.9536 11Z" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M28.4775 21.8065C28.4775 24.2793 24 31 24 31C24 31 19.5225 24.2793 19.5225 21.8065C19.5225 19.3336 21.5272 17.329 24 17.329C26.4728 17.329 28.4775 19.3336 28.4775 21.8065Z" fill="#FFFFFE"/>
<path d="M24.0218 19.7807C25.1373 19.7807 26.0415 20.685 26.0415 21.8004C26.0415 22.9159 25.1373 23.8201 24.0218 23.8201C22.9064 23.8201 22.0021 22.9159 22.0021 21.8004C22.0021 20.685 22.9064 19.7807 24.0218 19.7807Z" fill="black"/>
<path d="M10.9535 11.1645V7.15057C10.9535 7.15057 10.9535 5.81259 12.2915 5.81259C13.6295 5.81259 13.6295 7.15057 13.6295 7.15057V11.1645" fill="#FFFFFE"/>
<path d="M13.6295 11.1645L13.6295 7.81956C13.6295 7.81956 13.6295 6.48158 14.9675 6.48158C16.3055 6.48158 16.3055 7.81956 16.3055 7.81956V11.1645" fill="#FFFFFE"/>
<path d="M16.3055 11.1645L16.3055 8.48855C16.3055 8.48855 16.3055 7.15057 17.6434 7.15057C18.9814 7.15057 18.9814 8.48855 18.9814 8.48855V14.8439C18.9814 14.8439 19.5226 21.5338 12.9605 21.5338C12.9605 21.5338 10.5 21.6645 8.27759 19.5269L3.59466 14.175C3.59466 14.175 2.25668 12.837 3.59466 11.499C3.59466 11.499 4.59814 10.4955 6.27062 12.168L7.43223 13.3296C7.74419 13.6416 8.27758 13.4206 8.27758 12.9794V2.13315C8.27758 2.13315 8.27758 0.795166 9.61556 0.795166C10.9535 0.795166 10.9535 2.13315 10.9535 2.13315L10.9535 11.1645" fill="#FFFFFE"/>
<path d="M28.4775 21.8065C28.4775 24.2793 24 31 24 31C24 31 19.5225 24.2793 19.5225 21.8065C19.5225 19.3336 21.5272 17.329 24 17.329C26.4728 17.329 28.4775 19.3336 28.4775 21.8065ZM24.0218 19.7807C25.1373 19.7807 26.0415 20.685 26.0415 21.8004C26.0415 22.9159 25.1373 23.8201 24.0218 23.8201C22.9064 23.8201 22.0021 22.9159 22.0021 21.8004C22.0021 20.685 22.9064 19.7807 24.0218 19.7807ZM10.9535 11.1645V7.15057C10.9535 7.15057 10.9535 5.81259 12.2915 5.81259C13.6295 5.81259 13.6295 7.15057 13.6295 7.15057V11.1645L13.6295 7.81956C13.6295 7.81956 13.6295 6.48158 14.9675 6.48158C16.3055 6.48158 16.3055 7.81956 16.3055 7.81956V11.1645L16.3055 8.48855C16.3055 8.48855 16.3055 7.15057 17.6434 7.15057C18.9814 7.15057 18.9814 8.48855 18.9814 8.48855V14.8439C18.9814 14.8439 19.5226 21.5338 12.9605 21.5338C12.9605 21.5338 10.5 21.6645 8.27759 19.5269L3.59466 14.175C3.59466 14.175 2.25668 12.837 3.59466 11.499C3.59466 11.499 4.59814 10.4955 6.27062 12.168L7.43223 13.3296C7.74419 13.6416 8.27758 13.4206 8.27758 12.9794V2.13315C8.27758 2.13315 8.27758 0.795166 9.61556 0.795166C10.9535 0.795166 10.9535 2.13315 10.9535 2.13315L10.9535 11.1645Z" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -0,0 +1,6 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15.9535 16.6291V12.6152C15.9535 12.6152 15.9535 11.2772 17.2915 11.2772C18.6295 11.2772 18.6295 12.6152 18.6295 12.6152V16.6291" fill="#FFFFFE"/>
<path d="M18.6295 16.6291L18.6295 13.2842C18.6295 13.2842 18.6295 11.9462 19.9675 11.9462C21.3055 11.9462 21.3055 13.2842 21.3055 13.2842V16.6291" fill="#FFFFFE"/>
<path d="M21.3055 16.6291L21.3055 13.9531C21.3055 13.9531 21.3055 12.6152 22.6434 12.6152C23.9814 12.6152 23.9814 13.9531 23.9814 13.9531V20.3085C23.9814 20.3085 24.6504 26.9984 17.9605 26.9984C17.9605 26.9984 15.5 27.1291 13.2776 24.9915L8.59466 19.6396C8.59466 19.6396 7.25668 18.3016 8.59466 16.9636C8.59466 16.9636 9.59814 15.9601 11.2706 17.6326L12.4322 18.7942C12.7442 19.1062 13.2776 18.8852 13.2776 18.444V7.59775C13.2776 7.59775 13.2776 6.25977 14.6156 6.25977C15.9535 6.25977 15.9535 7.59775 15.9535 7.59775V16.6291" fill="#FFFFFE"/>
<path d="M15.9535 16.6291V12.6152C15.9535 12.6152 15.9535 11.2772 17.2915 11.2772C18.6295 11.2772 18.6295 12.6152 18.6295 12.6152V16.6291L18.6295 13.2842C18.6295 13.2842 18.6295 11.9462 19.9675 11.9462C21.3055 11.9462 21.3055 13.2842 21.3055 13.2842V16.6291L21.3055 13.9531C21.3055 13.9531 21.3055 12.6152 22.6434 12.6152C23.9814 12.6152 23.9814 13.9531 23.9814 13.9531V20.3085C23.9814 20.3085 24.6504 26.9984 17.9605 26.9984C17.9605 26.9984 15.5 27.1291 13.2776 24.9915L8.59466 19.6396C8.59466 19.6396 7.25668 18.3016 8.59466 16.9636C8.59466 16.9636 9.59814 15.9601 11.2706 17.6326L12.4322 18.7942C12.7442 19.1062 13.2776 18.8852 13.2776 18.444V7.59775C13.2776 7.59775 13.2776 6.25977 14.6156 6.25977C15.9535 6.25977 15.9535 7.59775 15.9535 7.59775V16.6291Z" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.7452 18.9809L8.45754 16.6932L8 17.1508V23.5563H14.4056L14.8631 23.0988L12.5754 20.8111L20.8111 12.5754L23.0988 14.8631L23.5563 14.4056V8H17.1508L16.6932 8.45754L18.9809 10.7452L10.7452 18.9809Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 368 B

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.9809 20.8111L16.6932 23.0988L17.1508 23.5563H23.5563V17.1508L23.0988 16.6932L20.8111 18.9809L12.5754 10.7452L14.8631 8.45754L14.4056 8H8V14.4056L8.45754 14.8631L10.7452 12.5754L18.9809 20.8111Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 368 B

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.2941 16.9559H22.2059V20.2647H22.8676L27.5 15.6324L22.8676 11H22.2059V14.3088H10.2941V11H9.63235L5 15.6324L9.63235 20.2647H10.2941V16.9559Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 313 B

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.2143 10.1429H11V9.5L15.5 5L20 9.5V10.1429H16.7857V21.7143H20V22.3571L15.5 26.8571L11 22.3571V21.7143H14.2143V10.1429Z" fill="#FFFFFE" stroke="#000001" stroke-width="0.99351" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 315 B

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21 9.5V7.5H17V8H15V7.5H11V9.5H15V22.5H11V24.5H15V24H17V24.5H21V22.5H17V9.5H21Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 250 B

@@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.3929 12.1072V25H17.1071V12.1072H20.5V11.4286L15.75 6.67857L11 11.4286V12.1072H14.3929Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 261 B

@@ -0,0 +1,39 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 7H22V11L18 15V17L22 21V26H10V21L14 17V15L10 11V7Z" fill="#FFFFFE"/>
<path d="M22 7V11L18 15V17L22 21V26" stroke="#000001" stroke-miterlimit="10"/>
<path d="M10 26V21L14 17V15L10 11V7" stroke="#000001" stroke-miterlimit="10"/>
<path d="M23 28H9V26H23V28Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<path d="M23 7H9V5H23V7Z" fill="#FFFFFE" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 18H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 19H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 21H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 21H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 22H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 22H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 23H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 23H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 22H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M18.5 23H19.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M19.5 24H20.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 24H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 24H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 24H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M12.5 23H13.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M11.5 24H12.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M11.5 9H12.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 9H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 9H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 9H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M19.5 9H20.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M12.5 10H13.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 10H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 10H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M18.5 10H19.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M13.5 11H14.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 11H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M14.5 12H15.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M16.5 12H17.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 13H16.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M17.5 11H18.5" stroke="#000001" stroke-miterlimit="10"/>
<path d="M15.5 16H16.5" stroke="#000001" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

@@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="14" cy="14" r="5.5" fill="white" stroke="black"/>
<path d="M18 18L23.5 23.5" stroke="black" stroke-width="1.75"/>
<path d="M11 14H14M17 14H14M14 14V11M14 14V17" stroke="black" stroke-width="1.75"/>
</svg>

After

Width:  |  Height:  |  Size: 313 B

@@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="14" cy="14" r="5.5" fill="white" stroke="black"/>
<path d="M11 14H17" stroke="black" stroke-width="2"/>
<path d="M18 18L23.5 23.5" stroke="black" stroke-width="1.75"/>
</svg>

After

Width:  |  Height:  |  Size: 283 B

+17 -4
View File
@@ -151,7 +151,9 @@ export function UpdateToastWindow() {
return (
<div className={`${styles.window} launch-theme`}>
<section className={styles.card} aria-live="polite" aria-label="Recordly update">
<div className={`${styles.icon} ${payload.phase === "error" ? styles.iconError : ""}`}>
<div
className={`${styles.icon} ${payload.phase === "error" ? styles.iconError : ""}`}
>
<PhaseIcon payload={payload} />
</div>
@@ -175,7 +177,10 @@ export function UpdateToastWindow() {
{payload.phase === "downloading" ? (
<div className={styles.progressBlock}>
<div className={styles.progressTrack}>
<div className={styles.progressFill} style={{ width: `${progress}%` }} />
<div
className={styles.progressFill}
style={{ width: `${progress}%` }}
/>
</div>
<div className={styles.progressMeta}>
<strong>{progress}%</strong>
@@ -184,10 +189,18 @@ export function UpdateToastWindow() {
</div>
) : (
<div className={styles.actions}>
<button type="button" className={styles.secondaryButton} onClick={handleNotNow}>
<button
type="button"
className={styles.secondaryButton}
onClick={handleNotNow}
>
{t("launch.updateToast.notNow", "Not now")}
</button>
<button type="button" className={styles.primaryButton} onClick={handlePrimaryAction}>
<button
type="button"
className={styles.primaryButton}
onClick={handlePrimaryAction}
>
{getPrimaryLabel(payload, t)}
</button>
</div>
+17 -6
View File
@@ -688,6 +688,7 @@ const BUILTIN_CURSOR_STYLE_OPTIONS: CursorStyleOption[] = [
{ value: "macos", label: "macOS" },
{ value: "tahoe", label: "Tahoe" },
{ value: "tahoe-inverted", label: "Tahoe Inverted" },
{ value: "windows11", label: "Windows 11" },
{ value: "dot", label: "Dot" },
{ value: "figma", label: "Minimal" },
];
@@ -871,13 +872,20 @@ function CursorStylePreview({
? (previewUrls.macos ?? tahoeCursorUrl)
: style === "tahoe"
? (previewUrls.tahoe ?? tahoeCursorUrl)
: style === "figma"
? (previewUrls.figma ?? minimalCursorUrl)
: style === "tahoe-inverted"
? (previewUrls["tahoe-inverted"] ?? tahoeCursorUrl)
: previewUrls[style];
: style === "windows11"
? (previewUrls.windows11 ?? tahoeCursorUrl)
: style === "figma"
? (previewUrls.figma ?? minimalCursorUrl)
: style === "tahoe-inverted"
? (previewUrls["tahoe-inverted"] ?? tahoeCursorUrl)
: previewUrls[style];
if (style === "macos" || style === "tahoe" || style === "tahoe-inverted") {
if (
style === "macos" ||
style === "tahoe" ||
style === "tahoe-inverted" ||
style === "windows11"
) {
const resolvedPreviewSize =
(previewSize ?? BUILTIN_CURSOR_PREVIEW_SIZE) * getCursorStyleSizeMultiplier(style);
return (
@@ -1238,6 +1246,7 @@ export function SettingsPanel({
try {
const macosPreview = cursorSetAssets.macos.arrow.url;
const tahoePreview = cursorSetAssets.tahoe.arrow.url;
const windows11Preview = cursorSetAssets.windows11.arrow.url;
const minimalPreview = await createTrimmedSvgPreview(minimalCursorUrl, 512);
const invertedPreview = await createInvertedPreview(tahoePreview);
@@ -1245,6 +1254,7 @@ export function SettingsPanel({
setBuiltInCursorPreviewUrls({
macos: macosPreview,
tahoe: tahoePreview,
windows11: windows11Preview,
figma: minimalPreview,
"tahoe-inverted": invertedPreview,
});
@@ -1254,6 +1264,7 @@ export function SettingsPanel({
setBuiltInCursorPreviewUrls({
macos: tahoeCursorUrl,
tahoe: tahoeCursorUrl,
windows11: tahoeCursorUrl,
figma: minimalCursorUrl,
"tahoe-inverted": tahoeCursorUrl,
});
@@ -33,7 +33,7 @@ const SHARED_CURSOR_PRESET_VALUES = {
cursorSize: 2.5,
cursorSmoothing: 0.67,
cursorSpringMassMultiplier: 1.29,
cursorClickBounce: 3.5,
cursorClickBounce: 2,
cursorClickBounceDuration: 350,
} as const;
+9 -2
View File
@@ -55,7 +55,14 @@ export interface CursorVisualSettings {
style: CursorStyle;
}
export type CursorStyle = "macos" | "tahoe" | "tahoe-inverted" | "dot" | "figma" | (string & {});
export type CursorStyle =
| "macos"
| "tahoe"
| "tahoe-inverted"
| "windows11"
| "dot"
| "figma"
| (string & {});
export const DEFAULT_CURSOR_STYLE: CursorStyle = "tahoe";
export type CursorClickEffectStyle = "none" | "spotlight" | "ripple" | "echo";
@@ -148,7 +155,7 @@ export interface WebcamOverlaySettings {
export const DEFAULT_CURSOR_SIZE = 3.0;
export const DEFAULT_CURSOR_SMOOTHING = 0.67;
export const DEFAULT_CURSOR_MOTION_BLUR = 0.6;
export const DEFAULT_CURSOR_CLICK_BOUNCE = 2.5;
export const DEFAULT_CURSOR_CLICK_BOUNCE = 2;
export const DEFAULT_CURSOR_CLICK_BOUNCE_DURATION = 350;
export const DEFAULT_CURSOR_SWAY = 0.4;
export const DEFAULT_ZOOM_SMOOTHNESS = 0.5;
@@ -29,7 +29,7 @@ import { cursorSetAssets, getCursorStyleSizeMultiplier } from "./uploadedCursorA
import { computeDirectionalMotionBlur } from "./zoomTransform";
type CursorAssetKey = NonNullable<CursorTelemetryPoint["cursorType"]>;
type StatefulCursorStyle = Extract<CursorStyle, "macos" | "tahoe" | "tahoe-inverted">;
type StatefulCursorStyle = Extract<CursorStyle, "macos" | "tahoe" | "tahoe-inverted" | "windows11">;
type SingleCursorStyle = Extract<CursorStyle, "dot" | "figma">;
type CursorPackStyle = Exclude<CursorStyle, StatefulCursorStyle | SingleCursorStyle>;
type CursorPackVariant = "default" | "pointer";
@@ -125,6 +125,7 @@ const CURSOR_SHADOW_OFFSET_X = 0;
const CURSOR_SHADOW_OFFSET_Y = 2;
const CURSOR_SHADOW_BLUR = 3;
const CURSOR_SHADOW_PADDING = 12;
const MIN_RASTERIZED_CURSOR_HEIGHT = 512;
const NATIVE_CURSOR_ATLAS_DRAW_HEIGHT = 256;
const NATIVE_CURSOR_ATLAS_PADDING = 2;
@@ -191,7 +192,12 @@ function buildCursorPackSourcesSignature(sources: Record<string, CursorPackSourc
}
function isStatefulCursorStyle(style: CursorStyle): style is StatefulCursorStyle {
return style === "macos" || style === "tahoe" || style === "tahoe-inverted";
return (
style === "macos" ||
style === "tahoe" ||
style === "tahoe-inverted" ||
style === "windows11"
);
}
function isSingleCursorStyle(style: CursorStyle): style is SingleCursorStyle {
@@ -274,11 +280,16 @@ async function createCursorPackAsset(
async function createRasterizedCursorAsset(
url: string,
anchor: { x: number; y: number },
options: { preserveCanvas?: boolean } = {},
): Promise<LoadedCursorAsset> {
const image = await loadImage(url);
const sourceCanvas = document.createElement("canvas");
sourceCanvas.width = image.naturalWidth;
sourceCanvas.height = image.naturalHeight;
const rasterScale =
image.naturalHeight > 0
? Math.max(1, MIN_RASTERIZED_CURSOR_HEIGHT / image.naturalHeight)
: 1;
sourceCanvas.width = Math.max(1, Math.round(image.naturalWidth * rasterScale));
sourceCanvas.height = Math.max(1, Math.round(image.naturalHeight * rasterScale));
const sourceCtx = sourceCanvas.getContext("2d");
if (!sourceCtx) {
await Assets.load(url);
@@ -293,7 +304,21 @@ async function createRasterizedCursorAsset(
}
sourceCtx.clearRect(0, 0, sourceCanvas.width, sourceCanvas.height);
sourceCtx.drawImage(image, 0, 0);
sourceCtx.drawImage(image, 0, 0, sourceCanvas.width, sourceCanvas.height);
if (options.preserveCanvas) {
const dataUrl = sourceCanvas.toDataURL("image/png");
await Assets.load(dataUrl);
const rasterizedImage = await loadImage(dataUrl);
const texture = configureCursorTexture(Texture.from(dataUrl));
return {
texture,
image: rasterizedImage,
aspectRatio: sourceCanvas.height > 0 ? sourceCanvas.width / sourceCanvas.height : 1,
anchorX: clamp(anchor.x, 0, 1),
anchorY: clamp(anchor.y, 0, 1),
};
}
const trimmed = trimCanvasToAlpha(sourceCanvas, {
x: sourceCanvas.width * clamp(anchor.x, 0, 1),
@@ -546,6 +571,7 @@ export async function preloadCursorAssets() {
const asset = await createRasterizedCursorAsset(
sourceAsset.url,
sourceAsset.fallbackAnchor,
{ preserveCanvas: sourceAsset.preserveCanvas },
);
return [key, asset] as const;
@@ -564,9 +590,10 @@ export async function preloadCursorAssets() {
) as Partial<Record<CursorAssetKey, LoadedCursorAsset>>;
}
const [macosAssets, tahoeAssets] = await Promise.all([
const [macosAssets, tahoeAssets, windows11Assets] = await Promise.all([
loadCursorSet("macos"),
loadCursorSet("tahoe"),
loadCursorSet("windows11"),
]);
const invertedEntries = await Promise.all(
@@ -578,6 +605,7 @@ export async function preloadCursorAssets() {
loadedCursorSetAssets = {
macos: macosAssets,
tahoe: tahoeAssets,
windows11: windows11Assets,
"tahoe-inverted": Object.fromEntries(invertedEntries) as Partial<
Record<CursorAssetKey, LoadedCursorAsset>
>,
@@ -16,15 +16,26 @@ import tahoeArrowUrl from "../../../assets/cursors/tahoe/pointer-1__14-6.svg";
import tahoePointerUrl from "../../../assets/cursors/tahoe/pointinghand-1__40-10.svg";
import tahoeResizeEwUrl from "../../../assets/cursors/tahoe/resizeeastwest-1__50-50.svg";
import tahoeResizeNsUrl from "../../../assets/cursors/tahoe/resizenorthsouth-1__50-49.svg";
import windows11ArrowUrl from "../../../assets/cursors/windows11/arrow__31-22.svg";
import windows11ClosedHandUrl from "../../../assets/cursors/windows11/grabbing__50-50.svg";
import windows11CrosshairUrl from "../../../assets/cursors/windows11/cross__50-50.svg";
import windows11NotAllowedUrl from "../../../assets/cursors/windows11/block__50-50.svg";
import windows11OpenHandUrl from "../../../assets/cursors/windows11/grab__50-50.svg";
import windows11PointerUrl from "../../../assets/cursors/windows11/pointer__54-35.svg";
import windows11ResizeEwUrl from "../../../assets/cursors/windows11/resize-horizontal__51-49.svg";
import windows11ResizeNsUrl from "../../../assets/cursors/windows11/resize-vertical__48-50.svg";
import windows11TextUrl from "../../../assets/cursors/windows11/text__50-50.svg";
import type { CursorStyle, CursorTelemetryPoint } from "../types";
type CursorAssetKey = NonNullable<CursorTelemetryPoint["cursorType"]>;
type CursorSetStyle = Extract<CursorStyle, "macos" | "tahoe" | "tahoe-inverted">;
type CursorSetStyle = Extract<CursorStyle, "macos" | "tahoe" | "tahoe-inverted" | "windows11">;
const MACOS_POINTER_ASSET_HEIGHT = 746;
const MACOS_POINTER_CONTENT_HEIGHT = 386;
const TAHOE_POINTER_ASSET_HEIGHT = 958;
const TAHOE_POINTER_CONTENT_HEIGHT = 851;
const WINDOWS11_CURSOR_VIEWBOX_HEIGHT = 32;
const WINDOWS11_ARROW_CONTENT_HEIGHT = 18;
// Measured from the raw pointer assets using the non-shadow pixel bounds.
const MACOS_CURSOR_STYLE_SIZE_MULTIPLIER =
@@ -38,15 +49,22 @@ export type UploadedCursorAsset = {
x: number;
y: number;
};
preserveCanvas?: boolean;
};
function asset(url: string, hotspotX: number, hotspotY: number): UploadedCursorAsset {
function asset(
url: string,
hotspotX: number,
hotspotY: number,
options: Pick<UploadedCursorAsset, "preserveCanvas"> = {},
): UploadedCursorAsset {
return {
url,
fallbackAnchor: {
x: hotspotX / 100,
y: hotspotY / 100,
},
...options,
};
}
@@ -76,12 +94,24 @@ export const cursorSetAssets: Record<
"resize-ns": asset(tahoeResizeNsUrl, 50, 49),
"not-allowed": asset(tahoeNotAllowedUrl, 23, 0),
},
windows11: {
arrow: asset(windows11ArrowUrl, 31, 22, { preserveCanvas: true }),
text: asset(windows11TextUrl, 50, 50, { preserveCanvas: true }),
pointer: asset(windows11PointerUrl, 54, 35, { preserveCanvas: true }),
crosshair: asset(windows11CrosshairUrl, 50, 50, { preserveCanvas: true }),
"open-hand": asset(windows11OpenHandUrl, 50, 50, { preserveCanvas: true }),
"closed-hand": asset(windows11ClosedHandUrl, 50, 50, { preserveCanvas: true }),
"resize-ew": asset(windows11ResizeEwUrl, 51, 49, { preserveCanvas: true }),
"resize-ns": asset(windows11ResizeNsUrl, 48, 50, { preserveCanvas: true }),
"not-allowed": asset(windows11NotAllowedUrl, 50, 50, { preserveCanvas: true }),
},
};
export const cursorStyleSizeMultipliers: Record<CursorSetStyle, number> = {
macos: MACOS_CURSOR_STYLE_SIZE_MULTIPLIER,
tahoe: 1,
"tahoe-inverted": 1,
windows11: WINDOWS11_CURSOR_VIEWBOX_HEIGHT / WINDOWS11_ARROW_CONTENT_HEIGHT,
};
export function getCursorStyleSizeMultiplier(style: CursorStyle) {
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe invertiert",
"windows11": "Windows 11",
"dot": "Punkt",
"figma": "Minimal",
"lavender": "Lavender",
+1
View File
@@ -41,6 +41,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe Inverted",
"windows11": "Windows 11",
"dot": "Dot",
"figma": "Minimal",
"lavender": "Lavender",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe invertido",
"windows11": "Windows 11",
"dot": "Punto",
"figma": "Minimal",
"lavender": "Lavender",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe inversé",
"windows11": "Windows 11",
"dot": "Point",
"figma": "Minimal",
"lavender": "Lavande",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe invertito",
"windows11": "Windows 11",
"dot": "Punto",
"figma": "Minimal",
"lavender": "Lavanda",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe Inverted",
"windows11": "Windows 11",
"dot": "Dot",
"figma": "Minimal",
"lavender": "Lavender",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe omgekeerd",
"windows11": "Windows 11",
"dot": "Punt",
"figma": "Minimaal",
"lavender": "Lavendel",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe invertido",
"windows11": "Windows 11",
"dot": "Dot",
"figma": "Minimal",
"lavender": "Lavender",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe (инверсия)",
"windows11": "Windows 11",
"dot": "Точка",
"figma": "Минималистичный",
"lavender": "Лаванда",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe 反相",
"windows11": "Windows 11",
"dot": "圆点",
"figma": "Minimal",
"lavender": "Lavender",
+1
View File
@@ -35,6 +35,7 @@
"macos": "macOS",
"tahoe": "Tahoe",
"tahoe-inverted": "Tahoe 反相",
"windows11": "Windows 11",
"dot": "圓點",
"figma": "極簡",
"lavender": "Lavender",