Commit graph

203 commits

Author SHA1 Message Date
akshay1992kalbhor
e867f4d7fc
Frontend fixed to render changes to working colors when changed from backend (#180)
* Backend and Frontend modification to show working color mods

* Remove comments & change precedence for tool and doc actions

* Add keybind for resetting work colors

* Minor Frontend changes
2021-06-12 09:00:31 -07:00
TrueDoctor
0e488d99ff
Delete selected layers (#173)
* Delete Layers
* Fix backend selection
* Fix shift selection
* Add desired shape add selection behavior
* Add X and Backspace as keybinds for layer deletion
* Change key storage to u128
* Remove unhelpful trace logging
* Reverse display direction for layers
2021-06-10 09:24:59 +02:00
akshay1992kalbhor
981f138812
Layer selection (#166)
* Change arg to IconButton component

* Add basic layer selection mechanism

* Clean up print statements and add some comments

* Simplified the layer selection mechanism

* Remove redundant rule for 'no-param-reassign'

* Clean up frontend and and plumb selection flow to backend

* Update eslintrc

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2021-06-09 20:40:51 +02:00
TrueDoctor
8fa4b86d48
Implement backend part of the layer selection (#172)
* Implement backend part of the layer selection
2021-06-09 12:20:50 +02:00
Keavon Chambers
a3b679e64d
Improve UI behavior at smaller screen sizes so status bar overflows (#158)
Also includes various CSS flex-related cleanup throughout the UI.
Progress for #150
2021-06-08 00:54:24 -07:00
dependabot[bot]
66881c13e2
Bump ws from 6.2.1 to 6.2.2 in /client/web (#169)
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-06 20:57:20 -07:00
Keavon Chambers
91303459a9
Add the Dropdown Input widget (#168)
Fixes #135.

* Add the Dropdown Input widget

* Fix font loading race condition
2021-06-06 02:17:36 -07:00
Keavon Chambers
eae2d70e93 Implement "Export" entry in File menu; add Copy/Paste icons in Edit menu 2021-06-01 19:49:04 -07:00
Keavon Chambers
ad9feda054
Implement menu bar floating list menus (#163)
Progress towards #135
2021-05-31 11:51:32 -07:00
Keavon Chambers
83984700bf Generalize and rename overlays as "floating menus"
Progress towards #135.
2021-05-29 21:55:43 -07:00
dependabot[bot]
3f81fd84d1
Bump dns-packet from 1.3.1 to 1.3.4 in /client/web (#162)
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 23:52:51 -07:00
TrueDoctor
eb48fbd180
Export current document as SVG when pressing Ctrl+Shift+S (#160)
* Export current document when pressing Ctrl+Shift+S

* Use a blob for download

* Add Ctrl + E shortcut, match on lower case

* Don't mount element in DOM

* Polish some keybindings

* Add initialization for MappingEntries

* Implement svg coloring

* Add newline after svg tag

* Add spaces to svg style format

* Fix more svg formatting

* Add space before />

* Remove duplicate whitespace
2021-05-28 20:43:51 +02:00
Keavon Chambers
9f63c6e8ea Fix missing keyboard shortcut <P> for the Pen Tool 2021-05-27 22:10:48 -07:00
Keavon Chambers
6331325ae0 Minor CSS custom property rename for accuracy 2021-05-27 15:03:49 -07:00
Chrs Msln
f3a23cb3ec
Implement color picker for primary/secondary working colors (#70)
* feat/color-picker: rework

* feat(161) lint

* feat(161) Remove response handlers

* feat(161) fix rgb <-> hsv conversion

* feat(161) inverse swatchs and add checkered bg

* feat(161) remove temporary color assignment

* feat(161) move cursor outside of the box

* feat(161) @Keavon feedbacks

* feat(161) lint

* feat(161) fix opacity-picker color

* feat(161) --saturation-picker-color
2021-05-27 14:59:52 -07:00
Keavon Chambers
c2314df8d5 Fix layer visibility icons incorrectly referenced in previous cleanup commit. 2021-05-27 09:26:38 -07:00
Keavon Chambers
c205fec0d4 Move all icon SVG imports to the Icon component
This change also removes the need to specify the icon size.
2021-05-27 02:14:32 -07:00
Keavon Chambers
313a1dfc65 Standardize icon sizes and folder paths (closes #110) 2021-05-27 00:14:50 -07:00
Keavon Chambers
3fba54fad1 Fix popover positioning regression 2021-05-25 21:49:43 -07:00
Keavon Chambers
b3fa6347c2 Update the readme with new progress, details, and mockup screenshot 2021-05-24 00:33:09 -07:00
Keavon Chambers
d7478f5890
Update UI colors and alignment for consistency with the design mockup (#157)
Closes #111
2021-05-23 19:01:13 -07:00
TrueDoctor
a596ce0104
Major overhaul of input and communication systems
* Add input manager

* WIP lifetime hell

* Hell yeah, dark lifetime magic

* Replace events with actions in tools

* Fix borrow in GlobalEventHandler

* Fix typo in response-handler

* Distribute dispatch structure

* Add translation from events to actions

* Port default key actions to input_mapper

* Split actions macro

* Add handling for Ambiguous Mouse events

* Fix warnings and clippy lints

* Add actions macro

* WIP rework

* Add AsMessage macro

* Add implementation for derived enums

* Add macro implementation for top level message

* Add #[child] attribute to indicate derivation

* Replace some mentions of Actions and Responses with Message

* It compiles !!!

* Add functionality to some message handlers

* Add document rendering

* ICE

* Rework the previous code while keeping basic functionality

* Reduce parent-top-level macro args to only two

* Add workaround for ICE

* Fix cyclic reference in document.rs

* Make derive_transitive_child a bit more powerful

This addresses the todo that was left,
enabling arbitrary expressions to be passed as the last
parameter of a #[parent] attribute

* Adapt frontend message format

* Make responses use VecDeque

Our responses are a queue so we should use a queue type for them

* Move traits to sensible location

* Are we rectangle yet?

* Simplify, improve & document `derive_discriminant`

* Change `child` to `sub_discriminant`

This only applies to `ToDiscriminant`.
Code using `#[impl_message]` continues to work.

* Add docs for `derive_transitive_child`

* Finish docs and improve macros

The improvements are that impl_message now uses trait
resolution to obtain the parent's discriminant
and that derive_as_message now allows for non-unit
variants (which we don't use but it's nice to have,
just in case)

* Remove logging call

* Move files around and cleanup structure

* Fix proc macro doc tests

* Improve actions_fn!() macro

* Add ellipse tool

* Pass populated actions list to the input mapper

* Add KeyState bitvector

* Merge mouse buttons into "keyboard"

* Add macro for initialization of key mapper table

* Add syntactic sugar for the macro

* Implement mapping function

* Translate the remaining tools

* Fix shape tool

* Add keybindings for line and pen tool

* Fix modifiers

* Cleanup

* Add doc comments for the actions macro

* Fix formatting

* Rename MouseMove to PointerMove

* Add keybinds for tools

* Apply review suggestions

* Rename KeyMappings -> KeyMappingEntries

* Apply review changes

Co-authored-by: T0mstone <realt0mstone@gmail.com>
Co-authored-by: Paul Kupper <kupper.pa@gmail.com>
2021-05-23 01:26:24 +02:00
Keavon Chambers
56c1110800 Fix icon cursor hitbox below SVGs by setting images to display: block
Fixes #133
2021-05-21 14:28:11 -07:00
Keavon Chambers
c97cb9905c
Rename and organize widget components to conform to design terminology (#132) 2021-05-21 13:10:32 -07:00
Keavon Chambers
c8eea1e4b1
Complete implementing popover system main features (#131)
* Make popover buttons open popover menus and add placeholder messages to all of them.
* Implement all directions for drawing, aligning, and edge-clamping popovers.
* Fix popovers so they are drawn outside their parent panel bounds and not clipped.
* Fix popover HTML to avoid nesting it inside a <button> element.
2021-05-21 12:22:30 -07:00
Keavon Chambers
4ed093bb4b
Popovers now close when clicked out or mouse strays 100px outside bounds (#129) 2021-05-19 01:02:58 -07:00
akshay1992kalbhor
b23fa6d84f
Make the show/hide layer buttons work (#118) (#127) 2021-05-18 18:55:05 +02:00
Keavon Chambers
81effa550f Move .eslintignore file rules into .eslintrc.js 2021-05-17 18:56:41 -07:00
Keavon Chambers
b20addaaaf
Implement popover component and beginnings of color picker (#128) 2021-05-17 12:07:54 -07:00
Keavon Chambers
94485fe6cb Rename Panel Area -> Workspace and Dockable Panel -> Workspace Panel 2021-05-16 18:15:04 -07:00
Keavon Chambers
7fc6eddb1a Rename Footer Bar -> Status Bar 2021-05-16 18:04:26 -07:00
Keavon Chambers
1419f3bc6b
Refactor type handling for response handler to fix dangerous casting (#126) 2021-05-15 01:02:33 -07:00
Keavon Chambers
a1b80db51f Upgrade TypeScript from 3.9 to 4.x 2021-05-14 23:53:55 -07:00
dependabot[bot]
9eba2ef782
Bump lodash from 4.17.20 to 4.17.21 in /client/web (#125)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-14 01:05:27 -07:00
Keavon Chambers
15459256b6 Update node packages 2021-05-14 00:58:15 -07:00
Keavon Chambers
c9e9f1acc0 Update favicon 2021-05-09 23:34:12 -07:00
Keavon Chambers
dc5b563ab2 Change debug colors for dark theme readability 2021-05-09 01:37:58 -07:00
Paul Kupper
57252fa828
Cancel in-progress drag with right click or escape key (#119) 2021-05-09 01:26:47 -07:00
RustyStriker
78ff81ffa8
Fix rect/hexagon not centering properly when holding alt (#121) 2021-05-09 00:23:13 -07:00
Keavon Chambers
722c777ba6 Change default draw color to orange, plus small fixes 2021-05-08 15:17:31 -07:00
Keavon Chambers
64f716e081
Rename human-readable layer types (#117) 2021-05-07 21:13:22 -07:00
Keavon Chambers
7ec0558cbd Plumb frontend for layer visibility toggle 2021-05-07 16:57:45 -07:00
Paul Kupper
1230e9d829
Improved Rectangle, Line and Shape Tools (#106) 2021-05-07 11:05:03 -07:00
Keavon Chambers
5bf0452b9c Fix "P" not switching to the Pen Tool 2021-05-07 10:42:09 -07:00
TrueDoctor
437251f90e Plumb layer panel (#107)
* WIP ExpandFolder handling

* Implement response parsing in typescript

* Update layer panel with list sent by wasm

* Add events for layer interaction

* Add proper default naming

* Fix displaying of the eye icon

* Attach path to LayerPanelEntry

* Fix lint issues

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2021-05-07 10:41:38 -07:00
Keavon Chambers
67abeadf32 Styling improvements to layers 2021-05-07 02:47:38 -07:00
Keavon Chambers
0ebd127333 Replace placeholder with eye icons for layers 2021-05-07 02:47:38 -07:00
Keavon Chambers
e448f908e3 Fix CSS extraneous space beneath icons 2021-05-07 02:47:38 -07:00
Paul Kupper
9c324edfe0 Fix ellipse tool behavior (#105) 2021-05-07 02:47:38 -07:00
T0mstone
47458115b8 Another round of polishing (#101)
* Implement basic refactorings

* Simplify some match statements

* Rename `ix` to `index`

If we're not going with a single letter name,
then a full word makes more sense.

* Rename `as_hex` to `to_hex`

`as_` implies lossless reinterpretation
while the function does a conversion that loses information

* Replace `for_each` with for loops

for loops are a lot easier to read and maintain.

* factor out x and y coords in Line::render

this is arguably more ergonomic

* Remove redundant `format!(format_args!())`
2021-05-07 02:47:38 -07:00