Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
Update svelte to version 4
Sebastian Martinez committed 2 years ago
commit ba57506d6d744e9716bf1de47933d52a5b43a309
parent d51f08d6af1865218d63517b556e9309e1fe5b03
18 files changed +317 -123
modified package-lock.json
@@ -23,7 +23,7 @@
        "md5": "^2.3.0",
        "plausible-tracker": "^0.3.8",
        "sinon": "^15.1.2",
-
        "svelte": "^3.59.1",
+
        "svelte": "^4.0.0",
        "twemoji": "^14.0.2",
        "zod": "^3.21.4"
      },
@@ -62,6 +62,18 @@
        "node": ">=18.16.0"
      }
    },
+
    "node_modules/@ampproject/remapping": {
+
      "version": "2.2.1",
+
      "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+
      "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+
      "dependencies": {
+
        "@jridgewell/gen-mapping": "^0.3.0",
+
        "@jridgewell/trace-mapping": "^0.3.9"
+
      },
+
      "engines": {
+
        "node": ">=6.0.0"
+
      }
+
    },
    "node_modules/@esbuild/android-arm": {
      "version": "0.17.19",
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz",
@@ -518,11 +530,31 @@
      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
      "dev": true
    },
+
    "node_modules/@jridgewell/gen-mapping": {
+
      "version": "0.3.3",
+
      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+
      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+
      "dependencies": {
+
        "@jridgewell/set-array": "^1.0.1",
+
        "@jridgewell/sourcemap-codec": "^1.4.10",
+
        "@jridgewell/trace-mapping": "^0.3.9"
+
      },
+
      "engines": {
+
        "node": ">=6.0.0"
+
      }
+
    },
    "node_modules/@jridgewell/resolve-uri": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
      "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
-
      "dev": true,
+
      "engines": {
+
        "node": ">=6.0.0"
+
      }
+
    },
+
    "node_modules/@jridgewell/set-array": {
+
      "version": "1.1.2",
+
      "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+
      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
      "engines": {
        "node": ">=6.0.0"
      }
@@ -530,14 +562,12 @@
    "node_modules/@jridgewell/sourcemap-codec": {
      "version": "1.4.15",
      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
-
      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
-
      "dev": true
+
      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
    },
    "node_modules/@jridgewell/trace-mapping": {
      "version": "0.3.18",
      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
      "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
-
      "dev": true,
      "dependencies": {
        "@jridgewell/resolve-uri": "3.1.0",
        "@jridgewell/sourcemap-codec": "1.4.14"
@@ -546,8 +576,7 @@
    "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
      "version": "1.4.14",
      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
-
      "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
-
      "dev": true
+
      "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
    },
    "node_modules/@nodelib/fs.scandir": {
      "version": "2.1.5",
@@ -679,31 +708,31 @@
      "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ=="
    },
    "node_modules/@sveltejs/vite-plugin-svelte": {
-
      "version": "2.4.1",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.1.tgz",
-
      "integrity": "sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==",
+
      "version": "2.4.2",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.2.tgz",
+
      "integrity": "sha512-ePfcC48ftMKhkT0OFGdOyycYKnnkT6i/buzey+vHRTR/JpQvuPzzhf1PtKqCDQfJRgoPSN2vscXs6gLigx/zGw==",
      "dev": true,
      "dependencies": {
-
        "@sveltejs/vite-plugin-svelte-inspector": "^1.0.2",
+
        "@sveltejs/vite-plugin-svelte-inspector": "^1.0.3",
        "debug": "^4.3.4",
        "deepmerge": "^4.3.1",
        "kleur": "^4.1.5",
        "magic-string": "^0.30.0",
-
        "svelte-hmr": "^0.15.1",
+
        "svelte-hmr": "^0.15.2",
        "vitefu": "^0.2.4"
      },
      "engines": {
        "node": "^14.18.0 || >= 16"
      },
      "peerDependencies": {
-
        "svelte": "^3.54.0 || ^4.0.0-next.0",
+
        "svelte": "^3.54.0 || ^4.0.0",
        "vite": "^4.0.0"
      }
    },
    "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
-
      "version": "1.0.2",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.2.tgz",
-
      "integrity": "sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==",
+
      "version": "1.0.3",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.3.tgz",
+
      "integrity": "sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==",
      "dev": true,
      "dependencies": {
        "debug": "^4.3.4"
@@ -713,7 +742,7 @@
      },
      "peerDependencies": {
        "@sveltejs/vite-plugin-svelte": "^2.2.0",
-
        "svelte": "^3.54.0 || ^4.0.0-next.0",
+
        "svelte": "^3.54.0 || ^4.0.0",
        "vite": "^4.0.0"
      }
    },
@@ -747,6 +776,11 @@
        "@types/trusted-types": "*"
      }
    },
