Commit Graph

8933 Commits

Author SHA1 Message Date
Ben Henning ac7fea11cf Merge pull request #8909 from BenHenning/add-focus-manager-callbacks-and-improvements
feat!: Introduce new focus tree/node functions.
2025-04-23 14:26:57 -07:00
Ben Henning 096e7711cb chore: clean-up documentation comment. 2025-04-23 21:24:05 +00:00
Ben Henning 2564239d23 chore: Add private method documentation.
Addresses a review comment.
2025-04-23 21:22:37 +00:00
Ben Henning e9ea69d2bd Merge branch 'rc/v12.0.0' into add-focus-manager-callbacks-and-improvements 2025-04-23 21:15:03 +00:00
Ben Henning 7c0c8536e6 fix: Fix broken FocusManager tree unregistration. 2025-04-22 00:49:52 +00:00
Aaron Dodson c6e58c4f92 feat: Add support for displaying toast-style notifications. (#8896)
* feat: Allow resetting alert/prompt/confirm to defaults.

* chore: Add unit tests for Blockly.dialog.

* fix: Removed TEST_ONLY hack from Blockly.dialog.

* feat: Add a default toast notification implementation.

* feat: Add support for toasts to Blockly.dialog.

* chore: Add tests for default toast implementation.

* chore: Fix docstring.

* refactor: Use default arguments for dialog functions.

* refactor: Add 'close' to the list of messages.

* chore: Add new message in several other places.

* chore: clarify docstrings.

* feat: Make toast assertiveness configurable.
2025-04-21 15:32:45 -07:00
Ben Henning 4e8bb9850f Revert "chore: Remove unused isFocusable*() functions."
This reverts commit 404c20eeaf.
2025-04-21 21:09:26 +00:00
Ben Henning c91fed3fdb chore: equality + doc cleanups 2025-04-21 21:00:27 +00:00
Ben Henning 404c20eeaf chore: Remove unused isFocusable*() functions.
These were needed in previous versions of plugin changes, but aren't
anymore.
2025-04-21 20:55:02 +00:00
Ben Henning 0772a29824 feat!: Introduce new focus tree/node functions.
This introduces new callback methods for IFocusableTree and
IFocusableNode for providing a basis of synchronizing domain state with
focus changes. It also introduces support for implementations of
IFocusableTree to better manage initial state cases, especially when a
tree is focused using tab navigation.

FocusManager has also been updated to ensure functional parity between
tab-navigating to a tree and using focusTree() on that tree. This means
that tab navigating to a tree will actually restore focus back to that
tree's previous focused node rather than the root (unless the root is
navigated to from within the tree itself). This is meant to provide
better consistency between tab and non-tab keyboard navigation.

