Commit Graph

792 Commits

Author SHA1 Message Date
Sylvie Crowe
7df587d9a4
Speed Up Ai (#911)
fix: remove ai frontend throttling
2024-09-30 22:14:30 -07:00
Mike Sawka
72e24900f4
quick hack to try to reserve some alt keys from the terminal (#915) 2024-09-30 21:48:02 -07:00
Mike Sawka
2fa88c4e50
add term:localshellopts (#914) 2024-09-30 21:19:07 -07:00
Mike Sawka
8460620196
try to get meta tag to detect color (#908) 2024-09-30 13:51:01 -07:00
Mike Sawka
cacde1b0ba
fix use dimensions hook (#905) 2024-09-30 12:19:29 -07:00
Mike Sawka
cafce7aed3
fix app-background zindex (#893) 2024-09-27 13:42:18 -07:00
Mike Sawka
5d8fa2e8d9
all data urls in bg. also fix setmeta to only split on the first equal sign (#889) 2024-09-26 23:07:06 -07:00
Red J Adaya
5ecb285339
menu (#846) 2024-09-26 18:21:28 -07:00
Mike Sawka
29b80bc028
support fish shell with wsh (#874) 2024-09-26 15:34:52 -07:00
Sylvie Crowe
de92e53c38
Checkbox and Radio Context Menu Items (#861)
Expands the context menu to allow checkbox and radio button items.
2024-09-25 20:53:32 -07:00
Mike Sawka
fbbacbc09b
legacy message for v7 upgrades (#858) 2024-09-25 15:52:12 -07:00
Evan Simkowitz
168b5aca39
Add Legacy docs link, update primary docs link (#848) 2024-09-25 10:43:29 -07:00
Evan Simkowitz
4b665dec90
Add setting to disable Chromium hardware acceleration (#847) 2024-09-25 10:08:15 -07:00
Evan Simkowitz
0f09a70836
Add native titlebar setting (#837) 2024-09-24 22:05:38 -07:00
Evan Simkowitz
762075db5a
Fix two lingering The Next Wave references (#834) 2024-09-24 21:02:11 -07:00
Evan Simkowitz
47ad232901
Add back the acknowledgements readme, update about modal link (#818) 2024-09-24 16:58:18 -07:00
Sylvie Crowe
4ff247d2f2
Directory View Parent Directory Button (#805)
Add a button in the directory view to easily navigate to the parent of
the current directory.
2024-09-23 19:02:17 -07:00
Sylvie Crowe
7708db7060
Docs Site Link (#804)
Add a link to the docs site in the help block.
2024-09-23 18:58:46 -07:00
Mike Sawka
62cc9d8a6b
telemetry fix, log no-telemetry (#802) 2024-09-23 13:33:39 -07:00
Evan Simkowitz
af38ebab54
typo in last pr 2024-09-20 13:31:12 -07:00
Evan Simkowitz
38f07ae3f9
Dismiss update banner after 10s on error (#800) 2024-09-20 13:29:37 -07:00
Mike Sawka
d344fd9b6d
fix cpu plot timing issue (#799) 2024-09-20 12:47:10 -07:00
Mike Sawka
e281cebb56
tips update (add to starter layout) (#796) 2024-09-20 12:17:49 -07:00
Mike Sawka
65c446e4a1
wash meta.url through url search (#795) 2024-09-20 11:34:04 -07:00
Mike Sawka
047513bf3a
default url, default search, open in external browser (#794) 2024-09-20 11:24:37 -07:00
Sylvie Crowe
071a051382
Remember Markdown Changes (#790)
This addresses issues of saved markdown changes not showing up when
switching to the rendered preview. It has some limitations as it does
not preserve the state when changing tabs or refreshing the app.
2024-09-19 18:32:36 -07:00
sawka
8fb831fac6 focus selection stuff 2024-09-19 16:47:59 -07:00
Evan Simkowitz
7c2268fb81
fix for new tab thing (#792) 2024-09-19 16:08:59 -07:00
Sylvia Crowe
466a659ef2 fix: remove debounce on setTreeStateAtomUpdated 2024-09-19 16:02:59 -07:00
Sylvia Crowe
5d62613fb8 fix: add async explicitly for debounce output 2024-09-19 15:59:26 -07:00
sawka
b805014837 fix widget key 2024-09-19 14:49:57 -07:00
sawka
c31bd4a94d thenextwave cleanups 2024-09-19 14:04:47 -07:00
sawka
064fe2eff4 Merge remote-tracking branch 'thenextwave/main' into wave8 2024-09-19 13:54:19 -07:00
Evan Simkowitz
11405219f2
bad yarn.lock file in frontend dir 2024-09-19 13:01:14 -07:00
Evan Simkowitz
7126c47ecc
Fix missing new tab layouts (#402) 2024-09-19 12:59:09 -07:00
Evan Simkowitz
708af7efde
Move env vars to vite config 2024-09-19 12:37:16 -07:00
Evan Simkowitz
839889ba63
missed another break 2024-09-19 12:23:06 -07:00
Evan Simkowitz
f14b4c6f11
missed a break 2024-09-19 12:22:23 -07:00
Sylvie Crowe
f4c52d0037
Tips Component (#789)
Add the tips as a component in addition to the initial modal.
2024-09-19 11:32:24 -07:00
Evan Simkowitz
370ea132fe
Save update channel to user setting automatically (#401)
When a user first launches Wave, we will read the updater config and
store the channel as a user setting for use on future launches. This
should ensure that if a user on a beta channel gets updated to a latest
release, they will still be subscribed to beta releases going forward.
If a user manually updates the user setting, it will be honored.

---------

Co-authored-by: sawka <mike@commandline.dev>
2024-09-19 11:04:18 -07:00
Evan Simkowitz
4c3496c5e1
Fix WebSocket compatibility with Rollup (#398) 2024-09-19 10:53:06 -07:00
Red J Adaya
dbf88d82b7
use css vars for button colors (#399) 2024-09-19 10:44:12 -07:00
Red J Adaya
a50431ce2b
fix link styles regression in about modal (#400) 2024-09-19 10:43:32 -07:00
Mike Sawka
d2366df9db
updated ws loading code (#397) 2024-09-19 10:42:53 -07:00
Evan Simkowitz
231c960ca8
missed a change 2024-09-18 14:30:45 -07:00
Evan Simkowitz
e5e6259dec
Show updater status banner for all statuses (#396)
Also adds updater channel to about modal
2024-09-18 14:25:52 -07:00
Evan Simkowitz
3ade98879b
Fix button disabled behavior 2024-09-18 14:14:03 -07:00
Mike Sawka
c7a60a80f8
initwshrpc in electron (#391) 2024-09-17 23:10:09 -07:00
Red J Adaya
dae72e7009
more on button refactor (#388)
- Removed opacity for hover effect. Now uses a brighter variant of color
- Updated other Button usages
2024-09-17 22:38:17 -07:00
Sylvie Crowe
040bcf49b7
Remove Tips Modal (#393)
This tips modal wasn't discovered often enough in tests, so we are
removing it.
2024-09-17 14:29:44 -07:00
Evan Simkowitz
5b7535d08f
Add release channels (#385)
## New release flow

1. Run "Bump Version" workflow with the desired version bump and the
prerelease flag set to `true`. This will push a new version bump to the
target branch and create a new git tag.
    - See below for more info on how the version bumping works.
2. A new "Build Helper" workflow run will kick off automatically for the
new tag. Once it is complete, test the new build locally by downloading
with the [download
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/download-staged-artifact.sh).
3. Release the new build using the [publish
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/publish-from-staging.sh).
This will trigger electron-updater to distribute the package to beta
users.
4. Run "Bump Version" again with a release bump (either `major`,
`minor`, or `patch`) and the prerelease flag set to `false`.
6. Release the new build to all channels using the [publish
script](https://github.com/wavetermdev/thenextwave/blob/main/scripts/artifacts/publish-from-staging.sh).
This will trigger electron-updater to distribute the package to all
users.

## Change Summary

Creates a new "Bump Version" workflow to manage versioning and tag
creation.

Build Helper is now automated.

### Version bumps

Updates the `version.cjs` script so that an argument can be passed to
trigger a version bump. Under the hood, this utilizes NPM's `semver`
package.

If arguments are present, the version will be bumped.
If only a single argument is given, the following are valid inputs:
    - `none`: No-op.
    - `patch`: Bumps the patch version.
    - `minor`: Bumps the minor version.
    - `major`: Bumps the major version.
    - '1', 'true': Bumps the prerelease version.
If two arguments are given, the first argument must be either `none`,
`patch`, `minor`, or `major`. The second argument must be `1` or `true`
to bump the prerelease version.

### electron-builder

We are now using the release channels support in electron-builder. This
will automatically detect the channel being built based on the package
version to determine which channel update files need to be generated.
See
[here](https://www.electron.build/tutorials/release-using-channels.html)
for more information.

### Github Actions

#### Bump Version

This adds a new "Bump Version" workflow for managing versioning and
queuing new builds. When run, this workflow will bump the version,
create a new tag, and push the changes to the target branch. There is a
new dropdown when queuing the "Bump Version" workflow to select what
kind of version bump to perform. A bump must always be performed when
running a new build to ensure consistency.

I had to create a GitHub App to grant write permissions to our main
branch for the version bump commits. I've made a separate workflow file
to manage the version bump commits, which should help prevent tampering.
Thanks to using the GitHub API directly, I am able to make these commits
signed!

#### Build Helper

Build Helper is now triggered when new tags are created, rather than
being triggered automatically. This ensures we're always creating
artifacts from known checkpoints.

### Settings

Adds a new `autoupdate:channel` configuration to the settings file. If
unset, the default from the artifact will be used (should correspond to
the channel of the artifact when downloaded).

## Future Work

I want to add a release workflow that will automatically copy over the
corresponding version artifacts to the release bucket when a new GitHub
Release is created.

I also want to separate versions into separate subdirectories in the
release bucket so we can clean them up more-easily.

---------

Co-authored-by: wave-builder <builds@commandline.dev>
Co-authored-by: wave-builder[bot] <181805596+wave-builder[bot]@users.noreply.github.com>
2024-09-17 13:10:35 -07:00
sawka
f7272c6375 remove aichat-input opacity 2024-09-17 00:10:42 -07:00
Mike Sawka
46eb164778
tos page 2 -- quick tips (#387) 2024-09-16 23:45:47 -07:00
Sylvie Crowe
ea19444710
Various Bug Fixes and UI Improvements (#386)
This change adds
- performance improvements for ai chat
- new ai chat user interface
- open blank files with codeedit
- fix for userinput password modal
2024-09-16 22:59:09 -07:00
Red J Adaya
09f4616ae0
button refactor (#383)
Refactored to be more flexible. Now, it has three types

- solid
- outline
- ghost

and subtypes

- green
- grey
- red
- yellow

It defaults to solid and green when no className is provided. It
concatenates defaults if custom classNames are provided.
2024-09-16 22:23:05 -07:00
sawka
dbdcc49ff2 add ws reconnect handlers -- wps + route announcements 2024-09-16 19:35:36 -07:00
Evan Simkowitz
fd6e92ee2c
Clear previous layout when applying portable layout to tab (#382) 2024-09-16 17:26:37 -07:00
Evan Simkowitz
f6362a3a15
Upgrade Storybook and disable TileLayout story for now 2024-09-16 13:16:04 -07:00
Evan Simkowitz
47995c12ad
disable TileLayout story for now 2024-09-16 13:14:06 -07:00
sawka
9873b27977 fix button colors/outlines 2024-09-16 12:26:06 -07:00
Mike Sawka
3939648bbb
fe wsh router + wsh client impl (#381) 2024-09-16 11:59:39 -07:00
sawka
1de9cd4468 fix help text 2024-09-13 11:52:14 -07:00
sawka
33407715a0 fix button colors, better lightbulb, button hovers 2024-09-13 10:24:16 -07:00
Sylvie Crowe
555ab07861
Add Tips Modal for Directory (#374)
This is an experimental modal to show tips. If it helps improve
discoverability, it will be improved in the future.
2024-09-13 03:36:15 -07:00
Red J Adaya
2715c2ce30
shrink tos modal and make it scrollable when vertical space is not enough (#373) 2024-09-12 23:10:18 -07:00
Red J Adaya
04924870c1
button refactor (#372) 2024-09-12 22:22:31 -07:00
Red J Adaya
b3f7e7a2b9
fix default button text color (#370) 2024-09-12 17:49:57 -07:00
Mike Sawka
174cf3d39d
flash error messages (#369) 2024-09-12 16:02:18 -07:00
Evan Simkowitz
936d4bfb30
Migrate websocket eventbus messages to wps (#367)
This migrates all remaining eventbus events sent over the websocket to
use the wps interface. WPS is more flexible for registering events and
callbacks and provides support for more reliable unsubscribes and
resubscribes.
2024-09-11 18:03:55 -07:00
Red J Adaya
df2af04a6e
telemetry fix (#365) 2024-09-11 09:26:43 -07:00
Red J Adaya
c3a02d7e33
revert tabs scroll timing (#363) 2024-09-10 23:22:32 -07:00
Red J Adaya
f6fc0125fd
fix issue where tabs are immediately visible while they're still stacked on load (#362)
This fixes the visual bug where the active tab seems to be the first tab
and then switches to the actual active tab after the tabs are
positioned.
2024-09-10 23:06:27 -07:00
Evan Simkowitz
8f0cd5adcf
fix latent regression from my last pr 2024-09-10 22:50:28 -07:00
Evan Simkowitz
9b12aa9882
Fix bug in TileLayout where computeMoveNode had stale node data (#361)
This was hard to debug. It manifested in nodes that had been collapsed
into their parent. When a node was dragged over the recently-collapsed
node, the placeholder would show the action as if the flex direction was
reversed. It turns out useDrag has trouble tracking changes to the
LayoutNode objects. For now, I am just finding the nodes again in the
computeMoveNode function. Later when I redo the drag system, I will fix
this better.
2024-09-10 17:23:28 -07:00
Evan Simkowitz
f3940f7456
remove unused atom 2024-09-10 15:00:28 -07:00
Evan Simkowitz
6793b41cea
remove unnecessary isUrlDirty atom 2024-09-10 14:59:34 -07:00
Evan Simkowitz
f13b608e79
remove unnecessary set 2024-09-10 14:49:20 -07:00
Evan Simkowitz
467e151aca
fix webview url not being able to be empty 2024-09-10 14:46:59 -07:00
Evan Simkowitz
29db989623
Revert "Keep changes in preview after save (#360)"
This reverts commit 13ac6af4d0.
2024-09-10 14:27:11 -07:00
Evan Simkowitz
13ac6af4d0
Keep changes in preview after save (#360)
A bit hacky, but should allow preview to update to latest file contents
after save
2024-09-10 13:37:30 -07:00
Sylvie Crowe
04fb8e5aad
Mimetype Quick Fixes (#359) 2024-09-10 13:23:02 -07:00
Mike Sawka
5fe0cae244
wsh web (#358) 2024-09-10 12:50:55 -07:00
Red J Adaya
a9486852f9
default white bg for websites with no bg (#355) 2024-09-10 12:16:34 -07:00
sawka
766a976718 errorboundary fallback, errorboundary in block frame header. fix workspace error boundary 2024-09-09 18:20:57 -07:00
Sylvia Crowe
639e796296 fix: clamp connection rowIndex to list size 2024-09-09 17:06:48 -07:00
sawka
01d98fccd2 fix nullptr startsWith 2024-09-09 16:44:26 -07:00
Sylvie Crowe
663cb2cce7
Connection Typeahead Arrow Keys (#352)
This is a first pass to get arrow keys to work with the connection
typeahead.
2024-09-09 16:26:24 -07:00
Evan Simkowitz
65a10ffb36
webview devtools 2024-09-09 15:41:26 -07:00
Evan Simkowitz
dc16d9be3d
fix makeConnRoute in preview 2024-09-09 12:42:47 -07:00
Evan Simkowitz
0d040f1155
use regular@ syntax for icon button class 2024-09-09 12:38:49 -07:00
Evan Simkowitz
9e3c9f9253
Make IconButton its own element, move CopyButton to use it (#357) 2024-09-09 12:35:53 -07:00
Evan Simkowitz
c3924daac3
fix variables for markdown code 2024-09-09 12:09:31 -07:00
Evan Simkowitz
45acc62266
remove undefined variable 2024-09-09 12:08:32 -07:00
Evan Simkowitz
331724c6c3
make code only transparent in pre tags 2024-09-09 12:05:15 -07:00
Evan Simkowitz
1cf3671ac4
remove classname from copybutton since it's already applied by default 2024-09-09 12:01:57 -07:00
Evan Simkowitz
942f7c4431
remove code background 2024-09-09 12:00:47 -07:00
Evan Simkowitz
76d5288aba
apply slug after sanitize 2024-09-09 11:58:55 -07:00
Evan Simkowitz
7c45b3679f
Add syntax highlighting to the Markdown element (#356)
Also fixes the styling for the copy button
2024-09-09 11:56:21 -07:00
Mike Sawka
f62d96ae99
fix url navigation (#353) 2024-09-07 18:22:13 -07:00
Evan Simkowitz
5e80aeb22a
remove unnecessary callback 2024-09-07 11:20:28 -07:00
Evan Simkowitz
f2050f6155
use built-in slug prefix 2024-09-07 11:18:38 -07:00
Evan Simkowitz
97b9760109
make internal heading links work 2024-09-07 11:10:10 -07:00
Evan Simkowitz
b08af477bf
fix typing some more 2024-09-07 11:01:46 -07:00
Evan Simkowitz
910683a825
clean up typing for markdown, add focusedHeading state for future links work 2024-09-07 10:59:33 -07:00
Red J Adaya
b278d11aca
do no animate tabs on load (#351) 2024-09-06 17:41:00 -07:00
Evan Simkowitz
1591a0ca26
fix extern links md 2024-09-06 17:30:19 -07:00
Evan Simkowitz
cab701d3ea
fix resolveOpts props error in md image 2024-09-06 17:23:30 -07:00
Evan Simkowitz
88158289d2
remove debug log 2024-09-06 17:13:30 -07:00
Evan Simkowitz
6117929081
fix links in md preview when there's more than one heading with same name 2024-09-06 17:11:11 -07:00
Evan Simkowitz
1a7fb41182
Add back memoization for toc 2024-09-06 16:32:29 -07:00
Evan Simkowitz
afe73c3e85
Make the debounced node inner rect hook more reliable (#350)
Rather than try to track the transition state, which was proving
unreliable, I am just directly tracking the node state and determining
whether to debounce the inner rect based on whether the user has the
prefers-reduced-motion setting or query, whether the node is resizing,
and whether it's currently magnified. I'm then using the actual
animation time setting to determine how long to debounce.
2024-09-06 16:20:27 -07:00
sawka
30c1d56be6 fix condition 2024-09-06 16:13:16 -07:00
Evan Simkowitz
bd43a4b61d
clean up imports for markdown 2024-09-06 15:19:15 -07:00
Evan Simkowitz
9f5ccddad2
Improve markdown TOC scrolling (#349)
Use a better system for scrolling using scrollTo on the
OverlayScrollbars ref. This lets me get the heading as close to the top
of the viewport as possible without the convoluted CSS tricks I was
trying before.
2024-09-06 15:11:46 -07:00
Mike Sawka
566bf461ff
implement img streaming (local and remote) for markdown (#348) 2024-09-06 12:59:28 -07:00
sawka
f51678415c fix ts errors 2024-09-06 11:13:55 -07:00
sawka
c00749efeb fix useWidth usage, use overlayref directly 2024-09-06 11:10:45 -07:00
Red J Adaya
a00dc5682e
connection status overlay (#337) 2024-09-06 10:33:26 -07:00
Sylvie Crowe
11e4f6074d
Input Modal Fixes (#336)
A couple small things:
- make the timer more robust in case of a timing issue where the timer
skips 0
- make the x button in the corner work
- style the title to stand out

The title will need more styling in the future, but this is still an
improvement.
2024-09-06 04:15:42 -07:00
Mike Sawka
acae25f6e3
connmodal updates. connection colors, conn status in modal (#335) 2024-09-05 23:09:30 -07:00
sawka
975b77e728 updates for suggestions 2024-09-05 22:15:14 -07:00
sawka
a22b1cb9f5 fix reconnect suggestion 2024-09-05 19:25:52 -07:00
sawka
a3296fc530 fix icon position, plus sign, etc. 2024-09-05 18:58:51 -07:00
sawka
98a55b2290 updates for local 2024-09-05 18:54:12 -07:00
Evan Simkowitz
9ef6745d66
fix regression in nodeModel.innerRect 2024-09-05 18:07:55 -07:00
Sylvie Crowe
fc0b1929ec
Connection Typeahead/Suggestions (#332)
Adds a list of potential remotes to add and filters it as you type. It
also provides options for reconnecting on a disconnection and
specifically connecting to a local connection
2024-09-05 17:02:44 -07:00
Evan Simkowitz
015ebf5dd5
Make textAtom and showTocAtom in Markdown element optional (#331)
Fix backwards-compatibility for the Markdown element by adding back the option to pass text directly to the element and make atom parameters optional.
2024-09-05 15:35:57 -07:00
Evan Simkowitz
86685e4bcf
simplify waveai imports 2024-09-05 14:43:14 -07:00
Evan Simkowitz
7393e5e7b6
Missed one 2024-09-05 14:40:25 -07:00
Evan Simkowitz
959255af30
Fix markdown impl in waveai 2024-09-05 14:40:24 -07:00
Red J Adaya
9a361d21d5
responsive typeahead modal (#324) 2024-09-05 14:38:36 -07:00
Mike Sawka
a5f563b52d
new directory structure and oldmigrate (#327) 2024-09-05 14:05:42 -07:00
Evan Simkowitz
debbed7003
Remove WOS dependency from wshrpc (#329)
The frontend wshserver.ts had a weird circuitous dependency on wos.ts,
which was unnecessary. This moves the misplaced functions into wshrpc.ts
and updates the generation logic.
2024-09-05 13:17:35 -07:00
Evan Simkowitz
779d2d35b7
make window opacity and window tile gap size pointers so the value gets sent if it is zero 2024-09-05 11:19:52 -07:00
Mike Sawka
3e0ca6b41e
connection handling / block controller handling (#326) 2024-09-05 00:21:08 -07:00
Evan Simkowitz
b796ec9729
reorganize 2024-09-04 23:44:23 -07:00
Evan Simkowitz
4e49549cac
fix padding during magnified 2024-09-04 23:43:26 -07:00
Evan Simkowitz
e1a19a0b80
add user setting for sticky scroll 2024-09-04 23:08:56 -07:00
Evan Simkowitz
292a9ae1e5
disable sticky scroll by default in monaco 2024-09-04 23:05:33 -07:00
Evan Simkowitz
325bb2515e
darken sticky scroll hints in monaco editor 2024-09-04 23:04:32 -07:00
Evan Simkowitz
74c8044c73
Add gap size setting (#325)
Adds a new setting for the gap size between tiles in a layout. Also
updates the resize handle calculations so they are dynamically generated
based on the gap size. Also updates the styling for the resize handles
to be more robust.

This also updates the default gap size to 3px.

This also slims out the Block Frame padding so it is just enough that
the blocks don't overlap when there's no gap.
2024-09-04 22:07:47 -07:00
Evan Simkowitz
072730f7eb
Table of contents for markdown preview (#323)
Adds a table of contents in the markdown preview, with a button in the
header to toggle whether to show the TOC. When a user clicks one of the
TOC elements, the preview will scroll to the corresponding heading.

I've also cleaned up some MD preview styling that was inconsistent and
causing the preview to overflow unnecessarily. This also fixes some
terminology in the preview code.

<img width="574" alt="image"
src="https://github.com/user-attachments/assets/abb18ba9-21d3-4315-bdc3-e4bdcca39a4c">
2024-09-04 21:15:39 -07:00
Evan Simkowitz
0fae6981f8
remove bottom margin and unused rules in directorypreview 2024-09-04 15:42:42 -07:00
Evan Simkowitz
825801d98e
add back border radius 2024-09-04 15:37:16 -07:00
Evan Simkowitz
e0e4256739
remove border radius when tile is not magnified 2024-09-04 15:34:53 -07:00
Evan Simkowitz
0623218373
make border radius conditional in tilelayout 2024-09-04 15:34:13 -07:00
Evan Simkowitz
9cf87723dc
fix tile node border radius 2024-09-04 15:32:45 -07:00
Evan Simkowitz
64a7a6e533
Truncate file paths from the left in the preview header (#322)
This adjusts the block header styling to remove a bunch of unnecessary
attributes and to ensure that we have more consistent shrinking
behavior. Now, file paths will truncate starting on the left side, to
preserve the file name as long as possible. Also, the widget name can
shrink down to zero, while preserving the widget icon, since it's
unnecessary to have both when the widget is small.

<img width="415" alt="image"
src="https://github.com/user-attachments/assets/46e0a74a-f35d-4d09-9c67-019936e67e41">
2024-09-04 15:25:25 -07:00
Evan Simkowitz
74612c7e62
Add user setting for the editor minimap (#321) 2024-09-04 14:00:29 -07:00
Evan Simkowitz
2cc0fdc999
remove unnecessary height and width from codeeditor 2024-09-04 11:45:26 -07:00
Evan Simkowitz
4e60880b8f
Clean up spacing and padding of elements in the block header (#318)
This frees up some more space for content that was previously being
eaten up by unnecessary gaps and padding. It also centers some
off-center icons.
2024-09-03 23:14:22 -07:00
Mike Sawka
7bc154771a
implement wsh conn commands (#319) 2024-09-03 23:04:19 -07:00
Mike Sawka
afd83f0f6f
wsh connreinstall (#317) 2024-09-03 22:15:02 -07:00
Evan Simkowitz
0de41fab08
Fix the client version in the about modal (#315)
The client version in the about modal was hard-coded. Now, it will use
the same values that powered the Electron about modal.
2024-09-03 21:45:44 -07:00
Mike Sawka
f252531197
small update, show actual path iff path is ~ (#314) 2024-09-03 21:18:52 -07:00
Mike Sawka
a7746bc5cc
fix rpc no-route errors, fix fileopen in preview (#313) 2024-09-03 21:08:51 -07:00
Evan Simkowitz
6413d49119
Make default monaco theme transparent, remove import errors (#308)
This makes the background for the "wave-theme-dark" theme transparent.
The light theme is still opaque because otherwise it will look somewhat
dark.

This also suppresses TypeScript/JavaScript import errors in the default
linter, since we don't have support for project directories.

This also reworks the useWidth and useHeight hooks to use the
useResizeObserver hook, which limits the number of ResizeObserver
instances floating around, thereby improving performance
2024-09-03 18:43:59 -07:00
Evan Simkowitz
eeceb17c75
Clean up preview.tsx (#310) 2024-09-03 18:27:41 -07:00
Evan Simkowitz
f5fb1c2664
Move xterm.css to resolve Vite warning (#309) 2024-09-03 18:11:28 -07:00
Evan Simkowitz
16e1b7f65c
Unmagnify the final leaf in a layout (#307)
This handles an edge case where a user deletes all unmagnified nodes,
leaving a final node that is still magnified. Because we ignore
magnify/unmagnify operations when there's only one leaf remaining, this
would result in the last node being stuck magnified until a new node is
added.

Also fixes a bug where the layout would not always update when a new
block was added.
2024-09-03 14:26:29 -07:00
Evan Simkowitz
383a71fc25
Fix infinite loop in layoutAtom, improve iconbutton disable code (#306)
Fixes an infinite loop in the layoutModel atom synchronization that
would cause the atom to update indefinitely when the root node is
deleted.

Also adds a dedicated `disabled` flag for the IconButton decl so we can
disable the onClick handler when the button is disabled.

Also updates the Magnify toggle button to use this new flag, so that
when there's only one leaf in a layout, the magnify button is disabed.
2024-09-03 11:24:45 -07:00
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
sawka
70ef76be62 implement cmd:i, hook up telemetry switch, fix some settings types 2024-09-02 20:21:35 -07:00
Mike Sawka
e3b7ab73c0
preview refactor for keyboard/focus (#303) 2024-09-02 16:48:10 -07:00
Sylvie Crowe
226bc4ee6f
Connect With Non-Terminal Widgets (#304)
- Adds connection buttons for previews
- Makes it possible for graphs and previews to connect on backend
(without a terminal open to connection)
- Changes the wsh install message
2024-09-02 12:34:49 -07:00
Red J Adaya
63cfe1d279
preview edit (#302) 2024-08-31 11:57:45 -07:00
Evan Simkowitz
aab487541b
Resolve BlockNum in WSH commands (#301) 2024-08-30 20:20:25 -07:00
Evan Simkowitz
be1ce1f71e
add delay to the magnify transition so I can actually see the animation 2024-08-30 17:45:37 -07:00
sawka
1975b9b1db connstatus icon 2024-08-30 14:36:16 -07:00
sawka
8aa4025907 add restart controller to context menu 2024-08-30 14:01:53 -07:00
sawka
74f551b212 connstatus fix, update connection icons appropriately for status 2024-08-30 13:56:53 -07:00
Evan Simkowitz
ef95fd20ed
remove magnify.less prefers-reduced-motion query 2024-08-30 12:52:58 -07:00
Evan Simkowitz
cb664cff41
ignore prefers-reduced-motion for resize handle line delay 2024-08-30 12:52:02 -07:00
Evan Simkowitz
86d6c5cd60
set prefers-reduced-motion as a global override 2024-08-30 12:48:06 -07:00
Evan Simkowitz
3f4026a6b7
fix resize handle transition timing 2024-08-30 12:45:12 -07:00
Evan Simkowitz
e9b78c354f
Resize handle improvements (#299)
Adds a delay to the resize handle line first showing so it doesn't flicker when the mouse briefly passes over it. Also removes an unnecessary findNode call that was happening on every move. Also adjusts the pointer offset based on the display container bounding rect.
2024-08-30 12:31:03 -07:00
Mike Sawka
e488862355
remote sysinfo data plotting (#294) 2024-08-30 11:33:04 -07:00
sawka
945c63a3e5 add monokai, make themes more generic -- display:name/display:order 2024-08-29 21:35:33 -07:00
sawka
6e704f74e3 suppress the error message after it has shown once 2024-08-29 18:08:05 -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
Evan Simkowitz
637eaa4206
Use webview's built-in history for navigation (#232) 2024-08-29 13:37:05 -07:00
Evan Simkowitz
87d69eb5bc
fix treereducer getting out of sync 2024-08-29 12:38:13 -07:00
Red J Adaya
c440fb774e
suggestions UI (#286) 2024-08-28 23:47:45 -07:00
sawka
bfab5e4223 detect single keypresses 2024-08-28 18:42:04 -07:00
Evan Simkowitz
56a930c1dc
Make disabled iconbuttons more distinct (#289)
Increases the idle opacity for enabled buttons in the header slightly
and decreases opacity for disabled buttons. Also sets a default cursor
when the button is disabled:

Forward button enabled and idle, back button disabled:

![image](https://github.com/user-attachments/assets/b2f4dfc3-2fe8-46e0-9eac-edfebf42dfdd)
Forward button enabled and hovered, back button disabled:

![image](https://github.com/user-attachments/assets/34b4f89d-ba6a-4b57-8533-527ef1bc9868)
2024-08-28 18:30:41 -07:00
sawka
afcbb35341 countGraphemes and add debug package 2024-08-28 17:12:52 -07:00
Evan Simkowitz
c9a1e9afe3
fix drag overlay losing rect changes 2024-08-28 16:24:25 -07:00
Evan Simkowitz
59979b13e7
use linear timing function for layout transitions 2024-08-28 14:25:47 -07:00
Evan Simkowitz
099c196cae
Use transition events to better-coordinate debouncing of NodeModel innerRect (#288)
Rather than using a timeout to debounce changes to the
NodeModel.innerRect, I'll use a transition event on the display
container. This way, if the user disables transitions using the reduced
motion setting, changes to the innerRect value will not be debounced.
2024-08-28 13:28:49 -07:00
sawka
a7606b8363 update visuals to say gpt-4o-mini 2024-08-28 12:05:36 -07:00
Evan Simkowitz
fb65ec1e23
Explicitly set focus on insert (#285)
Adds a flag to the insert layout action to explicitly set the focus of a
newly inserted node. This also adds a flag in the starter layout to
focus on the terminal block.
2024-08-27 23:16:07 -07:00
Mike Sawka
a3aa941b68
implement wsh setconfig (#284) 2024-08-27 22:02:21 -07:00
Mike Sawka
8630e23239
new config system (#283) 2024-08-27 18:49:49 -07:00
Evan Simkowitz
c9c555452a
Establish wlayout for coordinating backend layout actions (#282) 2024-08-27 18:38:57 -07:00
Sylvie Crowe
ee0bc0a377
Windows Bug Fixes (#281)
Fixes two bugs
- ai component now works on windows
- forces files to use lf line endings on windows instead of crlf
2024-08-27 15:12:26 -07:00
Evan Simkowitz
7d90a3912b
fix nullref in layoutNode.findNode 2024-08-27 13:48:53 -07:00
Evan Simkowitz
755f8f2385
add back top padding for tabcontent 2024-08-27 13:46:13 -07:00
sawka
730c0b1eea fix nullptr for non-focused node 2024-08-27 13:45:05 -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
Evan Simkowitz
86fc45fc13
fix double scrollbars in directory preview 2024-08-27 13:28:10 -07:00
Evan Simkowitz
8fcc856740
fix node collapse edge case 2024-08-27 13:25:02 -07:00
sawka
c2d2ad9136 separate cmd+o from switch connection (disconnect typeaaheadatom), and allow width to 95% 2024-08-26 21:03:12 -07:00
Red J Adaya
a665d372e3
telemetry toggle (#278)
<img width="1316" alt="image"
src="https://github.com/user-attachments/assets/01dc517c-2e9c-46ea-aaf0-4fff1fd3909d">
2024-08-26 18:03:32 -07:00
sawka
fd7fa9f6f1 useatomvaluesafe 2024-08-26 16:56:37 -07:00
sawka
19ebfa0361 fix local icon for term connections 2024-08-26 16:54:39 -07:00
Evan Simkowitz
fac706fb4f
remove .js from imports 2024-08-26 16:37:05 -07:00
Evan Simkowitz
56757e4bb0
fix layoutTree tests 2024-08-26 16:35:35 -07:00
Red J Adaya
7d98aeb2c9
fix dynamic setting of suggestions modal (#272) 2024-08-26 16:33:05 -07:00
Evan Simkowitz
cefc491bf2
fix layoutNode and layout util tests 2024-08-26 16:27:57 -07:00
Mike Sawka
c2fe3b18e1
move connection switching to blockheader (#276) 2024-08-26 16:19:03 -07:00
Mike Sawka
f28bdccb5d
move CreateX functions to wcore (#275) 2024-08-26 15:17:37 -07:00
sawka
2118c24c0d fix ctrl:shift 2 2024-08-26 13:53:46 -07:00
Evan Simkowitz
eea57af80b
Fix Cmd-W to close focused node (#273)
Fixes the in-memory focused node stack so it can be used to find the currently-focused node. This is necessary for `closeFocusedNode` to work.  Also fixes `validateFocusedNode` so it will set the first node to be focused if no focused node is available. Also cleans up leafOrder update pattern.
2024-08-26 12:32:28 -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
Sylvia Crowe
fe8b1c1924 fix: correct ConnStatus uninitialized field 2024-08-24 15:27:14 -07:00
Mike Sawka
62d9d53e52
fix terminal paste (inverted colors) (#271) 2024-08-23 22:12:27 -07:00
Sylvie Crowe
636d71e652
Change Connection UI (#269)
This allows the user to select different connections from the terminal
block. Some features include:
- a status bar at the top of the term block that shows your current
connection
- an icon next to the status bar that shows whether the connection is
currently connected
- the ability to click the status bar and type in a new connection in
order to change the current connection

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-08-23 18:12:40 -07:00
Red J Adaya
b9c87a0ce3
hide when Enter is pressed (#262) 2024-08-23 09:46:04 -07:00
Red J Adaya
c1684d28d1
suggestions modal (#260) 2024-08-23 00:18:49 -07:00
Red J Adaya
af3bc7d249
reduce target area for tab close btn (#261) 2024-08-23 00:15:54 -07:00
Evan Simkowitz
7c03a58b1b
don't set ready in effect 2024-08-22 19:26:22 -07:00
sawka
43138f754c fix double model creation 2024-08-22 16:25:53 -07:00
sawka
9237208e49 quick edits to help 2024-08-22 11:36:35 -07:00
sawka
9e7df9787d move widgets back to right hand side 2024-08-22 11:36:35 -07:00
Evan Simkowitz
d5140129cd
Fix block numbering and switching with arrow keys (#258) 2024-08-21 17:43:11 -07:00
Mike Sawka
dedfc31344
implement Cmd-I and restructure block viewmodels (#257) 2024-08-21 15:49:23 -07:00
Evan Simkowitz
e527e2ab77
Add authkey header for requests to the backend (#256)
With this PR, Electron will generate a new authorization key that the Go
backend will look for in any incoming requests. The Electron backend
will inject this header with all requests to the backend to ensure no
additional work is required on the frontend.

This also adds a `fetchutil` abstraction that will use the Electron
`net` module when calls are made from the Electron backend to the Go
backend. When using the `node:fetch` module, Electron can't inject
headers to requests. The Electron `net` module is also faster than the
Node module.

This also breaks out platform functions in emain into their own file so
other emain modules can import them.
2024-08-21 15:04:39 -07:00
Evan Simkowitz
23261a7a98
Add flag for specifying a new node as magnified on insert (#253) 2024-08-20 20:14:14 -07:00
Evan Simkowitz
bd4bf93d4a
Update copyright indicators on a bunch of files (#255) 2024-08-20 17:01:29 -07:00
Mike Sawka
037497e7f1
wsh edit working (#252) 2024-08-20 14:56:48 -07:00
sawka
2f020099ec cmd:n and cmd:t 2024-08-19 22:39:52 -07:00
sawka
e70e08e531 implement history functions for preview 2024-08-19 22:07:35 -07:00
sawka
9a06b43266 implement a viewmodel keydown handler 2024-08-19 18:41:47 -07:00
sawka
f535c5c1ab default file to ~ 2024-08-19 18:33:52 -07:00
sawka
a0734a3bbe implement cmd+t 2024-08-19 18:28:28 -07:00
sawka
a639fc3c8d implement defaultwidgets 2024-08-19 17:21:44 -07:00
Red J Adaya
964c422a02
about modal (#244) 2024-08-19 15:49:40 -07:00
Mike Sawka
534fcc5d0a
client support for rpc cancel (#249) 2024-08-19 15:44:30 -07:00
sawka
00958b8fed refactor 2024-08-19 15:01:00 -07:00
Mike Sawka
0d8c159101
remote file preview (streaming) working (#248) 2024-08-19 14:37:52 -07:00
Evan Simkowitz
319d84d0b5
remove layout Dimensions declaration in favor of global 2024-08-19 14:33:44 -07:00
Evan Simkowitz
bdfd7b22d9
increase debounce time 2024-08-19 14:29:58 -07:00
Evan Simkowitz
fd375b95d8
uselayouteffect for window controls overlay callback 2024-08-19 14:28:01 -07:00
Evan Simkowitz
a52e5c6c9b
remove unused declarations in app.tsx 2024-08-19 14:23:58 -07:00
Evan Simkowitz
e6003c310e
Set background color for window controls on Linux (#247)
The Window Controls Overlay API applies a transparent overlay on
Windows, but not on Linux. This PR addresses this by capturing the area
underneath the overlay, averaging the color of the area, and setting
this as the overlay background color.

It will also detect whether to make the control symbols white or black,
depending on how dark the background color is.

On Linux, this will set both the background color and the symbol color,
on Windows it will just set the symbol color.

<img width="721" alt="image"
src="https://github.com/user-attachments/assets/e6f9f8f8-a49f-41b6-984e-09e7d52c631d">
2024-08-19 14:16:09 -07:00
sawka
3f37837394 fix term keydown handler 2024-08-19 12:24:08 -07:00
sawka
b412f72f6b remove unsafe btoa calls 2024-08-19 11:54:54 -07:00
Mike Sawka
8651659c02
get remote preview working (#246)
almost all there -- just need to fix streamfile for web urls.
2024-08-19 11:02:40 -07:00