Commit Graph

86 Commits

Author SHA1 Message Date
sawka
9d344b899d fix issues with layouteffects in block 2024-09-03 10:24:00 -07:00
sawka
c94ff3495b fix terminal paste handler -- use paste fn, unify key handlers. add extra if stmts to focusNode calls in block 2024-09-03 00:02:03 -07:00
Mike Sawka
e3b7ab73c0
preview refactor for keyboard/focus (#303) 2024-09-02 16:48:10 -07:00
Mike Sawka
53d3ad04b7
focus/key handling for directory preview (#291) 2024-08-29 17:00:24 -07:00
Mike Sawka
a104a6e446
new focus system part 1 (#290) 2024-08-29 16:06:15 -07:00
Red J Adaya
c440fb774e
suggestions UI (#286) 2024-08-28 23:47:45 -07:00
Evan Simkowitz
c892c39a73
Fix block content sizing (#280)
Make the block content sizing update once when its node moves or becomes
magnified. By manually updating this inner sizing rather than letting
the block flow in the DOM, the animations of the block frames are much
smoother.

This also fixes an issue where two scrollbars were being rendered for
the Directory Preview widget.

This also sets zero padding on nodes when there's only a single node
being rendered.
2024-08-27 13:41:36 -07:00
Mike Sawka
c2fe3b18e1
move connection switching to blockheader (#276) 2024-08-26 16:19:03 -07:00
Evan Simkowitz
164afeeb66
Unified node model to pass data from layout to blocks (#259)
This adds a new NodeModel, which can be passed from the TileLayout to
contained blocks. It contains all the layout data that the block should
care about, including focus status, whether a drag operation is
underway, whether the node is magnified, etc.

This also adds a focus stack for the layout, which will let the focus
switch to the last-focused node when the currently-focused one is
closed.

This also addresses a regression in the resize handles that caused them
to be offset from the cursor when dragged.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-08-26 11:56:00 -07:00
sawka
43138f754c fix double model creation 2024-08-22 16:25:53 -07:00
Mike Sawka
dedfc31344
implement Cmd-I and restructure block viewmodels (#257) 2024-08-21 15:49:23 -07:00
sawka
94d6c14011 reorganize block view more 2024-08-01 15:35:13 -07:00
sawka
c8cc1de2d4 add 'dev' label to application. also add 'un-magnify' icon when magnified 2024-08-01 13:46:06 -07:00
sawka
9f98d03add rearrange view files into directories 2024-08-01 13:06:18 -07:00
sawka
4b30c8bc3b move preview into own directory 2024-08-01 12:53:49 -07:00
Sylvie Crowe
fc8c1104f4
Create a Help Block (#188)
Adds a block to explain how to use the app.
2024-07-31 22:22:52 -07:00
sawka
07843ab281 remove minimize 2024-07-31 21:41:28 -07:00
sawka
933c5d66e9 Cmd-m magnify block 2024-07-31 19:59:21 -07:00
Sylvie Crowe
efd1e3c189
CPU Plot (#185)
Adds a CPU % Plotting Widget
2024-07-31 14:13:36 -07:00
Evan Simkowitz
2157df85de
Disable block pointer events during layout drag (#183)
This will ensure that the webview cannot capture the pointer events and
disrupt the drag functionality.

This also fixes an issue where greedy and imprecise bounds calculations
could result in thrashing of the layoutState.pendingAction field, which
could cause the placeholder to flicker.

This also fixes issues where some React Effects that were supposed to be
debounced or throttled were being invoked too much. This is because
useEffect regenerates the callback when it is run, resulting in the
debounce or throttle never taking effect. Moving the throttled or
debounced logic to a separate callback solves this.
2024-07-31 12:49:38 -07:00
sawka
ec94bd51f6 fix icon centering in preview 2024-07-30 22:53:50 -07:00
sawka
827263d2d5 playing with a preview icon 2024-07-30 22:02:52 -07:00
sawka
ea8914cb85 don't apply custom background to previews 2024-07-30 21:59:20 -07:00
sawka
d68d32f96c terminal themes, use terminal bg to style the full block 2024-07-30 19:52:50 -07:00
Mike Sawka
cfc875bc21
metadata updates (frontend typing) (#174) 2024-07-30 12:33:28 -07:00
Evan Simkowitz
f3f272a47b
Add action for magnifying a block (#172)
Adds the implementation for the "Magnify Block" context menu item. This
will pop a block out of the layout and bring it to the foreground.

This also cleans up some block styling to make radii more consistent.

<img width="814" alt="image"
src="https://github.com/user-attachments/assets/c81521e1-c91f-4bb5-9eec-ff0eda178268">
2024-07-30 10:59:53 -07:00
sawka
127b2bb9bf default block icon/title/name in the same way. use blockName atom from viewmodel 2024-07-25 18:05:32 -07:00
Red J Adaya
96420ea3ef
code editor responsiveness and various fixes (#129) 2024-07-25 12:00:35 -07:00
Sylvie Crowe
0e46b79c22
Open Ai Port (#154)
This brings over a simplified version of the open ai feature from the
previous app but in widget form. It still needs some work to reach
parity with that version, but this includes all of the basic building
blocks to get that working.
2024-07-25 02:30:49 -07:00
Red J Adaya
dcb4d5f2bf
terminal themes feature (#135)
Co-authored-by: sawka
2024-07-24 20:34:22 -07:00
sawka
ee51f2de12 more focus fixes -- write a viewmodel for terminal 2024-07-22 17:08:28 -07:00
sawka
198ec60e69 create an explicit giveFocus() method on the viewmodel. fix preview header text 2024-07-22 16:41:27 -07:00
Red J Adaya
2a81f19b15
code editor header controls (#117) 2024-07-17 23:41:33 -07:00
Mike Sawka
01b5d71709
new wshrpc mechanism (#112)
lots of changes. new wshrpc implementation. unify websocket, web,
blockcontroller, domain sockets, and terminal inputs to all use the new
rpc system.

lots of moving files around to deal with circular dependencies

use new wshrpc as a client in wsh cmd
2024-07-17 15:24:43 -07:00
Red J Adaya
e140076801
webview controls (#110) 2024-07-15 09:40:28 -07:00
Red J Adaya
ff8fe94b1c
use flexbox for responsive waveai (#107) 2024-07-09 18:15:37 -07:00
Mike Sawka
4be8a1e37e
move codeedit to directory. new useLongClick hook. show quick navig… (#105)
move codeedit to directory. new useLongClick hook. show quick navigation for directoryview on longclick of folder icon. lots more generic
stuff for header
new fitaddon for xtermjs
more fixes for xtermjs scrollbars
2024-07-08 23:13:12 -07:00
Red J Adaya
6d6102b912
fix blocks blurry border (#104) 2024-07-08 22:31:38 -07:00
sawka
b97802b1ac modifying viewmodel to be more flexible -- preicon button and endiconbuttons 2024-07-08 16:36:30 -07:00
sawka
3b01234914 POC to get new context menu items from the viewmodel -> settings 2024-07-08 15:32:10 -07:00
Mike Sawka
848a9af9a0
dynamic header updates (#102) 2024-07-08 15:04:48 -07:00
sawka
15cc681b4b testing new default header 2024-07-05 15:47:35 -07:00
Sylvie Crowe
8a28a48c4e
Directory Formatting Changes (#92)
This make the following changes:
- widen column resize handles
- pin the `..` directory to the top row when it is visible
- add some clarification to datetime format
- fix arrow keys for directory parsing to only be local
- switch to using keyutil for keypresses
- only use the block's dummy focus if another focus element doesn't
exist
- add a gray background to directory nav buttons when they are focused
- typing into search box works as long as the focus is in the directory
view block
- add a popup in the table to notify when searching/filtering
- remove original search box
2024-07-03 14:34:55 -07:00
Red J Adaya
1f973b3fdc
WaveAI (#93) 2024-07-03 14:32:55 -07:00
Evan Simkowitz
75c9e211d9
Add resize handles to the layout system (#66)
Adds resizability to the layout system.

Hovering in the margins of a block will highlight the available resize
handle and show a cursor indicating its resize direction. Dragging will
cause the resizing nodes to blur out and be replaced by an outline.
Releasing the handle will commit the new resize operation and cause the
underlying nodes to update to their new sizes.

We'll want to refactor this in the future to move all layout and resize
logic into a shared model that the TileLayout code can talk to, but
that's a future improvement. For now, this makes some compromises,
mainly that the logic is kind of distributed around.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-03 14:31:02 -07:00
Evan Simkowitz
f1c8d63ab2
Make the drag preview always use the tech frame (#87)
Overrides the frameless block frame if generating a drag preview. Also
fixes a type issue with BlockFrame_Tech
2024-06-27 15:26:40 -07:00
Red J Adaya
566f6764c2
Web view (#78) 2024-06-26 09:39:41 -07:00
Mike Sawka
4f627a0342
react.memo (#79) 2024-06-26 09:31:43 -07:00
Mike Sawka
7b93354657
initial implementation of move block to window (#77) 2024-06-25 14:56:37 -07:00
sawka
997940949a fix cut/copy/paste menu 2024-06-24 17:44:31 -07:00