Commit Graph
100 Commits
Author SHA1 Message Date
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
Keavon Chambers 7681efa056 Clean up JS message dispatcher and fix a bug thrown on empty-data messages
Fixes bug in #394
2021-12-16 02:49:12 -08:00
Keavon Chambers 739b41bdf7 Fix floating menus above scrollable content; they now respect content's preferred width at edges 2021-12-15 04:05:07 -08:00
Keavon Chambers d0045a6c99 Update the project readme 2021-12-06 16:53:44 -08:00
Keavon Chambers 2be32af44a Fix bug in last commit that broke when scrolling on SVG elements 2021-12-06 02:55:05 -08:00
Keavon Chambers c2253d3ce0 Enable vertical scroll wheel on horizontal scrollable containers 2021-12-05 20:05:45 -08:00
Keavon Chambers 6a30b46793 Switch CI and CD scripts to use npm ci instead of npm install 2021-12-05 19:22:57 -08:00
Keavon Chambers e0682e7fa2 Fix ESLint configuration triggering an error in the ESLint VS Code extension 2021-12-05 19:22:56 -08:00
Keavon Chambers 71e967d043 CSS editor layout fixes and scrolling
Major CSS improvements to layout at small screen sizes. By adding min-width: 0 and min-height: 0 on the nested display: flex structure, widgets no longer coerce the whole layout into large-scale resizing. Scrollbars are now used to allow correct overflowing of the tab bar (fixes #177), Document Panel options bar, and tool shelf. Improvements to responsive resizing are also included for viewing the UI correctly on mobile now. Additional small fixes to styling of widget colors and corner roundness. The ruler has been darkened one shade to improve text contrast and aesthetics.
2021-12-04 22:30:07 -08:00
Keavon Chambers c3ec2f76e9 Switch to Node.js 16 LTS, upgrade TypeScript, ESLint, and other dependencies (#395)
* Upgrade TypeScript, ESLint, and other dependencies

This also cleans up various other files where newer ESLint rules complained

* Set CI and CD to use Node.js version 16

* Small tweak

* Fix CD version printing

* Add nvm version for Cloudflare Pages
2021-11-29 03:32:09 -08:00