Commit Graph

2768 Commits (ebc079730df62a42a5aa85f0260a8dd03ee083d7)

Author SHA1 Message Date
Dimitrie Hoekstra 6725fd6426
Hide scrollbars and add auto-show/hide minimap on navigation
- Hide scrollbars on canvas while keeping it scrollable
- Add minimap auto-show functionality that triggers on zoom and pan
- Minimap appears for 2 seconds during navigation then fades out
- Add smooth fade in/out animations for minimap visibility
- Emit view:navigate events for all zoom and pan operations
- Minimap stays visible if manually toggled with button
2025-10-14 10:04:31 +01:00
Dimitrie Hoekstra 7dca55fdb8
Add dynamic minimum zoom recalculation on viewport resize
- Recalculate minimum zoom when window resizes to ensure canvas fits properly
- Automatically adjust zoom if current level falls below new minimum after resize
- Ensures canvas boundaries remain appropriate for different viewport sizes
2025-10-14 10:04:30 +01:00
Dimitrie Hoekstra b4c3faf034
Implement dynamic zoom limits to match canvas boundaries
- Add calculateMinZoom() function to dynamically compute minimum zoom based on viewport size
- Ensure canvas always covers the entire viewport (no empty space visible)
- Use 'cover' behavior: zoom limited so canvas fills viewport completely
- Update all zoom methods (buttons, wheel, trackpad, touch) to use calculated minimum
- Prevent zooming out beyond what's needed to fill the viewport with canvas content
2025-10-14 10:04:30 +01:00
Dimitrie Hoekstra 4938833227
Fix zoom gesture detection after two-finger panning
Clear touchStartTime timeout when entering two-finger pan mode to prevent
interference with subsequent zoom gestures. The timeout was being used for
long-press detection but wasn't cleared during pan, causing the next
gesture to incorrectly maintain the old touch state.
2025-10-14 10:04:30 +01:00
Dimitrie Hoekstra bf73261ecb
Prevent UI pinch-to-zoom while keeping canvas zoomable
- Add touch-action CSS to prevent pinch-zoom on UI elements
- Apply touch-action: pan-x pan-y to html, body, and editor
- Apply touch-action: none to canvas for custom gestures
- Add JavaScript prevention for touchpad pinch on non-canvas areas
- Block Ctrl+wheel events outside the workspace chart
2025-10-14 10:04:30 +01:00
Dimitrie Hoekstra 3e2fb85821
Add two-finger panning and spacebar+click panning
- Implement spacebar+left-click panning for desktop
- Add two-finger pan gesture for touch devices
- Use mode locking to prevent laggy gesture switching
- Lock into pan or zoom mode based on initial movement
- Fix focal point regression caused by pan/zoom interaction
- Improve gesture detection with better thresholds (10px for zoom, 5px for pan)
2025-10-14 10:04:30 +01:00
Dimitrie Hoekstra 541977312e
Improve zoom smoothness and control
- Make mouse wheel zoom smooth without jarring animations
- Reduce zoom acceleration from 2x to 1.2x max
- Slow down zoom velocity by 40-50% for better control
- Add asymmetric zoom speeds (zoom out slower than zoom in)
- Reduce acceleration range to 0.7-1.1 for gentler transitions
- Disable legacy mousewheel handler in favor of modern wheel event
2025-10-14 10:04:30 +01:00
Dimitrie Hoekstra 782821b590
Fix zoom focal point stability at canvas edges
- Store focal point in workspace coordinates instead of screen coordinates
- Prevents focal point drift when scroll changes due to canvas boundaries
- Maintains consistent zoom focus even when view shifts at edges
- Add early return in zoomView() to prevent unnecessary updates at zoom limits
- Improve gesture state management for both trackpad and touch gestures
2025-10-14 10:04:30 +01:00
Dimitrie Hoekstra 49222c5737
Fix trackpad zoom direction - spreading fingers now zooms in
- Inverted deltaY value for trackpad pinch gestures
- Matches standard macOS trackpad behavior
- Spreading fingers (negative deltaY) zooms in
- Pinching fingers (positive deltaY) zooms out
2025-10-14 10:04:29 +01:00
Dimitrie Hoekstra eaf68815fd
Implement smooth zoom functionality with pinch-to-zoom support
- Add smooth zoom animation with 125ms duration and easing curves
- Implement space+scroll zoom mode alongside existing Alt+scroll
- Fix pinch-to-zoom with proper ratio-based scaling and fixed focal point
- Add gesture state management for consistent zoom behavior
- Enhance spacebar handling to prevent scroll artifacts
- Fix zoom button layout (correct zoom in/out direction)
- Add zoom animation utilities (view-zoom-animator.js)
- Add zoom configuration constants (view-zoom-constants.js)
- Fix scale lock issues with improved tolerance handling
- Update Gruntfile to include new zoom modules in build

