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