Commit Graph

64 Commits

Author SHA1 Message Date
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
sawka
cc46cf64df more context menu options (not implemented) for block headers 2024-06-24 16:34:56 -07:00
sawka
a0b8bd5c0b add config option to show block header ids 2024-06-24 16:25:53 -07:00
Mike Sawka
77b5acfc5a
cmd blocks (#74) 2024-06-24 14:34:31 -07:00
sawka
b668138ae0 fix null ptr 2024-06-21 16:59:09 -07:00
sawka
e859847edb dynamic icons for preview, and icons per view 2024-06-21 16:01:51 -07:00
sawka
e7550c0a3e add block icon 2024-06-21 15:15:38 -07:00
sawka
8683105f70 fun customization for the block title 2024-06-21 14:44:11 -07:00
Mike Sawka
0ea8e5ac88
integrate part of keyutil, and implement tab and block movement with keyboard (#70) 2024-06-21 12:32:38 -07:00
sawka
d59e0f5959 add contextmenu model, example code in block.tsx 2024-06-20 12:34:32 -07:00
sawka
c7f76d5ced implement drag handles 2024-06-19 23:00:57 -07:00
sawka
52e04330bc blocks now implement a focus of last resort and interact with the block focus field in window. 2024-06-19 11:58:22 -07:00
Mike Sawka
15681ffa1a
create blockframes to replace blockheader (#59)
created two frames -- frameless and tech. frameless is used when there
is 0 or 1 blocks, otherwise tech is used.
2024-06-18 23:44:53 -07:00
sawka
b71ae8e6e8 move terminal into its own directory under view 2024-06-17 10:18:38 -07:00
sawka
29c2b6bc7f working on a hover state for the headers 2024-06-14 10:46:03 -07:00
Mike Sawka
8e3540f754
working on ijson and wsh magic (#53) 2024-06-13 23:54:04 -07:00
Evan Simkowitz
b2b1f9b9df
Switch to using electron-vite instead of WebPack (#45)
This sets us back up to use Vite via the electron-vite package. This
will let us continue to build our testing suite on Vitest and take
advantage of Vite features like Hot Module Reloading, etc.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-06-13 16:49:25 -07:00
sawka
083e00227e update BlockService to use the new type union feature of tsgen. strongly type the arguments to BlockService.SendCommand 2024-06-12 13:47:13 -07:00
Evan Simkowitz
92dc82967c
Replace lets with const where possible (#35) 2024-06-11 13:19:29 -07:00
Evan Simkowitz
97ca430884
Fix missing null check in block header component (#34) 2024-06-11 13:06:05 -07:00
Evan Simkowitz
0a45311f30
Implement outer drop direction, add rudimentary drag preview image rendering (#29)
This PR adds support for Outer variants of each DropDirection.

When calculating the drop direction, the cursor position is calculated
relevant to the box over which it is hovering. The following diagram
shows how drop directions are calculated. The colored in center is
currently not supported, it is assigned to the top, bottom, left, right
direction for now, though it will ultimately be its own distinct
direction.

![IMG_3505](https://github.com/wavetermdev/thenextwave/assets/16651283/a7ea7387-b95d-4831-9e29-d3225b824c97)

When an outer drop direction is provided for a move operation, if the
reference node flexes in the same axis as the drop direction, the new
node will be inserted at the same level as the parent of the reference
node. If the reference node flexes in a different direction or the
reference node does not have a grandparent, the operation will fall back
to its non-Outer variant.

This also removes some chatty debug statements, adds a blur to the
currently-dragging node to indicate that it cannot be dropped onto, and
simplifies the deriving of the layout state atom from the tab atom so
there's no longer another intermediate derived atom for the layout node.

This also adds rudimentary support for rendering custom preview images
for any tile being dragged. Right now, this is a simple block containing
the block ID, but this can be anything. This resolves an issue where
letting React-DnD generate its own previews could take up to a half
second, and would block dragging until complete. For Monaco, this was
outright failing.

It also fixes an issue where the tile layout could animate on first
paint. Now, I use React Suspense to prevent the layout from displaying
until all the children have loaded.
2024-06-11 13:03:41 -07:00
sawka
cf85ad0980 debounce resize handler, fix useEffect() in term.tsx 2024-06-04 23:47:18 -07:00
Evan Simkowitz
c3e71c5c7d
Integrate Faraday layout system (#16)
Co-authored-by: Mike Sawka <sawka@users.noreply.github.com>
Co-authored-by: sawka <mike.sawka@gmail.com>
2024-06-04 13:05:44 -07:00