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.
This commit is contained in:
Ben Henning
2025-03-21 00:33:51 +00:00
parent 8c25c1f8ed
commit d9beacddb4
8 changed files with 4389 additions and 1 deletions

View File

@@ -484,4 +484,13 @@ input[type=number] {
.blocklyDragging .blocklyIconGroup {
cursor: grabbing;
}
.blocklyActiveFocus {
outline-color: #2ae;
outline-width: 2px;
}
.blocklyPassiveFocus {
outline-color: #3fdfff;
outline-width: 1.5px;
}
`;