diff --git a/.esbuild.config.js b/.esbuild.config.js index 9a0dfc3..6a37584 100644 --- a/.esbuild.config.js +++ b/.esbuild.config.js @@ -10,7 +10,7 @@ esbuild tsconfig: "./tsconfig.json", bundle: true, external: ["vscode"], - sourcemap: false, + sourcemap: minify ? false : "both", minify, watch, platform: "node", @@ -25,7 +25,7 @@ esbuild tsconfig: "./tsconfig.json", bundle: true, external: ["vscode"], - sourcemap: false, + sourcemap: minify ? false : "both", minify, watch, platform: "browser", diff --git a/.vscode/launch.json b/.vscode/launch.json index 5fc2f0b..8b2093a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,13 +5,20 @@ { "version": "0.2.0", "configurations": [ + { + "command": "npm run test", + "name": "Debug Tests", + "request": "launch", + "type": "node-terminal" + }, { "name": "Run Extension", "type": "extensionHost", + "debugWebviews": true, "request": "launch", "runtimeExecutable": "${execPath}", "args": ["--extensionDevelopmentPath=${workspaceRoot}"], - "outFiles": ["${workspaceFolder}/dist/**/*.js"], + "outFiles": ["${workspaceFolder}/dist/**/*.js","${workspaceFolder}/dist/**/*.js.map"], "preLaunchTask": "npm: compile" } ] diff --git a/media/editor/components.tsx b/media/editor/components.tsx index 2327617..328002a 100644 --- a/media/editor/components.tsx +++ b/media/editor/components.tsx @@ -1,4 +1,4 @@ -import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"; +import { VscodeTextfield } from "@vscode-elements/react-elements"; import React, { useEffect, useRef, useState } from "react"; import { useGlobalHandler } from "./useHelpers"; @@ -21,8 +21,8 @@ export const EditableField: React.FC = props => { onEditingStateChanged(editing); } }, [editing, onEditingStateChanged]); - const pushChange = () => { - props.onChange((inputRef?.current as unknown as HTMLInputElement).value); + const pushChange = (e: Event) => { + props.onChange((e.target as unknown as HTMLInputElement).value); setEditing(false); }; @@ -58,7 +58,7 @@ export const EditableField: React.FC = props => {
{!editing && rawDisplayValue} {editing && ( - = props => { return (
selectedFrame !== null && setSelectedFrame(null)}>
- updateName((e.target as HTMLInputElement).value)} > State name - +
- - 1 - 4 - 8 - + 1 + 4 + 8 +
- + Movement state - +
- + Rewind animation - +
- updateLoopCount((e.target as HTMLInputElement).value)} > Loop count - - + Loop infinitely - +
- updateFrameCount((e.target as HTMLInputElement).value)} > Frames - +
- +
{previewGrid()}
- +
Delay
diff --git a/media/editor/dmiEditor.tsx b/media/editor/dmiEditor.tsx index 100224a..0170bad 100644 --- a/media/editor/dmiEditor.tsx +++ b/media/editor/dmiEditor.tsx @@ -8,7 +8,7 @@ import { MessageType, ReadyResponseMessage } from "../../shared/messaging"; -import { VSCodeButton, VSCodeDivider, VSCodeTextField } from "@vscode/webview-ui-toolkit/react"; +import { VscodeButton, VscodeDivider, VscodeTextfield, VscodeIcon } from "@vscode-elements/react-elements"; import { StateDetailView } from "./detailView"; import { StateList } from "./listView"; @@ -147,47 +147,38 @@ const Editor: React.FC = () => { const sizeDisplay = ( <>
Width
- changeWidth((e.target as HTMLInputElement).value)} />
Height
- changeHeight((e.target as HTMLInputElement).value)} /> ); + const zoomDisplay = (
- saveZoom(zoom + 1)}> - - - saveZoom(Math.max(1, zoom - 1))}> - - + saveZoom(zoom + 1)}/> + saveZoom(Math.max(1, zoom - 1))}/>
); + + const backgroundDisplayButton = (); + const dirDisplay = (
- cycleDirection(true)}> - - - cycleDirection(false)}> - - + cycleDirection(true)}/> + cycleDirection(false)}/>
); - const backgroundDisplay = ( - - - - ); - const infoBarElements = [sizeDisplay, zoomDisplay, backgroundDisplay]; + const infoBarElements = [sizeDisplay, zoomDisplay, backgroundDisplayButton]; let mainContent = null; if (openStateIndex != null) { @@ -199,7 +190,7 @@ const Editor: React.FC = () => { ); //Close state view button infoBarElements.push( - setOpenStateIndex(null)}>Close + setOpenStateIndex(null)}>Close ); } else { mainContent = ( @@ -215,23 +206,23 @@ const Editor: React.FC = () => { infoBarElements.push(dirDisplay); //Search bar infoBarElements.push( - setSearchText((e.target as HTMLInputElement).value)} > - - + +
); } return (
e.preventDefault()}>
- {infoBarElements.map(e => ( -
{e}
+ {infoBarElements.map((e,i) => ( +
{e}
))}
- + {mainContent}
); diff --git a/media/editor/listView.tsx b/media/editor/listView.tsx index bdbda33..bff02cc 100644 --- a/media/editor/listView.tsx +++ b/media/editor/listView.tsx @@ -1,4 +1,4 @@ -import { VSCodeButton } from "@vscode/webview-ui-toolkit/react"; +import { VscodeButton } from '@vscode-elements/react-elements'; import React, { useEffect, useState } from "react"; import { DmiState, Dirs, Dmi } from "../../shared/dmi"; import { EditableField } from "./components"; @@ -311,7 +311,7 @@ export const StateList: React.FC = props => { /> ))}
- addFreshState()}>Add new state + addFreshState()}>Add new state ); }; diff --git a/package-lock.json b/package-lock.json index 080db6e..e3880bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,21 +1,21 @@ { "name": "dmi-editor", - "version": "1.0.6", + "version": "1.0.9", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "dmi-editor", - "version": "1.0.6", + "version": "1.0.9", "license": "GPL-3.0", "dependencies": { "@lunapaint/png-codec": "github:AnturK/png-codec#dmi", "@pdf-lib/upng": "^1.0.1", + "@vscode-elements/react-elements": "^2.3.1", "@vscode/codicons": "^0.0.29", - "@vscode/webview-ui-toolkit": "^1.0.0", "image-js": "^0.34.0", - "react": "^18.1.0", - "react-dom": "^18.1.0" + "react": "19.0.0", + "react-dom": "19.0.0" }, "devDependencies": { "@jest/globals": "^29.7.0", @@ -30,7 +30,7 @@ "jest": "^29.7.0", "prettier": "^3.0.3", "ts-jest": "^29.1.1", - "typescript": "^4.6.3" + "typescript": "^5.1.0" }, "engines": { "vscode": "^1.75.0" @@ -1151,48 +1151,41 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@lunapaint/png-codec": { - "version": "0.2.0", - "resolved": "git+ssh://git@github.com/AnturK/png-codec.git#8d7be0485beda218ac3793cd8e508974392f6ecc", - "license": "MIT", + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", + "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==" + }, + "node_modules/@lit/context": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.6.tgz", + "integrity": "sha512-M26qDE6UkQbZA2mQ3RjJ3Gzd8TxP+/0obMgE5HfkfLhEEyYE3Bui4A5XHiGPjy0MUGAyxB3QgVuw2ciS0kHn6A==", "dependencies": { - "pako": "^2.0.4" + "@lit/reactive-element": "^1.6.2 || ^2.1.0" } }, - "node_modules/@microsoft/fast-element": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.12.0.tgz", - "integrity": "sha512-gQutuDHPKNxUEcQ4pypZT4Wmrbapus+P9s3bR/SEOLsMbNqNoXigGImITygI5zhb+aA5rzflM6O8YWkmRbGkPA==" - }, - "node_modules/@microsoft/fast-foundation": { - "version": "2.49.4", - "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.49.4.tgz", - "integrity": "sha512-5I2tSPo6bnOfVAIX7XzX+LhilahwvD7h+yzl3jW0t5IYmMX9Lci9VUVyx5f8hHdb1O9a8Y9Atb7Asw7yFO/u+w==", - "dependencies": { - "@microsoft/fast-element": "^1.12.0", - "@microsoft/fast-web-utilities": "^5.4.1", - "tabbable": "^5.2.0", - "tslib": "^1.13.0" + "node_modules/@lit/react": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.8.tgz", + "integrity": "sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==", + "peerDependencies": { + "@types/react": "17 || 18 || 19" } }, - "node_modules/@microsoft/fast-react-wrapper": { - "version": "0.1.48", - "resolved": "https://registry.npmjs.org/@microsoft/fast-react-wrapper/-/fast-react-wrapper-0.1.48.tgz", - "integrity": "sha512-9NvEjru9Kn5ZKjomAMX6v+eF0DR+eDkxKDwDfi+Wb73kTbrNzcnmlwd4diN15ygH97kldgj2+lpvI4CKLQQWLg==", + "node_modules/@lit/reactive-element": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", + "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", "dependencies": { - "@microsoft/fast-element": "^1.9.0", - "@microsoft/fast-foundation": "^2.41.1" - }, - "peerDependencies": { - "react": ">=16.9.0" + "@lit-labs/ssr-dom-shim": "^1.4.0" } }, - "node_modules/@microsoft/fast-web-utilities": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.4.1.tgz", - "integrity": "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==", + "node_modules/@lunapaint/png-codec": { + "version": "0.2.0", + "resolved": "git+ssh://git@github.com/AnturK/png-codec.git#8d7be0485beda218ac3793cd8e508974392f6ecc", + "license": "MIT", "dependencies": { - "exenv-es6": "^1.1.1" + "pako": "^2.0.4" } }, "node_modules/@nodelib/fs.scandir": { @@ -1378,14 +1371,12 @@ "node_modules/@types/prop-types": { "version": "15.7.10", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", - "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==", - "dev": true + "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" }, "node_modules/@types/react": { "version": "18.2.37", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.37.tgz", "integrity": "sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==", - "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1404,8 +1395,7 @@ "node_modules/@types/scheduler": { "version": "0.16.6", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", - "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==", - "dev": true + "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==" }, "node_modules/@types/semver": { "version": "7.5.5", @@ -1419,6 +1409,11 @@ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, "node_modules/@types/vscode": { "version": "1.84.1", "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.84.1.tgz", @@ -1633,24 +1628,33 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, - "node_modules/@vscode/codicons": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.29.tgz", - "integrity": "sha512-AXhTv1nl3r4W5DqAfXXKiawQNW+tLBNlXn/GcsnFCL0j17sQ2AY+az9oB9K6wjkibq1fndNJvmT8RYN712Fdww==" + "node_modules/@vscode-elements/elements": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@vscode-elements/elements/-/elements-2.3.1.tgz", + "integrity": "sha512-fVTkXUoj14mIU/lzNnZBIPFNi3drJb7u7oLe7Y4gwoHmyifzRG6akRnR7N6L6O2a0R3for0Sl7wgNAeiPpMGOA==", + "dependencies": { + "@lit/context": "^1.1.3", + "lit": "^3.2.1" + } }, - "node_modules/@vscode/webview-ui-toolkit": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-1.2.2.tgz", - "integrity": "sha512-xIQoF4FC3Xh6d7KNKIoIezSiFWYFuf6gQMdDyKueKBFGeKwaHWEn+dY2g3makvvEsNMEDji/woEwvg9QSbuUsw==", + "node_modules/@vscode-elements/react-elements": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@vscode-elements/react-elements/-/react-elements-2.3.1.tgz", + "integrity": "sha512-xa/BeGYy5cR+7di4H7wd6pcSuZu1Il4B2qia9j8XppI4KkhqMknyxE2/nXUxApRdrkrM9HFrhhtBWCxAWNbp5g==", "dependencies": { - "@microsoft/fast-element": "^1.6.2", - "@microsoft/fast-foundation": "^2.38.0", - "@microsoft/fast-react-wrapper": "^0.1.18" + "@lit/react": "^1.0.7", + "@vscode-elements/elements": "^2.3.0" }, "peerDependencies": { - "react": ">=16.9.0" + "react": "17 || 18 || 19", + "react-dom": "17 || 18 || 19" } }, + "node_modules/@vscode/codicons": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.29.tgz", + "integrity": "sha512-AXhTv1nl3r4W5DqAfXXKiawQNW+tLBNlXn/GcsnFCL0j17sQ2AY+az9oB9K6wjkibq1fndNJvmT8RYN712Fdww==" + }, "node_modules/acorn": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", @@ -2335,8 +2339,7 @@ "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -3336,11 +3339,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exenv-es6": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz", - "integrity": "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==" - }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -5096,6 +5094,34 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "node_modules/lit": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.1.tgz", + "integrity": "sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==", + "dependencies": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/lit-element": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", + "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.4.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "node_modules/lit-html": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", + "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5127,17 +5153,6 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5968,26 +5983,22 @@ ] }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^19.0.0" } }, "node_modules/react-is": { @@ -6333,12 +6344,9 @@ } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" }, "node_modules/semver": { "version": "7.5.4", @@ -6661,11 +6669,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tabbable": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", - "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -6783,7 +6786,8 @@ "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/tsutils": { "version": "3.21.0", @@ -6907,16 +6911,16 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/unbox-primitive": { @@ -7977,44 +7981,38 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@lunapaint/png-codec": { - "version": "git+ssh://git@github.com/AnturK/png-codec.git#8d7be0485beda218ac3793cd8e508974392f6ecc", - "from": "@lunapaint/png-codec@github:AnturK/png-codec#dmi", - "requires": { - "pako": "^2.0.4" - } - }, - "@microsoft/fast-element": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@microsoft/fast-element/-/fast-element-1.12.0.tgz", - "integrity": "sha512-gQutuDHPKNxUEcQ4pypZT4Wmrbapus+P9s3bR/SEOLsMbNqNoXigGImITygI5zhb+aA5rzflM6O8YWkmRbGkPA==" + "@lit-labs/ssr-dom-shim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", + "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==" }, - "@microsoft/fast-foundation": { - "version": "2.49.4", - "resolved": "https://registry.npmjs.org/@microsoft/fast-foundation/-/fast-foundation-2.49.4.tgz", - "integrity": "sha512-5I2tSPo6bnOfVAIX7XzX+LhilahwvD7h+yzl3jW0t5IYmMX9Lci9VUVyx5f8hHdb1O9a8Y9Atb7Asw7yFO/u+w==", + "@lit/context": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.6.tgz", + "integrity": "sha512-M26qDE6UkQbZA2mQ3RjJ3Gzd8TxP+/0obMgE5HfkfLhEEyYE3Bui4A5XHiGPjy0MUGAyxB3QgVuw2ciS0kHn6A==", "requires": { - "@microsoft/fast-element": "^1.12.0", - "@microsoft/fast-web-utilities": "^5.4.1", - "tabbable": "^5.2.0", - "tslib": "^1.13.0" + "@lit/reactive-element": "^1.6.2 || ^2.1.0" } }, - "@microsoft/fast-react-wrapper": { - "version": "0.1.48", - "resolved": "https://registry.npmjs.org/@microsoft/fast-react-wrapper/-/fast-react-wrapper-0.1.48.tgz", - "integrity": "sha512-9NvEjru9Kn5ZKjomAMX6v+eF0DR+eDkxKDwDfi+Wb73kTbrNzcnmlwd4diN15ygH97kldgj2+lpvI4CKLQQWLg==", + "@lit/react": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@lit/react/-/react-1.0.8.tgz", + "integrity": "sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==", + "requires": {} + }, + "@lit/reactive-element": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", + "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", "requires": { - "@microsoft/fast-element": "^1.9.0", - "@microsoft/fast-foundation": "^2.41.1" + "@lit-labs/ssr-dom-shim": "^1.4.0" } }, - "@microsoft/fast-web-utilities": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@microsoft/fast-web-utilities/-/fast-web-utilities-5.4.1.tgz", - "integrity": "sha512-ReWYncndjV3c8D8iq9tp7NcFNc1vbVHvcBFPME2nNFKNbS1XCesYZGlIlf3ot5EmuOXPlrzUHOWzQ2vFpIkqDg==", + "@lunapaint/png-codec": { + "version": "git+ssh://git@github.com/AnturK/png-codec.git#8d7be0485beda218ac3793cd8e508974392f6ecc", + "from": "@lunapaint/png-codec@github:AnturK/png-codec#dmi", "requires": { - "exenv-es6": "^1.1.1" + "pako": "^2.0.4" } }, "@nodelib/fs.scandir": { @@ -8193,14 +8191,12 @@ "@types/prop-types": { "version": "15.7.10", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", - "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==", - "dev": true + "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" }, "@types/react": { "version": "18.2.37", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.37.tgz", "integrity": "sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==", - "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -8219,8 +8215,7 @@ "@types/scheduler": { "version": "0.16.6", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", - "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==", - "dev": true + "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==" }, "@types/semver": { "version": "7.5.5", @@ -8234,6 +8229,11 @@ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, + "@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, "@types/vscode": { "version": "1.84.1", "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.84.1.tgz", @@ -8359,21 +8359,29 @@ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, + "@vscode-elements/elements": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@vscode-elements/elements/-/elements-2.3.1.tgz", + "integrity": "sha512-fVTkXUoj14mIU/lzNnZBIPFNi3drJb7u7oLe7Y4gwoHmyifzRG6akRnR7N6L6O2a0R3for0Sl7wgNAeiPpMGOA==", + "requires": { + "@lit/context": "^1.1.3", + "lit": "^3.2.1" + } + }, + "@vscode-elements/react-elements": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@vscode-elements/react-elements/-/react-elements-2.3.1.tgz", + "integrity": "sha512-xa/BeGYy5cR+7di4H7wd6pcSuZu1Il4B2qia9j8XppI4KkhqMknyxE2/nXUxApRdrkrM9HFrhhtBWCxAWNbp5g==", + "requires": { + "@lit/react": "^1.0.7", + "@vscode-elements/elements": "^2.3.0" + } + }, "@vscode/codicons": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.29.tgz", "integrity": "sha512-AXhTv1nl3r4W5DqAfXXKiawQNW+tLBNlXn/GcsnFCL0j17sQ2AY+az9oB9K6wjkibq1fndNJvmT8RYN712Fdww==" }, - "@vscode/webview-ui-toolkit": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-1.2.2.tgz", - "integrity": "sha512-xIQoF4FC3Xh6d7KNKIoIezSiFWYFuf6gQMdDyKueKBFGeKwaHWEn+dY2g3makvvEsNMEDji/woEwvg9QSbuUsw==", - "requires": { - "@microsoft/fast-element": "^1.6.2", - "@microsoft/fast-foundation": "^2.38.0", - "@microsoft/fast-react-wrapper": "^0.1.18" - } - }, "acorn": { "version": "8.11.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", @@ -8852,8 +8860,7 @@ "csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "debug": { "version": "4.3.4", @@ -9505,11 +9512,6 @@ "strip-final-newline": "^2.0.0" } }, - "exenv-es6": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz", - "integrity": "sha512-vlVu3N8d6yEMpMsEm+7sUBAI81aqYYuEvfK0jNqmdb/OPXzzH7QWDDnVjMvDSY47JdHEqx/dfC/q8WkfoTmpGQ==" - }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -10824,6 +10826,34 @@ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, + "lit": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.1.tgz", + "integrity": "sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==", + "requires": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" + } + }, + "lit-element": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", + "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.4.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" + } + }, + "lit-html": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", + "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", + "requires": { + "@types/trusted-types": "^2.0.2" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -10849,14 +10879,6 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -11505,20 +11527,16 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "requires": { - "loose-envify": "^1.1.0" - } + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==" }, "react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.25.0" } }, "react-is": { @@ -11773,12 +11791,9 @@ } }, "scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "requires": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" }, "semver": { "version": "7.5.4", @@ -12025,11 +12040,6 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, - "tabbable": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-5.3.3.tgz", - "integrity": "sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==" - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -12109,7 +12119,8 @@ "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "tsutils": { "version": "3.21.0", @@ -12197,9 +12208,9 @@ } }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true }, "unbox-primitive": { diff --git a/package.json b/package.json index 8615d44..219e873 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,6 @@ "categories": [ "Other" ], - "activationEvents": [ - "onCommand:dmiEditor.dmiEditor.new" - ], "main": "./dist/extension.js", "contributes": { "customEditors": [ @@ -65,7 +62,7 @@ }, "commands": [ { - "command": "dmiEditor.dmiEditor.new.new", + "command": "dmiEditor.dmiEditor.new", "title": "Create new dmi file", "category": "DMI" } @@ -91,15 +88,15 @@ "jest": "^29.7.0", "prettier": "^3.0.3", "ts-jest": "^29.1.1", - "typescript": "^4.6.3" + "typescript": "^5.1.0" }, "dependencies": { "@lunapaint/png-codec": "github:AnturK/png-codec#dmi", "@pdf-lib/upng": "^1.0.1", + "@vscode-elements/react-elements": "^2.3.1", "@vscode/codicons": "^0.0.29", - "@vscode/webview-ui-toolkit": "^1.0.0", "image-js": "^0.34.0", - "react": "^18.1.0", - "react-dom": "^18.1.0" + "react": "19.0.0", + "react-dom": "19.0.0" } } diff --git a/shared/dmi.ts b/shared/dmi.ts index 9a89a40..cf0e588 100644 --- a/shared/dmi.ts +++ b/shared/dmi.ts @@ -203,7 +203,7 @@ export class DmiState { this.directional_previews[dir] = this.get_frame_encoded(0, dir); } const frame_data = [...Array(this.framecount)].map( - (_, index) => this.get_frame(index, dir).getRGBAData().buffer + (_, index) => this.get_frame(index, dir).getRGBAData().buffer as ArrayBuffer ); const dels = this.delays.map(delay => delay * 100); const data = UPNG.encode(frame_data, this.width, this.height, 0, dels); diff --git a/src/dmiEditor.ts b/src/dmiEditor.ts index 64f60f1..16b32d7 100644 --- a/src/dmiEditor.ts +++ b/src/dmiEditor.ts @@ -369,7 +369,7 @@ export class DmiEditorProvider implements vscode.CustomEditorProvider - + DMI Editor diff --git a/tsconfig.json b/tsconfig.json index 7c83837..77e81f4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,7 @@ "jsx": "react", "strict": true, "forceConsistentCasingInFileNames": true, - "importHelpers": true + "importHelpers": true, }, "exclude": ["node_modules", ".vscode-test"] }