Commit Graph
100 Commits
Author SHA1 Message Date
Keavon Chambers 17e9340156 Fix bezier-rs interactive demos page build system 2023-05-26 23:32:21 -07:00
Keavon Chambers ebb702b7ec Show outline for image frames on hover and when selected with frame tools 2023-05-07 01:30:16 -07:00
Keavon Chambers 88fa95d18d Remove dead code from document-legacy 2023-05-06 17:03:40 -07:00
Keavon ChambersandDennis Kobert 7c115b3b26 Implement download/copy ImageFrame layer output (#1194)
* Implement download/copy ImageFrame layer output

* Add note about black transparency when copying

* Introspect node graph output type to conditionally disable the download button

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2023-05-03 09:09:07 +00:00
Keavon Chambers b27d67be00 Reduce height of NumberInput slider thumb 2023-04-28 18:14:47 -07:00
Keavon Chambers 8ddaafc614 Refactor naming to deprecate "node graph frame" terminology (#1187) 2023-04-28 01:30:47 -07:00
Keavon Chambers fce81d0dfc Replace responses.push() with responses.add() everywhere (#1186) 2023-04-27 17:25:19 -07:00
Keavon Chambers b84cf4ee68 Prevent closing the crash dialog
Closes #1115
2023-04-27 13:37:39 -07:00
Keavon Chambers a1fa76e885 Fix MenuList submenu reachability on hover and other styling 2023-04-27 13:08:33 -07:00
Keavon Chambers 19e78c1210 Minor UI design style revamp 2023-04-27 02:05:45 -07:00
Keavon Chambers 4f20de3fd1 Add cargo-watch installation to build instructions on website 2023-04-25 23:35:12 -07:00
Keavon Chambers 9aa74ab197 Add the Selective Color adjustment node 2023-04-19 03:02:50 -07:00
Keavon ChambersandDennis Kobert 50105c9a74 Add the Channel Mixer node (#1142)
* Add the Channel Mixer node

* Fix NodeIdentifier not found in Registry

* Add radio toggle for red/green/blue

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2023-04-17 12:47:24 -07:00
Keavon Chambers 4127da823b Update nodes to work with linear color by default (#1135)
* Update nodes to work with linear color by default

* Make tests work in linear not gamma
2023-04-16 12:20:44 -07:00
Keavon Chambers b133fc7feb Implement the correct Brightness/Contrast node algorithm (#1130)
Implement correct brightness/contrast algorithm
2023-04-15 05:15:58 -07:00
Keavon Chambers 69f6ed3a11 Fix Levels and Exposure adjustment nodes (#1112)
* Step Imaginate resolution by 64

* Fix the Exposure node

* Change comments and variable names
2023-04-11 01:52:44 -07:00
Keavon Chambers 4e8b8cc7d1 Rename the Downscale node to Downres 2023-04-09 15:38:36 -07:00
Keavon Chambers 9e8ac42a82 Fix crash upon setting stroke color to none 2023-04-06 18:11:45 -07:00
Keavon Chambers 3878132dbe Fix some fatal failures related to rendered frame memory size limits 2023-04-06 17:01:55 -07:00
Keavon Chambers 05e5be3200 Prevent rendering when transforming frame layer
Reduces confusion from rendering lag and lessens the opportunity to build up leaked memory from the present lack of node graph cache eviction
2023-04-06 16:59:10 -07:00
Keavon Chambers 0d6d498480 Update the website with some new content 2023-04-05 02:34:16 -07:00
Keavon Chambers c22fa8dcae Prevent browser extensions from recoloring the UI 2023-04-04 18:32:27 -07:00
Keavon Chambers 8512bc1271 Change the edit icon used in Imaginate 2023-04-03 14:16:46 -07:00
Keavon Chambers 65d705abc7 Polish node graph frames and rename them for clarity (#1104)
* Polish layer panel UI and layer type icons/text

* Assorted UI text and comment cleanup

* Insert Transform node before Imaginate node via tool

* Rename "Node Graph Frame" to Layer type and Frame tool

* Rename "Node Graph Frame" to "Frame" tool

* Update Node Graph Frame -> Frame tool icon

* Fix lint warnings
2023-04-03 01:52:25 -07:00
Keavon Chambers 78116f305e Bezier-rs: Replace Vue-CLI with Webpack bundler 2023-03-29 18:24:22 -07:00
Keavon Chambers 93bd17e747 Bezier-rs: Fix visualizing negative curvature on demo site 2023-03-28 17:54:11 -07:00
Keavon Chambers adb7eea065 Bezier-rs: Release version 0.2 2023-03-28 13:04:51 -07:00
Keavon Chambers 2291442186 Update readme and Task Board links 2023-03-27 11:13:53 -07:00
Keavon Chambers eac301d6f0 Code review previous commit, and improve G/R/S hints 2023-03-26 11:50:00 -07:00
Keavon Chambers f910b45a5b Upgrade cargo dependencies (#1090) 2023-03-25 17:29:49 -07:00
Keavon Chambers 7aa355f62f Add Imaginate help docs link to UI 2023-03-25 01:04:58 -07:00
Keavon Chambers ae2369ef77 Update website mockup images 2023-03-22 09:35:32 -07:00
Keavon Chambers 4645cdf3f0 Skip showing auto-save document old version error 2023-03-21 09:18:28 -07:00
Keavon Chambers 2e7c0274bd Remove leftover debug logs 2023-03-21 00:41:56 -07:00
Keavon Chambers dfa0d54761 Fix remaining known Svelte UI regressions
Closes #1040
2023-03-20 21:26:33 -07:00
Keavon Chambers 0c7c689126 Fix Eyedropper tool and make Svelte's bind:this more robust 2023-03-11 12:32:01 -08:00
Keavon Chambers bc9b7c0178 Fix import being lost when running 'cargo fix' due to feature flag 2023-03-11 01:49:00 -08:00
Keavon Chambers dd458deb32 Assorted code file cleanup following Svelte switch 2023-03-10 15:48:04 -08:00
Keavon Chambers 6febdea3c3 Remove all references to Vue 2023-03-10 14:14:34 -08:00
Keavon Chambers b4a265a512 Delete the separate Svelte frontend folder 2023-03-10 14:14:34 -08:00
Keavon Chambers 14a0fc2847 Replace the Vue frontend with Svelte 2023-03-10 14:14:34 -08:00
Keavon Chambers 70428633c3 Rename .vue files to .svelte for diffing 2023-03-10 14:14:34 -08:00
Keavon Chambers 3370a0a33d Svelte bug fixes and code cleanup (#1074)
* Fix middle click tab close

* Fix swapping colors in the ColorPicker

* Cleanup

* Fix field inputs

* Fix tab key-based navigation

* Fix ColorPicker reseting Initial color when opened

* Prevent backend fighting with user dragging NumberInput

* Remaining fixes and comment cleanup
2023-03-10 03:47:06 -08:00
Keavon Chambers baf6dfbd32 Move JS script to the top of each Vue file 2023-03-10 03:44:49 -08:00
Keavon Chambers ff603f7d80 Fix FieldInput and several other Svelte bugs 2023-03-08 01:35:22 -08:00
Keavon Chambers fc56a6063e Add double click input hint icons 2023-03-05 17:49:47 -08:00
Keavon Chambers 8fe8896c4a Fix graph scrolling bug from #1021
And replicate those changes to the Svelte version.
2023-03-03 02:28:52 -08:00
Keavon Chambers f400d2c9dd Improve the Vibrance node (#1050)
* Fix vibrance

* Improve results

* Clean up implementation

* Fix warnings from unrelated commit

* Improve negative vibrance
2023-02-21 15:42:13 -08:00
Keavon Chambers 7b86af99bd Fix Svelte regressions related to some input widgets 2023-02-19 22:57:43 -08:00
Keavon Chambers 1c2b8f67b2 Replace "Edit" icon with final version 2023-02-12 20:02:15 -08:00
Keavon Chambers 0319fce930 Svelte: Fix FontInput component infinite loop 2023-02-12 01:01:40 -08:00
Keavon Chambers 48f5fa24d9 Fix regressions in previous PR 2023-02-09 11:53:14 -08:00
Keavon Chambers d3787eb5f6 Improve Threshold node, move Gamma into Exposure node 2023-02-08 18:02:01 -08:00
Keavon Chambers 6fbc589e7e Remove Color struct from document-legacy (#1012) 2023-02-07 17:31:50 -08:00
Keavon Chambers bfb0d5e7f8 Fix error spam from Rust-Analyzer due to build scripts 2023-02-03 13:00:55 -08:00
Keavon Chambers 8a9b9e7c3c Refactor font_cache into render_data; delete image layer type 2023-01-29 20:31:14 -08:00
Keavon Chambers b47ec1b356 Clean up arg order in process_message() so data is last 2023-01-29 04:22:31 -08:00
Keavon Chambers 6eafeaaecc Apply lints and cleanup to Rust code 2023-01-29 03:01:57 -08:00
Keavon Chambers d541cf9932 Update project readme and MSRV 2023-01-24 01:33:30 -08:00
Keavon Chambers f0705a46fd Fix website RSS feed title 2023-01-22 00:59:26 -08:00
Keavon Chambers a223c54626 Svelte: fix pre-init error check and Properties panel 2023-01-18 22:55:39 -08:00
Keavon Chambers 8f61698af5 Svelte: Fix calling DOM API functions on the actual elements 2023-01-13 17:17:48 -08:00
Keavon Chambers cc7ec9409d Clean up imports and warnings in Rust code 2023-01-13 13:14:49 -08:00
Keavon ChambersandLocria Cyber dcc3eadf44 Port frontend from Vue to Svelte (WIP in separate folder, many bugs) (#964)
* 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>
2023-01-13 01:05:20 -08:00
Keavon Chambers 83eca77087 Fix build scripts so a failure returns a nonzero exit code 2023-01-03 01:05:09 -08:00
Keavon Chambers d66f09da08 Rename some Imaginate parameters 2022-12-27 14:30:54 -08:00
Keavon Chambers 6535ffeeb6 Minor logging code cleanup 2022-12-24 14:21:30 -08:00
Keavon Chambers 748c0ff7c0 Fix some paper cuts 2022-12-22 23:53:36 -08:00
Keavon Chambers d9101533f2 Make Properties panel radio buttons full width 2022-12-22 17:55:39 -08:00
Keavon Chambers 5c6679ab98 Rename the legacy Graphene crate to document-legacy (#899)
* Rename /graphene to /document-legacy

* Update names in code
2022-12-22 02:12:05 -08:00
Keavon Chambers 9071d9fdca Simplify website template code 2022-12-18 21:35:46 -08:00
Keavon Chambers f7317aa6b4 Prepare Bezier-rs for publishing 2022-12-17 22:14:56 -08:00
Keavon Chambers c9820efe35 Add breadcrumb trail widget (#884) 2022-12-12 17:16:40 +00:00
Keavon Chambers 951c4b665f Improve naming of nodes and 'add' menu styling 2022-12-03 23:29:55 -08:00
Keavon Chambers 3da87c4f78 Fix Imaginate generation with base image but no mask 2022-11-21 11:21:43 -08:00
Keavon Chambers 94e92be9d3 Prevent modifier key repeat from bogging down the app on WIndows
Closes #767
2022-11-20 14:02:59 -08:00
Keavon Chambers 5fe7aba85d Add GitHub Sponsors link for core team 2022-11-17 11:53:28 -08:00
Keavon Chambers cc4bfd7e42 Fix compilation after upgrading TypeScript 2022-11-16 20:50:53 -08:00
Keavon Chambers 02d5b019a6 Update frontend node.js packages 2022-11-16 18:36:34 -08:00
Keavon Chambers 839a55179e Update bezier-rs interactive demos node.js packages 2022-11-16 18:31:21 -08:00
Keavon Chambers f918745b73 Bump MSRV to 1.65.0 for let-else syntax
Closes #857
2022-11-16 18:04:13 -08:00
Keavon Chambers 71b98b0c21 Change Imaginate image creativity to a percentage 2022-11-12 14:36:12 -08:00
Keavon Chambers d75f0aa0ab Fix color picker alpha slider range 2022-11-12 09:11:25 -08:00
Keavon Chambers b1ee93313b Fix opacity slider range bug 2022-11-08 16:25:55 -08:00
Keavon Chambers 901a8652ec Update frontend and bezier-rs demo npm dependencies 2022-11-08 15:17:02 -08:00
Keavon Chambers f5f89a650c Fix swapped boolean subtract modes 2022-11-08 01:09:51 -08:00
Keavon Chambers 0725f80049 Add new sampling methods to Imaginate 2022-11-07 00:37:17 -08:00
Keavon Chambers 4622273b09 Change favicon/app manifest theme color to white 2022-11-06 01:55:48 -07:00
Keavon Chambers 9e5626ced6 Fix several CSS compatibility issues in Safari (#841)
* 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
2022-11-06 00:50:45 -07:00
Keavon Chambers 265f11a751 Add rotation custom cursor icon for the transform cage 2022-11-05 23:02:21 -07:00
Keavon Chambers 6031f4cffd Add the range slider design to the NumberInput widget (#839)
* 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
2022-11-05 22:57:19 -07:00
Keavon Chambers 71680ab005 Add suffix widget non-rounding; add disabled state to many widgets 2022-11-04 17:09:03 -07:00
Keavon Chambers afc84d30f8 Revamp UI styling to remove accent color; improve tab navigation 2022-11-04 05:56:33 -07:00
Keavon Chambers 69fd3dfc35 Move browser incompatibility check outside the JS bundle 2022-11-03 03:06:16 -07:00
Keavon Chambers 70b03ec886 Update the Imaginate image generation API (#836)
* 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
2022-11-03 03:06:14 -07:00
Keavon Chambers 7522af9fc7 Refactor persistent data storage code and add button to wipe data on crash (#827)
* 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
2022-11-03 03:05:41 -07:00
Keavon Chambers d6c2d73f45 Reenable optimizations in debug mode which were inadvertently disabled 2022-11-02 00:42:44 -07:00
Keavon Chambers df1b25f42e Remove regex lookbehind in rasterization which is unsupported by Safari 2022-11-02 00:26:39 -07:00
Keavon Chambers 7d2bdf11e1 Revamp the ColorPicker popover and ColorInput widget (#830)
* 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
2022-10-28 18:36:04 -07:00
Keavon Chambers 5f1501aad3 Improve floating menu hover transfer behavior (#829) 2022-10-26 02:39:08 -07:00