diff --git a/.branding b/.branding index 7cb3718b8b..7f1c9ecbe7 100644 --- a/.branding +++ b/.branding @@ -1,2 +1,2 @@ -https://github.com/Keavon/graphite-branded-assets/archive/8cd7cf811d36228a2eb7ce741adc3c745632a6e7.tar.gz -17a7cd32dda4afd893c65e1fb6757f1ecf760702217f647d1c680db8d92643ef +https://github.com/Keavon/graphite-branded-assets/archive/f44aa2f362ae4fed8d634878b817a1d3948a7dcb.tar.gz +dffe2b483e491979ef57c320d61446ada5400ef73ff26582976631d9c36efefc diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ae7513f203..a059b6e5f0 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -32,12 +32,12 @@ "process": "^0.11.10", "rollup-plugin-license": "^3.6.0", "sass": "^1.97.2", - "svelte": "5.46.4", + "svelte": "5.47.1", "svelte-preprocess": "^6.0.3", - "tar": "^7.5.3", + "tar": "^7.5.4", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "typescript-eslint": "^8.53.0", + "typescript-eslint": "^8.53.1", "vite": "^7.3.1", "vite-multiple-assets": "2.2.6" } @@ -1722,17 +1722,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", - "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.1.tgz", + "integrity": "sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/type-utils": "8.53.0", - "@typescript-eslint/utils": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/type-utils": "8.53.1", + "@typescript-eslint/utils": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -1745,7 +1745,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.53.0", + "@typescript-eslint/parser": "^8.53.1", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -1761,16 +1761,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", - "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz", + "integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", "debug": "^4.4.3" }, "engines": { @@ -1786,14 +1786,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", - "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz", + "integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.53.0", - "@typescript-eslint/types": "^8.53.0", + "@typescript-eslint/tsconfig-utils": "^8.53.1", + "@typescript-eslint/types": "^8.53.1", "debug": "^4.4.3" }, "engines": { @@ -1808,14 +1808,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", - "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz", + "integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0" + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1826,9 +1826,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", - "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz", + "integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==", "dev": true, "license": "MIT", "engines": { @@ -1843,15 +1843,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", - "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.1.tgz", + "integrity": "sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/utils": "8.53.1", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -1868,9 +1868,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", - "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz", + "integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==", "dev": true, "license": "MIT", "engines": { @@ -1882,16 +1882,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", - "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz", + "integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.53.0", - "@typescript-eslint/tsconfig-utils": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/project-service": "8.53.1", + "@typescript-eslint/tsconfig-utils": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -1949,16 +1949,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", - "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.1.tgz", + "integrity": "sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0" + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1973,13 +1973,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", - "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz", + "integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/types": "8.53.1", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -6260,9 +6260,9 @@ } }, "node_modules/svelte": { - "version": "5.46.4", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.46.4.tgz", - "integrity": "sha512-VJwdXrmv9L8L7ZasJeWcCjoIuMRVbhuxbss0fpVnR8yorMmjNDwcjIH08vS6wmSzzzgAG5CADQ1JuXPS2nwt9w==", + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.47.1.tgz", + "integrity": "sha512-MhSWfWEpG5T57z0Oyfk9D1GhAz/KTZKZZlWtGEsy9zNk2fafpuU7sJQlXNSA8HtvwKxVC9XlDyl5YovXUXjjHA==", "dev": true, "license": "MIT", "dependencies": { @@ -6389,9 +6389,9 @@ } }, "node_modules/tar": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.3.tgz", - "integrity": "sha512-ENg5JUHUm2rDD7IvKNFGzyElLXNjachNLp6RaGf4+JOgxXHkqA+gq81ZAMCUmtMtqBsoU62lcp6S27g1LCYGGQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.4.tgz", + "integrity": "sha512-AN04xbWGrSTDmVwlI4/GTlIIwMFk/XEv7uL8aa57zuvRy6s4hdBed+lVq2fAZ89XDa7Us3ANXcE3Tvqvja1kTA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -6629,16 +6629,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.0.tgz", - "integrity": "sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.1.tgz", + "integrity": "sha512-gB+EVQfP5RDElh9ittfXlhZJdjSU4jUSTyE2+ia8CYyNvet4ElfaLlAIqDvQV9JPknKx0jQH1racTYe/4LaLSg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0" + "@typescript-eslint/eslint-plugin": "8.53.1", + "@typescript-eslint/parser": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/utils": "8.53.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/frontend/package.json b/frontend/package.json index a43eeedb0c..e90047f897 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -57,12 +57,12 @@ "process": "^0.11.10", "rollup-plugin-license": "^3.6.0", "sass": "^1.97.2", - "svelte": "5.46.4", + "svelte": "5.47.1", "svelte-preprocess": "^6.0.3", - "tar": "^7.5.3", + "tar": "^7.5.4", "ts-node": "^10.9.2", "typescript": "^5.9.3", - "typescript-eslint": "^8.53.0", + "typescript-eslint": "^8.53.1", "vite": "^7.3.1", "vite-multiple-assets": "2.2.6" }, diff --git a/frontend/src/icons.ts b/frontend/src/icons.ts index a21e6d8fb4..dad43d174f 100644 --- a/frontend/src/icons.ts +++ b/frontend/src/icons.ts @@ -11,6 +11,7 @@ import Checkmark from "@branding/assets/icon-12px-solid/checkmark.svg"; import Clipped from "@branding/assets/icon-12px-solid/clipped.svg"; import CloseX from "@branding/assets/icon-12px-solid/close-x.svg"; import Delay from "@branding/assets/icon-12px-solid/delay.svg"; +import DotThick from "@branding/assets/icon-12px-solid/dot-thick.svg"; import Dot from "@branding/assets/icon-12px-solid/dot.svg"; import DropdownArrow from "@branding/assets/icon-12px-solid/dropdown-arrow.svg"; import Edit12px from "@branding/assets/icon-12px-solid/edit-12px.svg"; @@ -59,6 +60,7 @@ const SOLID_12PX = { CloseX: { svg: CloseX, size: 12 }, Delay: { svg: Delay, size: 12 }, Dot: { svg: Dot, size: 12 }, + DotThick: { svg: DotThick, size: 12 }, DropdownArrow: { svg: DropdownArrow, size: 12 }, Edit12px: { svg: Edit12px, size: 12 }, Empty12px: { svg: Empty12px, size: 12 }, @@ -159,7 +161,6 @@ import NodeBlur from "@branding/assets/icon-16px-solid/node-blur.svg"; import NodeBrushwork from "@branding/assets/icon-16px-solid/node-brushwork.svg"; import NodeColorCorrection from "@branding/assets/icon-16px-solid/node-color-correction.svg"; import NodeGradient from "@branding/assets/icon-16px-solid/node-gradient.svg"; -import NodeImaginate from "@branding/assets/icon-16px-solid/node-imaginate.svg"; import NodeMagicWand from "@branding/assets/icon-16px-solid/node-magic-wand.svg"; import NodeMask from "@branding/assets/icon-16px-solid/node-mask.svg"; import NodeMotionBlur from "@branding/assets/icon-16px-solid/node-motion-blur.svg"; @@ -278,7 +279,6 @@ const SOLID_16PX = { NodeBrushwork: { svg: NodeBrushwork, size: 16 }, NodeColorCorrection: { svg: NodeColorCorrection, size: 16 }, NodeGradient: { svg: NodeGradient, size: 16 }, - NodeImaginate: { svg: NodeImaginate, size: 16 }, NodeMagicWand: { svg: NodeMagicWand, size: 16 }, NodeMask: { svg: NodeMask, size: 16 }, NodeMotionBlur: { svg: NodeMotionBlur, size: 16 }, @@ -377,7 +377,6 @@ import RasterBrushTool from "@branding/assets/icon-24px-two-tone/raster-brush-to import RasterCloneTool from "@branding/assets/icon-24px-two-tone/raster-clone-tool.svg"; import RasterDetailTool from "@branding/assets/icon-24px-two-tone/raster-detail-tool.svg"; import RasterHealTool from "@branding/assets/icon-24px-two-tone/raster-heal-tool.svg"; -import RasterImaginateTool from "@branding/assets/icon-24px-two-tone/raster-imaginate-tool.svg"; import RasterPatchTool from "@branding/assets/icon-24px-two-tone/raster-patch-tool.svg"; import RasterRelightTool from "@branding/assets/icon-24px-two-tone/raster-relight-tool.svg"; import VectorEllipseTool from "@branding/assets/icon-24px-two-tone/vector-ellipse-tool.svg"; @@ -401,7 +400,6 @@ const TWO_TONE_24PX = { RasterCloneTool: { svg: RasterCloneTool, size: 24 }, RasterDetailTool: { svg: RasterDetailTool, size: 24 }, RasterHealTool: { svg: RasterHealTool, size: 24 }, - RasterImaginateTool: { svg: RasterImaginateTool, size: 24 }, RasterPatchTool: { svg: RasterPatchTool, size: 24 }, RasterRelightTool: { svg: RasterRelightTool, size: 24 }, VectorEllipseTool: { svg: VectorEllipseTool, size: 24 }, diff --git a/node-graph/nodes/gstd/test-image-1-result.png b/node-graph/nodes/gstd/test-image-1-result.png deleted file mode 100644 index 0089fa3011..0000000000 Binary files a/node-graph/nodes/gstd/test-image-1-result.png and /dev/null differ diff --git a/node-graph/nodes/gstd/test-image-1.png b/node-graph/nodes/gstd/test-image-1.png deleted file mode 100644 index 81383123d9..0000000000 Binary files a/node-graph/nodes/gstd/test-image-1.png and /dev/null differ diff --git a/website/.build-scripts/install-fonts.ts b/website/.build-scripts/install.ts similarity index 74% rename from website/.build-scripts/install-fonts.ts rename to website/.build-scripts/install.ts index ba1b63b779..87b08a9b04 100644 --- a/website/.build-scripts/install-fonts.ts +++ b/website/.build-scripts/install.ts @@ -1,9 +1,12 @@ /* eslint-disable no-console */ import fs from "fs"; +import type { IncomingMessage } from "http"; import https from "https"; import path from "path"; +import * as tar from "tar"; + // Define basePath as the directory of the current script const basePath = import.meta.dirname; @@ -185,11 +188,65 @@ https } fs.writeFileSync(textBalancerDest, data, "utf8"); console.log(`Downloaded and saved: ${textBalancerDest}`); + res.destroy(); // Close the connection } catch (error) { console.error("Error saving text-balancer.js:", error); + res.destroy(); // Close the connection } }); }) .on("error", (err) => { console.error("Error downloading text-balancer.js:", err); }); + +// Fetch all favicon files from the /favicons directory of the Graphite Branded Assets repo and save them within ../static/ +// The URL of the repo is the first line of ../../.branding which is a .tar.gz file that we extract with the "tar" npm package +const brandingFilePath = path.join(basePath, "..", "..", ".branding"); +if (!fs.existsSync(brandingFilePath)) console.error("\nThe `.branding` file was not found"); +const brandingRepoUrl = fs.readFileSync(brandingFilePath, "utf8").split("\n")[0].trim(); +console.log("\nFetching favicons from branding repo:", brandingRepoUrl); +downloadWithRedirects( + brandingRepoUrl, + (res) => { + if (res.statusCode !== 200) { + console.error(`Failed to download branding repo. Status code: ${res.statusCode}`); + res.resume(); + return; + } + + // Pipe the response stream into tar to extract only the /favicons directory + const extract = tar.extract({ + cwd: path.join(basePath, "../static/"), + filter: (path) => path.includes("/favicons/"), + strip: 2, // Remove leading directory components + }); + + res.pipe(extract); + + extract.on("finish", () => { + console.log("Favicons extracted to ../static/ successfully!"); + res.destroy(); // Close the connection + }); + + extract.on("error", (err) => { + console.error("Error extracting favicons:", err); + res.destroy(); // Close the connection + }); + }, + (err) => console.error("Error downloading branding repo:", err), +); +function downloadWithRedirects(url: string, callback: (res: IncomingMessage) => void, errorCallback: (err: Error) => void) { + https + .get(url, (res) => { + if (res.statusCode === 302 || res.statusCode === 301) { + console.log("Redirected to:", res.headers.location); + res.destroy(); // Close the connection + + // Follow the redirect + return downloadWithRedirects(res.headers.location || "", callback, errorCallback); + } + console.log("Final URL reached:", url); + callback(res); + }) + .on("error", errorCallback); +} diff --git a/website/.gitignore b/website/.gitignore index 0fae7a6dd2..ec007841ba 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -1,4 +1,4 @@ node_modules/ public/ -static/fonts/ -static/text-balancer.js +static/ +!static/js/ diff --git a/website/LICENSE.txt b/website/LICENSE.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/website/content/_index.md b/website/content/_index.md index 9762866ad6..e90cbb23f6 100644 --- a/website/content/_index.md +++ b/website/content/_index.md @@ -393,16 +393,16 @@ Blend across color schemes. Morph shapes before they're scattered around the can ## Geared for generative pipelines -Graphite's representation of artwork as a node graph lets you customize, compose, reuse, share, and automate your content workflows: +Graphite's representation of artwork as a node graph lets you customize, compose, automate, reuse, and share your content workflows.
- Infinitely pan and zoom; export any resolution with no pixelation + Infinitely pan and zoom without pixelation, export any resolution
- - Build workflows to mix AI and human-authored content (future) + + Compile standalone programs from node systems (future)
@@ -527,102 +527,3 @@ Get started with Graphite by following along to a hands-on quickstart tutorial.
- - - - - - - - - - - - diff --git a/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md b/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md index d1c4e6347d..c095ab6a73 100644 --- a/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md +++ b/website/content/blog/2024-01-01-looking-back-on-2023-and-what's-next.md @@ -122,7 +122,7 @@ But 2023 wasn't only put towards refactoring code. New features were added all t With so much to change in the goal of rewriting nearly every system with its Graphene counterpart, we had to take an incremental path so other feature development could continue without a broken editor. As succinctly as possible, this is the story of how we pulled it off— although this section gets rather technical so feel free to skip past if that's not your cup of tea. -The previous, intentionally-temporary layer system supported folders, vector shapes, text, bitmap images, and dynamic AI art (part of the Imaginate image generation feature). +The previous, intentionally-temporary layer system supported folders, vector shapes, text, bitmap images, and dynamic image generation.