+
    "node_modules/@types/estree": {
+
      "version": "1.0.1",
+
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
+
      "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
+
    },
    "node_modules/@types/hast": {
      "version": "2.3.4",
      "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
@@ -844,15 +878,15 @@
      }
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.11.tgz",
-
      "integrity": "sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.60.0.tgz",
+
      "integrity": "sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==",
      "dev": true,
      "dependencies": {
        "@eslint-community/regexpp": "^4.4.0",
-
        "@typescript-eslint/scope-manager": "5.59.11",
-
        "@typescript-eslint/type-utils": "5.59.11",
-
        "@typescript-eslint/utils": "5.59.11",
+
        "@typescript-eslint/scope-manager": "5.60.0",
+
        "@typescript-eslint/type-utils": "5.60.0",
+
        "@typescript-eslint/utils": "5.60.0",
        "debug": "^4.3.4",
        "grapheme-splitter": "^1.0.4",
        "ignore": "^5.2.0",
@@ -878,15 +912,15 @@
      }
    },
    "node_modules/@typescript-eslint/parser": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.11.tgz",
-
      "integrity": "sha512-s9ZF3M+Nym6CAZEkJJeO2TFHHDsKAM3ecNkLuH4i4s8/RCPnF5JRip2GyviYkeEAcwGMJxkqG9h2dAsnA1nZpA==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.60.0.tgz",
+
      "integrity": "sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
-
        "@typescript-eslint/scope-manager": "5.59.11",
-
        "@typescript-eslint/types": "5.59.11",
-
        "@typescript-eslint/typescript-estree": "5.59.11",
+
        "@typescript-eslint/scope-manager": "5.60.0",
+
        "@typescript-eslint/types": "5.60.0",
+
        "@typescript-eslint/typescript-estree": "5.60.0",
        "debug": "^4.3.4"
      },
      "engines": {
@@ -906,13 +940,13 @@
      }
    },
    "node_modules/@typescript-eslint/scope-manager": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz",
-
      "integrity": "sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.60.0.tgz",
+
      "integrity": "sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "5.59.11",
-
        "@typescript-eslint/visitor-keys": "5.59.11"
+
        "@typescript-eslint/types": "5.60.0",
+
        "@typescript-eslint/visitor-keys": "5.60.0"
      },
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -923,13 +957,13 @@
      }
    },
    "node_modules/@typescript-eslint/type-utils": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.11.tgz",
-
      "integrity": "sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.60.0.tgz",
+
      "integrity": "sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/typescript-estree": "5.59.11",
-
        "@typescript-eslint/utils": "5.59.11",
+
        "@typescript-eslint/typescript-estree": "5.60.0",
+
        "@typescript-eslint/utils": "5.60.0",
        "debug": "^4.3.4",
        "tsutils": "^3.21.0"
      },
@@ -950,9 +984,9 @@
      }
    },
    "node_modules/@typescript-eslint/types": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.11.tgz",
-
      "integrity": "sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz",
+
      "integrity": "sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==",
      "dev": true,
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -963,13 +997,13 @@
      }
    },
    "node_modules/@typescript-eslint/typescript-estree": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz",