Note that these changes originally came from #8875 and are required for
later PRs that will introduce IFocusableNode and IFocusableTree
implementations.
2025-04-21 20:42:28 +00:00
Aaron Dodson 9d127698d6 fix: Add some missing message strings. (#8908)
* fix: Add some missing message strings.

* fix: Prefix messages with SHORTCUTS
2025-04-21 10:44:57 -07:00
Aaron Dodson cece3f6296 chore: Add messages from the keyboard experiment. (#8904)
* chore: Add messages from the keyboard experiment.

* fix: Resolve duplicate message ID.

* fix: Use placeholders for keyboard shortcuts.
2025-04-21 08:54:39 -07:00
Aaron Dodson 4fb054c484 fix: Recreate the dropdowndiv when clearing it. (#8903) 2025-04-18 12:21:52 -07:00
Aaron Dodson 5b103e1d79 fix: Fix bug that caused flyout items under the mouse to be selected without movement. (#8900) 2025-04-17 15:39:04 -07:00
Aaron Dodson 296ad33c21 fix: Fix bug that allowed some invisible fields/inputs to be navigated to. (#8899) 2025-04-17 09:48:17 -07:00
Maribeth Moffatt d63a8882c5 feat: show context menu for connections (#8895)
* feat: show context menu for connections

* fix: update after rebase
2025-04-16 10:48:18 -07:00
Aaron Dodson fd9263ac51 feat: Allow for HTML elements in dropdown field menus. (#8889)
* feat: Allow for HTML elements in dropdown field menus.

* refactor: Use dot access.
2025-04-15 14:34:38 -07:00
Maribeth Moffatt acca9ea83f feat!: deprecate scopeType and include focusedNode in context menu options (#8882)
* feat!: deprecate scopeType and include focusedNode in context menu options

* chore: add issue to todo
2025-04-15 11:24:01 -07:00
Aaron Dodson b1d7670a6e release: Update version number to 12.0.0-beta.4 blockly-v12.0.0-beta.4 2025-04-14 15:09:07 -07:00
Aaron Dodson e45471d6f4 fix: Fix menu scrolling. (#8881) 2025-04-14 13:56:46 -07:00
Aaron Dodson 98cf5cb8ee feat: Add support for retrieving blocks' drag strategies. (#8893) 2025-04-14 13:54:15 -07:00
Aaron Dodson 7a3eb62142 fix: Don't visit invisible inputs with the cursor. (#8892) 2025-04-14 13:20:33 -07:00
Maribeth Moffatt 547fed4c6b feat: menuOpenEvent, menuSelectEvent, and location for context menu items
feat: menuOpenEvent, menuSelectEvent, and location for context menu items
2025-04-14 12:37:49 -07:00
Maribeth Moffatt e0009e257c fix: update dependencies so adv compilation works (#8890) 2025-04-14 12:16:40 -07:00
Rachel Fenichel fac75043dd feat: add loopback in cursor navigation, and add tests (#8883)
* chore: tests for cursor getNextNode

* chore: add tests for getPreviousNode

* feat: add looping to getPreviousNode and getNextNode

* chore: inline returns

* chore: fix test that results in a stack node

* chore: fix annotations
2025-04-14 09:58:58 -07:00
Maribeth Moffatt d1dc38f582 feat: support menuOpenEvent, menuSelectEvent, location for context menu items (#8877)
* feat: support menuOpenEvent, menuSelectEvent, location for context menu items

* feat: show context menu based on location

* fix: rtl
2025-04-11 15:10:05 -07:00
Rachel Fenichel 3160e3d321 feat: add getFirstNode and getLastNode to cursor with tests (#8878)
* feat: add getFirstNode and getlastNode to line_cursor.ts

* chore: add simple tests for getFirstNode and getLastNode

* chore: broken tests for debugging

* chore: additional cursor tests

* chore: lint, format, reenable tasks
2025-04-11 10:13:10 -07:00
Maribeth Moffatt c5736bba65 feat: make block and workspace implement IContextMenu (#8876) 2025-04-10 10:34:35 -07:00
Maribeth Moffatt 7aff866944 release: update version to 12.0.0-beta.3 blockly-v12.0.0-beta.3 2025-04-08 12:17:58 -07:00
Maribeth Moffatt 2c05119ef2 fix: change css class for disabled block pattern (#8864) 2025-04-08 12:06:05 -07:00
Maribeth Moffatt 89194b2ead fix: check potential variables for flyout variable fields (#8873)
* fix: check potential variables for flyout variable fields

* fix: format

* chore: move comment
2025-04-07 17:29:00 -07:00
Rachel Fenichel 76b02de654 feat: add getSearchRadius to BlockDragStrategy (#8871) 2025-04-07 13:52:15 -07:00
Rachel Fenichel 49387ec788 feat: add shouldHealStack method (#8872)
* feat: add shouldHealStack method

* chore: format
2025-04-07 12:44:40 -07:00
Ben Henning 17171abf1c Merge pull request #8814 from BenHenning/introduce-focus-system-implementation
feat: Introduce FocusManager implementation
2025-04-03 16:20:49 -07:00
Ben Henning c5404af82e chore: lint fixes. 2025-04-03 23:04:06 +00:00
Rachel Fenichel 58cd954fc0 feat: make getNextNode and getPreviousNode public (#8859) 2025-04-03 22:59:34 +00:00
Ben Henning 720e8dab2b chore: part 2 of addressing reviewer comments. 2025-04-03 22:55:35 +00:00
Ben Henning 902b26b1a1 chore: part 1 of addressing reviewer comments. 2025-04-03 22:25:50 +00:00
Aaron Dodson ca362725ee refactor!: Backport LineCursor to core. (#8834)
* refactor: Backport LineCursor to core.

* fix: Fix instantiation of LineCursor.

* fix: Fix tests.

* chore: Assauge the linter.

* chore: Fix some typos.

* feat: Make padding configurable for scrollBoundsIntoView.

* chore: Merge in the latest changes from keyboard-experimentation.

* refactor: Clarify name and docs for findSiblingOrParentSibling().

* fix: Improve scrollBoundsIntoView() behavior.

* fix: Export CursorOptions.

* refactor: Further clarify second parameter of setCurNode().

* fix: Revert change that could prevent scrolling bounds into view.
2025-04-03 12:15:17 -07:00
Aaron Dodson 7171350992 fix!: Tighten and correct typings on ASTNode (#8835)
* fix!: Tighten typings on ASTNode.create*Node() methods.

* fix: Restore missing condition.

* fix: Fix unsafe casts, non-null assertions and incorrect types.

* refactor: Simplify parent input checks.
2025-04-01 14:59:40 -07:00
Aaron Dodson 7a07b4b2ba refactor!: Remove old cursor and tab support. (#8803) 2025-03-28 13:54:33 -07:00
Ben Henning 3dc4d17b30 Update tests/mocha/index.html 2025-03-27 16:54:19 -07:00
Ben Henning 9ab77cedff chore: fix formatting issues 2025-03-27 22:04:51 +00:00
Ben Henning 516e3af936 feat: finish core impl + tests
This adds new tests for the FocusableTreeTraverser and fixes a number of
issues with the original implementation (one of which required two new
API methods to be added to IFocusableTree). More tests have also been
added for FocusManager, and defocusing tracked nodes/trees has been
fully implemented in FocusManager.
2025-03-27 21:57:30 +00:00
Ben Henning d9beacddb4 feat: add FocusManager
This is the bulk of the work for introducing the central logical unit
for managing and sychronizing focus as a first-class Blockly concept
with that of DOM focus.

There's a lot to do yet, including:
- Ensuring clicks within Blockly's scope correctly sync back to focus
  changes.
- Adding support for, and testing, cases when focus is lost from all
  registered trees.
- Testing nested tree propagation.
- Testing the traverser utility class.
- Adding implementations for IFocusableTree and IFocusableNode
  throughout Blockly.
2025-03-21 00:33:51 +00:00
Aaron Dodson e02d3853ee release: Update version number to 12.0.0-beta.2 blockly-v12.0.0-beta.2 2025-03-20 14:37:18 -07:00
Aaron Dodson 0f07567965 fix: Allow the marker's current node to be null. (#8802) 2025-03-20 09:46:31 -07:00
Aaron Dodson 0983c43bc4 Merge pull request #8798 from google/develop-v12-merge
chore: Merge develop into rc/v12.0.0
2025-03-12 13:29:12 -07:00
Aaron Dodson 00d77456c9 Revert "fix!: Remove the blocklyMenuItemHighlight CSS class and use the hover…" (#8800)
This reverts commit d6125d4fb9.
2025-03-12 09:27:47 -07:00
Aaron Dodson b8f71b83b7 Merge branch 'rc/v12.0.0' into develop-v12-merge 2025-03-11 09:42:25 -07:00