diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js
index 4181a41c..84503665 100644
--- a/frontend/.eslintrc.js
+++ b/frontend/.eslintrc.js
@@ -74,6 +74,7 @@ module.exports = {
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_", ignoreRestSiblings: true }],
"@typescript-eslint/explicit-function-return-type": ["error"],
+ "@typescript-eslint/consistent-type-imports": "error",
// Import plugin config (used to intelligently validate module import statements)
"import/prefer-default-export": "off",
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index c2f5316e..311ee730 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -224,14 +224,14 @@ import { createInputManager } from "@/io-managers/input";
import { createLocalizationManager } from "@/io-managers/localization";
import { createPanicManager } from "@/io-managers/panic";
import { createPersistenceManager } from "@/io-managers/persistence";
-import { createDialogState, DialogState } from "@/state-providers/dialog";
-import { createFontsState, FontsState } from "@/state-providers/fonts";
-import { createFullscreenState, FullscreenState } from "@/state-providers/fullscreen";
-import { createPanelsState, PanelsState } from "@/state-providers/panels";
-import { createPortfolioState, PortfolioState } from "@/state-providers/portfolio";
-import { createWorkspaceState, WorkspaceState } from "@/state-providers/workspace";
+import { createDialogState, type DialogState } from "@/state-providers/dialog";
+import { createFontsState, type FontsState } from "@/state-providers/fonts";
+import { createFullscreenState, type FullscreenState } from "@/state-providers/fullscreen";
+import { createPanelsState, type PanelsState } from "@/state-providers/panels";
+import { createPortfolioState, type PortfolioState } from "@/state-providers/portfolio";
+import { createWorkspaceState, type WorkspaceState } from "@/state-providers/workspace";
import { operatingSystem } from "@/utility-functions/platform";
-import { createEditor, Editor } from "@/wasm-communication/editor";
+import { createEditor, type Editor } from "@/wasm-communication/editor";
import MainWindow from "@/components/window/MainWindow.vue";
diff --git a/frontend/src/components/floating-menus/ColorPicker.vue b/frontend/src/components/floating-menus/ColorPicker.vue
index 898baa41..17db19d7 100644
--- a/frontend/src/components/floating-menus/ColorPicker.vue
+++ b/frontend/src/components/floating-menus/ColorPicker.vue
@@ -116,11 +116,11 @@
diff --git a/frontend/src/components/floating-menus/DialogModal.vue b/frontend/src/components/floating-menus/DialogModal.vue
index 3fc8c72d..81786983 100644
--- a/frontend/src/components/floating-menus/DialogModal.vue
+++ b/frontend/src/components/floating-menus/DialogModal.vue
@@ -77,14 +77,6 @@ import WidgetLayout from "@/components/widgets/WidgetLayout.vue";
export default defineComponent({
inject: ["dialog"],
- components: {
- LayoutRow,
- LayoutCol,
- FloatingMenu,
- IconLabel,
- TextButton,
- WidgetLayout,
- },
methods: {
dismiss() {
this.dialog.dismissDialog();
@@ -96,5 +88,13 @@ export default defineComponent({
const emphasizedOrFirstButton = (element?.querySelector("[data-emphasized]") as HTMLButtonElement | null) || element?.querySelector("[data-text-button]");
emphasizedOrFirstButton?.focus();
},
+ components: {
+ FloatingMenu,
+ IconLabel,
+ LayoutCol,
+ LayoutRow,
+ TextButton,
+ WidgetLayout,
+ },
});
diff --git a/frontend/src/components/floating-menus/FloatingMenu.vue b/frontend/src/components/floating-menus/FloatingMenu.vue
index 9fab5007..385e1fd5 100644
--- a/frontend/src/components/floating-menus/FloatingMenu.vue
+++ b/frontend/src/components/floating-menus/FloatingMenu.vue
@@ -175,7 +175,7 @@
diff --git a/frontend/src/components/panels/NodeGraph.vue b/frontend/src/components/panels/NodeGraph.vue
index 643a8ecd..f456d3f3 100644
--- a/frontend/src/components/panels/NodeGraph.vue
+++ b/frontend/src/components/panels/NodeGraph.vue
@@ -476,9 +476,9 @@ export default defineComponent({
this.createWirePath(outputPort2, inputPort2, true, false);
},
components: {
- LayoutRow,
- LayoutCol,
IconLabel,
+ LayoutCol,
+ LayoutRow,
TextLabel,
},
});
diff --git a/frontend/src/components/panels/Properties.vue b/frontend/src/components/panels/Properties.vue
index 98874388..b2687ba5 100644
--- a/frontend/src/components/panels/Properties.vue
+++ b/frontend/src/components/panels/Properties.vue
@@ -46,7 +46,6 @@ import { defaultWidgetLayout, UpdatePropertyPanelOptionsLayout, UpdatePropertyPa
import LayoutCol from "@/components/layout/LayoutCol.vue";
import LayoutRow from "@/components/layout/LayoutRow.vue";
-
import WidgetLayout from "@/components/widgets/WidgetLayout.vue";
export default defineComponent({
@@ -67,9 +66,9 @@ export default defineComponent({
});
},
components: {
- WidgetLayout,
- LayoutRow,
LayoutCol,
+ LayoutRow,
+ WidgetLayout,
},
});
diff --git a/frontend/src/components/widgets/WidgetLayout.vue b/frontend/src/components/widgets/WidgetLayout.vue
index 5719e189..1ec5a576 100644
--- a/frontend/src/components/widgets/WidgetLayout.vue
+++ b/frontend/src/components/widgets/WidgetLayout.vue
@@ -16,9 +16,9 @@
diff --git a/frontend/src/components/widgets/buttons/TextButton.vue b/frontend/src/components/widgets/buttons/TextButton.vue
index 368c84a7..b686ec8a 100644
--- a/frontend/src/components/widgets/buttons/TextButton.vue
+++ b/frontend/src/components/widgets/buttons/TextButton.vue
@@ -63,9 +63,9 @@
diff --git a/frontend/src/components/widgets/inputs/DropdownInput.vue b/frontend/src/components/widgets/inputs/DropdownInput.vue
index ec9fb207..f3df211f 100644
--- a/frontend/src/components/widgets/inputs/DropdownInput.vue
+++ b/frontend/src/components/widgets/inputs/DropdownInput.vue
@@ -97,9 +97,9 @@
diff --git a/frontend/src/components/widgets/inputs/FieldInput.vue b/frontend/src/components/widgets/inputs/FieldInput.vue
index 0f514600..35f2b375 100644
--- a/frontend/src/components/widgets/inputs/FieldInput.vue
+++ b/frontend/src/components/widgets/inputs/FieldInput.vue
@@ -115,7 +115,7 @@
diff --git a/frontend/src/components/widgets/inputs/SwatchPairInput.vue b/frontend/src/components/widgets/inputs/SwatchPairInput.vue
index 2895defd..88bebf1e 100644
--- a/frontend/src/components/widgets/inputs/SwatchPairInput.vue
+++ b/frontend/src/components/widgets/inputs/SwatchPairInput.vue
@@ -66,10 +66,10 @@
diff --git a/frontend/src/components/widgets/inputs/TextAreaInput.vue b/frontend/src/components/widgets/inputs/TextAreaInput.vue
index df346374..b7ceec81 100644
--- a/frontend/src/components/widgets/inputs/TextAreaInput.vue
+++ b/frontend/src/components/widgets/inputs/TextAreaInput.vue
@@ -17,7 +17,7 @@
diff --git a/frontend/src/components/widgets/labels/Separator.vue b/frontend/src/components/widgets/labels/Separator.vue
index c1b03303..0a01270b 100644
--- a/frontend/src/components/widgets/labels/Separator.vue
+++ b/frontend/src/components/widgets/labels/Separator.vue
@@ -73,9 +73,9 @@
diff --git a/frontend/src/components/window/status-bar/StatusBar.vue b/frontend/src/components/window/status-bar/StatusBar.vue
index e2fc8fe0..56588382 100644
--- a/frontend/src/components/window/status-bar/StatusBar.vue
+++ b/frontend/src/components/window/status-bar/StatusBar.vue
@@ -49,7 +49,7 @@
import { defineComponent } from "vue";
import { platformIsMac } from "@/utility-functions/platform";
-import { HintData, HintInfo, KeysGroup, UpdateInputHints } from "@/wasm-communication/messages";
+import { type HintData, type HintInfo, type KeysGroup, UpdateInputHints } from "@/wasm-communication/messages";
import LayoutRow from "@/components/layout/LayoutRow.vue";
import Separator from "@/components/widgets/labels/Separator.vue";
@@ -74,9 +74,9 @@ export default defineComponent({
});
},
components: {
- UserInputLabel,
- Separator,
LayoutRow,
+ Separator,
+ UserInputLabel,
},
});
diff --git a/frontend/src/components/window/title-bar/TitleBar.vue b/frontend/src/components/window/title-bar/TitleBar.vue
index 5a872af9..bb7dc886 100644
--- a/frontend/src/components/window/title-bar/TitleBar.vue
+++ b/frontend/src/components/window/title-bar/TitleBar.vue
@@ -38,7 +38,7 @@
diff --git a/frontend/src/components/window/title-bar/WindowButtonsMac.vue b/frontend/src/components/window/title-bar/WindowButtonsMac.vue
index fb03c0a4..7762b993 100644
--- a/frontend/src/components/window/title-bar/WindowButtonsMac.vue
+++ b/frontend/src/components/window/title-bar/WindowButtonsMac.vue
@@ -39,7 +39,7 @@
diff --git a/frontend/src/components/window/title-bar/WindowButtonsWindows.vue b/frontend/src/components/window/title-bar/WindowButtonsWindows.vue
index 8679573f..04e0e600 100644
--- a/frontend/src/components/window/title-bar/WindowButtonsWindows.vue
+++ b/frontend/src/components/window/title-bar/WindowButtonsWindows.vue
@@ -38,18 +38,18 @@
diff --git a/frontend/src/components/window/title-bar/WindowTitle.vue b/frontend/src/components/window/title-bar/WindowTitle.vue
index 68130a18..13467876 100644
--- a/frontend/src/components/window/title-bar/WindowTitle.vue
+++ b/frontend/src/components/window/title-bar/WindowTitle.vue
@@ -14,7 +14,7 @@
diff --git a/frontend/src/components/window/workspace/Workspace.vue b/frontend/src/components/window/workspace/Workspace.vue
index 2121be33..ee77d07e 100644
--- a/frontend/src/components/window/workspace/Workspace.vue
+++ b/frontend/src/components/window/workspace/Workspace.vue
@@ -75,12 +75,6 @@ const MIN_PANEL_SIZE = 100;
export default defineComponent({
inject: ["workspace", "portfolio", "dialog", "editor"],
- components: {
- LayoutRow,
- LayoutCol,
- Panel,
- DialogModal,
- },
computed: {
activeDocumentIndex() {
return this.portfolio.state.activeDocumentIndex;
@@ -142,5 +136,11 @@ export default defineComponent({
newActiveTab.scrollIntoView();
},
},
+ components: {
+ DialogModal,
+ LayoutCol,
+ LayoutRow,
+ Panel,
+ },
});
diff --git a/frontend/src/io-managers/blob.ts b/frontend/src/io-managers/blob.ts
index b8b2d7a2..83ae598b 100644
--- a/frontend/src/io-managers/blob.ts
+++ b/frontend/src/io-managers/blob.ts
@@ -1,4 +1,4 @@
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { UpdateImageData } from "@/wasm-communication/messages";
export function createBlobManager(editor: Editor): void {
diff --git a/frontend/src/io-managers/clipboard.ts b/frontend/src/io-managers/clipboard.ts
index e9408497..10fdd609 100644
--- a/frontend/src/io-managers/clipboard.ts
+++ b/frontend/src/io-managers/clipboard.ts
@@ -1,4 +1,4 @@
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { TriggerTextCopy } from "@/wasm-communication/messages";
export function createClipboardManager(editor: Editor): void {
diff --git a/frontend/src/io-managers/hyperlinks.ts b/frontend/src/io-managers/hyperlinks.ts
index 4f5fe0e0..9f8a8de5 100644
--- a/frontend/src/io-managers/hyperlinks.ts
+++ b/frontend/src/io-managers/hyperlinks.ts
@@ -1,4 +1,4 @@
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { TriggerVisitLink } from "@/wasm-communication/messages";
export function createHyperlinkManager(editor: Editor): void {
diff --git a/frontend/src/io-managers/input.ts b/frontend/src/io-managers/input.ts
index 9276a8cf..04075301 100644
--- a/frontend/src/io-managers/input.ts
+++ b/frontend/src/io-managers/input.ts
@@ -1,10 +1,10 @@
-import { DialogState } from "@/state-providers/dialog";
-import { FullscreenState } from "@/state-providers/fullscreen";
-import { PortfolioState } from "@/state-providers/portfolio";
+import { type DialogState } from "@/state-providers/dialog";
+import { type FullscreenState } from "@/state-providers/fullscreen";
+import { type PortfolioState } from "@/state-providers/portfolio";
import { makeKeyboardModifiersBitfield, textInputCleanup, getLocalizedScanCode } from "@/utility-functions/keyboard-entry";
import { platformIsMac } from "@/utility-functions/platform";
import { stripIndents } from "@/utility-functions/strip-indents";
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { TriggerPaste } from "@/wasm-communication/messages";
type EventName = keyof HTMLElementEventMap | keyof WindowEventHandlersEventMap | "modifyinputfield";
diff --git a/frontend/src/io-managers/localization.ts b/frontend/src/io-managers/localization.ts
index 3c40dc62..300675be 100644
--- a/frontend/src/io-managers/localization.ts
+++ b/frontend/src/io-managers/localization.ts
@@ -1,4 +1,4 @@
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { TriggerAboutGraphiteLocalizedCommitDate } from "@/wasm-communication/messages";
export function createLocalizationManager(editor: Editor): void {
diff --git a/frontend/src/io-managers/panic.ts b/frontend/src/io-managers/panic.ts
index a79cf139..956a9821 100644
--- a/frontend/src/io-managers/panic.ts
+++ b/frontend/src/io-managers/panic.ts
@@ -1,10 +1,10 @@
-import { TextButtonWidget } from "@/components/widgets/buttons/TextButton";
-import { DialogState } from "@/state-providers/dialog";
-import { IconName } from "@/utility-functions/icons";
+import { type TextButtonWidget } from "@/components/widgets/buttons/TextButton";
+import { type DialogState } from "@/state-providers/dialog";
+import { type IconName } from "@/utility-functions/icons";
import { browserVersion, operatingSystem } from "@/utility-functions/platform";
import { stripIndents } from "@/utility-functions/strip-indents";
-import { Editor } from "@/wasm-communication/editor";
-import { DisplayDialogPanic, Widget, WidgetLayout } from "@/wasm-communication/messages";
+import { type Editor } from "@/wasm-communication/editor";
+import { type WidgetLayout, Widget, DisplayDialogPanic } from "@/wasm-communication/messages";
export function createPanicManager(editor: Editor, dialogState: DialogState): void {
// Code panic dialog and console error
diff --git a/frontend/src/io-managers/persistence.ts b/frontend/src/io-managers/persistence.ts
index 9fe11740..34bb09cf 100644
--- a/frontend/src/io-managers/persistence.ts
+++ b/frontend/src/io-managers/persistence.ts
@@ -1,6 +1,6 @@
-import { PortfolioState } from "@/state-providers/portfolio";
+import { type PortfolioState } from "@/state-providers/portfolio";
import { stripIndents } from "@/utility-functions/strip-indents";
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { TriggerIndexedDbWriteDocument, TriggerIndexedDbRemoveDocument } from "@/wasm-communication/messages";
const GRAPHITE_INDEXED_DB_VERSION = 2;
diff --git a/frontend/src/state-providers/dialog.ts b/frontend/src/state-providers/dialog.ts
index 0f6b0c60..2aff09eb 100644
--- a/frontend/src/state-providers/dialog.ts
+++ b/frontend/src/state-providers/dialog.ts
@@ -1,9 +1,9 @@
import { reactive, readonly } from "vue";
-import { TextButtonWidget } from "@/components/widgets/buttons/TextButton";
-import { IconName } from "@/utility-functions/icons";
-import { Editor } from "@/wasm-communication/editor";
-import { defaultWidgetLayout, DisplayDialog, DisplayDialogDismiss, UpdateDialogDetails, WidgetLayout } from "@/wasm-communication/messages";
+import { type TextButtonWidget } from "@/components/widgets/buttons/TextButton";
+import { type IconName } from "@/utility-functions/icons";
+import { type Editor } from "@/wasm-communication/editor";
+import { defaultWidgetLayout, DisplayDialog, DisplayDialogDismiss, UpdateDialogDetails, type WidgetLayout } from "@/wasm-communication/messages";
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
export function createDialogState(editor: Editor) {
diff --git a/frontend/src/state-providers/fonts.ts b/frontend/src/state-providers/fonts.ts
index ea7ae0b6..0ae2b4a1 100644
--- a/frontend/src/state-providers/fonts.ts
+++ b/frontend/src/state-providers/fonts.ts
@@ -1,6 +1,6 @@
import { reactive } from "vue";
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { TriggerFontLoad } from "@/wasm-communication/messages";
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
diff --git a/frontend/src/state-providers/fullscreen.ts b/frontend/src/state-providers/fullscreen.ts
index c7f44a29..53a18838 100644
--- a/frontend/src/state-providers/fullscreen.ts
+++ b/frontend/src/state-providers/fullscreen.ts
@@ -1,6 +1,6 @@
import { reactive, readonly } from "vue";
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
export function createFullscreenState(_: Editor) {
diff --git a/frontend/src/state-providers/panels.ts b/frontend/src/state-providers/panels.ts
index 612e7a88..466a5acf 100644
--- a/frontend/src/state-providers/panels.ts
+++ b/frontend/src/state-providers/panels.ts
@@ -1,6 +1,6 @@
import { nextTick, reactive, readonly } from "vue";
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import {
DisplayEditableTextbox,
DisplayRemoveEditableTextbox,
diff --git a/frontend/src/state-providers/portfolio.ts b/frontend/src/state-providers/portfolio.ts
index aab72318..17b25c24 100644
--- a/frontend/src/state-providers/portfolio.ts
+++ b/frontend/src/state-providers/portfolio.ts
@@ -2,8 +2,16 @@
import { reactive, readonly } from "vue";
import { download, downloadBlob, upload } from "@/utility-functions/files";
-import { Editor } from "@/wasm-communication/editor";
-import { TriggerFileDownload, TriggerRasterDownload, FrontendDocumentDetails, TriggerOpenDocument, TriggerImport, UpdateActiveDocument, UpdateOpenDocumentsList } from "@/wasm-communication/messages";
+import { type Editor } from "@/wasm-communication/editor";
+import {
+ type FrontendDocumentDetails,
+ TriggerFileDownload,
+ TriggerImport,
+ TriggerOpenDocument,
+ TriggerRasterDownload,
+ UpdateActiveDocument,
+ UpdateOpenDocumentsList,
+} from "@/wasm-communication/messages";
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
export function createPortfolioState(editor: Editor) {
diff --git a/frontend/src/state-providers/workspace.ts b/frontend/src/state-providers/workspace.ts
index 97f53bb6..284d9fd9 100644
--- a/frontend/src/state-providers/workspace.ts
+++ b/frontend/src/state-providers/workspace.ts
@@ -1,7 +1,7 @@
/* eslint-disable max-classes-per-file */
import { reactive, readonly } from "vue";
-import { Editor } from "@/wasm-communication/editor";
+import { type Editor } from "@/wasm-communication/editor";
import { UpdateNodeGraphVisibility } from "@/wasm-communication/messages";
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
diff --git a/frontend/src/utility-functions/color.ts b/frontend/src/utility-functions/color.ts
index fe035932..a8564187 100644
--- a/frontend/src/utility-functions/color.ts
+++ b/frontend/src/utility-functions/color.ts
@@ -1,4 +1,4 @@
-import { HSVA, RGBA } from "@/wasm-communication/messages";
+import { type HSVA, type RGBA } from "@/wasm-communication/messages";
export function hsvaToRgba(hsva: HSVA): RGBA {
const { h, s, v, a } = hsva;
diff --git a/frontend/src/utility-functions/icons.ts b/frontend/src/utility-functions/icons.ts
index e4fc089d..eb861227 100644
--- a/frontend/src/utility-functions/icons.ts
+++ b/frontend/src/utility-functions/icons.ts
@@ -251,10 +251,10 @@ const ICON_LIST = {
} as const;
// Exported icons and types
-export const icons: IconDefinitionType = ICON_LIST;
-export const iconComponents = Object.fromEntries(Object.entries(icons).map(([name, data]) => [name, data.component]));
+export const ICONS: IconDefinitionType = ICON_LIST;
+export const ICON_COMPONENTS = Object.fromEntries(Object.entries(ICONS).map(([name, data]) => [name, data.component]));
-export type IconName = keyof typeof icons;
+export type IconName = keyof typeof ICONS;
export type IconSize = null | 12 | 16 | 24 | 32;
export type IconStyle = "Normal" | "Node";
diff --git a/frontend/src/wasm-communication/editor.ts b/frontend/src/wasm-communication/editor.ts
index dec09025..175c2602 100644
--- a/frontend/src/wasm-communication/editor.ts
+++ b/frontend/src/wasm-communication/editor.ts
@@ -1,8 +1,9 @@
+import type WasmBindgenPackage from "@/../wasm/pkg";
import { panicProxy } from "@/utility-functions/panic-proxy";
-import { JsMessageType } from "@/wasm-communication/messages";
-import { createSubscriptionRouter, SubscriptionRouter } from "@/wasm-communication/subscription-router";
+import { type JsMessageType } from "@/wasm-communication/messages";
+import { createSubscriptionRouter, type SubscriptionRouter } from "@/wasm-communication/subscription-router";
-export type WasmRawInstance = typeof import("@/../wasm/pkg");
+export type WasmRawInstance = typeof WasmBindgenPackage;
export type WasmEditorInstance = InstanceType;
export type Editor = Readonly>;
diff --git a/frontend/src/wasm-communication/messages.ts b/frontend/src/wasm-communication/messages.ts
index f8aa377c..5cd695b9 100644
--- a/frontend/src/wasm-communication/messages.ts
+++ b/frontend/src/wasm-communication/messages.ts
@@ -2,8 +2,8 @@
import { Transform, Type, plainToClass } from "class-transformer";
-import type { IconName, IconSize, IconStyle } from "@/utility-functions/icons";
-import type { WasmEditorInstance, WasmRawInstance } from "@/wasm-communication/editor";
+import { type IconName, type IconSize, type IconStyle } from "@/utility-functions/icons";
+import { type WasmEditorInstance, type WasmRawInstance } from "@/wasm-communication/editor";
import type MenuList from "@/components/floating-menus/MenuList.vue";
diff --git a/frontend/src/wasm-communication/subscription-router.ts b/frontend/src/wasm-communication/subscription-router.ts
index dd6d8f58..d995716b 100644
--- a/frontend/src/wasm-communication/subscription-router.ts
+++ b/frontend/src/wasm-communication/subscription-router.ts
@@ -1,7 +1,7 @@
import { plainToInstance } from "class-transformer";
-import type { WasmEditorInstance, WasmRawInstance } from "@/wasm-communication/editor";
-import { JsMessageType, messageMakers, JsMessage } from "@/wasm-communication/messages";
+import { type WasmEditorInstance, type WasmRawInstance } from "@/wasm-communication/editor";
+import { type JsMessageType, messageMakers, type JsMessage } from "@/wasm-communication/messages";
type JsMessageCallback = (messageData: T) => void;
type JsMessageCallbackMap = {