-
      "integrity": "sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz",
+
      "integrity": "sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "5.59.11",
-
        "@typescript-eslint/visitor-keys": "5.59.11",
+
        "@typescript-eslint/types": "5.60.0",
+
        "@typescript-eslint/visitor-keys": "5.60.0",
        "debug": "^4.3.4",
        "globby": "^11.1.0",
        "is-glob": "^4.0.3",
@@ -990,17 +1024,17 @@
      }
    },
    "node_modules/@typescript-eslint/utils": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.11.tgz",
-
      "integrity": "sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.60.0.tgz",
+
      "integrity": "sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
        "@types/json-schema": "^7.0.9",
        "@types/semver": "^7.3.12",
-
        "@typescript-eslint/scope-manager": "5.59.11",
-
        "@typescript-eslint/types": "5.59.11",
-
        "@typescript-eslint/typescript-estree": "5.59.11",
+
        "@typescript-eslint/scope-manager": "5.60.0",
+
        "@typescript-eslint/types": "5.60.0",
+
        "@typescript-eslint/typescript-estree": "5.60.0",
        "eslint-scope": "^5.1.1",
        "semver": "^7.3.7"
      },
@@ -1016,12 +1050,12 @@
      }
    },
    "node_modules/@typescript-eslint/visitor-keys": {
-
      "version": "5.59.11",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz",
-
      "integrity": "sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==",
+
      "version": "5.60.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz",
+
      "integrity": "sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "5.59.11",
+
        "@typescript-eslint/types": "5.60.0",
        "eslint-visitor-keys": "^3.3.0"
      },
      "engines": {
@@ -1129,9 +1163,9 @@
      }
    },
    "node_modules/@wooorm/starry-night": {
-
      "version": "2.0.0",
-
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-2.0.0.tgz",
-
      "integrity": "sha512-7CUPjVkpjCmjCzQ34TrDcHqUMpriqVEJZLVL+PUDsL3yWxHO6COg6xgzdpg6clvr+6jbjb8ZV4NxlozdWiyJ4A==",
+
      "version": "2.1.0",
+
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-2.1.0.tgz",
+
      "integrity": "sha512-uMwW1QZSK+s4Lmb6FlZ/x0sky4c3T0Ku8QKodRoqFEvUrnAcKMe/uhfA33xq3Xq+epylIb8u4C9qCRgCmAZF4w==",
      "dependencies": {
        "@types/hast": "^2.0.0",
        "import-meta-resolve": "^2.0.0",
@@ -1144,10 +1178,9 @@
      }
    },
    "node_modules/acorn": {
-
      "version": "8.8.2",
-
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
-
      "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
-
      "dev": true,
+
      "version": "8.9.0",
+
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
+
      "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
      "bin": {
        "acorn": "bin/acorn"
      },
@@ -1228,6 +1261,14 @@
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
    },
+
    "node_modules/aria-query": {
+
      "version": "5.2.1",
+
      "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.2.1.tgz",
+
      "integrity": "sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g==",
+
      "dependencies": {
+
        "dequal": "^2.0.3"
+
      }
+
    },
    "node_modules/array-union": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -1270,6 +1311,14 @@
        "form-data": "^4.0.0"
      }
    },
+
    "node_modules/axobject-query": {
+
      "version": "3.2.1",
+
      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
+
      "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
+
      "dependencies": {
+
        "dequal": "^2.0.3"
+
      }
+
    },
    "node_modules/baconjs": {
      "version": "3.0.17",
      "resolved": "https://registry.npmjs.org/baconjs/-/baconjs-3.0.17.tgz",
@@ -1513,6 +1562,18 @@
        "node": ">= 6"
      }
    },