Block diagram of a Graphite document before the node graph

@@ -160,13 +160,12 @@ First, I have some high-level goals for 2024: - Reach 20,000 [stars on GitHub](https://github.com/GraphiteEditor/Graphite/stargazers) (we just passed 5000 this December) - Move towards a greater focus on polish, stability, performance, and learning resources for the product - Attain sustainable income from donors and sponsors, and maybe even apply for grants in order to hire a full-time developer -- Build infrastructure for user accounts and prove the viability of getting revenue from hosted AI cloud computation +- Build infrastructure for user accounts and prove the viability of getting revenue from hosted cloud rendering And then from a development perspective, I am looking forward to accomplishing these overarching objectives in 2024: -- Restoring several previous features that were removed during refactors in the past year to a fully working state including Imaginate, snapping, folder bounding boxes, transform pivots, and vector shape boolean operations +- Restoring several previous features that were removed during refactors in the past year to a fully working state including snapping, folder bounding boxes, transform pivots, and vector shape boolean operations - Deploying GPU-based rendering by default and moving from an experimental to a production-ready hardware-accelerated compositing system using [Vello](https://github.com/linebender/vello) to unify the currently separate raster and vector pipelines -- Shipping desktop apps for Windows, Mac, and Linux and bundling built-in AI models to run Imaginate and other upcoming features directly on user hardware - Designing a new vector graphics data format suitable for advanced procedural editing and rendering, plus the associated procedural workflow features - Remaking the Brush tool with the GPU-accelerated pipeline and the adaptive resolution system so digital painting in Graphite becomes practical - Implementing the Mask Mode feature for Magic Wand tool marquee selections, which will dramatically improve Graphite's utility as a raster graphics editor diff --git a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md index b5d0d75b84..8c2b41c0ef 100644 --- a/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md +++ b/website/content/blog/2024-10-15-graphite-progress-report-q3-2024.md @@ -335,8 +335,6 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the - Fixes, documentation, and updates for npm dependencies and tooling, as well as fixes for Bezier-rs demos not building ([#1857](https://github.com/GraphiteEditor/Graphite/pull/1857)) -- Partial restoration of the Imaginate node within the modern node graph architecture, but more work remains ([#1908](https://github.com/GraphiteEditor/Graphite/pull/1908)) - - Profiling metrics development infrastructure for Graphene graph compilation ([#1924](https://github.com/GraphiteEditor/Graphite/pull/1924), [#1974](https://github.com/GraphiteEditor/Graphite/pull/1974)) - CI infrastructure to post Clippy warnings as PR comments ([#1926](https://github.com/GraphiteEditor/Graphite/pull/1926), [commit a93dcb2](https://github.com/GraphiteEditor/Graphite/commit/a93dcb2776027bfcb385ae9dfddff249bdfd896b)) diff --git a/website/content/features.md b/website/content/features.md index 6f2480cd0a..b8d567f1ec 100644 --- a/website/content/features.md +++ b/website/content/features.md @@ -103,7 +103,7 @@ Marrying vector and raster under one roof enables both art forms to complement e Procedural vector editing and usability
-
+

— Alpha 4 —

@@ -146,10 +146,6 @@ Marrying vector and raster under one roof enables both art forms to complement e Blend tool to morph between shapes
-
- - Expanded imaging model data format -
Context menus throughout the editor @@ -163,7 +159,7 @@ Marrying vector and raster under one roof enables both art forms to complement e Stable document format
-
+

— Beta 1 —

@@ -194,6 +190,10 @@ Marrying vector and raster under one roof enables both art forms to complement e Custom attributes for table data
+
+ + Expanded imaging model data format +
Physical measurement units @@ -344,7 +344,7 @@ Marrying vector and raster under one roof enables both art forms to complement e
- AI nodes and tools (e.g. magic wand) + Neural nodes/tools like Magic Wand
diff --git a/website/content/learn/_outline_draft.md b/website/content/learn/_outline_draft.md new file mode 100644 index 0000000000..3b079fd61b --- /dev/null +++ b/website/content/learn/_outline_draft.md @@ -0,0 +1,80 @@ ++++ +title = "Outline Draft" +template = "book.html" +page_template = "book.html" +draft = true + +[extra] +order = 0 ++++ + +- # Interface + - # Layers panel + - About layers and folders + - Control bar + - Blend modes and opacity + - Adding folders + - Deleting the selected layers + - The layer list + - Editing layers + - Selection and multi-selection + - Rearranging the hierarchy + - # Properties panel + - Node properties + - Parameters + - Expose button + - Name + - Value inputs +- # Viewport + - # Navigation + - Pan + - Tilt + - Zoom + - # Artboards + - Infinite canvas + - New document artboard + - Adjusting existing artboards +- # Graph + - # INDEX: + - Opening the graph + - Document graph vs. layer graph, limitations + - Adding nodes + - Connecting nodes + + ## Overlaid node graph editing + + Opening the overlaid node graph shows the structure of nodes and layers that compose the document artwork. It's a more detailed view of what the [Layers](../layers-panel) and [Properties](../properties-panel) panels show. + + **Nodes** are the entities with left-to-right input **connectors**. + + **Layers** are the larger entities shown with thumbnails and a bottom-to-top direction of data stacking. Their purpose is to composite sources of graphical data on top of one another in a **layer stack**. Layers take input from other nodes or layers via a connector on their left side. When that connector is fed by another layer stack, the Layers panel considers it a **group** because it combines one stack into another parent stack. + + Layers and nodes are wired together using **links** which send data between the outputs of nodes to the inputs of others. You can wire up a node by dragging from the output connector of one node to the input connector of its destination node. But note that forming cyclic graphs, where a loop can be traced along the links of a set of nodes, is not permitted. Graphical data flows into the **Output** node which then becomes rendered to the document viewport. + + ### Node/layer controls + + When a layer or node is selected, these buttons will show up on the left side of the control bar: + +

The node/layer controls

+ + | | | + |-|-| + | Make Hidden/
Make Visible |

Toggles the visibility state of the layer or node. This is equivalent to the eye icon button displayed beside each layer. If a node or layer is hidden, it gets bypassed in the data flow. CtrlH (macOS: H) is a shortcut for this toggle that can be used from the graph or viewport.

| + | Preview/
End Preview |

Temporarily moves the graph output away from the Output node and the graph output is instead provided by the previewed node. While previewing, the node is styled with a dashed, brighter border. Ending the preview returns responsibility back to the Output node. This is a handy feature for viewing part of a graph without needing to disconnect the actual Output node and manually restore it later. Clicking a node or layer in the graph while holding Alt is a shortcut for toggling its preview.

| + - # Nodes + - # Layers +- # Vector Editing + - # Nodes + - # Layers +- # Raster Editing + - # INDEX: + - Opening the graph + - Document graph vs. layer graph, limitations + - Adding nodes + - Connecting nodes + - # Nodes + - # Layers +- # Tools + - # General tools + - # Vector tools + - # Raster tools diff --git a/website/content/learn/_unpublished/graph/_index.md b/website/content/learn/_unpublished/graph/_index.md deleted file mode 100644 index db0ac3056d..0000000000 --- a/website/content/learn/_unpublished/graph/_index.md +++ /dev/null @@ -1,34 +0,0 @@ -+++ -title = "Graph" -template = "book.html" -page_template = "book.html" - -[extra] -order = 4 -+++ - -- Opening the graph -- Document graph vs. layer graph, limitations -- Adding nodes -- Connecting nodes - -## Overlaid node graph editing - -Opening the overlaid node graph shows the structure of nodes and layers that compose the document artwork. It's a more detailed view of what the [Layers](../layers-panel) and [Properties](../properties-panel) panels show. - -**Nodes** are the entities with left-to-right input **connectors**. - -**Layers** are the larger entities shown with thumbnails and a bottom-to-top direction of data stacking. Their purpose is to composite sources of graphical data on top of one another in a **layer stack**. Layers take input from other nodes or layers via a connector on their left side. When that connector is fed by another layer stack, the Layers panel considers it a **group** because it combines one stack into another parent stack. - -Layers and nodes are wired together using **links** which send data between the outputs of nodes to the inputs of others. You can wire up a node by dragging from the output connector of one node to the input connector of its destination node. But note that forming cyclic graphs, where a loop can be traced along the links of a set of nodes, is not permitted. Graphical data flows into the **Output** node which then becomes rendered to the document viewport. - -### Node/layer controls - -When a layer or node is selected, these buttons will show up on the left side of the control bar: - -

The node/layer controls

- -| | | -|-|-| -| Make Hidden/
Make Visible |

Toggles the visibility state of the layer or node. This is equivalent to the eye icon button displayed beside each layer. If a node or layer is hidden, it gets bypassed in the data flow. CtrlH (macOS: H) is a shortcut for this toggle that can be used from the graph or viewport.

| -| Preview/
End Preview |

Temporarily moves the graph output away from the Output node and the graph output is instead provided by the previewed node. While previewing, the node is styled with a dashed, brighter border. Ending the preview returns responsibility back to the Output node. This is a handy feature for viewing part of a graph without needing to disconnect the actual Output node and manually restore it later. Clicking a node or layer in the graph while holding Alt is a shortcut for toggling its preview.

| diff --git a/website/content/learn/_unpublished/graph/layers.md b/website/content/learn/_unpublished/graph/layers.md deleted file mode 100644 index f6ddf286e2..0000000000 --- a/website/content/learn/_unpublished/graph/layers.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Layers" - -[extra] -order = 2 -+++ diff --git a/website/content/learn/_unpublished/graph/nodes.md b/website/content/learn/_unpublished/graph/nodes.md deleted file mode 100644 index e8932d92cc..0000000000 --- a/website/content/learn/_unpublished/graph/nodes.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Nodes" - -[extra] -order = 1 -+++ diff --git a/website/content/learn/_unpublished/interface/layers-panel.md b/website/content/learn/_unpublished/interface/layers-panel.md deleted file mode 100644 index 8865ea877c..0000000000 --- a/website/content/learn/_unpublished/interface/layers-panel.md +++ /dev/null @@ -1,18 +0,0 @@ -+++ -title = "Layers panel" - -[extra] -order = 3 -+++ - -This manual page hasn't been written yet! But here is an outline for what's coming soon: - -- About layers and folders -- Control bar - - Blend modes and opacity - - Adding folders - - Deleting the selected layers -- The layer list - - Editing layers - - Selection and multi-selection - - Rearranging the hierarchy diff --git a/website/content/learn/_unpublished/interface/properties-panel.md b/website/content/learn/_unpublished/interface/properties-panel.md deleted file mode 100644 index bbd740b23f..0000000000 --- a/website/content/learn/_unpublished/interface/properties-panel.md +++ /dev/null @@ -1,14 +0,0 @@ -+++ -title = "Properties panel" - -[extra] -order = 4 -+++ - -This manual page hasn't been written yet! But here is an outline for what's coming soon: - -- Node properties - - Parameters - - Expose button - - Name - - Value inputs diff --git a/website/content/learn/_unpublished/node-catalog/_index.md b/website/content/learn/_unpublished/node-catalog/_index.md deleted file mode 100644 index 4d60fefcf8..0000000000 --- a/website/content/learn/_unpublished/node-catalog/_index.md +++ /dev/null @@ -1,10 +0,0 @@ -+++ -title = "Node catalog" -template = "book.html" -page_template = "book.html" - -[extra] -order = 9 -+++ - -## Graphical data types diff --git a/website/content/learn/_unpublished/node-catalog/raster-nodes.md b/website/content/learn/_unpublished/node-catalog/raster-nodes.md deleted file mode 100644 index 56d76607f3..0000000000 --- a/website/content/learn/_unpublished/node-catalog/raster-nodes.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Raster nodes" - -[extra] -order = 2 -+++ diff --git a/website/content/learn/_unpublished/node-catalog/vector-nodes.md b/website/content/learn/_unpublished/node-catalog/vector-nodes.md deleted file mode 100644 index 43e7a67b6f..0000000000 --- a/website/content/learn/_unpublished/node-catalog/vector-nodes.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Vector nodes" - -[extra] -order = 1 -+++ diff --git a/website/content/learn/_unpublished/raster-editing/_index.md b/website/content/learn/_unpublished/raster-editing/_index.md deleted file mode 100644 index 9ee6b4b222..0000000000 --- a/website/content/learn/_unpublished/raster-editing/_index.md +++ /dev/null @@ -1,13 +0,0 @@ -+++ -title = "Raster editing" -template = "book.html" -page_template = "book.html" - -[extra] -order = 6 -+++ - -- Opening the graph -- Document graph vs. layer graph, limitations -- Adding nodes -- Connecting nodes diff --git a/website/content/learn/_unpublished/raster-editing/layers.md b/website/content/learn/_unpublished/raster-editing/layers.md deleted file mode 100644 index f6ddf286e2..0000000000 --- a/website/content/learn/_unpublished/raster-editing/layers.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Layers" - -[extra] -order = 2 -+++ diff --git a/website/content/learn/_unpublished/raster-editing/nodes.md b/website/content/learn/_unpublished/raster-editing/nodes.md deleted file mode 100644 index e8932d92cc..0000000000 --- a/website/content/learn/_unpublished/raster-editing/nodes.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Nodes" - -[extra] -order = 1 -+++ diff --git a/website/content/learn/_unpublished/tools/_index.md b/website/content/learn/_unpublished/tools/_index.md deleted file mode 100644 index 8626b1f770..0000000000 --- a/website/content/learn/_unpublished/tools/_index.md +++ /dev/null @@ -1,9 +0,0 @@ -+++ -title = "Tools" -template = "book.html" -page_template = "book.html" - -[extra] -order = 7 -+++ - diff --git a/website/content/learn/_unpublished/tools/general-tools.md b/website/content/learn/_unpublished/tools/general-tools.md deleted file mode 100644 index cd087c49f7..0000000000 --- a/website/content/learn/_unpublished/tools/general-tools.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "General tools" - -[extra] -order = 1 -+++ diff --git a/website/content/learn/_unpublished/tools/raster-tools.md b/website/content/learn/_unpublished/tools/raster-tools.md deleted file mode 100644 index ddfe1ed479..0000000000 --- a/website/content/learn/_unpublished/tools/raster-tools.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Raster tools" - -[extra] -order = 3 -+++ diff --git a/website/content/learn/_unpublished/tools/vector-tools.md b/website/content/learn/_unpublished/tools/vector-tools.md deleted file mode 100644 index 53ab2caf5b..0000000000 --- a/website/content/learn/_unpublished/tools/vector-tools.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Vector tools" - -[extra] -order = 2 -+++ diff --git a/website/content/learn/_unpublished/vector-editing/_index.md b/website/content/learn/_unpublished/vector-editing/_index.md deleted file mode 100644 index a7afd54142..0000000000 --- a/website/content/learn/_unpublished/vector-editing/_index.md +++ /dev/null @@ -1,8 +0,0 @@ -+++ -title = "Vector editing" -template = "book.html" -page_template = "book.html" - -[extra] -order = 5 -+++ diff --git a/website/content/learn/_unpublished/vector-editing/layers.md b/website/content/learn/_unpublished/vector-editing/layers.md deleted file mode 100644 index f6ddf286e2..0000000000 --- a/website/content/learn/_unpublished/vector-editing/layers.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Layers" - -[extra] -order = 2 -+++ diff --git a/website/content/learn/_unpublished/vector-editing/nodes.md b/website/content/learn/_unpublished/vector-editing/nodes.md deleted file mode 100644 index e8932d92cc..0000000000 --- a/website/content/learn/_unpublished/vector-editing/nodes.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Nodes" - -[extra] -order = 1 -+++ diff --git a/website/content/learn/_unpublished/viewport/_index.md b/website/content/learn/_unpublished/viewport/_index.md deleted file mode 100644 index f9a362b682..0000000000 --- a/website/content/learn/_unpublished/viewport/_index.md +++ /dev/null @@ -1,12 +0,0 @@ -+++ -title = "Viewport" -template = "book.html" -page_template = "book.html" - -[extra] -order = 3 -+++ - -- Canvas -- Legacy layers -- Legacy folders diff --git a/website/content/learn/_unpublished/viewport/artboards.md b/website/content/learn/_unpublished/viewport/artboards.md deleted file mode 100644 index 4db3f7f21c..0000000000 --- a/website/content/learn/_unpublished/viewport/artboards.md +++ /dev/null @@ -1,10 +0,0 @@ -+++ -title = "Artboards" - -[extra] -order = 2 -+++ - -- Infinite canvas -- New document artboard -- Adjusting existing artboards diff --git a/website/content/learn/_unpublished/viewport/navigation.md b/website/content/learn/_unpublished/viewport/navigation.md deleted file mode 100644 index 3e652a7592..0000000000 --- a/website/content/learn/_unpublished/viewport/navigation.md +++ /dev/null @@ -1,10 +0,0 @@ -+++ -title = "Navigation" - -[extra] -order = 1 -+++ - -- Pan -- Tilt -- Zoom diff --git a/website/content/learn/_unpublished/workflows/_index.md b/website/content/learn/_unpublished/workflows/_index.md deleted file mode 100644 index 98ba709a71..0000000000 --- a/website/content/learn/_unpublished/workflows/_index.md +++ /dev/null @@ -1,9 +0,0 @@ -+++ -title = "Workflows" -template = "book.html" -page_template = "book.html" - -[extra] -order = 8 -+++ - diff --git a/website/content/learn/_unpublished/workflows/imaginate.md b/website/content/learn/_unpublished/workflows/imaginate.md deleted file mode 100644 index 7f00520093..0000000000 --- a/website/content/learn/_unpublished/workflows/imaginate.md +++ /dev/null @@ -1,60 +0,0 @@ -+++ -title = "Imaginate" - -[extra] -order = 2 -js = ["/js/carousel.js"] -css = ["/component/carousel.css"] -+++ - -Imaginate is a useful tool at every stage in the artistic process. Early on it provides inspiration for styles, color palettes, subjects, and composition. It lets you quickly test ideas and explore artistic directions. It's also a useful way to generate placeholder images and content for kit bashing. - -Intermediate stages in the creative process can utilize Imaginate as an iterative back-and-forth dialogue between yourself and the tool. It can be used to improve your creation's artistic fidelity and details, evolve an idea, or inject a little controlled chaos to bring forth happy accidents. And coherency can be given to scenes built from kit bashing collages through interactively transforming its look with iterative Imaginate steps. - -Near the end of the art process, Imaginate is useful for adding the finishing touches the beautify your creative work with small additions like textures, subtle lighting and shadow effects, and pleasant gradients to make the whole piece look its best. It can turn a sterile, flat vector drawing into a detailed final work. - - - - diff --git a/website/content/learn/_unpublished/workflows/procedural-editing.md b/website/content/learn/_unpublished/workflows/procedural-editing.md deleted file mode 100644 index c9b1552c72..0000000000 --- a/website/content/learn/_unpublished/workflows/procedural-editing.md +++ /dev/null @@ -1,6 +0,0 @@ -+++ -title = "Procedural editing" - -[extra] -order = 1 -+++ diff --git a/website/package-lock.json b/website/package-lock.json index 0b875aec7f..7c9c4c57b7 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -12,11 +12,10 @@ "@fontsource/bona-nova": "^5.2.8" }, "devDependencies": { + "@eslint/compat": "^2.0.1", "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^9.39.2", "@types/node": "^25.0.9", - "@typescript-eslint/eslint-plugin": "^8.53.0", - "@typescript-eslint/parser": "^8.53.0", "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", @@ -24,7 +23,8 @@ "eslint-plugin-prettier": "^5.5.5", "prettier": "^3.8.0", "sass": "1.97.2", - "typescript-eslint": "^8.53.0" + "tar": "^7.5.4", + "typescript-eslint": "^8.53.1" } }, "node_modules/@emnapi/core": { @@ -90,6 +90,40 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/compat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-2.0.1.tgz", + "integrity": "sha512-yl/JsgplclzuvGFNqwNYV4XNPhP3l62ZOP9w/47atNAdmDtIFCx6X7CSk/SlWUuBGkT4Et/5+UD+WyvX2iiIWA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "peerDependencies": { + "eslint": "^8.40 || 9" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/compat/node_modules/@eslint/core": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.0.1.tgz", + "integrity": "sha512-r18fEAj9uCk+VjzGt2thsbOmychS+4kxI14spVNibUO2vqKX7obOG+ymZljAwuPZl+S3clPGwCwTDtrdqTiY6Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, "node_modules/@eslint/config-array": { "version": "0.21.1", "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", @@ -262,6 +296,19 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "0.2.12", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", @@ -648,17 +695,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", - "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.1.tgz", + "integrity": "sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/type-utils": "8.53.0", - "@typescript-eslint/utils": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/type-utils": "8.53.1", + "@typescript-eslint/utils": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -671,7 +718,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.53.0", + "@typescript-eslint/parser": "^8.53.1", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -687,16 +734,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", - "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz", + "integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", "debug": "^4.4.3" }, "engines": { @@ -712,14 +759,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", - "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz", + "integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.53.0", - "@typescript-eslint/types": "^8.53.0", + "@typescript-eslint/tsconfig-utils": "^8.53.1", + "@typescript-eslint/types": "^8.53.1", "debug": "^4.4.3" }, "engines": { @@ -734,14 +781,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", - "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz", + "integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0" + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -752,9 +799,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", - "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz", + "integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==", "dev": true, "license": "MIT", "engines": { @@ -769,15 +816,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", - "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.1.tgz", + "integrity": "sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/utils": "8.53.1", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -794,9 +841,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", - "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz", + "integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==", "dev": true, "license": "MIT", "engines": { @@ -808,16 +855,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", - "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz", + "integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.53.0", - "@typescript-eslint/tsconfig-utils": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/visitor-keys": "8.53.0", + "@typescript-eslint/project-service": "8.53.1", + "@typescript-eslint/tsconfig-utils": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -862,16 +909,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", - "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.1.tgz", + "integrity": "sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.53.0", - "@typescript-eslint/types": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0" + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -886,13 +933,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", - "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz", + "integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/types": "8.53.1", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -1507,6 +1554,16 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3232,6 +3289,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4041,6 +4121,23 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tar": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.4.tgz", + "integrity": "sha512-AN04xbWGrSTDmVwlI4/GTlIIwMFk/XEv7uL8aa57zuvRy6s4hdBed+lVq2fAZ89XDa7Us3ANXcE3Tvqvja1kTA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -4199,16 +4296,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.0.tgz", - "integrity": "sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==", + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.1.tgz", + "integrity": "sha512-gB+EVQfP5RDElh9ittfXlhZJdjSU4jUSTyE2+ia8CYyNvet4ElfaLlAIqDvQV9JPknKx0jQH1racTYe/4LaLSg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.53.0", - "@typescript-eslint/parser": "8.53.0", - "@typescript-eslint/typescript-estree": "8.53.0", - "@typescript-eslint/utils": "8.53.0" + "@typescript-eslint/eslint-plugin": "8.53.1", + "@typescript-eslint/parser": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/utils": "8.53.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4408,6 +4505,16 @@ "node": ">=0.10.0" } }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/website/package.json b/website/package.json index 88cc8fd105..870f278d14 100644 --- a/website/package.json +++ b/website/package.json @@ -11,17 +11,16 @@ "homepage": "https://graphite.art", "type": "module", "scripts": { - "postinstall": "node .build-scripts/install-fonts.ts", + "postinstall": "node .build-scripts/install.ts", "generate-editor-structure": "node .build-scripts/generate-editor-structure.ts ../hierarchical_message_system_tree.txt ../hierarchical_message_system_tree.html", "lint": "eslint . && tsc --noEmit", "lint-fix": "eslint . --fix && tsc --noEmit" }, "devDependencies": { + "@eslint/compat": "^2.0.1", "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^9.39.2", "@types/node": "^25.0.9", - "@typescript-eslint/eslint-plugin": "^8.53.0", - "@typescript-eslint/parser": "^8.53.0", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-import": "^2.32.0", @@ -29,7 +28,8 @@ "eslint": "^9.39.2", "prettier": "^3.8.0", "sass": "1.97.2", - "typescript-eslint": "^8.53.0" + "tar": "^7.5.4", + "typescript-eslint": "^8.53.1" }, "dependencies": { "@fontsource-variable/inter": "^5.2.8", diff --git a/website/sass/page/index.scss b/website/sass/page/index.scss index 4160b3b29d..e55f8a65bf 100644 --- a/website/sass/page/index.scss +++ b/website/sass/page/index.scss @@ -465,79 +465,3 @@ } } // ▙ RECENT NEWS ▟ - -// ▛ DEMO VIDEO ▜ -// #demo-video { -// max-width: 1000px; -// } -// ▙ DEMO VIDEO ▟ - -// ▛ IMAGINATE ▜ -// #imaginate { -// > .block { -// align-items: center; - -// h1 { -// text-align: center; - -// .alternating-text { -// position: relative; - -// span { -// // Move left by half (since it's centered) the average (half the 74px difference) of the variance in word lengths -// margin-left: calc(-1.54em / 2 / 2); -// opacity: 0; -// $alternate-duration: 15s; -// $alternate-words: 5; -// animation: $alternate-duration infinite linear 0s fade-word; - -// // The 1st child is the widest -// &:not(:nth-child(1)) { -// position: absolute; -// right: 0; -// } - -// @for $i from 1 through $alternate-words { -// &:nth-child(#{$i}) { -// animation-delay: ($alternate-duration / $alternate-words * ($i - 1)); -// } -// } - -// @keyframes fade-word { -// // Fade in at the start (which begins staggered on each item by `animation-delay`) -// #{0.0%} { opacity: 0; } -// #{2.5%} { opacity: 1; } -// // Remain visible for this item's slice of time, then fade out -// #{0.0% + 100% / ($alternate-words + 1)} { opacity: 1; } -// #{2.5% + 100% / ($alternate-words + 1)} { opacity: 0; } -// } -// } -// } -// } -// } - -// > .diptych { -// margin-top: calc(80 * var(--variable-px)); - -// .block { -// align-items: center; - -// h2 { -// text-align: center; -// } -// } -// } - -// // #imaginate-creative-concepts-carousel { -// // margin-top: 20px; - -// // .screenshot-details { -// // justify-content: center; -// // } - -// // + blockquote { -// // margin-top: 0; -// // } -// // } -// } -// ▙ IMAGINATE ▟ diff --git a/website/static/android-chrome-192x192.png b/website/static/android-chrome-192x192.png deleted file mode 100644 index 9e3f315c80..0000000000 Binary files a/website/static/android-chrome-192x192.png and /dev/null differ diff --git a/website/static/android-chrome-512x512.png b/website/static/android-chrome-512x512.png deleted file mode 100644 index c02e22a2e1..0000000000 Binary files a/website/static/android-chrome-512x512.png and /dev/null differ diff --git a/website/static/apple-touch-icon.png b/website/static/apple-touch-icon.png deleted file mode 100644 index a2c512dd20..0000000000 Binary files a/website/static/apple-touch-icon.png and /dev/null differ diff --git a/website/static/browserconfig.xml b/website/static/browserconfig.xml deleted file mode 100644 index d416bc536f..0000000000 --- a/website/static/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #ffffff - - - diff --git a/website/static/favicon-16x16.png b/website/static/favicon-16x16.png deleted file mode 100644 index fe41550084..0000000000 Binary files a/website/static/favicon-16x16.png and /dev/null differ diff --git a/website/static/favicon-32x32.png b/website/static/favicon-32x32.png deleted file mode 100644 index e94d3fba40..0000000000 Binary files a/website/static/favicon-32x32.png and /dev/null differ diff --git a/website/static/favicon.ico b/website/static/favicon.ico deleted file mode 100644 index 484a28f36f..0000000000 Binary files a/website/static/favicon.ico and /dev/null differ diff --git a/website/static/mstile-144x144.png b/website/static/mstile-144x144.png deleted file mode 100644 index 44f54fd110..0000000000 Binary files a/website/static/mstile-144x144.png and /dev/null differ diff --git a/website/static/mstile-150x150.png b/website/static/mstile-150x150.png deleted file mode 100644 index 30bebbdc81..0000000000 Binary files a/website/static/mstile-150x150.png and /dev/null differ diff --git a/website/static/mstile-310x150.png b/website/static/mstile-310x150.png deleted file mode 100644 index 4b08b270ef..0000000000 Binary files a/website/static/mstile-310x150.png and /dev/null differ diff --git a/website/static/mstile-310x310.png b/website/static/mstile-310x310.png deleted file mode 100644 index 5df1a3b78f..0000000000 Binary files a/website/static/mstile-310x310.png and /dev/null differ diff --git a/website/static/mstile-70x70.png b/website/static/mstile-70x70.png deleted file mode 100644 index e6c2562807..0000000000 Binary files a/website/static/mstile-70x70.png and /dev/null differ diff --git a/website/static/safari-pinned-tab.svg b/website/static/safari-pinned-tab.svg deleted file mode 100644 index 1aa9c242a0..0000000000 --- a/website/static/safari-pinned-tab.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - diff --git a/website/static/site.webmanifest b/website/static/site.webmanifest deleted file mode 100644 index e599560902..0000000000 --- a/website/static/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Graphite", - "short_name": "Graphite", - "icons": [ - { - "src": "/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -}