Remove JS module import prefixes and use absolute paths to the frontend directory (#3924)

* Remove JS module import prefixes

* Fix code review mistakes
This commit is contained in:
Keavon Chambers
2026-03-21 00:08:32 -07:00
committed by GitHub
parent ed7987c881
commit 9bcac1af2d
80 changed files with 574 additions and 658 deletions
+5 -7
View File
@@ -1,14 +1,12 @@
<script lang="ts">
import { onMount, onDestroy } from "svelte";
import init, { EditorHandle, receiveNativeMessage } from "@graphite/../wasm/pkg/graphite_wasm";
import type { FrontendMessage } from "@graphite/../wasm/pkg/graphite_wasm";
import { loadDemoArtwork } from "@graphite/utility-functions/network";
import { operatingSystem } from "@graphite/utility-functions/platform";
import Editor from "/src/components/Editor.svelte";
import { createSubscriptionsRouter } from "/src/subscriptions-router";
import type { MessageName, SubscriptionsRouter } from "/src/subscriptions-router";
import Editor from "@graphite/components/Editor.svelte";
import { loadDemoArtwork } from "/src/utility-functions/network";
import { operatingSystem } from "/src/utility-functions/platform";
import init, { EditorHandle, receiveNativeMessage } from "/wasm/pkg/graphite_wasm";
import type { FrontendMessage } from "/wasm/pkg/graphite_wasm";
let subscriptions: SubscriptionsRouter | undefined = undefined;
let editor: EditorHandle | undefined = undefined;
+21 -23
View File
@@ -1,24 +1,22 @@
<script lang="ts">
import { onMount, onDestroy, setContext } from "svelte";
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import { createClipboardManager, destroyClipboardManager } from "@graphite/managers/clipboard";
import { createFontsManager, destroyFontsManager } from "@graphite/managers/fonts";
import { createHyperlinkManager, destroyHyperlinkManager } from "@graphite/managers/hyperlink";
import { createInputManager, destroyInputManager } from "@graphite/managers/input";
import { createLocalizationManager, destroyLocalizationManager } from "@graphite/managers/localization";
import { createPanicManager, destroyPanicManager } from "@graphite/managers/panic";
import { createPersistenceManager, destroyPersistenceManager } from "@graphite/managers/persistence";
import { createAppWindowStore, destroyAppWindowStore } from "@graphite/stores/app-window";
import { createDialogStore, destroyDialogStore } from "@graphite/stores/dialog";
import { createDocumentStore, destroyDocumentStore } from "@graphite/stores/document";
import { createFullscreenStore, destroyFullscreenStore } from "@graphite/stores/fullscreen";
import { createNodeGraphStore, destroyNodeGraphStore } from "@graphite/stores/node-graph";
import { createPortfolioStore, destroyPortfolioStore } from "@graphite/stores/portfolio";
import { createTooltipStore, destroyTooltipStore } from "@graphite/stores/tooltip";
import MainWindow from "/src/components/window/MainWindow.svelte";
import { createClipboardManager, destroyClipboardManager } from "/src/managers/clipboard";
import { createFontsManager, destroyFontsManager } from "/src/managers/fonts";
import { createHyperlinkManager, destroyHyperlinkManager } from "/src/managers/hyperlink";
import { createInputManager, destroyInputManager } from "/src/managers/input";
import { createLocalizationManager, destroyLocalizationManager } from "/src/managers/localization";
import { createPanicManager, destroyPanicManager } from "/src/managers/panic";
import { createPersistenceManager, destroyPersistenceManager } from "/src/managers/persistence";
import { createAppWindowStore, destroyAppWindowStore } from "/src/stores/app-window";
import { createDialogStore, destroyDialogStore } from "/src/stores/dialog";
import { createDocumentStore, destroyDocumentStore } from "/src/stores/document";
import { createFullscreenStore, destroyFullscreenStore } from "/src/stores/fullscreen";
import { createNodeGraphStore, destroyNodeGraphStore } from "/src/stores/node-graph";
import { createPortfolioStore, destroyPortfolioStore } from "/src/stores/portfolio";
import { createTooltipStore, destroyTooltipStore } from "/src/stores/tooltip";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import MainWindow from "@graphite/components/window/MainWindow.svelte";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
// Graphite Wasm editor and subscriptions router
export let subscriptions: SubscriptionsRouter;
@@ -346,7 +344,7 @@
font-weight: 400;
font-style: normal;
font-stretch: normal;
src: url("@graphite/../node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-Regular.ttf.woff2") format("woff2");
src: url("/node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-Regular.ttf.woff2") format("woff2");
}
@font-face {
@@ -354,7 +352,7 @@
font-weight: 400;
font-style: italic;
font-stretch: normal;
src: url("@graphite/../node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-It.ttf.woff2") format("woff2");
src: url("/node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-It.ttf.woff2") format("woff2");
}
@font-face {
@@ -362,7 +360,7 @@
font-weight: 700;
font-style: normal;
font-stretch: normal;
src: url("@graphite/../node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-Bold.ttf.woff2") format("woff2");
src: url("/node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-Bold.ttf.woff2") format("woff2");
}
@font-face {
@@ -370,7 +368,7 @@
font-weight: 700;
font-style: italic;
font-stretch: normal;
src: url("@graphite/../node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-BoldIt.ttf.woff2") format("woff2");
src: url("/node_modules/source-sans-pro/WOFF2/TTF/SourceSansPro-BoldIt.ttf.woff2") format("woff2");
}
@font-face {
@@ -378,6 +376,6 @@
font-weight: 400;
font-style: normal;
font-stretch: normal;
src: url("@graphite/../node_modules/source-code-pro/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2") format("woff2");
src: url("/node_modules/source-code-pro/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2") format("woff2");
}
</style>
@@ -1,9 +1,16 @@
<script lang="ts">
import { getContext, onDestroy, createEventDispatcher, tick } from "svelte";
import { isPlatformNative } from "@graphite/../wasm/pkg/graphite_wasm";
import type { FillChoice, MenuDirection, Color } from "@graphite/../wasm/pkg/graphite_wasm";
import type { TooltipStore } from "@graphite/stores/tooltip";
import FloatingMenu, { preventEscapeClosingParentFloatingMenu } from "/src/components/layout/FloatingMenu.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconButton from "/src/components/widgets/buttons/IconButton.svelte";
import NumberInput from "/src/components/widgets/inputs/NumberInput.svelte";
import SpectrumInput, { MAX_MIDPOINT, MIN_MIDPOINT } from "/src/components/widgets/inputs/SpectrumInput.svelte";
import TextInput from "/src/components/widgets/inputs/TextInput.svelte";
import Separator from "/src/components/widgets/labels/Separator.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { TooltipStore } from "/src/stores/tooltip";
import type { HSV, RGB } from "/src/utility-functions/colors";
import {
contrastingOutlineFactor,
fillChoiceColor,
@@ -20,18 +27,9 @@
colorOpaque,
colorEquals,
gradientFirstColor,
} from "@graphite/utility-functions/colors";
import type { HSV, RGB } from "@graphite/utility-functions/colors";
import FloatingMenu, { preventEscapeClosingParentFloatingMenu } from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
import NumberInput from "@graphite/components/widgets/inputs/NumberInput.svelte";
import SpectrumInput, { MAX_MIDPOINT, MIN_MIDPOINT } from "@graphite/components/widgets/inputs/SpectrumInput.svelte";
import TextInput from "@graphite/components/widgets/inputs/TextInput.svelte";
import Separator from "@graphite/components/widgets/labels/Separator.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
} from "/src/utility-functions/colors";
import { isPlatformNative } from "/wasm/pkg/graphite_wasm";
import type { FillChoice, MenuDirection, Color } from "/wasm/pkg/graphite_wasm";
type PresetColors = "None" | "Black" | "White" | "Red" | "Yellow" | "Green" | "Cyan" | "Blue" | "Magenta";
@@ -1,17 +1,15 @@
<script lang="ts">
import { getContext, onMount } from "svelte";
import type { DialogStore } from "@graphite/stores/dialog";
import { crashReportUrl } from "@graphite/utility-functions/crash-report";
import { wipeDocuments } from "@graphite/utility-functions/persistence";
import FloatingMenu from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import FloatingMenu from "/src/components/layout/FloatingMenu.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import TextButton from "/src/components/widgets/buttons/TextButton.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { DialogStore } from "/src/stores/dialog";
import { crashReportUrl } from "/src/utility-functions/crash-report";
import { wipeDocuments } from "/src/utility-functions/persistence";
const dialog = getContext<DialogStore>("dialog");
@@ -9,8 +9,7 @@
<script lang="ts">
import { onMount } from "svelte";
import FloatingMenu from "@graphite/components/layout/FloatingMenu.svelte";
import FloatingMenu from "/src/components/layout/FloatingMenu.svelte";
let temporaryCanvas: HTMLCanvasElement | undefined;
let zoomPreviewCanvas: HTMLCanvasElement | undefined;
@@ -2,18 +2,16 @@
<script lang="ts">
import { createEventDispatcher, tick, onDestroy, onMount } from "svelte";
import type { MenuListEntry, MenuDirection } from "@graphite/../wasm/pkg/graphite_wasm";
import MenuList from "@graphite/components/floating-menus/MenuList.svelte";
import FloatingMenu from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import TextInput from "@graphite/components/widgets/inputs/TextInput.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import Separator from "@graphite/components/widgets/labels/Separator.svelte";
import ShortcutLabel from "@graphite/components/widgets/labels/ShortcutLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import MenuList from "/src/components/floating-menus/MenuList.svelte";
import FloatingMenu from "/src/components/layout/FloatingMenu.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import TextInput from "/src/components/widgets/inputs/TextInput.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import Separator from "/src/components/widgets/labels/Separator.svelte";
import ShortcutLabel from "/src/components/widgets/labels/ShortcutLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { MenuListEntry, MenuDirection } from "/wasm/pkg/graphite_wasm";
let self: FloatingMenu | undefined;
let scroller: LayoutCol | undefined;
@@ -1,14 +1,12 @@
<script lang="ts">
import { createEventDispatcher, getContext, onMount } from "svelte";
import { SvelteMap } from "svelte/reactivity";
import type { FrontendNodeType } from "@graphite/../wasm/pkg/graphite_wasm";
import type { NodeGraphStore } from "@graphite/stores/node-graph";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte";
import TextInput from "@graphite/components/widgets/inputs/TextInput.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import TextButton from "/src/components/widgets/buttons/TextButton.svelte";
import TextInput from "/src/components/widgets/inputs/TextInput.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { NodeGraphStore } from "/src/stores/node-graph";
import type { FrontendNodeType } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ selectNodeType: string }>();
const nodeGraph = getContext<NodeGraphStore>("nodeGraph");
@@ -1,13 +1,11 @@
<script lang="ts">
import { getContext } from "svelte";
import type { EditorHandle, LabeledShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { TooltipStore } from "@graphite/stores/tooltip";
import FloatingMenu from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import ShortcutLabel from "@graphite/components/widgets/labels/ShortcutLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import FloatingMenu from "/src/components/layout/FloatingMenu.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import ShortcutLabel from "/src/components/widgets/labels/ShortcutLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { TooltipStore } from "/src/stores/tooltip";
import type { EditorHandle, LabeledShortcut } from "/wasm/pkg/graphite_wasm";
const tooltip = getContext<TooltipStore>("tooltip");
const editor = getContext<EditorHandle>("editor");
@@ -18,11 +18,9 @@
<script lang="ts">
import { onMount, onDestroy, afterUpdate, createEventDispatcher, tick } from "svelte";
import type { MenuDirection } from "@graphite/../wasm/pkg/graphite_wasm";
import { browserVersion } from "@graphite/utility-functions/platform";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import { browserVersion } from "/src/utility-functions/platform";
import type { MenuDirection } from "/wasm/pkg/graphite_wasm";
const BUTTON_LEFT = 0;
const POINTER_STRAY_DISTANCE = 100;
@@ -1,5 +1,5 @@
<script lang="ts">
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
let className = "";
export { className as class };
@@ -1,5 +1,5 @@
<script lang="ts">
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
let className = "";
export { className as class };
+4 -6
View File
@@ -1,12 +1,10 @@
<script lang="ts">
import { getContext, onMount, onDestroy } from "svelte";
import type { Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { patchLayout } from "@graphite/utility-functions/widgets";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import { patchLayout } from "/src/utility-functions/widgets";
import type { Layout } from "/wasm/pkg/graphite_wasm";
const subscriptions = getContext<SubscriptionsRouter>("subscriptions");
+16 -18
View File
@@ -1,25 +1,23 @@
<script lang="ts">
import { getContext, onMount, onDestroy, tick } from "svelte";
import type { Color, EditorHandle, MenuDirection, MouseCursorIcon } from "@graphite/../wasm/pkg/graphite_wasm";
import type { AppWindowStore } from "@graphite/stores/app-window";
import type { DocumentStore } from "@graphite/stores/document";
import ColorPicker from "/src/components/floating-menus/ColorPicker.svelte";
import EyedropperPreview, { ZOOM_WINDOW_DIMENSIONS } from "/src/components/floating-menus/EyedropperPreview.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import Graph from "/src/components/views/Graph.svelte";
import RulerInput from "/src/components/widgets/inputs/RulerInput.svelte";
import ScrollbarInput from "/src/components/widgets/inputs/ScrollbarInput.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { AppWindowStore } from "/src/stores/app-window";
import type { DocumentStore } from "/src/stores/document";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import type { MessageBody } from "/src/subscriptions-router";
import { fillChoiceColor, createColor } from "@graphite/utility-functions/colors";
import { pasteFile } from "@graphite/utility-functions/files";
import { textInputCleanup } from "@graphite/utility-functions/keyboard-entry";
import { rasterizeSVGCanvas } from "@graphite/utility-functions/rasterization";
import { setupViewportResizeObserver } from "@graphite/utility-functions/viewports";
import ColorPicker from "@graphite/components/floating-menus/ColorPicker.svelte";
import EyedropperPreview, { ZOOM_WINDOW_DIMENSIONS } from "@graphite/components/floating-menus/EyedropperPreview.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import Graph from "@graphite/components/views/Graph.svelte";
import RulerInput from "@graphite/components/widgets/inputs/RulerInput.svelte";
import ScrollbarInput from "@graphite/components/widgets/inputs/ScrollbarInput.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import { fillChoiceColor, createColor } from "/src/utility-functions/colors";
import { pasteFile } from "/src/utility-functions/files";
import { textInputCleanup } from "/src/utility-functions/keyboard-entry";
import { rasterizeSVGCanvas } from "/src/utility-functions/rasterization";
import { setupViewportResizeObserver } from "/src/utility-functions/viewports";
import type { Color, EditorHandle, MenuDirection, MouseCursorIcon } from "/wasm/pkg/graphite_wasm";
let rulerHorizontal: RulerInput | undefined;
let rulerVertical: RulerInput | undefined;
+12 -14
View File
@@ -1,21 +1,19 @@
<script lang="ts">
import { getContext, onMount, onDestroy, tick } from "svelte";
import { SvelteMap } from "svelte/reactivity";
import type { EditorHandle, LayerPanelEntry, LayerStructureEntry, Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import type { NodeGraphStore } from "@graphite/stores/node-graph";
import type { TooltipStore } from "@graphite/stores/tooltip";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconButton from "/src/components/widgets/buttons/IconButton.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import Separator from "/src/components/widgets/labels/Separator.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { NodeGraphStore } from "/src/stores/node-graph";
import type { TooltipStore } from "/src/stores/tooltip";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { pasteFile } from "@graphite/utility-functions/files";
import { operatingSystem } from "@graphite/utility-functions/platform";
import { patchLayout } from "@graphite/utility-functions/widgets";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import Separator from "@graphite/components/widgets/labels/Separator.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import { pasteFile } from "/src/utility-functions/files";
import { operatingSystem } from "/src/utility-functions/platform";
import { patchLayout } from "/src/utility-functions/widgets";
import type { EditorHandle, LayerPanelEntry, LayerStructureEntry, Layout } from "/wasm/pkg/graphite_wasm";
type LayerListingInfo = {
folderIndex: number;
@@ -1,12 +1,10 @@
<script lang="ts">
import { getContext, onMount, onDestroy } from "svelte";
import type { Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { patchLayout } from "@graphite/utility-functions/widgets";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import { patchLayout } from "/src/utility-functions/widgets";
import type { Layout } from "/wasm/pkg/graphite_wasm";
const subscriptions = getContext<SubscriptionsRouter>("subscriptions");
+9 -11
View File
@@ -1,17 +1,15 @@
<script lang="ts">
import { getContext, onMount, onDestroy } from "svelte";
import { isPlatformNative } from "@graphite/../wasm/pkg/graphite_wasm";
import type { EditorHandle, Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { pasteFile } from "@graphite/utility-functions/files";
import { patchLayout } from "@graphite/utility-functions/widgets";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import { pasteFile } from "/src/utility-functions/files";
import { patchLayout } from "/src/utility-functions/widgets";
import { isPlatformNative } from "/wasm/pkg/graphite_wasm";
import type { EditorHandle, Layout } from "/wasm/pkg/graphite_wasm";
const subscriptions = getContext<SubscriptionsRouter>("subscriptions");
const editor = getContext<EditorHandle>("editor");
+10 -12
View File
@@ -2,18 +2,16 @@
import { getContext } from "svelte";
import { cubicInOut } from "svelte/easing";
import { fade } from "svelte/transition";
import type { EditorHandle, FrontendGraphInput, FrontendGraphOutput, FrontendNode } from "@graphite/../wasm/pkg/graphite_wasm";
import type { DocumentStore } from "@graphite/stores/document";
import { closeContextMenu } from "@graphite/stores/node-graph";
import type { NodeGraphStore } from "@graphite/stores/node-graph";
import NodeCatalog from "@graphite/components/floating-menus/NodeCatalog.svelte";
import FloatingMenu from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import NodeCatalog from "/src/components/floating-menus/NodeCatalog.svelte";
import FloatingMenu from "/src/components/layout/FloatingMenu.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import IconButton from "/src/components/widgets/buttons/IconButton.svelte";
import TextButton from "/src/components/widgets/buttons/TextButton.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { DocumentStore } from "/src/stores/document";
import type { NodeGraphStore } from "/src/stores/node-graph";
import { closeContextMenu } from "/src/stores/node-graph";
import type { EditorHandle, FrontendGraphInput, FrontendGraphOutput, FrontendNode } from "/wasm/pkg/graphite_wasm";
const GRID_COLLAPSE_SPACING = 10;
const GRID_SIZE = 24;
@@ -1,9 +1,8 @@
<script lang="ts">
import type { Layout, LayoutTarget } from "@graphite/../wasm/pkg/graphite_wasm";
import WidgetSection from "@graphite/components/widgets/WidgetSection.svelte";
import WidgetSpan from "@graphite/components/widgets/WidgetSpan.svelte";
import WidgetTable from "@graphite/components/widgets/WidgetTable.svelte";
import WidgetSection from "/src/components/widgets/WidgetSection.svelte";
import WidgetSpan from "/src/components/widgets/WidgetSpan.svelte";
import WidgetTable from "/src/components/widgets/WidgetTable.svelte";
import type { Layout, LayoutTarget } from "/wasm/pkg/graphite_wasm";
export let layout: Layout;
export let layoutTarget: LayoutTarget;
@@ -1,12 +1,10 @@
<script lang="ts">
import { getContext } from "svelte";
import type { EditorHandle, LayoutTarget, WidgetSection as WidgetSectionData } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import WidgetSpan from "@graphite/components/widgets/WidgetSpan.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import IconButton from "/src/components/widgets/buttons/IconButton.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import WidgetSpan from "/src/components/widgets/WidgetSpan.svelte";
import type { EditorHandle, LayoutTarget, WidgetSection as WidgetSectionData } from "/wasm/pkg/graphite_wasm";
export let widgetData: WidgetSectionData;
export let layoutTarget: LayoutTarget;
@@ -1,31 +1,29 @@
<script lang="ts">
import { getContext } from "svelte";
import type { EditorHandle, LayoutTarget, Widget, WidgetInstance } from "@graphite/../wasm/pkg/graphite_wasm";
import { parseFillChoice } from "@graphite/utility-functions/colors";
import NodeCatalog from "@graphite/components/floating-menus/NodeCatalog.svelte";
import BreadcrumbTrailButtons from "@graphite/components/widgets/buttons/BreadcrumbTrailButtons.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
import ImageButton from "@graphite/components/widgets/buttons/ImageButton.svelte";
import ParameterExposeButton from "@graphite/components/widgets/buttons/ParameterExposeButton.svelte";
import PopoverButton from "@graphite/components/widgets/buttons/PopoverButton.svelte";
import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte";
import CheckboxInput from "@graphite/components/widgets/inputs/CheckboxInput.svelte";
import ColorInput from "@graphite/components/widgets/inputs/ColorInput.svelte";
import CurveInput from "@graphite/components/widgets/inputs/CurveInput.svelte";
import DropdownInput from "@graphite/components/widgets/inputs/DropdownInput.svelte";
import NumberInput from "@graphite/components/widgets/inputs/NumberInput.svelte";
import RadioInput from "@graphite/components/widgets/inputs/RadioInput.svelte";
import ReferencePointInput from "@graphite/components/widgets/inputs/ReferencePointInput.svelte";
import TextAreaInput from "@graphite/components/widgets/inputs/TextAreaInput.svelte";
import TextInput from "@graphite/components/widgets/inputs/TextInput.svelte";
import WorkingColorsInput from "@graphite/components/widgets/inputs/WorkingColorsInput.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import ImageLabel from "@graphite/components/widgets/labels/ImageLabel.svelte";
import Separator from "@graphite/components/widgets/labels/Separator.svelte";
import ShortcutLabel from "@graphite/components/widgets/labels/ShortcutLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import NodeCatalog from "/src/components/floating-menus/NodeCatalog.svelte";
import BreadcrumbTrailButtons from "/src/components/widgets/buttons/BreadcrumbTrailButtons.svelte";
import IconButton from "/src/components/widgets/buttons/IconButton.svelte";
import ImageButton from "/src/components/widgets/buttons/ImageButton.svelte";
import ParameterExposeButton from "/src/components/widgets/buttons/ParameterExposeButton.svelte";
import PopoverButton from "/src/components/widgets/buttons/PopoverButton.svelte";
import TextButton from "/src/components/widgets/buttons/TextButton.svelte";
import CheckboxInput from "/src/components/widgets/inputs/CheckboxInput.svelte";
import ColorInput from "/src/components/widgets/inputs/ColorInput.svelte";
import CurveInput from "/src/components/widgets/inputs/CurveInput.svelte";
import DropdownInput from "/src/components/widgets/inputs/DropdownInput.svelte";
import NumberInput from "/src/components/widgets/inputs/NumberInput.svelte";
import RadioInput from "/src/components/widgets/inputs/RadioInput.svelte";
import ReferencePointInput from "/src/components/widgets/inputs/ReferencePointInput.svelte";
import TextAreaInput from "/src/components/widgets/inputs/TextAreaInput.svelte";
import TextInput from "/src/components/widgets/inputs/TextInput.svelte";
import WorkingColorsInput from "/src/components/widgets/inputs/WorkingColorsInput.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import ImageLabel from "/src/components/widgets/labels/ImageLabel.svelte";
import Separator from "/src/components/widgets/labels/Separator.svelte";
import ShortcutLabel from "/src/components/widgets/labels/ShortcutLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import { parseFillChoice } from "/src/utility-functions/colors";
import type { EditorHandle, LayoutTarget, Widget, WidgetInstance } from "/wasm/pkg/graphite_wasm";
// Extract the discriminant key names from the Widget tagged enum union (e.g. "TextButton" | "CheckboxInput" | ...)
type WidgetKind = Widget extends infer T ? (T extends Record<infer K, unknown> ? K & string : never) : never;
@@ -1,7 +1,6 @@
<script lang="ts">
import type { LayoutTarget, WidgetTable } from "@graphite/../wasm/pkg/graphite_wasm";
import WidgetSpan from "@graphite/components/widgets/WidgetSpan.svelte";
import WidgetSpan from "/src/components/widgets/WidgetSpan.svelte";
import type { LayoutTarget, WidgetTable } from "/wasm/pkg/graphite_wasm";
export let widgetData: WidgetTable;
export let layoutTarget: LayoutTarget;
@@ -1,8 +1,7 @@
<script lang="ts">
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import TextButton from "/src/components/widgets/buttons/TextButton.svelte";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
// Content
export let labels: string[];
@@ -1,8 +1,7 @@
<script lang="ts">
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { IconName, IconSize } from "@graphite/icons";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import type { IconName, IconSize } from "/src/icons";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
// Content
export let icon: IconName;
@@ -1,6 +1,6 @@
<script lang="ts">
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import { IMAGE_BASE64_STRINGS } from "@graphite/utility-functions/images";
import { IMAGE_BASE64_STRINGS } from "/src/utility-functions/images";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
let className = "";
export { className as class };
@@ -1,7 +1,6 @@
<script lang="ts">
import type { FrontendGraphDataType, ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import type { FrontendGraphDataType, ActionShortcut } from "/wasm/pkg/graphite_wasm";
// Content
export let exposed: boolean;
@@ -1,12 +1,11 @@
<script lang="ts">
import type { MenuDirection, ActionShortcut, Layout, LayoutTarget } from "@graphite/../wasm/pkg/graphite_wasm";
import type { IconName, PopoverButtonStyle } from "@graphite/icons";
import FloatingMenu from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import FloatingMenu from "/src/components/layout/FloatingMenu.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconButton from "/src/components/widgets/buttons/IconButton.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { IconName, PopoverButtonStyle } from "/src/icons";
import type { MenuDirection, ActionShortcut, Layout, LayoutTarget } from "/wasm/pkg/graphite_wasm";
export let layoutTarget: LayoutTarget;
@@ -1,13 +1,11 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { MenuListEntry, ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { IconName } from "@graphite/icons";
import MenuList from "@graphite/components/floating-menus/MenuList.svelte";
import ConditionalWrapper from "@graphite/components/layout/ConditionalWrapper.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import MenuList from "/src/components/floating-menus/MenuList.svelte";
import ConditionalWrapper from "/src/components/layout/ConditionalWrapper.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { IconName } from "/src/icons";
import type { MenuListEntry, ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ selectedEntryValuePath: string[] }>();
@@ -1,11 +1,9 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { IconName } from "@graphite/icons";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import type { IconName } from "/src/icons";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ checked: boolean }>();
const backupId = String(Math.random()).substring(2);
@@ -1,11 +1,9 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { FillChoice, MenuDirection, ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import { contrastingOutlineFactor, fillChoiceColor, fillChoiceGradientStops, colorToHexOptionalAlpha, gradientToLinearGradientCSS } from "@graphite/utility-functions/colors";
import ColorPicker from "@graphite/components/floating-menus/ColorPicker.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import ColorPicker from "/src/components/floating-menus/ColorPicker.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import { contrastingOutlineFactor, fillChoiceColor, fillChoiceGradientStops, colorToHexOptionalAlpha, gradientToLinearGradientCSS } from "/src/utility-functions/colors";
import type { FillChoice, MenuDirection, ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ value: FillChoice; startHistoryTransaction: undefined }>();
@@ -1,9 +1,7 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { Curve, CurveManipulatorGroup, ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import type { Curve, CurveManipulatorGroup, ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{
value: Curve;
@@ -1,12 +1,10 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { MenuListEntry, ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import MenuList from "@graphite/components/floating-menus/MenuList.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import MenuList from "/src/components/floating-menus/MenuList.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { MenuListEntry, ActionShortcut } from "/wasm/pkg/graphite_wasm";
const DASH_ENTRY: MenuListEntry = {
value: "",
@@ -1,11 +1,9 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import { operatingSystem } from "@graphite/utility-functions/platform";
import { preventEscapeClosingParentFloatingMenu } from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import { preventEscapeClosingParentFloatingMenu } from "/src/components/layout/FloatingMenu.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import { operatingSystem } from "/src/utility-functions/platform";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{
value: string;
@@ -1,13 +1,11 @@
<script lang="ts">
import { createEventDispatcher, onMount, onDestroy, getContext } from "svelte";
import { evaluateMathExpression, isPlatformNative } from "@graphite/../wasm/pkg/graphite_wasm";
import type { ActionShortcut, EditorHandle, NumberInputIncrementBehavior, NumberInputMode } from "@graphite/../wasm/pkg/graphite_wasm";
import { PRESS_REPEAT_DELAY_MS, PRESS_REPEAT_INTERVAL_MS } from "@graphite/managers/input";
import { browserVersion } from "@graphite/utility-functions/platform";
import { preventEscapeClosingParentFloatingMenu } from "@graphite/components/layout/FloatingMenu.svelte";
import FieldInput from "@graphite/components/widgets/inputs/FieldInput.svelte";
import { preventEscapeClosingParentFloatingMenu } from "/src/components/layout/FloatingMenu.svelte";
import FieldInput from "/src/components/widgets/inputs/FieldInput.svelte";
import { PRESS_REPEAT_DELAY_MS, PRESS_REPEAT_INTERVAL_MS } from "/src/managers/input";
import { browserVersion } from "/src/utility-functions/platform";
import { evaluateMathExpression, isPlatformNative } from "/wasm/pkg/graphite_wasm";
import type { ActionShortcut, EditorHandle, NumberInputIncrementBehavior, NumberInputMode } from "/wasm/pkg/graphite_wasm";
const BUTTONS_LEFT = 0b0000_0001;
const BUTTONS_RIGHT = 0b0000_0010;
@@ -1,11 +1,9 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { RadioEntryData } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { RadioEntryData } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ selectedIndex: number }>();
@@ -1,7 +1,6 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { ReferencePoint, ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { ReferencePoint, ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ value: ReferencePoint }>();
@@ -1,7 +1,6 @@
<script lang="ts">
import { createEventDispatcher, onDestroy } from "svelte";
import { PRESS_REPEAT_DELAY_MS, PRESS_REPEAT_INTERVAL_MS, PRESS_REPEAT_INTERVAL_RAPID_MS } from "@graphite/managers/input";
import { PRESS_REPEAT_DELAY_MS, PRESS_REPEAT_INTERVAL_MS, PRESS_REPEAT_INTERVAL_RAPID_MS } from "/src/managers/input";
const ARROW_CLICK_DISTANCE = 0.05;
const ARROW_REPEAT_DISTANCE = 0.01;
@@ -5,14 +5,12 @@
<script lang="ts">
import { createEventDispatcher, onMount, onDestroy } from "svelte";
import { evaluateGradientAtPosition } from "@graphite/../wasm/pkg/graphite_wasm";
import type { Color, GradientStops } from "@graphite/../wasm/pkg/graphite_wasm";
import { colorToHexOptionalAlpha, colorToRgbCSS, gradientFirstColor, gradientLastColor, gradientToLinearGradientCSS } from "@graphite/utility-functions/colors";
import { preventEscapeClosingParentFloatingMenu } from "@graphite/components/layout/FloatingMenu.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import { preventEscapeClosingParentFloatingMenu } from "/src/components/layout/FloatingMenu.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import { colorToHexOptionalAlpha, colorToRgbCSS, gradientFirstColor, gradientLastColor, gradientToLinearGradientCSS } from "/src/utility-functions/colors";
import { evaluateGradientAtPosition } from "/wasm/pkg/graphite_wasm";
import type { Color, GradientStops } from "/wasm/pkg/graphite_wasm";
const BUTTON_LEFT = 0;
const BUTTON_RIGHT = 2;
@@ -1,9 +1,7 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import FieldInput from "@graphite/components/widgets/inputs/FieldInput.svelte";
import FieldInput from "/src/components/widgets/inputs/FieldInput.svelte";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ commitText: string }>();
@@ -1,9 +1,7 @@
<script lang="ts">
import { createEventDispatcher } from "svelte";
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import FieldInput from "@graphite/components/widgets/inputs/FieldInput.svelte";
import FieldInput from "/src/components/widgets/inputs/FieldInput.svelte";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
const dispatch = createEventDispatcher<{ commitText: string }>();
@@ -1,12 +1,10 @@
<script lang="ts">
import { getContext } from "svelte";
import type { Color, EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import { fillChoiceColor, colorToRgbaCSS } from "@graphite/utility-functions/colors";
import ColorPicker from "@graphite/components/floating-menus/ColorPicker.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import ColorPicker from "/src/components/floating-menus/ColorPicker.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import { fillChoiceColor, colorToRgbaCSS } from "/src/utility-functions/colors";
import type { Color, EditorHandle } from "/wasm/pkg/graphite_wasm";
const editor = getContext<EditorHandle>("editor");
@@ -1,9 +1,8 @@
<script lang="ts">
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import { ICONS, ICON_SVG_STRINGS } from "@graphite/icons";
import type { IconName } from "@graphite/icons";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import { ICONS, ICON_SVG_STRINGS } from "/src/icons";
import type { IconName } from "/src/icons";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
let className = "";
export { className as class };
@@ -1,5 +1,5 @@
<script lang="ts">
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
let className = "";
export { className as class };
@@ -1,5 +1,5 @@
<script lang="ts">
import type { SeparatorDirection, SeparatorStyle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SeparatorDirection, SeparatorStyle } from "/wasm/pkg/graphite_wasm";
// Content
export let direction: SeparatorDirection = "Horizontal";
@@ -1,11 +1,10 @@
<script lang="ts">
import type { ActionShortcut, Key, LabeledShortcut, MouseMotion } from "@graphite/../wasm/pkg/graphite_wasm";
import type { IconName } from "@graphite/icons";
import { operatingSystem } from "@graphite/utility-functions/platform";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { IconName } from "/src/icons";
import { operatingSystem } from "/src/utility-functions/platform";
import type { ActionShortcut, Key, LabeledShortcut, MouseMotion } from "/wasm/pkg/graphite_wasm";
// Content
export let shortcut: ActionShortcut;
@@ -1,7 +1,6 @@
<script lang="ts">
import { onMount, onDestroy } from "svelte";
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
let className = "";
export { className as class };
@@ -1,18 +1,16 @@
<script lang="ts">
import { getContext } from "svelte";
import { isPlatformNative } from "@graphite/../wasm/pkg/graphite_wasm";
import type { AppWindowStore } from "@graphite/stores/app-window";
import type { DialogStore } from "@graphite/stores/dialog";
import type { TooltipStore } from "@graphite/stores/tooltip";
import Dialog from "@graphite/components/floating-menus/Dialog.svelte";
import Tooltip from "@graphite/components/floating-menus/Tooltip.svelte";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import StatusBar from "@graphite/components/window/StatusBar.svelte";
import TitleBar from "@graphite/components/window/TitleBar.svelte";
import Workspace from "@graphite/components/window/Workspace.svelte";
import Dialog from "/src/components/floating-menus/Dialog.svelte";
import Tooltip from "/src/components/floating-menus/Tooltip.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import StatusBar from "/src/components/window/StatusBar.svelte";
import TitleBar from "/src/components/window/TitleBar.svelte";
import Workspace from "/src/components/window/Workspace.svelte";
import type { AppWindowStore } from "/src/stores/app-window";
import type { DialogStore } from "/src/stores/dialog";
import type { TooltipStore } from "/src/stores/tooltip";
import { isPlatformNative } from "/wasm/pkg/graphite_wasm";
const dialog = getContext<DialogStore>("dialog");
const tooltip = getContext<TooltipStore>("tooltip");
+10 -12
View File
@@ -1,17 +1,15 @@
<script lang="ts">
import { getContext, tick } from "svelte";
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import Data from "@graphite/components/panels/Data.svelte";
import Document from "@graphite/components/panels/Document.svelte";
import Layers from "@graphite/components/panels/Layers.svelte";
import Properties from "@graphite/components/panels/Properties.svelte";
import Welcome from "@graphite/components/panels/Welcome.svelte";
import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte";
import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import Data from "/src/components/panels/Data.svelte";
import Document from "/src/components/panels/Document.svelte";
import Layers from "/src/components/panels/Layers.svelte";
import Properties from "/src/components/panels/Properties.svelte";
import Welcome from "/src/components/panels/Welcome.svelte";
import IconButton from "/src/components/widgets/buttons/IconButton.svelte";
import TextLabel from "/src/components/widgets/labels/TextLabel.svelte";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
type PanelType = keyof typeof PANEL_COMPONENTS;
@@ -1,13 +1,11 @@
<script lang="ts">
import { getContext, onMount, onDestroy } from "svelte";
import type { Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import Separator from "/src/components/widgets/labels/Separator.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { patchLayout } from "@graphite/utility-functions/widgets";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import Separator from "@graphite/components/widgets/labels/Separator.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import { patchLayout } from "/src/utility-functions/widgets";
import type { Layout } from "/wasm/pkg/graphite_wasm";
const subscriptions = getContext<SubscriptionsRouter>("subscriptions");
+10 -12
View File
@@ -1,18 +1,16 @@
<script lang="ts">
import { getContext, onMount, onDestroy } from "svelte";
import { isPlatformNative } from "@graphite/../wasm/pkg/graphite_wasm";
import type { EditorHandle, Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import type { AppWindowStore } from "@graphite/stores/app-window";
import { enterFullscreen, exitFullscreen } from "@graphite/stores/fullscreen";
import type { FullscreenStore } from "@graphite/stores/fullscreen";
import type { TooltipStore } from "@graphite/stores/tooltip";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import IconLabel from "/src/components/widgets/labels/IconLabel.svelte";
import WidgetLayout from "/src/components/widgets/WidgetLayout.svelte";
import type { AppWindowStore } from "/src/stores/app-window";
import { enterFullscreen, exitFullscreen } from "/src/stores/fullscreen";
import type { FullscreenStore } from "/src/stores/fullscreen";
import type { TooltipStore } from "/src/stores/tooltip";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { patchLayout } from "@graphite/utility-functions/widgets";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte";
import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte";
import { patchLayout } from "/src/utility-functions/widgets";
import type { EditorHandle, Layout } from "/wasm/pkg/graphite_wasm";
import { isPlatformNative } from "/wasm/pkg/graphite_wasm";
const keyboardLockApiSupported = navigator.keyboard !== undefined && "lock" in navigator.keyboard;
@@ -1,12 +1,10 @@
<script lang="ts">
import { getContext, onDestroy } from "svelte";
import type { EditorHandle, OpenDocument } from "@graphite/../wasm/pkg/graphite_wasm";
import type { PortfolioStore } from "@graphite/stores/portfolio";
import LayoutCol from "@graphite/components/layout/LayoutCol.svelte";
import LayoutRow from "@graphite/components/layout/LayoutRow.svelte";
import Panel from "@graphite/components/window/Panel.svelte";
import LayoutCol from "/src/components/layout/LayoutCol.svelte";
import LayoutRow from "/src/components/layout/LayoutRow.svelte";
import Panel from "/src/components/window/Panel.svelte";
import type { PortfolioStore } from "/src/stores/portfolio";
import type { EditorHandle, OpenDocument } from "/wasm/pkg/graphite_wasm";
const MIN_PANEL_SIZE = 100;
const PANEL_SIZES = {
+195 -195
View File
@@ -1,57 +1,57 @@
// Graphics
import GraphiteLogotypeSolid from "@branding/assets/graphics/graphite-logotype-solid.svg";
import GraphiteLogotypeSolid from "/../branding/assets/graphics/graphite-logotype-solid.svg";
const GRAPHICS = {
GraphiteLogotypeSolid: { svg: GraphiteLogotypeSolid, size: undefined },
} as const;
// 12px Solid
import Add from "@branding/assets/icon-12px-solid/add.svg";
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";
import Empty12px from "@branding/assets/icon-12px-solid/empty-12px.svg";
import Failure from "@branding/assets/icon-12px-solid/failure.svg";
import FullscreenEnter from "@branding/assets/icon-12px-solid/fullscreen-enter.svg";
import FullscreenExit from "@branding/assets/icon-12px-solid/fullscreen-exit.svg";
import GridDotted from "@branding/assets/icon-12px-solid/grid-dotted.svg";
import Grid from "@branding/assets/icon-12px-solid/grid.svg";
import Info from "@branding/assets/icon-12px-solid/info.svg";
import KeyboardArrowDown from "@branding/assets/icon-12px-solid/keyboard-arrow-down.svg";
import KeyboardArrowLeft from "@branding/assets/icon-12px-solid/keyboard-arrow-left.svg";
import KeyboardArrowRight from "@branding/assets/icon-12px-solid/keyboard-arrow-right.svg";
import KeyboardArrowUp from "@branding/assets/icon-12px-solid/keyboard-arrow-up.svg";
import KeyboardBackspace from "@branding/assets/icon-12px-solid/keyboard-backspace.svg";
import KeyboardCommand from "@branding/assets/icon-12px-solid/keyboard-command.svg";
import KeyboardControl from "@branding/assets/icon-12px-solid/keyboard-control.svg";
import KeyboardEnter from "@branding/assets/icon-12px-solid/keyboard-enter.svg";
import KeyboardOption from "@branding/assets/icon-12px-solid/keyboard-option.svg";
import KeyboardShift from "@branding/assets/icon-12px-solid/keyboard-shift.svg";
import KeyboardSpace from "@branding/assets/icon-12px-solid/keyboard-space.svg";
import KeyboardTab from "@branding/assets/icon-12px-solid/keyboard-tab.svg";
import License12px from "@branding/assets/icon-12px-solid/license-12px.svg";
import Link from "@branding/assets/icon-12px-solid/link.svg";
import Overlays from "@branding/assets/icon-12px-solid/overlays.svg";
import Remove from "@branding/assets/icon-12px-solid/remove.svg";
import RenderModeNormal from "@branding/assets/icon-12px-solid/render-mode-normal.svg";
import RenderModeOutline from "@branding/assets/icon-12px-solid/render-mode-outline.svg";
import RenderModePixels from "@branding/assets/icon-12px-solid/render-mode-pixels.svg";
import RenderModeSvg from "@branding/assets/icon-12px-solid/render-mode-svg.svg";
import Snapping from "@branding/assets/icon-12px-solid/snapping.svg";
import SwapHorizontal from "@branding/assets/icon-12px-solid/swap-horizontal.svg";
import SwapVertical from "@branding/assets/icon-12px-solid/swap-vertical.svg";
import VerticalEllipsis from "@branding/assets/icon-12px-solid/vertical-ellipsis.svg";
import Warning from "@branding/assets/icon-12px-solid/warning.svg";
import WindowButtonWinClose from "@branding/assets/icon-12px-solid/window-button-win-close.svg";
import WindowButtonWinMaximize from "@branding/assets/icon-12px-solid/window-button-win-maximize.svg";
import WindowButtonWinMinimize from "@branding/assets/icon-12px-solid/window-button-win-minimize.svg";
import WindowButtonWinRestoreDown from "@branding/assets/icon-12px-solid/window-button-win-restore-down.svg";
import WorkingColors from "@branding/assets/icon-12px-solid/working-colors.svg";
import Add from "/../branding/assets/icon-12px-solid/add.svg";
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";
import Empty12px from "/../branding/assets/icon-12px-solid/empty-12px.svg";
import Failure from "/../branding/assets/icon-12px-solid/failure.svg";
import FullscreenEnter from "/../branding/assets/icon-12px-solid/fullscreen-enter.svg";
import FullscreenExit from "/../branding/assets/icon-12px-solid/fullscreen-exit.svg";
import GridDotted from "/../branding/assets/icon-12px-solid/grid-dotted.svg";
import Grid from "/../branding/assets/icon-12px-solid/grid.svg";
import Info from "/../branding/assets/icon-12px-solid/info.svg";
import KeyboardArrowDown from "/../branding/assets/icon-12px-solid/keyboard-arrow-down.svg";
import KeyboardArrowLeft from "/../branding/assets/icon-12px-solid/keyboard-arrow-left.svg";
import KeyboardArrowRight from "/../branding/assets/icon-12px-solid/keyboard-arrow-right.svg";
import KeyboardArrowUp from "/../branding/assets/icon-12px-solid/keyboard-arrow-up.svg";
import KeyboardBackspace from "/../branding/assets/icon-12px-solid/keyboard-backspace.svg";
import KeyboardCommand from "/../branding/assets/icon-12px-solid/keyboard-command.svg";
import KeyboardControl from "/../branding/assets/icon-12px-solid/keyboard-control.svg";
import KeyboardEnter from "/../branding/assets/icon-12px-solid/keyboard-enter.svg";
import KeyboardOption from "/../branding/assets/icon-12px-solid/keyboard-option.svg";
import KeyboardShift from "/../branding/assets/icon-12px-solid/keyboard-shift.svg";
import KeyboardSpace from "/../branding/assets/icon-12px-solid/keyboard-space.svg";
import KeyboardTab from "/../branding/assets/icon-12px-solid/keyboard-tab.svg";
import License12px from "/../branding/assets/icon-12px-solid/license-12px.svg";
import Link from "/../branding/assets/icon-12px-solid/link.svg";
import Overlays from "/../branding/assets/icon-12px-solid/overlays.svg";
import Remove from "/../branding/assets/icon-12px-solid/remove.svg";
import RenderModeNormal from "/../branding/assets/icon-12px-solid/render-mode-normal.svg";
import RenderModeOutline from "/../branding/assets/icon-12px-solid/render-mode-outline.svg";
import RenderModePixels from "/../branding/assets/icon-12px-solid/render-mode-pixels.svg";
import RenderModeSvg from "/../branding/assets/icon-12px-solid/render-mode-svg.svg";
import Snapping from "/../branding/assets/icon-12px-solid/snapping.svg";
import SwapHorizontal from "/../branding/assets/icon-12px-solid/swap-horizontal.svg";
import SwapVertical from "/../branding/assets/icon-12px-solid/swap-vertical.svg";
import VerticalEllipsis from "/../branding/assets/icon-12px-solid/vertical-ellipsis.svg";
import Warning from "/../branding/assets/icon-12px-solid/warning.svg";
import WindowButtonWinClose from "/../branding/assets/icon-12px-solid/window-button-win-close.svg";
import WindowButtonWinMaximize from "/../branding/assets/icon-12px-solid/window-button-win-maximize.svg";
import WindowButtonWinMinimize from "/../branding/assets/icon-12px-solid/window-button-win-minimize.svg";
import WindowButtonWinRestoreDown from "/../branding/assets/icon-12px-solid/window-button-win-restore-down.svg";
import WorkingColors from "/../branding/assets/icon-12px-solid/working-colors.svg";
const SOLID_12PX = {
Add: { svg: Add, size: 12 },
@@ -103,121 +103,121 @@ const SOLID_12PX = {
} as const;
// 16px Solid
import AlignBottom from "@branding/assets/icon-16px-solid/align-bottom.svg";
import AlignHorizontalCenter from "@branding/assets/icon-16px-solid/align-horizontal-center.svg";
import AlignLeft from "@branding/assets/icon-16px-solid/align-left.svg";
import AlignRight from "@branding/assets/icon-16px-solid/align-right.svg";
import AlignTop from "@branding/assets/icon-16px-solid/align-top.svg";
import AlignVerticalCenter from "@branding/assets/icon-16px-solid/align-vertical-center.svg";
import Artboard from "@branding/assets/icon-16px-solid/artboard.svg";
import BooleanDifference from "@branding/assets/icon-16px-solid/boolean-difference.svg";
import BooleanDivide from "@branding/assets/icon-16px-solid/boolean-divide.svg";
import BooleanIntersect from "@branding/assets/icon-16px-solid/boolean-intersect.svg";
import BooleanSubtractBack from "@branding/assets/icon-16px-solid/boolean-subtract-back.svg";
import BooleanSubtractFront from "@branding/assets/icon-16px-solid/boolean-subtract-front.svg";
import BooleanUnion from "@branding/assets/icon-16px-solid/boolean-union.svg";
import Bug from "@branding/assets/icon-16px-solid/bug.svg";
import CheckboxChecked from "@branding/assets/icon-16px-solid/checkbox-checked.svg";
import CheckboxUnchecked from "@branding/assets/icon-16px-solid/checkbox-unchecked.svg";
import CloseAll from "@branding/assets/icon-16px-solid/close-all.svg";
import Close from "@branding/assets/icon-16px-solid/close.svg";
import Code from "@branding/assets/icon-16px-solid/code.svg";
import Copy from "@branding/assets/icon-16px-solid/copy.svg";
import Credits from "@branding/assets/icon-16px-solid/credits.svg";
import CustomColor from "@branding/assets/icon-16px-solid/custom-color.svg";
import Cut from "@branding/assets/icon-16px-solid/cut.svg";
import DeselectAll from "@branding/assets/icon-16px-solid/deselect-all.svg";
import Edit from "@branding/assets/icon-16px-solid/edit.svg";
import Empty from "@branding/assets/icon-16px-solid/empty.svg";
import EyeHidden from "@branding/assets/icon-16px-solid/eye-hidden.svg";
import EyeHide from "@branding/assets/icon-16px-solid/eye-hide.svg";
import EyeShow from "@branding/assets/icon-16px-solid/eye-show.svg";
import EyeVisible from "@branding/assets/icon-16px-solid/eye-visible.svg";
import Eyedropper from "@branding/assets/icon-16px-solid/eyedropper.svg";
import FileExport from "@branding/assets/icon-16px-solid/file-export.svg";
import FileImport from "@branding/assets/icon-16px-solid/file-import.svg";
import File from "@branding/assets/icon-16px-solid/file.svg";
import FlipHorizontal from "@branding/assets/icon-16px-solid/flip-horizontal.svg";
import FlipVertical from "@branding/assets/icon-16px-solid/flip-vertical.svg";
import FolderOpen from "@branding/assets/icon-16px-solid/folder-open.svg";
import Folder from "@branding/assets/icon-16px-solid/folder.svg";
import FrameAll from "@branding/assets/icon-16px-solid/frame-all.svg";
import FrameSelected from "@branding/assets/icon-16px-solid/frame-selected.svg";
import GraphViewClosed from "@branding/assets/icon-16px-solid/graph-view-closed.svg";
import GraphViewOpen from "@branding/assets/icon-16px-solid/graph-view-open.svg";
import GraphiteLogo from "@branding/assets/icon-16px-solid/graphite-logo.svg";
import HandleVisibilityAll from "@branding/assets/icon-16px-solid/handle-visibility-all.svg";
import HandleVisibilityFrontier from "@branding/assets/icon-16px-solid/handle-visibility-frontier.svg";
import HandleVisibilitySelected from "@branding/assets/icon-16px-solid/handle-visibility-selected.svg";
import Heart from "@branding/assets/icon-16px-solid/heart.svg";
import HistoryRedo from "@branding/assets/icon-16px-solid/history-redo.svg";
import HistoryUndo from "@branding/assets/icon-16px-solid/history-undo.svg";
import IconsGrid from "@branding/assets/icon-16px-solid/icons-grid.svg";
import Image from "@branding/assets/icon-16px-solid/image.svg";
import Layer from "@branding/assets/icon-16px-solid/layer.svg";
import License from "@branding/assets/icon-16px-solid/license.svg";
import NewLayer from "@branding/assets/icon-16px-solid/new-layer.svg";
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 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";
import NodeNodes from "@branding/assets/icon-16px-solid/node-nodes.svg";
import NodeOutput from "@branding/assets/icon-16px-solid/node-output.svg";
import NodeShape from "@branding/assets/icon-16px-solid/node-shape.svg";
import NodeText from "@branding/assets/icon-16px-solid/node-text.svg";
import NodeTransform from "@branding/assets/icon-16px-solid/node-transform.svg";
import Node from "@branding/assets/icon-16px-solid/node.svg";
import PadlockLocked from "@branding/assets/icon-16px-solid/padlock-locked.svg";
import PadlockUnlocked from "@branding/assets/icon-16px-solid/padlock-unlocked.svg";
import Paste from "@branding/assets/icon-16px-solid/paste.svg";
import PinActive from "@branding/assets/icon-16px-solid/pin-active.svg";
import PinInactive from "@branding/assets/icon-16px-solid/pin-inactive.svg";
import PlaybackPause from "@branding/assets/icon-16px-solid/playback-pause.svg";
import PlaybackPlay from "@branding/assets/icon-16px-solid/playback-play.svg";
import PlaybackToEnd from "@branding/assets/icon-16px-solid/playback-to-end.svg";
import PlaybackToStart from "@branding/assets/icon-16px-solid/playback-to-start.svg";
import Random from "@branding/assets/icon-16px-solid/random.svg";
import Reload from "@branding/assets/icon-16px-solid/reload.svg";
import Reset from "@branding/assets/icon-16px-solid/reset.svg";
import Resync from "@branding/assets/icon-16px-solid/resync.svg";
import ReverseRadialGradientToLeft from "@branding/assets/icon-16px-solid/reverse-radial-gradient-to-left.svg";
import ReverseRadialGradientToRight from "@branding/assets/icon-16px-solid/reverse-radial-gradient-to-right.svg";
import Reverse from "@branding/assets/icon-16px-solid/reverse.svg";
import Save from "@branding/assets/icon-16px-solid/save.svg";
import SelectAll from "@branding/assets/icon-16px-solid/select-all.svg";
import SelectParent from "@branding/assets/icon-16px-solid/select-parent.svg";
import Settings from "@branding/assets/icon-16px-solid/settings.svg";
import SmallDot from "@branding/assets/icon-16px-solid/small-dot.svg";
import StackBottom from "@branding/assets/icon-16px-solid/stack-bottom.svg";
import StackHollow from "@branding/assets/icon-16px-solid/stack-hollow.svg";
import StackLower from "@branding/assets/icon-16px-solid/stack-lower.svg";
import StackRaise from "@branding/assets/icon-16px-solid/stack-raise.svg";
import StackReverse from "@branding/assets/icon-16px-solid/stack-reverse.svg";
import Stack from "@branding/assets/icon-16px-solid/stack.svg";
import TiltReset from "@branding/assets/icon-16px-solid/tilt-reset.svg";
import Tilt from "@branding/assets/icon-16px-solid/tilt.svg";
import TransformationGrab from "@branding/assets/icon-16px-solid/transformation-grab.svg";
import TransformationRotate from "@branding/assets/icon-16px-solid/transformation-rotate.svg";
import TransformationScale from "@branding/assets/icon-16px-solid/transformation-scale.svg";
import Trash from "@branding/assets/icon-16px-solid/trash.svg";
import TurnNegative90 from "@branding/assets/icon-16px-solid/turn-negative-90.svg";
import TurnPositive90 from "@branding/assets/icon-16px-solid/turn-positive-90.svg";
import UserManual from "@branding/assets/icon-16px-solid/user-manual.svg";
import ViewportDesignMode from "@branding/assets/icon-16px-solid/viewport-design-mode.svg";
import ViewportGuideMode from "@branding/assets/icon-16px-solid/viewport-guide-mode.svg";
import ViewportSelectMode from "@branding/assets/icon-16px-solid/viewport-select-mode.svg";
import Volunteer from "@branding/assets/icon-16px-solid/volunteer.svg";
import Website from "@branding/assets/icon-16px-solid/website.svg";
import WorkingColorsPrimary from "@branding/assets/icon-16px-solid/working-colors-primary.svg";
import WorkingColorsSecondary from "@branding/assets/icon-16px-solid/working-colors-secondary.svg";
import Zoom1x from "@branding/assets/icon-16px-solid/zoom-1x.svg";
import Zoom2x from "@branding/assets/icon-16px-solid/zoom-2x.svg";
import ZoomIn from "@branding/assets/icon-16px-solid/zoom-in.svg";
import ZoomOut from "@branding/assets/icon-16px-solid/zoom-out.svg";
import ZoomReset from "@branding/assets/icon-16px-solid/zoom-reset.svg";
import AlignBottom from "/../branding/assets/icon-16px-solid/align-bottom.svg";
import AlignHorizontalCenter from "/../branding/assets/icon-16px-solid/align-horizontal-center.svg";
import AlignLeft from "/../branding/assets/icon-16px-solid/align-left.svg";
import AlignRight from "/../branding/assets/icon-16px-solid/align-right.svg";
import AlignTop from "/../branding/assets/icon-16px-solid/align-top.svg";
import AlignVerticalCenter from "/../branding/assets/icon-16px-solid/align-vertical-center.svg";
import Artboard from "/../branding/assets/icon-16px-solid/artboard.svg";
import BooleanDifference from "/../branding/assets/icon-16px-solid/boolean-difference.svg";
import BooleanDivide from "/../branding/assets/icon-16px-solid/boolean-divide.svg";
import BooleanIntersect from "/../branding/assets/icon-16px-solid/boolean-intersect.svg";
import BooleanSubtractBack from "/../branding/assets/icon-16px-solid/boolean-subtract-back.svg";
import BooleanSubtractFront from "/../branding/assets/icon-16px-solid/boolean-subtract-front.svg";
import BooleanUnion from "/../branding/assets/icon-16px-solid/boolean-union.svg";
import Bug from "/../branding/assets/icon-16px-solid/bug.svg";
import CheckboxChecked from "/../branding/assets/icon-16px-solid/checkbox-checked.svg";
import CheckboxUnchecked from "/../branding/assets/icon-16px-solid/checkbox-unchecked.svg";
import CloseAll from "/../branding/assets/icon-16px-solid/close-all.svg";
import Close from "/../branding/assets/icon-16px-solid/close.svg";
import Code from "/../branding/assets/icon-16px-solid/code.svg";
import Copy from "/../branding/assets/icon-16px-solid/copy.svg";
import Credits from "/../branding/assets/icon-16px-solid/credits.svg";
import CustomColor from "/../branding/assets/icon-16px-solid/custom-color.svg";
import Cut from "/../branding/assets/icon-16px-solid/cut.svg";
import DeselectAll from "/../branding/assets/icon-16px-solid/deselect-all.svg";
import Edit from "/../branding/assets/icon-16px-solid/edit.svg";
import Empty from "/../branding/assets/icon-16px-solid/empty.svg";
import EyeHidden from "/../branding/assets/icon-16px-solid/eye-hidden.svg";
import EyeHide from "/../branding/assets/icon-16px-solid/eye-hide.svg";
import EyeShow from "/../branding/assets/icon-16px-solid/eye-show.svg";
import EyeVisible from "/../branding/assets/icon-16px-solid/eye-visible.svg";
import Eyedropper from "/../branding/assets/icon-16px-solid/eyedropper.svg";
import FileExport from "/../branding/assets/icon-16px-solid/file-export.svg";
import FileImport from "/../branding/assets/icon-16px-solid/file-import.svg";
import File from "/../branding/assets/icon-16px-solid/file.svg";
import FlipHorizontal from "/../branding/assets/icon-16px-solid/flip-horizontal.svg";
import FlipVertical from "/../branding/assets/icon-16px-solid/flip-vertical.svg";
import FolderOpen from "/../branding/assets/icon-16px-solid/folder-open.svg";
import Folder from "/../branding/assets/icon-16px-solid/folder.svg";
import FrameAll from "/../branding/assets/icon-16px-solid/frame-all.svg";
import FrameSelected from "/../branding/assets/icon-16px-solid/frame-selected.svg";
import GraphViewClosed from "/../branding/assets/icon-16px-solid/graph-view-closed.svg";
import GraphViewOpen from "/../branding/assets/icon-16px-solid/graph-view-open.svg";
import GraphiteLogo from "/../branding/assets/icon-16px-solid/graphite-logo.svg";
import HandleVisibilityAll from "/../branding/assets/icon-16px-solid/handle-visibility-all.svg";
import HandleVisibilityFrontier from "/../branding/assets/icon-16px-solid/handle-visibility-frontier.svg";
import HandleVisibilitySelected from "/../branding/assets/icon-16px-solid/handle-visibility-selected.svg";
import Heart from "/../branding/assets/icon-16px-solid/heart.svg";
import HistoryRedo from "/../branding/assets/icon-16px-solid/history-redo.svg";
import HistoryUndo from "/../branding/assets/icon-16px-solid/history-undo.svg";
import IconsGrid from "/../branding/assets/icon-16px-solid/icons-grid.svg";
import Image from "/../branding/assets/icon-16px-solid/image.svg";
import Layer from "/../branding/assets/icon-16px-solid/layer.svg";
import License from "/../branding/assets/icon-16px-solid/license.svg";
import NewLayer from "/../branding/assets/icon-16px-solid/new-layer.svg";
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 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";
import NodeNodes from "/../branding/assets/icon-16px-solid/node-nodes.svg";
import NodeOutput from "/../branding/assets/icon-16px-solid/node-output.svg";
import NodeShape from "/../branding/assets/icon-16px-solid/node-shape.svg";
import NodeText from "/../branding/assets/icon-16px-solid/node-text.svg";
import NodeTransform from "/../branding/assets/icon-16px-solid/node-transform.svg";
import Node from "/../branding/assets/icon-16px-solid/node.svg";
import PadlockLocked from "/../branding/assets/icon-16px-solid/padlock-locked.svg";
import PadlockUnlocked from "/../branding/assets/icon-16px-solid/padlock-unlocked.svg";
import Paste from "/../branding/assets/icon-16px-solid/paste.svg";
import PinActive from "/../branding/assets/icon-16px-solid/pin-active.svg";
import PinInactive from "/../branding/assets/icon-16px-solid/pin-inactive.svg";
import PlaybackPause from "/../branding/assets/icon-16px-solid/playback-pause.svg";
import PlaybackPlay from "/../branding/assets/icon-16px-solid/playback-play.svg";
import PlaybackToEnd from "/../branding/assets/icon-16px-solid/playback-to-end.svg";
import PlaybackToStart from "/../branding/assets/icon-16px-solid/playback-to-start.svg";
import Random from "/../branding/assets/icon-16px-solid/random.svg";
import Reload from "/../branding/assets/icon-16px-solid/reload.svg";
import Reset from "/../branding/assets/icon-16px-solid/reset.svg";
import Resync from "/../branding/assets/icon-16px-solid/resync.svg";
import ReverseRadialGradientToLeft from "/../branding/assets/icon-16px-solid/reverse-radial-gradient-to-left.svg";
import ReverseRadialGradientToRight from "/../branding/assets/icon-16px-solid/reverse-radial-gradient-to-right.svg";
import Reverse from "/../branding/assets/icon-16px-solid/reverse.svg";
import Save from "/../branding/assets/icon-16px-solid/save.svg";
import SelectAll from "/../branding/assets/icon-16px-solid/select-all.svg";
import SelectParent from "/../branding/assets/icon-16px-solid/select-parent.svg";
import Settings from "/../branding/assets/icon-16px-solid/settings.svg";
import SmallDot from "/../branding/assets/icon-16px-solid/small-dot.svg";
import StackBottom from "/../branding/assets/icon-16px-solid/stack-bottom.svg";
import StackHollow from "/../branding/assets/icon-16px-solid/stack-hollow.svg";
import StackLower from "/../branding/assets/icon-16px-solid/stack-lower.svg";
import StackRaise from "/../branding/assets/icon-16px-solid/stack-raise.svg";
import StackReverse from "/../branding/assets/icon-16px-solid/stack-reverse.svg";
import Stack from "/../branding/assets/icon-16px-solid/stack.svg";
import TiltReset from "/../branding/assets/icon-16px-solid/tilt-reset.svg";
import Tilt from "/../branding/assets/icon-16px-solid/tilt.svg";
import TransformationGrab from "/../branding/assets/icon-16px-solid/transformation-grab.svg";
import TransformationRotate from "/../branding/assets/icon-16px-solid/transformation-rotate.svg";
import TransformationScale from "/../branding/assets/icon-16px-solid/transformation-scale.svg";
import Trash from "/../branding/assets/icon-16px-solid/trash.svg";
import TurnNegative90 from "/../branding/assets/icon-16px-solid/turn-negative-90.svg";
import TurnPositive90 from "/../branding/assets/icon-16px-solid/turn-positive-90.svg";
import UserManual from "/../branding/assets/icon-16px-solid/user-manual.svg";
import ViewportDesignMode from "/../branding/assets/icon-16px-solid/viewport-design-mode.svg";
import ViewportGuideMode from "/../branding/assets/icon-16px-solid/viewport-guide-mode.svg";
import ViewportSelectMode from "/../branding/assets/icon-16px-solid/viewport-select-mode.svg";
import Volunteer from "/../branding/assets/icon-16px-solid/volunteer.svg";
import Website from "/../branding/assets/icon-16px-solid/website.svg";
import WorkingColorsPrimary from "/../branding/assets/icon-16px-solid/working-colors-primary.svg";
import WorkingColorsSecondary from "/../branding/assets/icon-16px-solid/working-colors-secondary.svg";
import Zoom1x from "/../branding/assets/icon-16px-solid/zoom-1x.svg";
import Zoom2x from "/../branding/assets/icon-16px-solid/zoom-2x.svg";
import ZoomIn from "/../branding/assets/icon-16px-solid/zoom-in.svg";
import ZoomOut from "/../branding/assets/icon-16px-solid/zoom-out.svg";
import ZoomReset from "/../branding/assets/icon-16px-solid/zoom-reset.svg";
const SOLID_16PX = {
AlignBottom: { svg: AlignBottom, size: 16 },
@@ -338,18 +338,18 @@ const SOLID_16PX = {
} as const;
// 16px Two-Tone
import MouseHintDrag from "@branding/assets/icon-16px-two-tone/mouse-hint-drag.svg";
import MouseHintLmbDouble from "@branding/assets/icon-16px-two-tone/mouse-hint-lmb-double.svg";
import MouseHintLmbDrag from "@branding/assets/icon-16px-two-tone/mouse-hint-lmb-drag.svg";
import MouseHintLmb from "@branding/assets/icon-16px-two-tone/mouse-hint-lmb.svg";
import MouseHintMmbDrag from "@branding/assets/icon-16px-two-tone/mouse-hint-mmb-drag.svg";
import MouseHintMmb from "@branding/assets/icon-16px-two-tone/mouse-hint-mmb.svg";
import MouseHintNone from "@branding/assets/icon-16px-two-tone/mouse-hint-none.svg";
import MouseHintRmbDouble from "@branding/assets/icon-16px-two-tone/mouse-hint-rmb-double.svg";
import MouseHintRmbDrag from "@branding/assets/icon-16px-two-tone/mouse-hint-rmb-drag.svg";
import MouseHintRmb from "@branding/assets/icon-16px-two-tone/mouse-hint-rmb.svg";
import MouseHintScrollDown from "@branding/assets/icon-16px-two-tone/mouse-hint-scroll-down.svg";
import MouseHintScrollUp from "@branding/assets/icon-16px-two-tone/mouse-hint-scroll-up.svg";
import MouseHintDrag from "/../branding/assets/icon-16px-two-tone/mouse-hint-drag.svg";
import MouseHintLmbDouble from "/../branding/assets/icon-16px-two-tone/mouse-hint-lmb-double.svg";
import MouseHintLmbDrag from "/../branding/assets/icon-16px-two-tone/mouse-hint-lmb-drag.svg";
import MouseHintLmb from "/../branding/assets/icon-16px-two-tone/mouse-hint-lmb.svg";
import MouseHintMmbDrag from "/../branding/assets/icon-16px-two-tone/mouse-hint-mmb-drag.svg";
import MouseHintMmb from "/../branding/assets/icon-16px-two-tone/mouse-hint-mmb.svg";
import MouseHintNone from "/../branding/assets/icon-16px-two-tone/mouse-hint-none.svg";
import MouseHintRmbDouble from "/../branding/assets/icon-16px-two-tone/mouse-hint-rmb-double.svg";
import MouseHintRmbDrag from "/../branding/assets/icon-16px-two-tone/mouse-hint-rmb-drag.svg";
import MouseHintRmb from "/../branding/assets/icon-16px-two-tone/mouse-hint-rmb.svg";
import MouseHintScrollDown from "/../branding/assets/icon-16px-two-tone/mouse-hint-scroll-down.svg";
import MouseHintScrollUp from "/../branding/assets/icon-16px-two-tone/mouse-hint-scroll-up.svg";
const TWO_TONE_16PX = {
MouseHintDrag: { svg: MouseHintDrag, size: 16 },
@@ -367,27 +367,27 @@ const TWO_TONE_16PX = {
} as const;
// 24px Two-Tone
import GeneralArtboardTool from "@branding/assets/icon-24px-two-tone/general-artboard-tool.svg";
import GeneralEyedropperTool from "@branding/assets/icon-24px-two-tone/general-eyedropper-tool.svg";
import GeneralFillTool from "@branding/assets/icon-24px-two-tone/general-fill-tool.svg";
import GeneralGradientTool from "@branding/assets/icon-24px-two-tone/general-gradient-tool.svg";
import GeneralNavigateTool from "@branding/assets/icon-24px-two-tone/general-navigate-tool.svg";
import GeneralSelectTool from "@branding/assets/icon-24px-two-tone/general-select-tool.svg";
import RasterBrushTool from "@branding/assets/icon-24px-two-tone/raster-brush-tool.svg";
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 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";
import VectorFreehandTool from "@branding/assets/icon-24px-two-tone/vector-freehand-tool.svg";
import VectorLineTool from "@branding/assets/icon-24px-two-tone/vector-line-tool.svg";
import VectorPathTool from "@branding/assets/icon-24px-two-tone/vector-path-tool.svg";
import VectorPenTool from "@branding/assets/icon-24px-two-tone/vector-pen-tool.svg";
import VectorPolygonTool from "@branding/assets/icon-24px-two-tone/vector-polygon-tool.svg";
import VectorRectangleTool from "@branding/assets/icon-24px-two-tone/vector-rectangle-tool.svg";
import VectorSplineTool from "@branding/assets/icon-24px-two-tone/vector-spline-tool.svg";
import VectorTextTool from "@branding/assets/icon-24px-two-tone/vector-text-tool.svg";
import GeneralArtboardTool from "/../branding/assets/icon-24px-two-tone/general-artboard-tool.svg";
import GeneralEyedropperTool from "/../branding/assets/icon-24px-two-tone/general-eyedropper-tool.svg";
import GeneralFillTool from "/../branding/assets/icon-24px-two-tone/general-fill-tool.svg";
import GeneralGradientTool from "/../branding/assets/icon-24px-two-tone/general-gradient-tool.svg";
import GeneralNavigateTool from "/../branding/assets/icon-24px-two-tone/general-navigate-tool.svg";
import GeneralSelectTool from "/../branding/assets/icon-24px-two-tone/general-select-tool.svg";
import RasterBrushTool from "/../branding/assets/icon-24px-two-tone/raster-brush-tool.svg";
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 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";
import VectorFreehandTool from "/../branding/assets/icon-24px-two-tone/vector-freehand-tool.svg";
import VectorLineTool from "/../branding/assets/icon-24px-two-tone/vector-line-tool.svg";
import VectorPathTool from "/../branding/assets/icon-24px-two-tone/vector-path-tool.svg";
import VectorPenTool from "/../branding/assets/icon-24px-two-tone/vector-pen-tool.svg";
import VectorPolygonTool from "/../branding/assets/icon-24px-two-tone/vector-polygon-tool.svg";
import VectorRectangleTool from "/../branding/assets/icon-24px-two-tone/vector-rectangle-tool.svg";
import VectorSplineTool from "/../branding/assets/icon-24px-two-tone/vector-spline-tool.svg";
import VectorTextTool from "/../branding/assets/icon-24px-two-tone/vector-text-tool.svg";
const TWO_TONE_24PX = {
GeneralArtboardTool: { svg: GeneralArtboardTool, size: 24 },
+1 -2
View File
@@ -1,8 +1,7 @@
// This file is the browser's entry point for the JS bundle
import { mount, unmount } from "svelte";
import App from "@graphite/App.svelte";
import App from "/src/App.svelte";
document.body.setAttribute("data-app-container", "");
+2 -2
View File
@@ -1,6 +1,6 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { insertAtCaret, readAtCaret } from "@graphite/utility-functions/clipboard";
import { insertAtCaret, readAtCaret } from "/src/utility-functions/clipboard";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
let subscriptionsRouter: SubscriptionsRouter | undefined = undefined;
let editorHandle: EditorHandle | undefined = undefined;
+1 -1
View File
@@ -1,5 +1,5 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
type ApiResponse = { family: string; variants: string[]; files: Record<string, string> }[];
+7 -7
View File
@@ -1,10 +1,9 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { DialogStore } from "@graphite/stores/dialog";
import type { DocumentStore } from "@graphite/stores/document";
import { fullscreenModeChanged } from "@graphite/stores/fullscreen";
import type { PortfolioStore } from "@graphite/stores/portfolio";
import type { DialogStore } from "/src/stores/dialog";
import type { DocumentStore } from "/src/stores/document";
import { fullscreenModeChanged } from "/src/stores/fullscreen";
import type { PortfolioStore } from "/src/stores/portfolio";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { triggerClipboardRead } from "@graphite/utility-functions/clipboard";
import { triggerClipboardRead } from "/src/utility-functions/clipboard";
import {
onBeforeUnload,
onKeyUp,
@@ -20,7 +19,8 @@ import {
onContextMenu,
onPaste,
onPointerLockChange,
} from "@graphite/utility-functions/input";
} from "/src/utility-functions/input";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
type EventName = keyof HTMLElementEventMap | keyof WindowEventHandlersEventMap | "modifyinputfield" | "pointerlockchange" | "pointerlockerror";
type EventListenerTarget = {
+2 -2
View File
@@ -1,6 +1,6 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { localizeTimestamp } from "@graphite/utility-functions/time";
import { localizeTimestamp } from "/src/utility-functions/time";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
let subscriptionsRouter: SubscriptionsRouter | undefined = undefined;
let editorHandle: EditorHandle | undefined = undefined;
+1 -1
View File
@@ -1,4 +1,4 @@
import { createCrashDialog } from "@graphite/stores/dialog";
import { createCrashDialog } from "/src/stores/dialog";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
let subscriptionsRouter: SubscriptionsRouter | undefined = undefined;
+3 -3
View File
@@ -1,7 +1,7 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { PortfolioStore } from "@graphite/stores/portfolio";
import type { PortfolioStore } from "/src/stores/portfolio";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { saveEditorPreferences, loadEditorPreferences, storeDocument, removeDocument, loadFirstDocument, loadRestDocuments, saveActiveDocument } from "@graphite/utility-functions/persistence";
import { saveEditorPreferences, loadEditorPreferences, storeDocument, removeDocument, loadFirstDocument, loadRestDocuments, saveActiveDocument } from "/src/utility-functions/persistence";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
let subscriptionsRouter: SubscriptionsRouter | undefined = undefined;
let editorHandle: EditorHandle | undefined = undefined;
+1 -2
View File
@@ -1,8 +1,7 @@
import { writable } from "svelte/store";
import type { Writable } from "svelte/store";
import type { AppWindowPlatform } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import type { AppWindowPlatform } from "/wasm/pkg/graphite_wasm";
export type AppWindowStore = ReturnType<typeof createAppWindowStore>;
+3 -4
View File
@@ -1,11 +1,10 @@
import { tick } from "svelte";
import { writable } from "svelte/store";
import type { Writable } from "svelte/store";
import type { EditorHandle, Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import type { IconName } from "@graphite/icons";
import type { IconName } from "/src/icons";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { patchLayout } from "@graphite/utility-functions/widgets";
import { patchLayout } from "/src/utility-functions/widgets";
import type { EditorHandle, Layout } from "/wasm/pkg/graphite_wasm";
export type DialogStore = ReturnType<typeof createDialogStore>;
+2 -3
View File
@@ -1,10 +1,9 @@
import { tick } from "svelte";
import { writable } from "svelte/store";
import type { Writable } from "svelte/store";
import type { Layout } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { patchLayout } from "@graphite/utility-functions/widgets";
import { patchLayout } from "/src/utility-functions/widgets";
import type { Layout } from "/wasm/pkg/graphite_wasm";
export type DocumentStore = ReturnType<typeof createDocumentStore>;
-1
View File
@@ -1,6 +1,5 @@
import { get, writable } from "svelte/store";
import type { Writable } from "svelte/store";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
export type FullscreenStore = ReturnType<typeof createFullscreenStore>;
+1 -2
View File
@@ -1,9 +1,8 @@
import { writable } from "svelte/store";
import type { Writable } from "svelte/store";
import type { NodeGraphErrorDiagnostic, BoxSelection, FrontendClickTargets, ContextMenuInformation, FrontendNode, FrontendNodeType, WirePath } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import type { MessageBody } from "/src/subscriptions-router";
import type { NodeGraphErrorDiagnostic, BoxSelection, FrontendClickTargets, ContextMenuInformation, FrontendNode, FrontendNodeType, WirePath } from "/wasm/pkg/graphite_wasm";
export type NodeGraphStore = ReturnType<typeof createNodeGraphStore>;
+3 -4
View File
@@ -1,10 +1,9 @@
import { writable } from "svelte/store";
import type { Writable } from "svelte/store";
import type { EditorHandle, OpenDocument } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { downloadFile, downloadFileBlob, upload } from "@graphite/utility-functions/files";
import { rasterizeSVG } from "@graphite/utility-functions/rasterization";
import { downloadFile, downloadFileBlob, upload } from "/src/utility-functions/files";
import { rasterizeSVG } from "/src/utility-functions/rasterization";
import type { EditorHandle, OpenDocument } from "/wasm/pkg/graphite_wasm";
export type PortfolioStore = ReturnType<typeof createPortfolioStore>;
+2 -3
View File
@@ -1,9 +1,8 @@
import { writable } from "svelte/store";
import type { Writable } from "svelte/store";
import type { ActionShortcut } from "@graphite/../wasm/pkg/graphite_wasm";
import type { SubscriptionsRouter } from "/src/subscriptions-router";
import { operatingSystem } from "@graphite/utility-functions/platform";
import { operatingSystem } from "/src/utility-functions/platform";
import type { ActionShortcut } from "/wasm/pkg/graphite_wasm";
export type TooltipStore = ReturnType<typeof createTooltipStore>;
+1 -1
View File
@@ -1,4 +1,4 @@
import type { FrontendMessage, LayoutTarget, WidgetDiff } from "@graphite/../wasm/pkg/graphite_wasm";
import type { FrontendMessage, LayoutTarget, WidgetDiff } from "/wasm/pkg/graphite_wasm";
// Type convert a union of messages into a map of messages
export type ToMessageMap<T> = {
+3 -3
View File
@@ -1,6 +1,6 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import { extractPixelData } from "@graphite/utility-functions/rasterization";
import { stripIndents } from "@graphite/utility-functions/strip-indents";
import { extractPixelData } from "/src/utility-functions/rasterization";
import { stripIndents } from "/src/utility-functions/strip-indents";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
export function readAtCaret(cut: boolean): string | undefined {
const element = window.document.activeElement;
+2 -2
View File
@@ -1,5 +1,5 @@
import { sampleInterpolatedGradient } from "@graphite/../wasm/pkg/graphite_wasm";
import type { Color, FillChoice, GradientStops } from "@graphite/../wasm/pkg/graphite_wasm";
import { sampleInterpolatedGradient } from "/wasm/pkg/graphite_wasm";
import type { Color, FillChoice, GradientStops } from "/wasm/pkg/graphite_wasm";
// Channels can have any range (0-1, 0-255, 0-100, 0-360) in the context they are being used in, these are just containers for the numbers
export type HSV = { h: number; s: number; v: number };
@@ -1,5 +1,5 @@
import { browserVersion, operatingSystem } from "@graphite/utility-functions/platform";
import { stripIndents } from "@graphite/utility-functions/strip-indents";
import { browserVersion, operatingSystem } from "/src/utility-functions/platform";
import { stripIndents } from "/src/utility-functions/strip-indents";
export function crashReportUrl(panicDetails: string): string {
const url = new URL("https://github.com/GraphiteEditor/Graphite/issues/new");
+2 -2
View File
@@ -1,5 +1,5 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import { extractPixelData } from "@graphite/utility-functions/rasterization";
import { extractPixelData } from "/src/utility-functions/rasterization";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
export function downloadFileURL(filename: string, url: string) {
const element = document.createElement("a");
+7 -7
View File
@@ -1,11 +1,11 @@
// Demo artwork
import ThumbnailChangingSeasons from "@graphite/../assets/thumbnail-changing-seasons.png";
import ThumbnailIsometricFountain from "@graphite/../assets/thumbnail-isometric-fountain.png";
import ThumbnailPaintedDreams from "@graphite/../assets/thumbnail-painted-dreams.png";
import ThumbnailParametricDunescape from "@graphite/../assets/thumbnail-parametric-dunescape.png";
import ThumbnailProceduralStringLights from "@graphite/../assets/thumbnail-procedural-string-lights.png";
import ThumbnailRedDress from "@graphite/../assets/thumbnail-red-dress.png";
import ThumbnailValleyOfSpires from "@graphite/../assets/thumbnail-valley-of-spires.png";
import ThumbnailChangingSeasons from "/assets/thumbnail-changing-seasons.png";
import ThumbnailIsometricFountain from "/assets/thumbnail-isometric-fountain.png";
import ThumbnailPaintedDreams from "/assets/thumbnail-painted-dreams.png";
import ThumbnailParametricDunescape from "/assets/thumbnail-parametric-dunescape.png";
import ThumbnailProceduralStringLights from "/assets/thumbnail-procedural-string-lights.png";
import ThumbnailRedDress from "/assets/thumbnail-red-dress.png";
import ThumbnailValleyOfSpires from "/assets/thumbnail-valley-of-spires.png";
const DEMO_ARTWORK = {
ThumbnailChangingSeasons,
+9 -10
View File
@@ -1,14 +1,13 @@
import { get } from "svelte/store";
import { isPlatformNative } from "@graphite/../wasm/pkg/graphite_wasm";
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { DialogStore } from "@graphite/stores/dialog";
import type { DocumentStore } from "@graphite/stores/document";
import { toggleFullscreen } from "@graphite/stores/fullscreen";
import type { PortfolioStore } from "@graphite/stores/portfolio";
import { pasteFile } from "@graphite/utility-functions/files";
import { makeKeyboardModifiersBitfield, textInputCleanup, getLocalizedScanCode } from "@graphite/utility-functions/keyboard-entry";
import { operatingSystem } from "@graphite/utility-functions/platform";
import type { DialogStore } from "/src/stores/dialog";
import type { DocumentStore } from "/src/stores/document";
import { toggleFullscreen } from "/src/stores/fullscreen";
import type { PortfolioStore } from "/src/stores/portfolio";
import { pasteFile } from "/src/utility-functions/files";
import { makeKeyboardModifiersBitfield, textInputCleanup, getLocalizedScanCode } from "/src/utility-functions/keyboard-entry";
import { operatingSystem } from "/src/utility-functions/platform";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
import { isPlatformNative } from "/wasm/pkg/graphite_wasm";
const BUTTON_LEFT = 0;
const BUTTON_MIDDLE = 1;
+1 -1
View File
@@ -1,4 +1,4 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
export type RequestResult = { body: string; status: number };
@@ -1,9 +1,8 @@
import * as idb from "idb-keyval";
import { get } from "svelte/store";
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { PortfolioStore } from "@graphite/stores/portfolio";
import type { PortfolioStore } from "/src/stores/portfolio";
import type { MessageBody } from "/src/subscriptions-router";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
export async function storeCurrentDocumentId(documentId: string) {
const indexedDbStorage = idb.createStore("graphite", "store");
+1 -1
View File
@@ -1,4 +1,4 @@
import type { EditorHandle } from "@graphite/../wasm/pkg/graphite_wasm";
import type { EditorHandle } from "/wasm/pkg/graphite_wasm";
export function setupViewportResizeObserver(editor: EditorHandle): () => void {
const viewports = Array.from(window.document.querySelectorAll("[data-viewport-container]"));
+1 -1
View File
@@ -1,4 +1,4 @@
import type { Layout, LayoutGroup, WidgetDiff, WidgetInstance } from "@graphite/../wasm/pkg/graphite_wasm";
import type { Layout, LayoutGroup, WidgetDiff, WidgetInstance } from "/wasm/pkg/graphite_wasm";
type UIItem = Layout | LayoutGroup | WidgetInstance[] | WidgetInstance;
// Updates a widget layout based on a list of updates, giving the new layout by mutating the `layout` argument