+
    "node_modules/code-red": {
+
      "version": "1.0.3",
+
      "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.3.tgz",
+
      "integrity": "sha512-kVwJELqiILQyG5aeuyKFbdsI1fmQy1Cmf7dQ8eGmVuJoaRVdwey7WaMknr2ZFeVSYSKT0rExsa8EGw0aoI/1QQ==",
+
      "dependencies": {
+
        "@jridgewell/sourcemap-codec": "^1.4.14",
+
        "@types/estree": "^1.0.0",
+
        "acorn": "^8.8.2",
+
        "estree-walker": "^3.0.3",
+
        "periscopic": "^3.1.0"
+
      }
+
    },
    "node_modules/color-convert": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -1607,12 +1668,36 @@
        "node": "*"
      }
    },
+
    "node_modules/css-tree": {
+
      "version": "2.3.1",
+
      "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+
      "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+
      "dependencies": {
+
        "mdn-data": "2.0.30",
+
        "source-map-js": "^1.0.1"
+
      },
+
      "engines": {
+
        "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+
      }
+
    },
    "node_modules/css.escape": {
      "version": "1.5.1",
      "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
      "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==",
      "dev": true
    },
+
    "node_modules/cssesc": {
+
      "version": "3.0.0",
+
      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+
      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+
      "dev": true,
+
      "bin": {
+
        "cssesc": "bin/cssesc"
+
      },
+
      "engines": {
+
        "node": ">=4"
+
      }
+
    },
    "node_modules/date-time": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz",
@@ -1678,6 +1763,14 @@
        "node": ">=0.4.0"
      }
    },
+
    "node_modules/dequal": {
+
      "version": "2.0.3",
+
      "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+
      "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+
      "engines": {
+
        "node": ">=6"
+
      }
+
    },
    "node_modules/detect-indent": {
      "version": "6.1.0",
      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
@@ -1866,9 +1959,9 @@
      }
    },
    "node_modules/eslint-plugin-svelte": {
-
      "version": "2.30.0",
-
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.30.0.tgz",
-
      "integrity": "sha512-2/qj0BJsfM0U2j4EjGb7iC/0nbUvXx1Gn78CdtyuXpi/rSomLPCPwnsZsloXMzlt6Xwe8LBlpRvZObSKEHLP5A==",
+
      "version": "2.31.0",
+
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.31.0.tgz",
+
      "integrity": "sha512-Q70jPFRraTkc/giPSfY7yuatmJcb5fPelWNplevqd45gfaJDjc3qXRtWQ6m9U5tWVVYERU9dcdUod294vwD8Gw==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
@@ -1879,7 +1972,8 @@
        "postcss": "^8.4.5",
        "postcss-load-config": "^3.1.4",
        "postcss-safe-parser": "^6.0.0",
-
        "svelte-eslint-parser": "^0.30.0"
+
        "postcss-selector-parser": "^6.0.11",
+
        "svelte-eslint-parser": "^0.31.0"
      },
      "engines": {
        "node": "^14.17.0 || >=16.0.0"
@@ -2046,6 +2140,14 @@
        "node": ">=4.0"
      }
    },
+
    "node_modules/estree-walker": {
+
      "version": "3.0.3",
+
      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+
      "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+
      "dependencies": {
+
        "@types/estree": "^1.0.0"
+
      }
+
    },
    "node_modules/esutils": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -2736,6 +2838,14 @@
        "node": ">=8"
      }
    },
+
    "node_modules/is-reference": {
+
      "version": "3.0.1",
+
      "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz",
+
      "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==",
+
      "dependencies": {
+
        "@types/estree": "*"
+
      }
+
    },
    "node_modules/is-stream": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
@@ -2898,6 +3008,11 @@
        "url": "https://github.com/sponsors/antfu"
      }
    },
+
    "node_modules/locate-character": {
+
      "version": "3.0.0",
+
      "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
+
      "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="
+
    },
    "node_modules/locate-path": {
      "version": "6.0.0",
      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -2954,7 +3069,6 @@
      "version": "0.30.0",
      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
      "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
-
      "dev": true,
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.4.13"
      },
@@ -2995,6 +3109,11 @@
        "node": ">=8"
      }
    },
