Commit Graph
100 Commits
Author SHA1 Message Date
Keavon Chambers dfdfd8149c Switch Vec<Key> to KeysGroup newtype 2022-08-11 16:35:04 -07:00
Keavon Chambers d6e726f99d Fix shortcut label on welcome screen: "Control" -> "Ctrl" 2022-08-11 10:53:03 -07:00
Keavon Chambers 0f6ecefb3f Revamp key/code input processing which fixes Option key on Mac and other locales
Closes #742
Closes #746
2022-08-11 02:53:46 -07:00
Keavon Chambers 9f4a241e0f Extend welcome screen button click area to labels
Closes #738
2022-08-08 01:29:23 -07:00
Keavon Chambers e440fba4cc Populate menu bar
Closes #531
2022-08-06 18:08:39 -07:00
Keavon Chambers c235c7f252 Additional cleanup of prelude imports in editor codebase
Closes #744
2022-08-05 17:12:56 -07:00
Keavon Chambers ddfd7db0a0 Restructure the entire editor codebase to consistently match the message hierarchy
Closes #744
2022-08-05 17:13:43 -07:00
Keavon Chambers 0c7870c5b0 Fix formatting of previous commit 2022-08-04 00:18:42 -07:00
Keavon ChambersandDennis 52b3553a75 Add full support for Mac-specific keyboard layouts (#736)
* 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>
2022-08-03 14:13:43 -07:00
Keavon Chambers cafa2e61dc Update npm dependencies 2022-07-23 15:31:02 -07:00
Keavon Chambers f3bdf970f4 Implement File > Import and fix Ctrl+O to Open hotkey
Closes #671
2022-07-23 15:17:20 -07:00
Keavon Chambers 08a81002ff Hide canvas zoom widget automatically when zero 2022-07-22 23:09:45 -07:00
Keavon Chambers 4fa7a81f61 Fix broken BigInt64Array unsupported message on old Safari 2022-07-07 10:58:29 -07:00
Keavon Chambers b4a24d7d83 Fix website styling 2022-06-29 18:47:05 -07:00
Keavon Chambers 2052c00010 Fix DropdownInput repeated change emitting 2022-06-19 19:34:59 -07:00
Keavon Chambers a443de8342 Implement the Edit > Paste menu entry (#683)
Closes #682
2022-06-19 00:53:33 -07:00
Keavon Chambers 63fd5e87ab Change MenuList checkbox to be an icon from a widget 2022-06-17 17:55:04 -07:00
Keavon Chambers 4924d7ede7 Add code style formatting to the website 2022-06-16 22:57:15 -07:00
Keavon Chambers 04d6bd9190 Update npm dependencies (#678) 2022-06-13 12:32:01 -07:00
Keavon Chambers e6d096f73e Update banner for the lastest blog post 2022-06-06 16:09:42 -07:00
Keavon Chambers 811ca391ac Update readme 2022-05-26 00:28:29 -07:00
Keavon Chambers eca9797597 Refactor source of Git commit build info (closes #661) 2022-05-24 14:33:58 -07:00
Keavon Chambers bec7a4c109 Add frontend file structure docs and some related cleanup 2022-05-23 19:24:31 -07:00
Keavon Chambers ab77105ffb Reorganize Vue components and add documentation explaining each folder 2022-05-23 19:22:41 -07:00
Keavon Chambers 2c2d7bd137 Update the assets directory to prefix icon folders with "icon-" 2022-05-23 18:56:33 -07:00
Keavon Chambers ef53577b20 Vue initialization and FloatingMenu codebase refactoring and cleanup (#649)
* Clean up Vue initialization-related code

* Rename folder: dispatcher -> interop

* Rename folder: state -> providers

* Comments and clarification

* Rename JS dispatcher to subscription router

* Assorted cleanup and renaming

* Rename: js-messages.ts -> messages.ts

* Comments

* Remove unused Vue component injects

* Clean up coming soon and add warning about freezing the app

* Further cleanup

* Dangerous changes

* Simplify App.vue code

* Move more disparate init code from components into managers

* Rename folder: providers -> state-providers

* Other

* Move Document panel options bar separator to backend

* Add destructors to managers to fix HMR

* Comments and code style

* Rename variable: font -> font_file_url

* Fix async font loading; refactor janky floating menu openness and min-width measurement; fix Vetur errors

* Fix misaligned canvas in viewport until panning on page (re)load

* Add Vue bidirectional props documentation

* More folder renaming for better terminology; add some documentation
2022-05-21 19:46:15 -07:00
Keavon Chambersand0hypercube a8f09da5a2 Move layouts definitions to backend and fix Firefox overlay scrollbars (#647)
* 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>
2022-05-17 13:12:52 -07:00
Keavon Chambers 95435d8bf1 Update the VS Code rust-analyzer extension to its new official owner 2022-05-13 12:09:37 -07:00
Keavon Chambers 6cae6b54b7 Fix website rendering issues on Firefox with -webkit-line-clamp 2022-05-12 14:22:43 -07:00
Keavon Chambers 15641a3d2a Fix website responsive layouts 2022-05-12 13:08:53 -07:00
Keavon Chambers e2f616934b Add Reddit and Twitter links to blog posts 2022-05-12 01:15:56 -07:00
Keavon Chambers 89ed5ac392 Fix website URL encoding in certain links 2022-05-12 01:04:23 -07:00
Keavon Chambers 10e2365536 Blog post updates 2022-05-12 00:45:20 -07:00
Keavon Chambersand0hypercube 07d5bef125 Build the node graph frontend with placeholder graph info (#581)
* Build the node graph frontend

* Graph pan and zoom

* Graph's dot grid now pans/zooms also

* Interactive horisontal to vertical curves

* Data types and zooming on wires

* Icon definitions code beautification

* Add a visibility toggle

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2022-05-10 22:34:25 -07:00
Keavon Chambers be6351573f Update list of recommended VS Code extensions 2022-05-10 20:39:58 -07:00
Keavon Chambers 8dec73c344 Clean up website file structure 2022-05-10 11:35:39 -07:00
Keavon Chambers 7729b6219e Move the Layer Tree panel's New Folder and Delete icons into the options bar 2022-05-06 13:19:00 -07:00
Keavon Chambers 8c9caf12c7 Tidy up the full frontend codebase and use optional chaining where possible (#620)
* Tidy up the full frontend codebase and use optional chaining where possible

* Code review changes
2022-04-30 02:52:53 -07:00
Keavon Chambersand0hypercube d1c32ad7d0 Upgrade vue-cli to version 5 (#594)
* Upgrade to Vue CLI 5 (fails to compile)

* Upgrade versions with last few weeks of changes

* Updated to fork-ts-checker-webpack-plugin 7.2.3

* Remove package.json overrides in lieu of the fixed fork-ts-checker-webpack-plugin@6.5.1

* Fix svg importing

* Comments

* For debugging only: added infrastructureLogging to vue.config.js

* Now works on Windows, waiting on fork-ts-checker-webpack-plugin backport if possible

* Switch to the fixed fork-ts-checker-webpack-plugin@6.5.2

* Fix license checker build compilation

Co-authored-by: 0hypercube <0hypercube@gmail.com>
2022-04-26 01:47:13 -07:00
Keavon Chambers 1bf1687642 Change stroke weight from ints to floats (#601)
Also rename stroke "width" to "weight" in some places. Closes #587

* Change stroke weight from ints to floats

* "miter_limit" -> "line_join_miter_limit"

* Bump file format version
2022-04-21 13:35:35 -07:00
Keavon Chambers d65ce17d7e Rename Crop tool to Artboard tool 2022-04-21 10:52:33 -07:00
Keavon Chambers 9c61fbc936 New blog post: "Distributed computing with the Graphene runtime" 2022-04-18 02:04:22 -07:00
Keavon Chambers a76bded12f Expand upon the "Announcing Graphite alpha" blog post 2022-04-14 10:19:09 -07:00
Keavon Chambers 3e2962e36a Add node graph mockup to website 2022-03-25 02:11:31 -07:00
Keavon Chambers 9af26a3840 Various website fixes 2022-03-17 02:51:37 -07:00
Keavon Chambers 045448a26e Small website text improvements 2022-03-15 16:06:09 -07:00
Keavon Chambers a1b91c75c7 Add features page and fixes to website 2022-03-13 11:32:53 -07:00
Keavon Chambers b4f316c3b9 Add website revisions and many new pages 2022-03-12 08:31:12 -08:00
Keavon Chambers 7b4b0ff06e Add Image node icon and rename node from Path to Shape 2022-03-05 23:51:59 -08:00
Keavon Chambers f9012060db Change tool shelf icon colors to use classes not style 2022-03-05 18:28:41 -08:00
Keavon Chambers 6169a30f6e Remake node type icons (closes #483); color picker cleanup 2022-03-04 22:48:22 -08:00
Keavon Chambers d8df4b9369 Reorder tool icons, update favicon and logo, and other icon cleanup 2022-03-04 13:04:59 -08:00
Keavon Chambers acc02cf743 Set text color based on its fill when it's being edited 2022-03-04 12:15:42 -08:00
Keavon Chambers f1ddf46109 Update npm dependencies 2022-03-02 22:02:40 -08:00
Keavon Chambers a62147ce36 Add "New Folder"/"Delete Selected" buttons to layer panel
Closes #532
2022-03-02 21:55:40 -08:00
Keavon Chambers acfa9ecaa4 Add newsletter signup to website 2022-02-19 03:31:02 -08:00
Keavon Chambers 1fd8e9f0e9 Website responsive resizing improvements 2022-02-19 02:16:30 -08:00
Keavon Chambers 8baa1b1213 Create project website with near-complete home page 2022-02-17 03:38:01 -08:00
Keavon Chambers 767b1a01b1 Release Alpha Milestone 1! 2022-02-12 09:31:48 -08:00
Keavon Chambers c4fdc28449 Polishing: standardize binding JS resize event (fixes non-integer AA rendering); remove "X" to delete; cleanup 2022-02-10 02:29:45 -08:00
Keavon Chambers cb518c6ce0 Improve Path Tool hint text 2022-02-09 16:52:54 -08:00
Keavon Chambersandmfish33 99bf6c496f Add the TextInput widget (#518)
* Separate out the number input from a generic field input

* Add TextInput widget

Co-authored-by: mfish33 <32677537+mfish33@users.noreply.github.com>
2022-02-09 12:16:44 -08:00
Keavon Chambers 4d232e6b46 Solve "Coming Soon" dialog from bubbled click event on sub-menu entries (#517) 2022-02-05 13:49:12 -08:00
Keavon Chambers dd36339605 Rename deployment script 2022-02-03 18:29:02 -08:00
Keavon ChambersandMoritz Vetter dae79caf15 Implement layer renaming (#501)
* Implement layer renaming

* Fix sneaky typo in CSS

Co-authored-by: Moritz Vetter <16950410+HansAuger@users.noreply.github.com>

Co-authored-by: Moritz Vetter <16950410+HansAuger@users.noreply.github.com>
2022-01-29 11:04:15 -08:00
Keavon Chambers c215719598 Clean up web code's use of display CSS properties, using <LayoutRow>/<LayoutCol> where intended 2022-01-23 20:24:50 -08:00
Keavon Chambers 12ef88f261 Move scrollable behavior into LayoutRow/LayoutCol 2022-01-23 15:07:10 -08:00
Keavon Chambers 841f34e797 Fix sorting of message enum variants 2022-01-16 13:59:55 -08:00
Keavon Chambers 73448a4849 Make the toggle overlays button functional (#484)
* Make the toggle overlays button functional

* Move state from the OverlaysMessageHandler to DocumentMessageHandler

* Code review fixes
2022-01-16 09:40:47 -08:00
Keavon Chambers 34664e7c56 Fix all remaining Vue/TS errors flagged in Volar 2022-01-15 18:04:34 -08:00
Keavon Chambers ab0a55f6ce Tweak whitespace around use statements and other lint fixes 2022-01-15 12:55:51 -08:00
Keavon Chambers c46edfdc5b Change canvas artboard background color to be 1 shade lighter 2022-01-15 06:35:06 -08:00
Keavon Chambers b3cf1a42bd Modify all message enum data to use named struct values, not tuples (#479)
* Massively reorganize and clean up the whole Rust codebase

* Modify all message enum data to use named struct values, not tuples
2022-01-14 20:54:38 -08:00
Keavon Chambers 40d5960571 Massively reorganize and clean up the whole Rust codebase (#478)
* Massively reorganize and clean up the whole Rust codebase

* Additional changes during code review
2022-01-14 14:58:08 -08:00
Keavon Chambers f63424b676 Sort messages and message handlers 2022-01-12 16:17:40 -08:00
Keavon Chambers cf66f387d5 Standardize FrontendMessage message names 2022-01-12 14:16:13 -08:00
Keavon Chambers 4d9fcd0b77 Rename document_file.rs to document_message_handler.rs 2022-01-12 12:45:07 -08:00
Keavon Chambers b4885d40c1 Rename DocumentsMessage to PortfolioMessage 2022-01-12 12:19:14 -08:00
Keavon Chambers 600e97eb7c Rename document_message_handler.rs to portfolio_message_handler.rs 2022-01-12 11:57:36 -08:00
Keavon Chambers df9977194b Add npm start script alias for npm run serve 2022-01-12 06:14:32 -08:00
Keavon Chambers 97db01ebac Switch VS Code's Vue extension from Vetur to Volar 2022-01-12 05:17:56 -08:00
Keavon Chambers bb5d0e954c Remove Charcoal references from the code for now 2022-01-12 03:56:28 -08:00
Keavon Chambers a2f39f48e3 Fix NumberInput clamping regression with undefined bounds 2022-01-10 18:06:12 -08:00
Keavon Chambers f6bfe595f4 Redesign the Layer Tree UI (#468) 2022-01-07 23:13:33 -08:00
Keavon Chambers c9848a1661 Fix build script to use correct branch name 2022-01-05 05:42:30 -08:00
Keavon Chambers 9ec3f06027 Vue/TS bug and bad typing fixes 2022-01-02 20:02:35 -08:00
Keavon Chambers 7e0cbb60b4 Major frontend code cleanup (#452)
Many large changes, including:
- TypeScript enums are now string unions throughout
- Strong type-checking throughout the TS and Vue codebase
- Vue component props now all specify `as PropType<...>`
- Usage of annotated return types on all functions
- Sorting of JS import statements
- Explicit usage of Vue bind attribute function call arguments (`@click="foo"` is now `@click=(e) => foo(e)`)
- Much improved code quality related to the color picker
- Consistent camelCase Vue bind and v-model attributes
- Consistent Vue HTML attribute strings with single quotes
- Bug fix and clarity improvement with incorrect hint class parameters
- Empty Vue component objects like `props: {}` and `components: {}` removed
2022-01-02 06:00:02 -08:00
Keavon Chambers 1954aceb0e Rename Editor's LayerData to LayerMetadata 2021-12-31 00:02:29 -08:00
Keavon Chambers 0482037bc6 Fix all clippy lint errors 2021-12-30 23:05:54 -08:00
eb96eafe60 New overlay system that reimplements how overlays are drawn (#418)
* New overlay system that reimplements how overlays are drawn

* Fix overlay message declaration

* Fix small mistake

* WIP (broken) changes to plumb the overlay document

* Fix confusion over messaging system architecture

* Removed log

* Overlay system working

* (broken) WIP overlay association

* Finish the overlay system (except test failure)

* Change back IDs in test

* Fixed test, but stilled fails due to revealed real problem with layer reordering selection

* Disable broken test that has a bug in issue #444

Co-authored-by: Dennis <dennis@kobert.dev>
Co-authored-by: otdavies <oliver@psyfer.io>
2021-12-30 09:48:39 -08:00
Keavon Chambers e13e9337f4 Implement input hints based on the active tool state (#388)
* Hook up user input hints to display in the frontend status bar

Closes #171

* MVP hint system based on tool FSM

* Fix hints for Fill and Eyedropper tools

* Add icons for keyboard shortcuts

* Fix hints for Pen Tool

* Cleanup
2021-12-24 01:46:03 -08:00
Keavon Chambers 6dd8e35461 Fix previous commit by mapping codes to keys 2021-12-23 16:09:04 -08:00
Keavon Chambers 0203efc868 Add a temporary solution to non-Latin keyboards being unusable 2021-12-23 13:29:02 -08:00
Keavon Chambers 80a3e41654 Make the Pen Tool confirm when leaving the tool 2021-12-21 18:48:21 -08:00
Keavon Chambers bf6b76a20a Skip the web page close confirmation when crashed or in debug mode 2021-12-21 18:43:02 -08:00
Keavon Chambers de7490ede0 Set Cargo.toml versions to 0.0.0 to avoid version confusion 2021-12-20 14:59:47 -08:00
Keavon Chambers 1e57f658dc Upgrade node packages (#413) 2021-12-20 13:09:24 -08:00
Keavon Chambers 6099c9a34e Skip cargo-about in CI to save 5 minutes (#409) 2021-12-20 02:22:19 -08:00
Keavon Chambers 3c1ed1a235 Make deployment switch branch from HEAD to master 2021-12-16 03:21:52 -08:00
Keavon Chambers c2195c2819 Add the Help > About Graphite dialog with build info
Closes #404
2021-12-16 02:49:36 -08:00