Features implemented:
- Smooth animated zoom transitions (125ms with ease-out)
- Space+scroll for zoom mode
- Fixed focal point during pinch gestures
- No scroll artifacts when pressing space
- Proper state management when cursor leaves canvas
- Natural acceleration/deceleration curves

Known issue: Trackpad pinch-to-zoom needs additional work on macOS
2025-10-14 10:04:29 +01:00
claude[bot] bd51b0c153
feat: Add enhanced zoom and scroll features
- Added space+scroll zoom functionality
- Implemented cursor-centered zoom (focuses on cursor position)
- Enhanced pinch-to-zoom with trackpad support (Ctrl+wheel)
- Added momentum scrolling with edge bounce animation
- Improved touch pinch gesture handling with proper center tracking

Co-authored-by: Dimitrie Hoekstra <dimitrieh@users.noreply.github.com>
2025-10-14 10:04:28 +01:00
Nick O'Leary 2f2199e71b
Bump for 4.1.1 release 2025-10-13 11:37:18 +01:00
Nick O'Leary 2c1fe60d25
Merge pull request #5307 from GogoVega/5245-filter-suggestions-for-disabled-set
Filter suggestions to ensure only enabled set are shown
2025-10-13 11:12:12 +01:00
Nick O'Leary b5edcf6ac9
Update packages/node_modules/@node-red/editor-client/src/js/ui/view.js 2025-10-13 11:06:30 +01:00
Nick O'Leary 6d1fd0b616
Show all catalog items if small enough and no search time provided 2025-10-13 10:56:40 +01:00
GogoVega c1cd5d9593
Filter suggestions to ensure only enabled set are shown 2025-10-10 18:16:25 +02:00
Nick O'Leary 5427d43a98
Merge pull request #5306 from node-red/5244-redraw-after-clearing-suggestion
Force a redraw after clearing suggested flow on mouse down
2025-10-10 16:03:36 +01:00
Nick O'Leary f4cbebca66
Merge pull request #5299 from joebordes/i18n_003
i18n(NodeRed) update ES translation files to latest code base
2025-10-10 15:50:48 +01:00
Nick O'Leary 4173e9a71b
Force a redraw after clearing suggested flow on mouse down 2025-10-10 15:47:31 +01:00
Nick O'Leary e85476b925
Merge pull request #5301 from node-red/5245-filter-suggestions-for-known-types
Filter suggestions to ensure only known types are shown
2025-10-10 15:06:00 +01:00
GogoVega 7c1505eeaf
Use the action label if provided 2025-10-10 13:38:03 +02:00
Nick O'Leary 00b879f855
Filter suggestions to ensure only known types are shown 2025-10-10 12:02:36 +01:00
Joe Bordes fd4e78089b i18n(NodeRed) update ES translation files to latest code base 2025-10-09 17:12:38 +02:00
Nick O'Leary 39975fd46a
Handle subflow virtual port nodes when generating quick-add context 2025-10-09 13:56:19 +01:00
Nick O'Leary b0485b1229
Merge pull request #5293 from GogoVega/fix-5286
Prevents label from taking up all the space for env autocomplete
2025-10-09 11:26:36 +01:00
Nick O'Leary e5ebf5029c
Merge pull request #5292 from GogoVega/fix-5289
Fix env autocomplete result if searchKey starts with `${`
2025-10-09 11:25:59 +01:00
Nick O'Leary 1813a5791d
Merge pull request #5290 from node-red/5283-fix-ui-lockup-for-typed-arrays
Fix UI lock-up when typed arrays are expanded in debug window
2025-10-09 11:24:43 +01:00
Nick O'Leary 11feee3294
Merge pull request #5278 from GogoVega/fix-5275
Fix undo node output changes inside a Subflow
2025-10-09 10:18:46 +01:00
Nick O'Leary 75e6ba209c
Merge pull request #5266 from node-red/fix-monaco-uncaught-promise-canceled
Fix uncaught Monaco error
2025-10-09 10:09:45 +01:00
Nick O'Leary 17fe94d368
Merge pull request #5265 from node-red/add-url-types-to-server-side-fn
Add 'url' module to default server-side types in Monaco editor
2025-10-09 10:07:28 +01:00
GogoVega ebf5ae0ef3
Prevents label from taking up all the space for env autocomplete 2025-10-08 15:27:07 +02:00
GogoVega 90d5776f79
Fix env autocomplete result if searchKey starts with `${` 2025-10-08 14:41:20 +02:00
Steve-Mcl 36f98133bf Fix UI lock-up when typed arrays are expanded in debug window
closes #5283
2025-10-05 12:18:18 +01:00
GogoVega cad105bbd1
Fix undo node output changes if instances exist 2025-09-22 10:33:22 +02:00
GogoVega 83df61018f
Fix undo node output changes inside a Subflow 2025-09-22 09:53:09 +02:00
Steve-Mcl b074b67ed1 Fix uncaught error, update monaco, update types 2025-09-07 20:51:17 +01:00
Steve-Mcl dfb19b2636 add 'url' module to default server-side types in Monaco editor 2025-09-07 20:43:56 +01:00
Ben Hardill d35b31cbef
Catch errors from RED.comms.subscribe callback
fixes #5262
2025-09-05 14:25:37 +01:00
Nick O'Leary 9ad329e5a1
Merge pull request #5237 from GogoVega/fix-node-docs-icon
Fix node documentation icon for long catalog loading
2025-08-28 13:53:02 +01:00
Kazuhito Yokoi a7491b0227 Add tooltip for event log view 2025-08-03 09:43:56 +09:00
GogoVega addec16001
Fix the node docs icon for long catalog loading 2025-07-31 11:26:09 +02:00
Nick O'Leary ab1f1a284e
Update for 4.1.0 release 2025-07-29 15:55:04 +01:00
Nick O'Leary 432884f84a
Merge pull request #5223 from node-red/5219-fix-undo-splice-in-group
Add splice history events to original add event
2025-07-21 17:47:49 +01:00
Nick O'Leary 2b5fa37b70
Add splice history events to original add event 2025-07-21 17:26:34 +01:00
Nick O'Leary 412f4465c7
Merge branch 'master' into dev 2025-07-21 16:29:52 +01:00
Nick O'Leary 9b4acba82e
Merge pull request #5202 from node-red/5198-monaco-esc-handling
Better Monaco `esc` key bubbling
2025-07-21 15:24:12 +01:00
Nick O'Leary e97e307fed
Add typeSearch context when adding nodes 2025-07-14 15:20:53 +01:00
Nick O'Leary c0b9fb5eac
Handle applying suggestion without having selected one 2025-07-14 14:28:04 +01:00
Nick O'Leary 8380c06a19
Support multiple suggestions at once 2025-07-11 09:32:51 +01:00
Nick O'Leary 2608beeea5
Merge pull request #5206 from GogoVega/french-nls-4.1
Update French translation for 4.1
2025-07-10 10:03:40 +01:00
GogoVega df53354f02
Update French translation for 4.1 2025-07-03 12:46:56 +02:00
Nick O'Leary 3f66dd2134
Apply suggestion from @knolleary 2025-07-02 16:03:15 +01:00
Kazuhito Yokoi 49b4c2bfee Add Japanese translations for 4.1.0-beta.2 2025-06-29 23:46:40 +09:00
Steve-Mcl d60e48a0f5 Prevent esc of monaco widgets bubbling up to edit form scope
closes #5200
2025-06-29 11:37:52 +01:00
GogoVega 68c2640b68
Do not select a nearest node if move is active 2025-06-29 12:16:55 +02:00
Nick O'Leary 2c63d2fe4c
Bump for 4.1.0-beta.2 2025-06-26 15:14:34 +01:00
Nick O'Leary 8d822f52ea
Remove testing plugins 2025-06-26 15:08:46 +01:00
Nick O'Leary 7f147b97ca
Merge pull request #5195 from node-red/add-splice-to-add-event
Add `splice` property to nodes:add event context
2025-06-26 15:07:10 +01:00
Nick O'Leary 26f9052f51
Merge pull request #5194 from node-red/5082-autocomplete-plugin-support
Add support for plugin sources of autoComplete fields
2025-06-26 15:06:17 +01:00
Nick O'Leary c532b55513
Add `splice` property to nodes:add event context 2025-06-26 15:01:06 +01:00
Nick O'Leary 9bf9b7a635
Update context on autoComplete api 2025-06-26 14:30:13 +01:00
Nick O'Leary 0ae9f3dd8a
Add support for plugin sources of autoComplete fields 2025-06-26 14:21:21 +01:00
Nick O'Leary b18fb321b6
Do not update suggestion whilst typeSearch hiding 2025-06-26 11:05:55 +01:00
Nick O'Leary 176ab9c554
Merge branch 'master' into dev 2025-06-26 11:01:07 +01:00
Nick O'Leary ebc475c76f
Merge pull request #5180 from node-red/suggest-api-improvements
setSuggestedFlow api improvements
2025-06-26 10:40:13 +01:00
Nick O'Leary 2d67d082c6
On update suggestion view when it changes 2025-06-26 10:36:06 +01:00
Nick O'Leary 0b172be7a5
Don't require x/y when providing single node in suggestion api 2025-06-26 10:30:25 +01:00
Nick O'Leary 08c3feb8d0
Merge pull request #5192 from node-red/jquery-update
Update jquery
2025-06-26 10:17:47 +01:00
Nick O'Leary cd4a951983
Update jquery 2025-06-26 10:05:21 +01:00
Nick O'Leary 26902d71aa
Update event-log.js 2025-06-26 10:02:01 +01:00
Nick O'Leary 303e606a74
NLS the suggestion label 2025-06-25 17:24:58 +01:00
Nick O'Leary 3ff835174d
Merge pull request #5122 from AllanOricil/remote_editor_shade_tray_click_listener
feat: tray's primary button function will no longer run when clicking anywhere in #red-ui-editor-shade
2025-06-25 17:03:23 +01:00
Nick O'Leary 052533962c
Swap manage/install-all buttons in dependency notification 2025-06-25 16:56:31 +01:00
Nick O'Leary 01815b995e
Merge pull request #5167 from gorenje/gorenje-mermaid-fix
Mermaid diagram fix for rendering diagrams inside Node-RED
2025-06-25 16:48:31 +01:00
Nick O'Leary e8d4fe8a07
Merge branch 'dev' into remote_editor_shade_tray_click_listener 2025-06-25 15:03:53 +01:00
Nick O'Leary c6d0ec4dc2
Fixes infotip handling of cursor keys and updates english tip 2025-06-25 14:49:24 +01:00
Nick O'Leary 1552fe20c5
Use type label if suggestion doesn't provide one 2025-06-25 14:21:09 +01:00
Nick O'Leary b2d6eeadbd
Fix deleting suggested node with wire 2025-06-25 14:18:44 +01:00
Nick O'Leary e65728e94b
Better grid snapping for suggestion auto-placement 2025-06-25 13:49:50 +01:00
Nick O'Leary 1717e0f39b
Remove suggestedFlow actions and hardcode key handling 2025-06-25 13:43:13 +01:00
Nick O'Leary 412d47b303
Allow suggestion to be automatically positioned relative to source 2025-06-24 14:10:02 +01:00
Nick O'Leary d95af6acd6
Do not mark workspace dirty when generating names without history 2025-06-24 09:58:24 +01:00
Nick O'Leary a1060524d4
Add flow suggestion plugin api 2025-06-23 11:02:01 +01:00
Nick O'Leary 99b8b4c91b
Add tab to apply current suggested flow 2025-06-23 10:14:45 +01:00
Nick O'Leary 63b4615e78
Add escape to clear suggested flow 2025-06-23 10:08:27 +01:00
GogoVega a25595765f
Do not check the type editors 2025-06-19 16:41:34 +02:00
Nick O'Leary 1a873b8389
Add event-log widget to status bar 2025-06-19 15:17:56 +01:00
Stephen McLaughlin 4967de8e5b
Merge branch 'dev' into suggest-api-improvements 2025-06-19 09:26:47 +01:00
Nick O'Leary af0903eae1
Add clickToApply flag to suggestion 2025-06-17 10:41:32 +01:00
Nick O'Leary d9715eab99
Fix lint 2025-06-16 17:01:21 +01:00
Nick O'Leary 5ec075a49a
Allow source node to be set in setSuggestedFlow api 2025-06-16 16:54:01 +01:00
Nick O'Leary 71e7b821a2
Merge pull request #5173 from kazuhitoyokoi/dev-addjpn
Add Japanese translations for 4.1.0-beta.1
2025-06-16 14:14:19 +01:00
Nick O'Leary f24bf3549c
Do not use css display when counting filtered palette nodes 2025-06-16 11:32:43 +01:00
Kazuhito Yokoi 51e0e18045 Fix typo in welcome tour 2025-06-15 01:29:39 +09:00
Kazuhito Yokoi 2886fc326c Add Japanese translations for 4.1.0-beta.1 2025-06-15 01:01:55 +09:00
Kazuhito Yokoi 09a539a710 Make explanation of update notifications more specific 2025-06-15 00:58:20 +09:00
Kazuhito Yokoi 922229221f Fix image URLs in welcome tour for Node-RED v4.0 2025-06-15 00:53:35 +09:00
GogoVega 07d6c4e582
Prevent the editor to open the same dialog multiple times 2025-06-11 17:25:14 +02:00
GogoVega e5f2e8783a
Fix pending_version not setted after module update 2025-06-11 16:51:11 +02:00
Gerrit Riessen 559be0b52b
Step 1 : include base64 code in pre for mermaid diagrams
and also remove the "word-break: break-all" for mermaid diagrams.

See https://discourse.nodered.org/t/node-red-mermaid-rendering-is-off-by-one/97546 for details
2025-06-11 10:20:50 +02:00