+
    "node_modules/mdn-data": {
+
      "version": "2.0.30",
+
      "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+
      "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
+
    },
    "node_modules/merge-stream": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -3099,13 +3218,13 @@
      }
    },
    "node_modules/mlly": {
-
      "version": "1.3.0",
-
      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.3.0.tgz",
-
      "integrity": "sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.0.tgz",
+
      "integrity": "sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==",
      "dev": true,
      "dependencies": {
-
        "acorn": "^8.8.2",
-
        "pathe": "^1.1.0",
+
        "acorn": "^8.9.0",
+
        "pathe": "^1.1.1",
        "pkg-types": "^1.0.3",
        "ufo": "^1.1.2"
      }
@@ -3176,9 +3295,9 @@
      }
    },
    "node_modules/nise/node_modules/@sinonjs/fake-timers": {
-
      "version": "10.1.0",
-
      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.1.0.tgz",
-
      "integrity": "sha512-w1qd368vtrwttm1PRJWPW1QHlbmHrVDGs1eBH/jZvRPUFS4MNXV9Q33EQdjOdeAxZ7O8+3wM7zxztm2nfUSyKw==",
+
      "version": "10.3.0",
+
      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+
      "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
      "dependencies": {
        "@sinonjs/commons": "^3.0.0"
      }
@@ -3374,6 +3493,16 @@
        "node": "*"
      }
    },
+
    "node_modules/periscopic": {
+
      "version": "3.1.0",
+
      "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
+
      "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
+
      "dependencies": {
+
        "@types/estree": "^1.0.0",
+
        "estree-walker": "^3.0.0",
+
        "is-reference": "^3.0.0"
+
      }
+
    },
    "node_modules/picocolors": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -3496,6 +3625,41 @@
        "postcss": "^8.3.3"
      }
    },
+
    "node_modules/postcss-scss": {
+
      "version": "4.0.6",
+
      "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz",
+
      "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==",
+
      "dev": true,
+
      "funding": [
+
        {
+
          "type": "opencollective",
+
          "url": "https://opencollective.com/postcss/"
+
        },
+
        {
+
          "type": "tidelift",
+
          "url": "https://tidelift.com/funding/github/npm/postcss-scss"
+
        }
+
      ],
+
      "engines": {
+
        "node": ">=12.0"
+
      },
+
      "peerDependencies": {
+
        "postcss": "^8.4.19"
+
      }
+
    },
