* Make `tauri build` just work
* Move folder: frontend/wasm -> wasm
* Create SvelteKit project with 'npx create-svelte'
* Move wasm-communication into seperate npm package
* Use wasm-pack directly and pack package.json
* Got it to work
* Add primitive build script for wasm npm module
* Fix wasm build script (python)
* Clean up glue code
* Rewrite wasm build script in node.js
* Add serde-reflection to trace types
* Add traced types
* Generate typescript (.d.ts) from Rust types
* Update .d.ts
* Finalize TS types
* Add script to update .d.ts
* Add watch command to build wasm-bindgen
* Make wasm work again
* Add sass; fix build script for windows
* Describe requirement for wasm-pack
* Add license
* Copy and reorganize vue components
* translate LayoutCol.vue
* Split app.scss into pieces
* Translate LayoutRow.svelte
* Rename scss files
* Fix compile issues on Windows
* WIP port TitleBar
* Support classes for LayoutCol/Row
* Restructure based on Vue codebase
* Port all components in window folder
* Port FloatingMenu
* Port Document panel component
* Update readme after folder move
* Update typegen: print discriminant by default
* Update typegen: Merge from branch 'tailwind' 4f14fedb
Fixes bigint & bytes
* Made Vue/webpack/eslint to accept wasm package at new location
This is quite a hack.
Those two packages are both named the same. Yes, it's an npm package inside another npm package.
- frontend/src/wasm-communication/
- frontend-svelte/glue/
'wasm/pkg/index.js' imports the correct one registered when linking.
* Port LayerTree
* Port NodeGraph
* Port Properties
* Port components in /floating-menus
* Finish porting all Vue -> Svelte components
* Change import prefix
* Revert type generation
* Revert moved wasm folder
* Revert all of @locriacyber's work on this branch
- Remove Vite and restore Webpack
- Remove SvelteKit
- Remove everything except the components I ported to Svelte
- Restore all frontend files from Vue code, now altered for Svelte
* Convert Vue's 'reactive' and 'provide' to Svelte's stores and contexts
* Fix event emitting and bi-di data flow
* Undo removal of 'update:' events
* Fix 'update:' event dispatching
* Fix usage in parent of bi-di component props
* Fix component typing, more progress towards no errors
* The page builds and opens!
* Add loading spinner and remove postcss dependency
* Make the basics of document editing work
* Fix rebase history
Co-authored-by: Locria Cyber <74560659+locriacyber@users.noreply.github.com>
* Fix button margin default for Safari compatibility
* Add Safari vendor prefixes that are somehow still necessary
* Add workaround for Safari not rendering text selection
* Replace <h3> and <p> placeholder labels in floating menus with <TextLabel>
* Replace <span> elements with <TextLabel> and set its cursor for Safari
* Add range slider to NumberInput
* Cleanup
* Fix event ordering causing bug in Firefox
* Polish the code
* Switch number input modes to range in relevant places
* Update the Imaginate feature server API
* Change connection status strategy to prevent console errors
* Possible CORS fix? Maybe revert.
* Update to the final API and fix bugs
* Organize persistence.ts
* Switch to simpler promise handling
* Switch document list storage from localStorage to IndexedDB
* Track document auto-save status to avoid re-auto-saving unnecessarily
* Add button to clear storage on crash
* Bump document version and test file
* Switch to IDB-Keyval instead of raw IDB transactions
* Add cancel hint to Eyedropper tool
* Improve eyedropper overlay CSS
* Make CSS for transparent checkered background reusable
* Add color choice preview to color picker
* Draw text and markers as contrasting white or black
* Add reactive color updating and new/initial swapping
* Add Hex, RGB, HSV, and Opacity inputs
* Add none color and preset buttons
* Add eyedropper button and fix alignment (now visually done)
* Wire up none colors through the backend and style the ColorInput widget
* Add color info chip to ColorInput widget
* Fix all UX bugs
* Add more tooltips
* Fix FloatingMenu recursive loop
* Prevent mouse stray from closing color picker while dragging pickers
Closes#703
* Fix deselect all layers shortcut
* Add temporary eyedropper for Chromium browsers and a coming soon fallback
* Move FloatingMenu template component
* Rewrite the ColorPicker component so it's not horrifically bad code
* Move FloatingMenu into the ColorPicker component
* Little Imaginate fixes
* Add todo
* Add AI Artist layer
* WIP add a button to download the rendered folder under an AI Artist layer
* Successfully download the correct image
* Break out image downloading JS into helper function
* Change file download from using data URLs to blob URLs
* WIP rasterize to blob
* Remove dimensions from AI Artist layer
* Successfully draw rasterized image on layer after calculation
* Working txt2img generation based on user prompt
* Add img2img and the main parameters
* Fix ability to rasterize multi-depth documents with blob URL images by switching them to base64
* Fix test
* Rasterize with artboard background color
* Allow aspect ratio stretch of AI Artist images
* Add automatic resolution choosing
* Add a terminate button, and make the lifecycle more robust
* Add negative prompt
* Add range bounds for parameter inputs
* Add seed
* Add tiling and restore faces
* Add server status check, server hostname customization, and resizing layer to fit AI Artist resolution
* Fix background color of infinite canvas rasterization
* Escape prompt text sent in the JSON
* Revoke blob URLs when cleared/replaced to reduce memory leak
* Fix welcome screen logo color
* Add PreferencesMessageHandler
* Add persistent storage of preferences
* Fix crash introduced in previous commit when moving mouse on page load
* Add tooltips to the AI Artist layer properties
* Integrate AI Artist tool into the raster section of the tool shelf
* Add a refresh button to the connection status
* Fix crash when generating and switching to a different document tab
* Add persistent image storage to AI Artist layers and fix duplication bugs
* Add a generate with random seed button
* Simplify and standardize message names
* Majorly improve robustness of networking code
* Fix race condition causing default server hostname to show disconnected when app loads with AI Artist layer selected (probably, not confirmed fixed)
* Clean up messages and function calls by changing arguments into structs
* Update API to more recent server commit
* Add support for picking the sampling method
* Add machinery for filtering selected layers with type
* Replace placeholder button icons
* Improve the random icon by tilting the dice
* Use selected_layers() instead of repeating that code
* Fix borrow error
* Change message flow in progress towards fixing #797
* Allow loading image on non-active document (fixes#797)
* Reduce code duplication with rasterization
* Add AI Artist tool and layer icons, and remove ugly node layer icon style
* Rename "AI Artist" codename to "Imaginate" feature name
Co-authored-by: otdavies <oliver@psyfer.io>
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* IPP for Mac, flawed initial experiments
* Cleanup and progress, but not compiling yet
* Fix error and rename nonmac -> standard
* Extentd ipp macros to accomodate mac input
* Add Mac versions of shortcuts; refactor and document the input mapper macros
* Change frontend styling for user input labels in floating menus
* Additional macro documentation
* A little more documentation
* Improve entry macro syntax
* Move input mapper macros to a separate file
* Adapt the keyboard shortcuts to the user's OS
* Display keyboard shortcuts in the menu bar based on OS
* Change Input Mapper macro syntax from {} to ()
* Fix esc key bug in Vue
* Tweaks
* Interim solution for Mac-specific hints
* Feed tooltip input hotkeys from their actions
* Fix hotkeys for tools because of missing actions
* Make Vue respect Ctrl/Cmd differences per platform
* Remove commented lines
* Code review pass by me
* Code review suggestions with TrueDoctor
* Turn FutureKeyMapping struct into ActionKeys enum which is a bit cleaner
* Add serde derive attributes for message discriminants
* Re-add serde deserialize
* Fix not mutating ActionKeys conversion; remove custom serializer
* Add serde to dev dependencies
Co-authored-by: Dennis <dennis@kobert.dev>
* Fix two-axis scrollbars in scrollable regions on Firefox
* Move Document Mode dropdown to the backend; and related code cleanup
* Port the Layer Tree options bar layout to the backend
* Port the tool shelf to the backend
* Clean up initialization and wasm wrapper
* Fix crash
* Fix missing document bar
* Remove unused functions in api.rs
* Code review
* Tool initalisation
* Remove some frontend functions
* Initalise -> Init so en-US/GB doesn't have to matter :)
* Remove blend_mode and opacity from LayerPanelEntry
Co-authored-by: 0hypercube <0hypercube@gmail.com>