Releases: RaspberryPiFoundation/blockly
blockly-v12.3.1
What's Changed
Bug fixes 🐛
- fix: pointercancel event is not handled by @nianxy in #9250 (reverted + fixed in #9373)
- fix: Fix positioning of pasted blocks and comments in RTL. by @gonfunko in #9302
- fix: Show the delete cursor when dragging a block by an editable field. by @gonfunko in #9326
- fix: Correct the alignment of narrow text in input fields. by @gonfunko in #9327
- fix: Fix bug that caused inadvertent scrolling when the
WidgetDivwas shown. by @gonfunko in #9291 - fix: Allow reregistering fields. by @gonfunko in #9290
- fix: Prevent mocha tests failures when window does not have focus. by @gonfunko in #9332
- fix: Fix bug that could cause errant line when rendering. by @gonfunko in #9333
- fix: Fix bug that could caused variable map to be left in an inconsistent state. by @gonfunko in #9339
- fix: Allow cross origin requests for Blockly assets. by @gonfunko in #9342
- fix: minor fixes to translation files by @maribethb in #9350
- fix: handle pointercancel only for in-progress gestures by @maribethb in #9373
Cleanup ♻️
- refactor: Make focusable elements responsible for scrolling themselves into bounds. by @gonfunko in #9288
New Contributors
Full Changelog: blockly-v12.3.0...blockly-v12.3.1
blockly-v12.3.0
What's Changed
New features ✨
- feat: Add support for keyboard navigation to/from block comments. by @gonfunko in #9227
- feat: Add an option to copy subsequent blocks when getting copy data from a block. by @gonfunko in #9279
Bug fixes 🐛
- fix: Focus the first element in flyouts. by @gonfunko in #9228
- fix: Fire a
VarTypeChangeevent when changing a variable's type. by @gonfunko in #9236 - fix: Fix order of arguments in
IVariableMap.createVariable(). by @gonfunko in #9231 - fix: Fix toolbox categories tests by @RoboErikG in #9238
- fix: Refer to correct replacement method in deprecation warning. by @gonfunko in #9237
- fix: Make non-autoclosing flyouts stay open. by @gonfunko in #9245
- fix: Fix displaying HTML elements in
FieldDropdown. by @gonfunko in #9258 - fix: dont save ids when copying blocks and comments by @maribethb in #9255
- fix: Allow overriding
VariableModelviaoptions.plugins. by @gonfunko in #9257 - fix: Scroll
CommentBarButtons into view on selection. by @gonfunko in #9259 - fix: Check for existing event group in cleanUp() by @michaela-mm in #9265
- fix: dont add comments to full block fields by @maribethb in #9263
- fix: Display focused icons without transparency. by @gonfunko in #9268
- fix: Drag immovable and shadow blocks along with their parent. by @gonfunko in #9281
- fix: Update dependencies and schedule browser tests to run weekly on Mondays by @RoboErikG in #9297
Cleanup ♻️
- refactor: Make
InsertionMarkerPreviewer's block serialization amenable to subclassing. by @gonfunko in #9282 - refactor: Associate comment bar buttons with the comment view. by @gonfunko in #9278
- refactor: Remove duplicated method from contextmenu_items.ts. by @gonfunko in #9289
Other changes
- release: merge master into develop after v12.2.0 by @maribethb in #9225
- release: Merge
rc/v12.3.0intomaster. by @gonfunko in #9335
Full Changelog: blockly-v12.2.0...blockly-v12.3.0
blockly-v12.3.0-beta.0
What's Changed
New features ✨
- feat: Add support for keyboard navigation to/from block comments. by @gonfunko in #9227
- feat: Add an option to copy subsequent blocks when getting copy data from a block. by @gonfunko in #9279
Bug fixes 🐛
- fix: Focus the first element in flyouts. by @gonfunko in #9228
- fix: Fire a
VarTypeChangeevent when changing a variable's type. by @gonfunko in #9236 - fix: Fix order of arguments in
IVariableMap.createVariable(). by @gonfunko in #9231 - fix: Fix toolbox categories tests by @RoboErikG in #9238
- fix: Refer to correct replacement method in deprecation warning. by @gonfunko in #9237
- fix: Make non-autoclosing flyouts stay open. by @gonfunko in #9245
- fix: Fix displaying HTML elements in
FieldDropdown. by @gonfunko in #9258 - fix: dont save ids when copying blocks and comments by @maribethb in #9255
- fix: Allow overriding
VariableModelviaoptions.plugins. by @gonfunko in #9257 - fix: Scroll
CommentBarButtons into view on selection. by @gonfunko in #9259 - fix: Check for existing event group in cleanUp() by @michaela-mm in #9265
- fix: dont add comments to full block fields by @maribethb in #9263
- fix: Display focused icons without transparency. by @gonfunko in #9268
- fix: Drag immovable and shadow blocks along with their parent. by @gonfunko in #9281
- fix: Update dependencies and schedule browser tests to run weekly on Mondays by @RoboErikG in #9297
Cleanup ♻️
- refactor: Make
InsertionMarkerPreviewer's block serialization amenable to subclassing. by @gonfunko in #9282 - refactor: Associate comment bar buttons with the comment view. by @gonfunko in #9278
- refactor: Remove duplicated method from contextmenu_items.ts. by @gonfunko in #9289
Other changes
- release: merge master into develop after v12.2.0 by @maribethb in #9225
Full Changelog: blockly-v12.2.0...blockly-v12.3.0-beta.0
blockly-v12.2.0
The latest version of Blockly includes new features and bug fixes for the keyboard navigation experience. Please also check out the @blockly/keyboard-navigation plugin at v2.0.0 which accompanies this release of Blockly.
What's Changed
New features ✨
- feat: Add support for keyboard navigation into mutator workspaces. by @gonfunko in #9151
- feat: Run keyboard plugin tests in CI by @BenHenning in #9135
- feat: make comment editor separately focusable from comment itself by @maribethb in #9154
- feat: Add support for keyboard navigation in/to workspace comments. by @gonfunko in #9182
- feat: add copy api and paste into correct workspace by @maribethb in #9215
Bug fixes 🐛
- fix: Fix navigation for blocks with multiple statement inputs. by @gonfunko in #9143
- fix: Add isCopyable to the ICopyable interface and use it by @RoboErikG in #9134
- fix: Dispatch keyboard events with the workspace they occurred on. by @gonfunko in #9137
- fix: caret position when editing block comments by @maribethb in #9153
- fix: tweak redo shortcut order to match convention by @microbit-matt-hillsdon in #9169
- fix: clear touch identifier on comment text area pointerdown by @riknoll in #9172
- fix: Fix loss of focus when un/redoing block deletions or moves. by @gonfunko in #9195
- fix: Short-circuit node lookups for missing IDs by @BenHenning in #9174
- fix: Ensure focus changes when tabbing fields by @BenHenning in #9173
fix: Auto close drop-down divs on lost focus by @BenHenning in #9175(reverted)- fix: check for a drag specifically rather than a gesture for shortcuts by @maribethb in #9194
- fix: Improve workspace comment keyboard navigation behavior. by @gonfunko in #9211
fix: Auto close drop-down divs on lost focus (reapply) by @BenHenning in #9213(reverted)- fix: Prevent loss of focus when deleting a workspace comment. by @gonfunko in #9200
- fix: Fix more browser tests by @RoboErikG in #9183
fix: Auto-close widget divs on lost focus by @BenHenning in #9216(reverted)
Cleanup ♻️
- refactor: Make the cursor use the focus manager for tracking the current node. by @gonfunko in #9142
- refactor(interfaces): Make type predicates more robust by @cpcallen in #9150
- refactor(CSS): move
box-sizingfrom keyboard nav plugin tocore/css.tsby @cpcallen in #9201 - refactor: Ensure that the workspace cursor is never null. by @gonfunko in #9210
Reverted changes ⎌
- revert: "fix: Auto close drop-down divs on lost focus" by @cpcallen in #9204
-
- fix: Revert drop down and widget div PRs by @BenHenning in #9222
Full Changelog: blockly-v12.1.0...blockly-v12.2.0
blockly-v12.1.0
This release contains bug fixes and new features for use with @blockly/keyboard-navigation. Learn more on our accessibility site!
What's Changed
New features ✨
- feat: Add keyboard navigation support for icons. by @gonfunko in #9072
- feat: Add more ephemeral overrides for drop-downs. by @BenHenning in #9086
- feat: Paste where context menu was opened by @johnnesky in #9093
- feat: Allow visiting empty input connections. by @gonfunko in #9104
- feat: Automatically manage focus tree tab indexes by @BenHenning in #9079
- feat: add keyboard navigation controller by @maribethb in #8924
- feat: ephemeral focus public getter, use in shortcut precondition by @maribethb in #9110
Bug fixes 🐛
- fix: Ensure
FieldImageis clickable when appropriate by @BenHenning in #9063 - fix: When moving to a field, scroll the field's block into view by @RoboErikG in #9071
- fix: Skip hidden fields when navigating by @RoboErikG in #9070
- fix: Limit
LineCursor& focus syncing by @BenHenning in #9062 - fix: Fix browser tests PART 1 by @RoboErikG in #9064
- fix: focus something after deleting a block by @maribethb in #9073
- fix: focus after drag and deleting comments by @maribethb in #9074
- fix: Visit all nodes in getNextSibling and getPreviousSibling by @RoboErikG in #9080
- fix: Update
focusNodeto self correct focus by @BenHenning in #9082 - fix: Don't visit collapsed blocks by @RoboErikG in #9090
- fix: Fix bug that prevented using keyboard shortcuts when the DropDownDiv is open. by @gonfunko in #9085
- fix: Tweak outline CSS for Safari/Firefox by @microbit-matt-hillsdon in #9100
- fix: Skip invisible inputs in the field navigation policy by @RoboErikG in #9092
- fix: Copy shortcuts before returning them. by @gonfunko in #9109
- fix: Make cut/copy/paste work consistently and as expected by @RoboErikG in #9107
- fix: context menus on flyout by @maribethb in #9116
- fix: Fix bug that caused the focus manager to attempt to focus unfocusable elements. by @gonfunko in #9117
Cleanup ♻️
Other changes
- release: merge develop into v12.1.0 by @maribethb in #9118
New Contributors
- @microbit-matt-hillsdon made their first contribution in #9100
Full Changelog: blockly-v12.0.0...blockly-v12.1.0
blockly-v12.0.1-beta.1
What's Changed
New features ✨
- feat: Add keyboard navigation support for icons. by @gonfunko in #9072
- feat: Add more ephemeral overrides for drop-downs. by @BenHenning in #9086
Bug fixes 🐛
- fix: Ensure
FieldImageis clickable when appropriate by @BenHenning in #9063 - fix: When moving to a field, scroll the field's block into view by @RoboErikG in #9071
- fix: Skip hidden fields when navigating by @RoboErikG in #9070
- fix: Limit
LineCursor& focus syncing by @BenHenning in #9062 - fix: Fix browser tests PART 1 by @RoboErikG in #9064
- fix: focus something after deleting a block by @maribethb in #9073
- fix: focus after drag and deleting comments by @maribethb in #9074
- fix: Visit all nodes in getNextSibling and getPreviousSibling by @RoboErikG in #9080
- fix: Update
focusNodeto self correct focus by @BenHenning in #9082
Full Changelog: blockly-v12.0.0...blockly-v12.0.1-beta.1
blockly-v12.0.0
v12.0.0
Blockly v12.0.0 is here, and it's a big one! The team first started working on this release almost a year ago, so it's packed with new features and improvements. Our main goal with this release is to improve the accessibility of Blockly, in conjunction with our brand new keyboard-navigation plugin. Read more below!
Highlights
- Revamped focus and handling selected items to be compatible with browser focus and enable keyboard navigation. This is most likely to require your attention if you have custom elements that should be keyboard navigable or if you ever set tabstops manually on Blockly components
- Added many new css classes (and changed a few pre-existing ones) to make styling of various Blockly components easier without having to use themes
- Added support for arbitrary flyout contents with custom
FlyoutInflaters - Removed the
ASTNodeclass and some other pieces related to keyboard navigation. Check out the new experience in the@blockly/keyboard-navigationplugin instead - Added ability to register context menu items on basically any Blockly component that is selectable. Read more in our docs
- Added support for
HTMLElements inFieldDropdownoptions. You can now create options that use both images and text, for example
Accessibility Improvements
Blockly v12 enables a new keyboard-accessible experience when coupled with our new keyboard-navigation plugin.
This also marks a major stepping stone toward screenreader-compatibility, which the team will continue working towards through Q2-Q3 of this year. Learn more about our accessibility roadmap
Blockly Samples
Our plugins have also been updated to be compatible with Blockly v12. As a reminder, all plugins also get a new major version when we update their minimum required version of Blockly. Be sure to update any plugins you use at the same time you update Blockly.
Feedback
If you find any problems with this release, please open an issue. If you try out the new keyboard-navigation experience and have feedback, consider joining our blockly-accessibility group to discuss. As always, we welcome PR contributions as well, especially on issues marked help wanted!
What's Changed
Breaking changes 🛠
- feat!: Add support for preserving block comment locations. by @gonfunko in #8231
- fix!: rename the blockly icon CSS classes to use camelCase (#8329) by @ga-fleury in #8335
- fix!: Make
IPathObjectstyling methods optional by @shashwatpathak98 in #8332 - fix!: Rename
blocklyTreeRowandblocklyToolboxCategoryCSS classes by @Abhinav-Chdhary in #8357 - fix!: renamed blocklyTreeIcon Css class to blocklyToolboxCategoryIcon #8347 by @krishchvn in #8367
- fix!: Replace Closure UI CSS classes with Blockly CSS classes by @Arun-cn in #8339
- fix!: rename
blocklyToolboxContentstoblocklyToolboxCategoryGroupby @ruthwikchikoti in #8384 - refactor!: Use IVariableMap instead of VariableMap by @gonfunko in #8401
- fix!: Rename editing CSS class to blocklyEditing (#8287) by @ga-fleury in #8301
- fix!: use
:focuspseudo class instead ofblocklyFocusedby @Skye967 in #8360 - fix!: Redundant blockly non selectable #8328 by @dakshkanaujia in #8433
- fix!: Rename blocklyTreeIconOpen to
blocklyToolboxCategoryIconOpenby @UtkershBasnet in #8440 - fix!: Renamed the blocklyTreeSelected CSS class to blocklyToolboxSelected by @omwagh28 in #8459
- fix!: deleted styles without associated classes from css.ts, issue #8285 by @aishwaryavenkatesan in #8465
- feat!: change blocklyEditableText to blocklyEditableField and blocklyNonEditableText to blocklyNonEditableField by @Adityajaiswal03 in #8475
- fix!: Remove the blocklyMenuItemHighlight CSS class and use the hover by @Arun-cn in #8536
- refactor!: Update flyouts to use inflaters. by @gonfunko in #8601
- refactor!: Remove the InsertionMarkerManager. by @gonfunko in #8649
- refactor!: Improve ability to use CSS to style Blockly. by @gonfunko in #8647
- feat!: Use CSS to specify field cursors. by @gonfunko in #8648
- refactor!: Use one map for toolbox contents. by @gonfunko in #8654
- refactor!: Add setSelectedItem() to IToolbox. by @gonfunko in #8650
- refactor!: Use JSON instead of XML for defining dynamic toolbox categories. by @gonfunko in #8658
- fix!: Don't add padding around zero-width fields. by @gonfunko in #8738
- fix: Fixes #8764 by moving the event grouping calls up to dragger.ts by @RoboErikG in #8781
- feat!: Added support for separators in menus. by @gonfunko in #8767
- refactor!: Remove old cursor and tab support. by @gonfunko in #8803
- fix!: Tighten and correct typings on ASTNode by @gonfunko in #8835
- refactor!: Backport LineCursor to core. by @gonfunko in #8834
- fix!: change css class for disabled block pattern by @maribethb in #8864
- feat!: deprecate scopeType and include focusedNode in context menu options by @maribethb in #8882
- refactor!: Finish refactor of
WorkspaceSvgVariableMapmethods by @cpcallen in #8946 - feat!: add scope to keyboard shortcuts and use it by @maribethb in #8917
- fix!: Remove alt+key commands by @RoboErikG in #8961
- refactor!: Use navigation rulesets instead of ASTNode to control keyboard navigation. by @gonfunko in #8992
- fix!: remove MarkerSvg and uses by @rachel-fenichel in #8991
- fix!: delete marker move event and tests by @rachel-fenichel in #9013
- fix!: delete ASTNode and references by @rachel-fenichel in #9014
- fix!: delete IASTNodeLocation and friends by @rachel-fenichel in #9015
- feat!: Make everything ISelectable focusable by @BenHenning in #9004
- fix!: remove deprecated setEnabled and backwards event filtering by @maribethb in #9039
- fix!: deepMerge for arrays, shortcut keycodes returned as array by @maribethb in #9047
New features ✨
- feat: Add blocklyField to field's SVG Group by @nullHawk in #8334
- feat: Add a blocklyFieldText CSS class to fields' text elements (#8291) by @ga-fleury in #8302
- feat: Add a
blocklyVariableFieldCSS class to variable fields by @shashwatpathak98 in #8359 - feat: add the IVariableMap and IVariableModel interfaces. by @gonfunko in #8369
- feat: Add a blocklyTextBubble CSS class to the text bubble #8331 by @Nirmalkumar6112 in #8333
- feat: Add a blocklyShadow class by @devesh-2002 in #8336
- feat: Added blocklyTrashcanFlyout CSS class by @ChaitanyaYeole02 in #8372
- feat: Add css classes from json block definitions by @ishon19 in #8377
- feat: Add blocklyToolboxFlyout CSS class to the flyout by @nullHawk in #8386
- feat: Add a blocklyCollapsed CSS class to collapsed blocks' root SVG (#8264) by @ga-fleury in #8308
- feat: Add a blocklyBlock CSS class to the block's root SVG by @ChaitanyaYeole02 in #8397
- feat: add
blocklyMiniWorkspaceBubblecss class by @ishon19 in #8390 - feat: Add a blocklyNotEditable CSS class to the block's root SVG by @dianaPrahoveanu-SL in #8391
- feat: Add a VarTypeChange event. by @gonfunko in #8402
- feat: added
blocklyNotDetetableclass to block_svg by @Shreshthaaa in #8406 - feat: add the block's type as a CSS class to the block's root SVG by @CodeMaverick2 in #8428
- feat: add `blockl...
blockly-v12.0.0-beta.7
What's Changed
New features ✨
- feat: Allow conditioned ephemeral access for drop-down & widget divs by @BenHenning in #9051
Bug fixes 🐛
- fix: Fix bug when referencing HTMLElement in non-browser environments. by @gonfunko in #9050
- fix: Remove un-typesafe cast. by @gonfunko in #9052
Other changes
- release: update version number to 12.0.0-beta.7 by @rachel-fenichel in #9053
Full Changelog: blockly-v12.0.0-beta.6...blockly-v12.0.0-beta.7
blockly-v12.0.0-beta.6
What's Changed
Breaking changes 🛠
- fix!: delete marker move event and tests by @rachel-fenichel in #9013
- fix!: delete ASTNode and references by @rachel-fenichel in #9014
- fix!: delete IASTNodeLocation and friends by @rachel-fenichel in #9015
- feat!: Make everything ISelectable focusable by @BenHenning in #9004
- fix!: remove deprecated setEnabled and backwards event filtering by @maribethb in #9039
- fix!: deepMerge for arrays, shortcut keycodes returned as array by @maribethb in #9047
Bug fixes 🐛
- fix: Don't fire events for changes to potential variables by @RoboErikG in #9025
- fix: Improve robustness of
IFocusableNodeuses by @BenHenning in #9031 - fix: don't visit connections with the cursor. by @gonfunko in #9030
- fix: Fix regressions in
Field. by @gonfunko in #9011 - fix: Ensure selection stays when dragging blocks, comments, and bubbles by @BenHenning in #9034
- fix: Ensure BlockSvg is uniquely focusable on the page by @BenHenning in #9045
- fix: Ensure cursor syncs with more than just focused blocks by @BenHenning in #9032
- fix: Reenable support for tabbing between fields. by @gonfunko in #9049
- fix: fieldDropdown.getText works in node by @maribethb in #9048
Cleanup ♻️
- refactor: Make INavigable extend IFocusableNode. by @gonfunko in #9033
- refactor: Remove INavigable in favor of IFocusableNode. by @gonfunko in #9037
Full Changelog: blockly-v12.0.0-beta.5...blockly-v12.0.0-beta.6
blockly-v12.0.0-beta.5
What's Changed
Breaking changes 🛠
- feat!: deprecate scopeType and include focusedNode in context menu options by @maribethb in #8882
- refactor!: Finish refactor of
WorkspaceSvgVariableMapmethods by @cpcallen in #8946 - feat!: add scope to keyboard shortcuts and use it by @maribethb in #8917
- fix!: Remove alt+key commands by @RoboErikG in #8961
- refactor!: Use navigation rulesets instead of ASTNode to control keyboard navigation. by @gonfunko in #8992
- fix!: remove MarkerSvg and uses by @rachel-fenichel in #8991
New features ✨
- feat: Add a method for creating flyout options by @RoboErikG in #8829
- feat: Allow for HTML elements in dropdown field menus. by @gonfunko in #8889
- feat: show context menu for connections by @maribethb in #8895
- Feature: Add a dropdown options setter by @RoboErikG in #8833
- feat: Add support for displaying toast-style notifications. by @gonfunko in #8896
- feat!: Introduce new focus tree/node functions. by @BenHenning in #8909
- feat: Make WorkspaceSvg and BlockSvg focusable by @BenHenning in #8916
- feat: Make toolbox and flyout focusable by @BenHenning in #8920
- feat: Make WorkspaceSvg and BlockSvg focusable (roll forward) by @BenHenning in #8938
- feat: Make toolbox and flyout focusable (roll forward) by @BenHenning in #8939
- feat: Make fields focusable by @BenHenning in #8923
- feat: Make connections focusable by @BenHenning in #8928
- feat: Update line cursor to use focus manager by @BenHenning in #8941
- feat(WorkspaceSvg): Add support for tracking keyboard moves by @cpcallen in #8959
- feat(WorkspaceSvg): Ignore gestures when keyboard move in progress by @cpcallen in #8963
Bug fixes 🐛
- fix: fix bug that modalInputs option is not working in toolbox area by @zhiyan in #8817
- fix: Fix bug that allowed some invisible fields/inputs to be navigated to. by @gonfunko in #8899
- fix: Fix bug that caused flyout items under the mouse to be selected without movement. by @gonfunko in #8900
- fix: Recreate the dropdowndiv when clearing it. by @gonfunko in #8903
- fix: Add some missing message strings. by @gonfunko in #8908
- Fix: Remove the collapsed block warning when expanding a block by @RoboErikG in #8854
- fix: LineCursor can loop forward, but not back by @microbit-grace in #8926
- fix: Support RTL in WorkspaceSvg.scrollIntoBounds by @RoboErikG in #8936
- fix: Fix bug in
BlockSvg.prototype.setParentby @cpcallen in #8934 - fix: remove black outline on focused items by @rachel-fenichel in #8951
- fix: Fix conventional auto labeling by @BenHenning in #8956
- fix: Address remaining invisible input positions by @microbit-robert in #8948
- fix: Ensure flyout remains open after creating a variable with mouse by @BenHenning in #8982
- fix: Synchronize gestures and focus by @BenHenning in #8981
- fix: focus for autohideable flyouts by @maribethb in #8990
- fix: Replace explicit calls to refreshToolboxSelection with a workspace listener by @RoboErikG in #8980
- fix: Add private to variableChangeCallback by @RoboErikG in #8995
- fix: use copyable interface for cut action, add tests by @maribethb in #8993
- fix: Improve missing node resiliency by @BenHenning in #8997
Other changes
- release: v11.2.2 by @gonfunko in #8812
- Fix: Revert focus prs by @RoboErikG in #8933
New Contributors
- @zhiyan made their first contribution in #8817
- @microbit-grace made their first contribution in #8926
- @microbit-robert made their first contribution in #8948
Full Changelog: blockly-v12.0.0-beta.4...blockly-v12.0.0-beta.5