+
    "node_modules/postcss-selector-parser": {
+
      "version": "6.0.13",
+
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
+
      "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
+
      "dev": true,
+
      "dependencies": {
+
        "cssesc": "^3.0.0",
+
        "util-deprecate": "^1.0.2"
+
      },
+
      "engines": {
+
        "node": ">=4"
+
      }
+
    },
    "node_modules/prelude-ls": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -3737,9 +3901,9 @@
      }
    },
    "node_modules/semver": {
-
      "version": "7.5.1",
-
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
-
      "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+
      "version": "7.5.2",
+
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
+
      "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
      "dev": true,
      "dependencies": {
        "lru-cache": "^6.0.0"
@@ -3785,12 +3949,12 @@
      "dev": true
    },
    "node_modules/sinon": {
-
      "version": "15.1.2",
-
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.1.2.tgz",
-
      "integrity": "sha512-uG1pU54Fis4EfYOPoEi13fmRHgZNg/u+3aReSEzHsN52Bpf+bMVfsBQS5MjouI+rTuG6UBIINlpuuO2Epr7SiA==",
+
      "version": "15.2.0",
+
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz",
+
      "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==",
      "dependencies": {
        "@sinonjs/commons": "^3.0.0",
-
        "@sinonjs/fake-timers": "^10.1.0",
+
        "@sinonjs/fake-timers": "^10.3.0",
        "@sinonjs/samsam": "^8.0.0",
        "diff": "^5.1.0",
        "nise": "^5.1.4",
@@ -3802,9 +3966,9 @@
      }
    },
    "node_modules/sinon/node_modules/@sinonjs/fake-timers": {
-
      "version": "10.1.0",
-
      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.1.0.tgz",
-
      "integrity": "sha512-w1qd368vtrwttm1PRJWPW1QHlbmHrVDGs1eBH/jZvRPUFS4MNXV9Q33EQdjOdeAxZ7O8+3wM7zxztm2nfUSyKw==",
+
      "version": "10.3.0",
+
      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+
      "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
      "dependencies": {
        "@sinonjs/commons": "^3.0.0"
      }
@@ -3837,7 +4001,6 @@
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
-
      "dev": true,
      "engines": {
        "node": ">=0.10.0"
      }
@@ -3956,17 +4119,32 @@
      }
    },
    "node_modules/svelte": {
-
      "version": "3.59.1",
-
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.59.1.tgz",
-
      "integrity": "sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==",
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.0.0.tgz",
+
      "integrity": "sha512-+yCYu3AEUu9n91dnQNGIbnVp8EmNQtuF/YImW4+FTXRHard7NMo+yTsWzggPAbj3fUEJ1FBJLkql/jkp6YB5pg==",
+
      "dependencies": {
+
        "@ampproject/remapping": "^2.2.1",
+
        "@jridgewell/sourcemap-codec": "^1.4.15",
+
        "@jridgewell/trace-mapping": "^0.3.18",
+
        "acorn": "^8.8.2",
+
        "aria-query": "^5.2.1",
+
        "axobject-query": "^3.2.1",
+
        "code-red": "^1.0.3",
+
        "css-tree": "^2.3.1",
+
        "estree-walker": "^3.0.3",
+
        "is-reference": "^3.0.1",
+
        "locate-character": "^3.0.0",
+
        "magic-string": "^0.30.0",
+
        "periscopic": "^3.1.0"
+
      },
      "engines": {
-
        "node": ">= 8"
+
        "node": ">=16"
      }
    },
    "node_modules/svelte-check": {
-
      "version": "3.4.3",
-
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.4.3.tgz",
-
      "integrity": "sha512-O07soQFY3X0VDt+bcGc6D5naz0cLtjwnmNP9JsEBPVyMemFEqUhL2OdLqvkl5H/u8Jwm50EiAU4BPRn5iin/kg==",
+
      "version": "3.4.4",
+
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.4.4.tgz",
+
      "integrity": "sha512-Uys9+R65cj8TmP8f5UpS7B2xKpNLYNxEWJsA5ZoKcWq/uwvABFF7xS6iPQGLoa7hxz0DS6xU60YFpmq06E4JxA==",
      "dev": true,
      "dependencies": {
        "@jridgewell/trace-mapping": "^0.3.17",
@@ -3986,14 +4164,16 @@
      }
    },
    "node_modules/svelte-eslint-parser": {
-
      "version": "0.30.0",
-
      "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.30.0.tgz",
-
      "integrity": "sha512-H0Cn2TKr70DU9p/Gb04CfwtS7eK28MYumrHYPaDNkIFbfwGDLADpbERBn7u8G1Rcm2RMr2/mL6mq0J2e8iKFlA==",
+
      "version": "0.31.0",
+
      "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.31.0.tgz",
+
      "integrity": "sha512-/31RpBf/e3YjoFphjsyo3JRyN1r4UalGAGafXrZ6EJK4h4COOO0rbfBoen5byGsXnIJKsrlC1lkEd2Vzpq2IDg==",
      "dev": true,
      "dependencies": {
        "eslint-scope": "^7.0.0",
        "eslint-visitor-keys": "^3.0.0",
-
        "espree": "^9.0.0"
+
        "espree": "^9.0.0",
+
        "postcss": "^8.4.23",
+
        "postcss-scss": "^4.0.6"
      },
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -4345,6 +4525,12 @@
        "punycode": "^2.1.0"
      }
    },
