Commit Graph

793 Commits

Author SHA1 Message Date
Evan Simkowitz
72fc42a050
Support window blur in addition to transparency (#161)
Adds support for window blur via the Vibrancy feature on macOS and the
BackgroundMaterial feature on Windows. The setting has no effect on
Linux. If both transparency and blur are set, transparency will take
precedence.
2024-07-26 16:18:53 -07:00
sawka
245394f8e2 add copy file name and path, and shell quoting options as well 2024-07-26 16:06:46 -07:00
sawka
6727285695 default transparency to false 2024-07-26 15:05:56 -07:00
Mike Sawka
9df9c99fbd
checkpoint on domain sockets + update background colors + transparency (#160) 2024-07-26 13:30:11 -07:00
Sylvie Crowe
3162ad2c41
Directory Context Menus (#155)
This adds the ability to open a directory as a terminal in a new block.
it uses the directory table items for child directories and the block
header for the current directory.
2024-07-26 00:48:12 -07:00
Red J Adaya
2fea8e0a68
directory preview fixes (#130)
- Set all cols of navigation row(first row) to - except the first col
- Fixed the issue where it scrolls right on load or when you click back
from the file preview
- Use OverlayScrollbars
2024-07-25 21:14:21 -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
sawka
875fbb87c4 fix term view icon/title 2024-07-25 16:45:07 -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
2f3275e7a6 fix vdom key error 2024-07-24 20:18:55 -07:00
Evan Simkowitz
9fb2e58b54
rename faraday to layout (#147) 2024-07-23 13:50:23 -07:00
Mike Sawka
6c2ef6cb99
working on vdom implementation, other fixes (#136) 2024-07-23 13:16:53 -07:00
Evan Simkowitz
e6f60ff210
more const crusade 2024-07-23 12:46:29 -07:00
Evan Simkowitz
ed43d7e0a8
const crusade 2024-07-23 12:42:31 -07:00
Evan Simkowitz
876c360922
Fix context menu click 2024-07-23 12:40:50 -07:00
sawka
ee51f2de12 more focus fixes -- write a viewmodel for terminal 2024-07-22 17:08:28 -07:00
Evan Simkowitz
baf7961cea
Fix resize getting out of sync (#126)
This PR fixes an issue where the resize state could fall out of sync.
I've noticed that there is still some drift in other elements when the
resize changes. I am trying to figure out what is causing this, but I
don't view this as blocking since this is already a big improvement over
the previous experience
2024-07-22 17:00:31 -07:00
sawka
198ec60e69 create an explicit giveFocus() method on the viewmodel. fix preview header text 2024-07-22 16:41:27 -07:00
Evan Simkowitz
0fbb42863c
Remove left indent for tab-bar for non-Mac targets and when in full screen (#128)
This adds a new global atom to track whether a window is in full screen.
It also updates the behavior of the tab bar so that it will only add an
extra left indent on macOS windows that are not in full screen.
Otherwise, the indent will be much smaller.
2024-07-22 13:33:10 -07:00
Evan Simkowitz
36ff1608bb
Lighten app background and fix taskfile descriptions 2024-07-19 14:27:31 -07:00
Mike Sawka
ca0dc2624a
more well defined 'init' for global.ts (#125) 2024-07-19 13:44:32 -07:00
Evan Simkowitz
98111f7383
Round transform pixel values to avoid blurry text (#124) 2024-07-18 18:46:04 -07:00
sawka
fd3581fc42 wsh deleteblock 2024-07-18 18:14:11 -07:00
Evan Simkowitz
c47e17903d
Add auto updater configuration (#122)
Adds a new set of configurations for managing whether the app will
automatically check for updates. Ports over the auto update code from
the old app. In this version, the main difference is that updates can be
manually checked for using a menu bar item, even if auto updates are
disabled.
2024-07-18 16:55:04 -07:00
Mike Sawka
776ccd7da0
streaming rpc support (backend streams to the frontend) (#120) 2024-07-18 15:56:04 -07:00
Sylvie Crowe
f3743f90ec
User Input (#119)
Port the User Input feature from the previous version of the app. This
is currently being used to verify a few different prompts for ssh.
2024-07-18 15:21:33 -07:00
Red J Adaya
2a81f19b15
code editor header controls (#117) 2024-07-17 23:41:33 -07:00
Evan Simkowitz
238f4633c6
update license blurbs 2024-07-17 19:46:17 -07:00
Evan Simkowitz
4d29dd5b5f
Rename endpoint functions 2024-07-17 18:49:27 -07:00
Evan Simkowitz
8971e2feba
Set up electron-builder for new app (#113)
Adds electron-builder, which we will use to package and distribute our
application, same as in the existing app.
Replaces explicit port assignments with dynamic ones, which are then
stored into environment variables.
Adds a ~/.w2-dev folder for use when running a dev build.

The build-helper pipeline from the old repo is included here too, but it
is not updated yet so it will fail.

Also removes some redundant utility functions and cleans up some let vs.
const usage.

The packaging can be run using the `package:prod` and `package:dev`
tasks.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-17 18:42:49 -07:00
sawka
e4204b96d8 remove dirnav, small formatting changes 2024-07-17 16:11:16 -07:00
sawka
dfa0245606 consolidate theme colors 2024-07-17 16:01:11 -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
Sylvie Crowe
b178434c0a
Directory Formatting (#109)
Mostly small style changes so far.
- allow scrolling the table horizontally
- minimum sizes on columns
- datetime format changes
- left/right justify on some columns
2024-07-16 13:24:04 -07:00
Red J Adaya
e140076801
webview controls (#110) 2024-07-15 09:40:28 -07:00
Jarek Ceborski
e012cc16e6 Added window transparency ans styles 2024-07-12 21:12:34 +02:00
Red J Adaya
7bd0b743f4
dynamic csvview height (#101) 2024-07-10 15:06:19 -07:00
Sylvia Crowe
13f68c0cb8 fix: remove x overflow on directory view
The header wasn't moving along with the rows when they were scrolled, so
the scroll bar has been removed.
2024-07-10 02:36:41 -07:00
Sylvie Crowe
cb77c2047e
More Directory Formatting (#108)
This makes the following changes
- allow directory rows to overflow their container on resize (allowing
scroll as a temporary test)
- fix directory width to account for resizer width
- add ellipsis to name column on table resize
- add the rightmost resizer back (more as a temporary test)
- do not search when the filtered contents are empty
- cap the index to the end of the list of the number of entries becomes
less than the current index
- do not redo backend call on filter or search of directory results
- add letter spacing on header row
2024-07-10 02:21:29 -07:00
Red J Adaya
ff8fe94b1c
use flexbox for responsive waveai (#107) 2024-07-09 18:15:37 -07:00
sawka
be392ee755 start unix domain socket server. fix a couple small bugs 2024-07-09 14:31:16 -07:00
sawka
edf4c45a6d remove height calculation (flex seems to work), also synchronize meta.url with the real url 2024-07-09 11:42:24 -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
c57c7ea220 useAtomValueSafe 2024-07-08 18:30:11 -07:00
Sylvie Crowe
f4702cca29
More Directory Formatting (#103)
This change is to make general directory formatting match the current
designs in figma. It doesn't change the resize behavior yet, but that
will be added very soon.
2024-07-08 16:42:01 -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
sawka
68db3d4757 fix object-fit 2024-07-08 15:20:52 -07:00
Mike Sawka
848a9af9a0
dynamic header updates (#102) 2024-07-08 15:04:48 -07:00
Red J Adaya
0cb9b8940b
new tabs design 2 (#100) 2024-07-08 15:02:52 -07:00
Red J Adaya
186ca686e3
use useParentHeight hook in waveai (#97) 2024-07-05 20:02:49 -07:00
Red J Adaya
1d83062507
new tabs design (#99) 2024-07-05 19:54:28 -07:00
sawka
b0ca64f3cb null check 2024-07-05 16:20:36 -07:00
sawka
15cc681b4b testing new default header 2024-07-05 15:47:35 -07:00
sawka
a382d5d41e fix inter font for variable weight 2024-07-05 14:57:11 -07:00
sawka
85d8bd35c7 switch to use hacknerdmono font 2024-07-05 14:23:39 -07:00
sawka
11a4e4b2e1 switch to inter font 2024-07-05 14:09:27 -07:00
Red J Adaya
9b3042829c
ai chat enhancements (#96) 2024-07-04 09:07:29 -07:00
Red J Adaya
d8ff2cb806
height adjuster (#94)
This hook observes and returns the current height of a component.
2024-07-04 09:07:06 -07:00
Red J Adaya
cbd8512ed6
remove duplicate css vars (#95) 2024-07-04 09:04:59 -07:00
Evan Simkowitz
449f8bf7ef
Fix error where resize handle doesn't work after creating new block 2024-07-03 15:31:39 -07:00
sawka
741ea2d0ae null pointer defense for widgets. log settings.json at startup in console 2024-07-03 14:44:48 -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
sawka
b2cdd441d1 keydownWrapper 2024-06-28 17:53:35 -07:00
Evan Simkowitz
50a4074c39
Fix new window from menu bar (#91)
Fixes the New Window menu item so that it shows the new window after it
loads and captures any errors that occur. Also adds a keyboard shortcut
for new window and uses the native shortcut for close window.
2024-06-28 16:24:40 -07:00
Red J Adaya
4c45bca56b
webview fixes (#88)
- Added restart button
- Handle localhost URLs
- Handle in-page navigation(SPA)
2024-06-28 14:53:50 -07:00
Sylvie Crowe
ecd2464bbf
Hidden Files (#86)
Adds the following changes
- rename "Permissions" to "Perm"
- use a "-" if the mimetype is unknown
- add a button to hide and show hidden files
- fix the datetime to format based on how far in the past the date is
2024-06-27 18:13:42 -07:00
Red J Adaya
4d4e026749
webview fixes (#83) 2024-06-27 18:09:30 -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
Evan Simkowitz
c9cf88eb5e
Use translate3d for layout transforms to trick browser into using GPU acceleration (#85) 2024-06-27 14:36:58 -07:00
Sylvie Crowe
23e1c8797d
Search Fixes (#84)
This change:
- now clears the search box when entering a new directory
- fixes some styling issues
- adds a .. to the path
- uses the correct path (except on the initial start of the directory
widget)
2024-06-27 12:30:08 -07:00
Sylvia Crowe
76c909114e refactor: clean up debug log messages 2024-06-26 17:01:12 -07:00
Sylvie Crowe
5da3257031
Directory Search (#82)
This adds a frontend directory search by filtering out files that don't
match. It also allows navigation of the directory using the arrow keys
while maintaining focus on the search box.
2024-06-26 16:59:45 -07:00
Evan Simkowitz
638883eef9
Fix Storybook for TileLayout (#81)
Fix typing of memoized TileLayout component, fix broken Vite config,
upgrade Storybook to latest.
2024-06-26 12:22:27 -07:00
Sylvie Crowe
0a8c97858c
Download File Option (#80)
This adds to the context menu to give the ability to download a file. It
also fixes a couple bugs and improves some formatting of the directory
view.
2024-06-26 12:14:59 -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
sawka
f036459dd5 remove console.log 2024-06-25 14:57:08 -07:00
Mike Sawka
7b93354657
initial implementation of move block to window (#77) 2024-06-25 14:56:37 -07:00
Sylvie Crowe
182c5f6e3d
Open New Block and Delete Files (#76)
This implements the behavior for the context menu recently added to the
directories. Open New Block simply opens the file in a preview in a new
block.

Delete files will delete the selected file, but it does not trigger a
rerender at this time. To see the change, you must navigate to a
different directory and then return. This will be fixed in a future
update.
2024-06-25 13:53:55 -07:00
Sylvie Crowe
a012de8413
Sorting and Context Menu (#75)
This enables directory sorting by clicking on the header for the column
you want to sort. It also pops up a different context menu for items in
the directory view. The behavior for the context menu items still needs
to be implemented.
2024-06-25 12:37:58 -07:00
sawka
7bf64fb268 wsh view works -- uses a WS event to send to the frontend 2024-06-24 19:04:08 -07:00
sawka
3d00a05aa0 only prevent default if we capture the key 2024-06-24 18:57:01 -07:00
sawka
bd2bb5293f enable copy/paste via Cmd:Shift:C and Cmd:Shift:V in the terminal 2024-06-24 17:58:40 -07:00
sawka
b2e12e4171 reimplement closetab context menu 2024-06-24 17:50:06 -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
Red J Adaya
edb8eb25b8
CSV view (#73) 2024-06-24 10:17:35 -07:00
Red J Adaya
4714b88be7
Move tab bar to top edge (#72) 2024-06-23 12:03:09 -07:00
Sylvie Crowe
c2b8b32b44
New Directory View Columns (#71)
This adds several new columns to the directory view. It adds a last
modified timestamp, a logo for the type, human-readable file sizes, and
permissions. Several of these are configurable via the
config/settings.json file.
2024-06-22 00:41:49 -07:00
sawka
b668138ae0 fix null ptr 2024-06-21 16:59:09 -07:00
sawka
2d1c55471c mimetype to icon function 2024-06-21 16:40:24 -07:00
sawka
83ca76b6b4 only materialize the fileContentAtom when necessary 2024-06-21 16:22:59 -07:00
sawka
544dba6f8a add streaming icons 2024-06-21 16:11:34 -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
sawka
312ee5af59 remove visualViewport hack (needed for Safari) 2024-06-21 13:27:21 -07:00
sawka
516f1faa47 fix ordering of typeunions in generated typescript. add term config fontsize and fontfamily. 2024-06-21 13:23:07 -07:00
sawka
cddff22f7c fix font smoothing 2024-06-21 12:56:07 -07:00
sawka
e583cefbea fix term colors, and import the term.less file 2024-06-21 12:51:17 -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
Red J Adaya
9cc5d9d3ae
Add ability to edit tab name (#67) 2024-06-21 10:23:04 -07:00
Evan Simkowitz
2c6f6d917f
Fix greedy rendering of drag preview (#68) 2024-06-21 10:18:35 -07:00
Red J Adaya
b8b03ea817
Scrollable tab bar fixes (#69) 2024-06-21 10:18:13 -07:00
Red J Adaya
e83b5c8763
Scrollable tabs using OverlayScrollbars (#60) 2024-06-20 20:04:00 -07:00
sawka
b73148be6b fix emain 2024-06-20 16:20:50 -07:00
Mike Sawka
5e655c7c55
refactor cmdqueue out of blockcontroller (#65) 2024-06-20 16:01:55 -07:00
sawka
68ca79fcbc update widgets, add label, color, description, change top two widgets 2024-06-20 13:03:50 -07:00
sawka
d59e0f5959 add contextmenu model, example code in block.tsx 2024-06-20 12:34:32 -07:00
Sylvie Crowe
21fa9a601f
Add filewatcher for config files (#63)
This adds the filewatcher and forwards events to the frontend. It also
sets up the widgets as something that can be controlled with a config
file.
2024-06-19 23:59:41 -07:00
sawka
c7f76d5ced implement drag handles 2024-06-19 23:00:57 -07:00
Mike Sawka
fb668fd4e5
multi-window support (#62) 2024-06-19 19:10:53 -07:00
sawka
5c6cfbc112 terminal context menu 2024-06-19 15:42:33 -07:00
Evan Simkowitz
58684744b0
update imports 2024-06-19 12:22:34 -07:00
Evan Simkowitz
264d6568e2
remove unnecessary log 2024-06-19 12:18:43 -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
Evan Simkowitz
da20973fee
update comment on getApi 2024-06-19 11:20:35 -07:00
Evan Simkowitz
bfa4bb259e
Clear a drag placeholder if the user drags an item out of the layout's hit trap (#61) 2024-06-19 11:15:14 -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
Evan Simkowitz
9ff8cb0292
add new test for placeholder noop 2024-06-18 16:06:19 -07:00
Evan Simkowitz
a3a576bd6d
Don't show the placeholder if the action will be a no-op (#58)
Update the computeMove function to only set pendingAction if the action
is not a no-op (i.e. it will not place the node adjacent to itself at
the same level). Also clears the pendingAction if the user hovers over
the node that is being dragged.
2024-06-18 16:03:00 -07:00
Mike Sawka
4ded6d94b6
stickers and terminal serialization (#57) 2024-06-17 22:38:48 -07:00
Red J Adaya
b6c85e38f6
DnD tabs (#44) 2024-06-17 21:50:33 -07:00
Evan Simkowitz
9adecebbf2
remove unnecessary useCallback in Widgets component 2024-06-17 14:23:57 -07:00
Evan Simkowitz
bd93504314
Add comments for swapNode 2024-06-17 14:18:27 -07:00
Evan Simkowitz
48d4611a05
Add Swap Node functionality (#56)
Adds the ability to swap nodes by dragging to the center of a tile.

Also fixes a bug where moving a node to a new lesser index under the
same parent would produce a no-op.
2024-06-17 14:14:09 -07:00
sawka
b71ae8e6e8 move terminal into its own directory under view 2024-06-17 10:18:38 -07:00
Mike Sawka
e46906d423
wsh rpc working (#55)
lots of iterations on an RPC protocol. getting wsh working with a
getmeta/setmeta command in addition to html mode.
2024-06-17 09:58:28 -07:00
sawka
9743395eb7 some styling for the block close button 2024-06-14 11:15:36 -07:00
sawka
f0fb70ef9c get pdf preview working 2024-06-14 11:10:54 -07:00
sawka
29c2b6bc7f working on a hover state for the headers 2024-06-14 10:46:03 -07:00
sawka
b7b813a4a7 Cmd-ESC now toggles both ways 2024-06-14 00:15:09 -07:00
Mike Sawka
8e3540f754
working on ijson and wsh magic (#53) 2024-06-13 23:54:04 -07:00
Evan Simkowitz
0b80dbcb72
Fix preview rendering in TileLayout storybook 2024-06-13 23:08:11 -07:00
Evan Simkowitz
1f9dada759
Rename LeafNode to DisplayNode 2024-06-13 19:36:06 -07:00
Evan Simkowitz
ca0b875ac9
Adding more verbose docstrings for the TileLayout (#51) 2024-06-13 19:33:06 -07:00
Evan Simkowitz
205afe9998
Remove reference to old Wails binding (#50)
This is now covered by gotypes.d.ts so we don't need the Wails binding ref anymore
2024-06-13 18:31:42 -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
Mike Sawka
0f992c535d
working on wave OSC escapes, modes for the terminal (#46) 2024-06-13 14:41:28 -07:00
sawka
8a71180f20 implement wscommand using type union interface, send resize events there 2024-06-12 14:18:03 -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
sawka
605b9ea048 remove wails deps 2024-06-12 11:58:17 -07:00
Mike Sawka
1874d9a252
port to electron (#33) 2024-06-11 17:42:10 -07:00
Evan Simkowitz
9f32a53485
Fix preview getting unset when app is idle (#43)
I found that the drag preview images would get unset when the app went idle. I am now caching the preview image and resetting it every time a user hovers over a TileNode. I am also updating the logic for the placeholder slightly to reduce the number of variables floating around.
2024-06-11 16:28:41 -07:00
Evan Simkowitz
1b52160794
Remove unnecessary generic definition (#42) 2024-06-11 16:19:17 -07:00
Evan Simkowitz
8b61c4d62b
Add webkit-prefixed user-select attributes (#41)
It turns out that WebKit uses its own prefix for user-select so I'm adding this everywhere we currently define user-select, as well as a few new places
2024-06-11 16:16:52 -07:00
Evan Simkowitz
9809414eb0
Fix order of operations when moving nodes (#40)
Insert the node at the new location before removing it from its old location. With the old order, removing a node from its parent could change the indexing of the parent node, if moving a node to a new location under the same parent.
2024-06-11 15:10:20 -07:00
Evan Simkowitz
cff7a54507
Ensure previews don't wrap text (#39) 2024-06-11 14:51:35 -07:00
Evan Simkowitz
525f20ba81
Disable text selection on tab bar and block headers (#38) 2024-06-11 14:33:24 -07:00
Evan Simkowitz
4293c749c4
Only generate a preview image on first onPointerEnter event (#37)
This resolves a noticeable delay when the first paint required generating multiple preview images
2024-06-11 14:28:17 -07:00
Evan Simkowitz
1be376c679
Remove debugging statement when generating drag previews (#36) 2024-06-11 13:25:21 -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
Evan Simkowitz
45a9a95e38
Fix nodeRefs dependency, since map is not a reliable dependency (#31) 2024-06-10 15:16:29 -07:00
Evan Simkowitz
57e5b7284f
Forgot to set generation atom (#28) 2024-06-06 18:07:00 -07:00
Evan Simkowitz
86109daeed
Record a generation when the layout node gets updated to optimize backend calls (#27) 2024-06-06 18:04:54 -07:00
Evan Simkowitz
441463b172
Add placeholder for layout drag and drop (#26) 2024-06-06 17:58:37 -07:00
Evan Simkowitz
2b456f9725
Remove ref dependencies on term (#25) 2024-06-06 15:08:39 -07:00
Evan Simkowitz
2866862253
Replace lots of separate ResizeObservers with a single one via useResizeObserver (#24) 2024-06-06 14:57:37 -07:00
Sylvie Crowe
ba7d2cf061
Automatically Detect Monaco Syntax Highlighting (#20)
This change passes the file name to monaco, so it can use its own
detection to determine highlighting of supported files. It also resolves
some of the mimetypes with more common use cases for a terminal.
2024-06-06 14:52:01 -07:00
Evan Simkowitz
b3b99402b8
Fix undefined error when unmounting resize observer (#23) 2024-06-06 11:27:33 -07:00
Evan Simkowitz
1bc4e0c594
Use resize observer to detect when the webview gets zoomed (#22)
I noticed that the display nodes weren't getting updated when the browser zoom level changed. I found that using ResizeObserver was a better mechanism to capture this signal.
2024-06-06 11:18:05 -07:00
Evan Simkowitz
f12e246c15
Break layout node into its own Wave Object (#21)
I am updating the layout node setup to write to its own wave object. 

The existing setup requires me to plumb the layout updates through every
time the tab gets updated, which produces a lot of annoying and
unintuitive design patterns. With this new setup, the tab object doesn't
get written to when the layout changes, only the layout object will get
written to. This prevents collisions when both the tab object and the
layout node object are getting updated, such as when a new block is
added or deleted.
2024-06-05 17:21:40 -07:00
Evan Simkowitz
28cef5f22f
Add ready param to determine when to render content (#19) 2024-06-05 11:56:04 -07:00
sawka
cf85ad0980 debounce resize handler, fix useEffect() in term.tsx 2024-06-04 23:47:18 -07:00
Sylvie Crowe
2f2ff8a1cb
Extra Mimetypes (#17)
Vastly expands the list of mimetypes we can detect from file extensions.
2024-06-04 17:58:29 -07:00
Evan Simkowitz
29e209e0b0
Make layouts flow horizontally by default (#18) 2024-06-04 16:35:32 -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
Sylvia Crowe
73d52b24f2 refactor: clean up unused custom css properties
This cleans up the unused/unnecessary css properties added around the
same time as the modal component. This mostly refers to variables that
started with --app. They have been removed and their uses have been
replaced with other defaults. The --warning-color and --success-color
properties still exist despite being unused since they seem to fit with
the --error-color which is already in use.
2024-06-04 10:30:27 -07:00
sawka
0b464cecfe fix safari viewport zoom issue 2024-06-03 23:18:44 -07:00
sawka
6682fc9234 small change to tab bar 2024-06-03 22:26:12 -07:00
sawka
80f9447c21 remove some padding/margin, style scrollbars 2024-06-03 22:18:54 -07:00
sawka
0164851cf6 move ijson frontend/backend to nextwave 2024-06-03 18:25:12 -07:00
sawka
198b66ed7b some styling for the directory table 2024-06-03 18:22:26 -07:00
Sylvia Crowe
b12417101e Merge branch 'main' into sylvie/backwards-nav 2024-06-03 15:55:48 -07:00
Sylvia Crowe
28d02f760c feat: add background navigation bar
This allows traversal backwards in a preview block.
2024-06-03 15:50:51 -07:00
sawka
f90554e87e not found should return null 2024-06-03 13:43:50 -07:00
Sylvia Crowe
bf3a036df9 fix: recreate full directory path and fix hooks
This fixes two bugs. The first had to do with the path library not
working in prod. That involved making a simple version of it that works
in the meantime. The other is rendering a different number of hooks
which required moving hooks outside of an if statement.
2024-06-03 13:24:20 -07:00
sawka
f148d7fcf2 change to /wave/file, update blockid to zoneid 2024-06-03 13:22:44 -07:00
sawka
8f04e0163a add pdf preview 2024-06-03 13:13:41 -07:00
sawka
3c86bfea8d integrate codeedit loader (just hello world for now) 2024-06-03 11:35:06 -07:00
Mike Sawka
2472deb379
Merge pull request #11 from wavetermdev/sawka/use-blockstore
use blockstore, save/restore terminal state output (tab switching or app restart)
2024-05-29 00:30:52 -07:00
sawka
02cda396e8 restore terminal state when loading term view 2024-05-29 00:28:25 -07:00
Sylvia Crowe
b9f6da57f9 feat: add basic directory navigation in preview
Note: this does not add backwards navigation and will break if
attempting to open certain types of files.
2024-05-29 00:00:36 -07:00
sawka
7a54b79bda added getWaveObjectAtom 2024-05-28 17:17:52 -07:00
sawka
609f2ec85c the useWaveObject() setter now writes back to the DB. make metadata setting generic 2024-05-28 15:41:03 -07:00
sawka
f184723354 add useBlockCache() -- can migrate from useBlockAtom 2024-05-28 14:26:43 -07:00
sawka
5edb882955 add an updatemetadata call to objectservice 2024-05-28 12:18:26 -07:00
Evan Simkowitz
c49050f6ed
Fix prettier formatting 2024-05-28 12:12:28 -07:00
sawka
3f45945cb4 delete block and close tab working 2024-05-27 16:33:31 -07:00
sawka
e6d7a4e674 app is working again. new structure for blocks. new useWaveObjectValueWithSuspense hook 2024-05-27 15:44:57 -07:00
sawka
abedca2364 setactivetab working, removed tombstones, created updatetype 2024-05-27 14:31:12 -07:00
sawka
b87786febf checkpoint -- generic updates, wave object store, new setup for initialization, atoms, etc. lots of progress 2024-05-27 13:59:58 -07:00
sawka
6d3f76cb74 fe now rendering workspace/tab from db. got useWaveObject working. need to work on updates 2024-05-27 00:47:10 -07:00
sawka
95ce1cc86d checkpoint on new objectservice 2024-05-26 23:05:11 -07:00
sawka
134ba3c34c checkpoint on integratng wstore. moved to wails data structures, got immer working again, Window object, transitioned to generic DB ops, lots more 2024-05-24 15:08:24 -06:00
sawka
8173bc3c61 update blockservice to use wstore types 2024-05-22 09:23:16 -07:00
Sylvia Crowe
5f0afdce98 fix: import missing type 2024-05-21 14:57:16 -07:00
Sylvia Crowe
259bbf44db merge branch 'main' into sylvie/preview-dir 2024-05-21 13:49:49 -07:00
Sylvia Crowe
c8a8f108ba feat: configure resizable tables and basic styles 2024-05-21 12:14:04 -07:00
sawka
0eeacecc06 fix typescript errors, use wails models 2024-05-21 11:46:54 -07:00
sawka
901334eb49 new wails bindings format working 2024-05-21 11:09:22 -07:00
Sylvia Crowe
304a54a994 feat: integrate react-table in directory view 2024-05-20 16:08:45 -07:00
Sylvia Crowe
72dbf94f9a feat: pass contents of directory to front end
This mainly focuses on passing directory info to the front end. It isn't
a complete version of that, but it's enough to plan out some details of
the styling
2024-05-20 11:39:23 -07:00
sawka
146bade6f1 streaming images, audio, and video 2024-05-16 22:48:23 -07:00
sawka
d34ccfd7ab process static command / block commands. setmeta, setview 2024-05-16 18:01:52 -07:00
Sylvia Crowe
27dff6997f styles: update modal-sizing 2024-05-16 16:27:44 -07:00
Sylvia Crowe
afd125a77e feat: integrate plots into new block setup 2024-05-16 13:54:15 -07:00
Sylvia Crowe
e54f134770 feat: restore unmodified plot on cancel 2024-05-16 13:42:49 -07:00
sawka
b721f59166 hook up close block to backend to remove the running process 2024-05-16 13:40:23 -07:00
sawka
91d7392c34 add a 'close block' button 2024-05-16 13:22:46 -07:00
Sylvia Crowe
cddaff4f7e feat: add modals 2024-05-16 13:11:02 -07:00
sawka
eab6afb91a create block using a blockdef. better controller control. preview that takes a file. atom caching per block. lots of updates 2024-05-16 00:29:58 -07:00
Sylvia Crowe
c82bc48aab style: improve plot style with colors and position
This improves the styles surrounding the plot and the input box.
2024-05-15 14:50:42 -07:00
Sylvia Crowe
c826d8e840 fix: move plotblock to plotview
Plots should be types of views instead of blocks. This corrects that.
2024-05-15 13:36:50 -07:00
Sylvia Crowe
a093486607 merge branch 'main' into sylvie/plotting 2024-05-15 13:05:25 -07:00
Sylvia Crowe
e0a0273309 fix: switch input to textarea 2024-05-15 13:04:16 -07:00
Sylvia Crowe
1f85bfe944 fix: remove hardcoded data state
This adds an example that works to load in data properly without the
hard-coded data
2024-05-15 12:05:36 -07:00
sawka
86b2596214 terminal working, not prod ready, but it works 2024-05-14 23:25:21 -07:00
sawka
5b2a5eb5eb resize observer + run an ls command 2024-05-14 22:37:19 -07:00
Sylvia Crowe
1290d56397 feat: allow user-supplied function to run plot
This allows user to customize their plot as desired. It does not allow
arbitrary data to be used yet.
2024-05-14 16:53:56 -07:00
sawka
35c6b232fc round trip a message to the backend that updates the terminal fe component 2024-05-14 16:53:03 -07:00
Sylvia Crowe
a228267b43 feat: basic plotting example
This adds a basic plot to tabs in a naive, hardcoded way. This will be
updated to be more customizable.
2024-05-14 13:48:53 -07:00
sawka
91a3394602 load README.md into preview view 2024-05-14 12:29:41 -07:00
sawka
1db615bb3a markdown preview 2024-05-14 09:37:41 -07:00
sawka
540f2fe0c0 more structure, store, types, views, global store to track tabs/blocks. two views 2024-05-13 23:45:41 -07:00
sawka
77a4987384 big reorg, move frontend to the top level, moves yarn, node_modules, vite, etc. 2024-05-13 21:42:25 -07:00
sawka
03262fdefa working on more concepts, tabbar, ids, etc. 2024-05-13 15:40:52 -07:00
sawka
4529a7d07f more tab/block structure 2024-05-13 15:10:31 -07:00
sawka
247b73c1e4 working on flex styles 2024-05-13 14:48:59 -07:00
sawka
a01b5a6bdd split block into its own file, add fonts, add fontawesome, get xterm styles, get xtermjs loaded 2024-05-13 14:40:18 -07:00
sawka
d8367233da give the app a bit more structure, workspace/tab/block 2024-05-13 13:59:44 -07:00
sawka
da03fbe8f2 blockstore setup/migrations, wavebase setup 2024-05-12 09:52:12 -07:00
sawka
79d6ac0403 initial commit. trim down and customize wails3 setup. 2024-05-09 20:24:24 -07:00