+
    "node_modules/util-deprecate": {
+
      "version": "1.0.2",
+
      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+
      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+
      "dev": true
+
    },
    "node_modules/vfile": {
      "version": "5.3.7",
      "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
modified package.json
@@ -65,7 +65,7 @@
    "md5": "^2.3.0",
    "plausible-tracker": "^0.3.8",
    "sinon": "^15.1.2",
-
    "svelte": "^3.59.1",
+
    "svelte": "^4.0.0",
    "twemoji": "^14.0.2",
    "zod": "^3.21.4"
  }
modified src/App/ColorPaletteModal.svelte
@@ -134,6 +134,7 @@

<Modal closeAction={false}>
  <!-- svelte-ignore a11y-click-events-have-key-events -->
+
  <!-- svelte-ignore a11y-no-static-element-interactions -->
  <div slot="body">
    <div class="container" on:click={() => (checkers = !checkers)}>
      <div class:checkers>
modified src/App/Header/Connect.svelte
@@ -128,6 +128,7 @@
        </Link>

        <!-- svelte-ignore a11y-click-events-have-key-events -->
+
        <!-- svelte-ignore a11y-no-static-element-interactions -->
        <div
          class="dropdown-button rounded"
          on:click={() => {
modified src/App/Header/SettingsDropdown.svelte
@@ -92,6 +92,7 @@
    <ThemeToggle />
  </div>
  <!-- svelte-ignore a11y-click-events-have-key-events -->
+
  <!-- svelte-ignore a11y-no-static-element-interactions -->
  <div
    class="item selector"
    on:click|stopPropagation={() => (showFonts = !showFonts)}>
@@ -99,12 +100,11 @@
    <Icon name={`chevron-${showFonts ? "down" : "right"}`} />
  </div>
  {#if showFonts}
-
    <div
-
      class="fonts"
-
      transition:slide|local={{ duration: 150, easing: quadIn }}>
+
    <div class="fonts" transition:slide={{ duration: 150, easing: quadIn }}>
      {#each codeFonts as font}
        {@const isSelectedFont = $codeFont === font.storedName}
        <!-- svelte-ignore a11y-click-events-have-key-events -->
+
        <!-- svelte-ignore a11y-no-static-element-interactions -->
        <div
          on:click={() => switchFont(font.storedName)}
          class="item font"
modified src/App/ModalPortal.svelte
@@ -30,6 +30,7 @@
{#if $modalStore}
  <div class="container">
    <!-- svelte-ignore a11y-click-events-have-key-events -->
+
    <!-- svelte-ignore a11y-no-static-element-interactions -->
    <div
      class="overlay"
      on:click={hide}
modified src/components/Badge.svelte
@@ -49,6 +49,7 @@
  }
</style>

+
<!-- svelte-ignore a11y-no-static-element-interactions -->
<span
  on:mouseenter
  on:mouseleave
modified src/components/Clipboard.svelte
@@ -50,6 +50,7 @@
</style>

<!-- svelte-ignore a11y-click-events-have-key-events -->
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
<span
  title={tooltip}
  class="clipboard"
modified src/components/Dropdown/DropdownItem.svelte
@@ -24,6 +24,7 @@
</style>

<!-- svelte-ignore a11y-click-events-have-key-events -->
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
<div
  class="item"
  class:selected
modified src/components/Floating.svelte
@@ -43,6 +43,7 @@

<div bind:this={thisComponent}>
  <!-- svelte-ignore a11y-click-events-have-key-events -->
+
  <!-- svelte-ignore a11y-no-static-element-interactions -->
  <div
    on:click={toggle}
    class="toggle"
modified src/components/Icon.svelte
@@ -35,6 +35,7 @@
</style>

<!-- svelte-ignore a11y-click-events-have-key-events -->
+
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
<svg
  role="img"
  on:click
modified src/components/SquareButton.svelte
@@ -63,6 +63,7 @@
</style>

<!-- svelte-ignore a11y-click-events-have-key-events -->
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
<div
  {title}
  on:click
modified src/lib/modal.ts
@@ -1,9 +1,6 @@
+
import type { ComponentProps, ComponentType, SvelteComponent } from "svelte";
+

import { derived, get, writable } from "svelte/store";
-
import type {
-
  ComponentProps,
-
  ComponentType,
-
  SvelteComponentTyped,
-
} from "svelte";

type HideCallback = () => void;

@@ -45,13 +42,13 @@ export function hide(): void {
  store.set(undefined);
}

-
interface ShowArgs<T extends SvelteComponentTyped> {
+
interface ShowArgs<T extends SvelteComponent> {
  component: ComponentType<T>;
  props: ComponentProps<T>;
  hideCallback?: HideCallback;
}

-
export function show<Component extends SvelteComponentTyped>(
+
export function show<Component extends SvelteComponent>(
  args: ShowArgs<Component>,
): void {
  // Defocus any active input elements, so that we can always close an open
@@ -62,7 +59,7 @@ export function show<Component extends SvelteComponentTyped>(
  store.set(args);
}

-
export function toggle<Component extends SvelteComponentTyped>(
+
export function toggle<Component extends SvelteComponent>(
  args: ShowArgs<Component>,
): void {
  const stored = get(modalStore);
modified src/views/projects/Blob.svelte
@@ -228,7 +228,7 @@
      </span>
      <div class="right">
        {#if isMarkdown}
-
          <div class="toggle">
+
          <div title="Toggle render method" class="toggle">
            <SquareButton clickable on:click={toggleMarkdown}>
              {showMarkdown ? "Plain" : "Markdown"}
            </SquareButton>
modified src/views/projects/Cob/CobStateButton.svelte
@@ -1,5 +1,5 @@
<script lang="ts" strictEvents>
-
  type T = $$Generic;
+
  import type { IssueState } from "@httpd-client";

  import Button from "@app/components/Button.svelte";
  import Dropdown from "@app/components/Dropdown.svelte";
@@ -11,15 +11,15 @@
  import { createEventDispatcher } from "svelte";
  import { isEqual } from "lodash";

-
  export let state: T;
-
  export let selectedItem: [string, T];
-
  export let items: [string, T][];
+
  export let state: IssueState;
+
  export let selectedItem: [string, IssueState];
+
  export let items: [string, IssueState][];

  const dispatch = createEventDispatcher<{
-
    saveStatus: T;
+
    saveStatus: IssueState;
  }>();

-
  function switchCaption(item: [string, T]) {
+
  function switchCaption(item: [string, IssueState]) {
    selectedItem = item;
    closeFocused();
  }
modified src/views/projects/SourceBrowser/FileDiff.svelte
@@ -153,6 +153,7 @@
<div id={file.path} class="wrapper">
  <header class="header">
    <!-- svelte-ignore a11y-click-events-have-key-events -->
+
    <!-- svelte-ignore a11y-no-static-element-interactions -->
    <div class="expand-button" on:click={() => (collapsed = !collapsed)}>
      {#if collapsed}
        <Icon name="chevron-right" />
modified src/views/projects/Tree/Folder.svelte
@@ -68,6 +68,7 @@
</style>

<!-- svelte-ignore a11y-click-events-have-key-events -->
+
<!-- svelte-ignore a11y-no-static-element-interactions -->
<div class="folder" on:click={onClick}>
  <span class="folder-name">{name}/</span>
</div>
modified tests/e2e/project.spec.ts
@@ -228,12 +228,12 @@ test("markdown files", async ({ page }) => {

  // Switch between raw and rendered modes.
  {
-
    const plainButton = page.locator('text="Plain"');
-
    await plainButton.click();
+
    const toggleButton = page.getByTitle("Toggle render method");
+
    await expect(toggleButton).toHaveText("Plain");
+
    await toggleButton.click();
    await expect(page.locator("text=##### Table of Contents")).toBeVisible();
-

-
    const markdownButton = page.locator('text="Markdown"');
-
    await markdownButton.click();
+
    await expect(toggleButton).toHaveText("Markdown");
+
    await toggleButton.click();
  }

  // Internal links go to anchor.