Commit Graph

9363 Commits

Author SHA1 Message Date
Michael Harvey b49fe1ec7d feat: i shortcut on workspace gives overview (#9677)
* feat: i shortcut on workspace gives overview

* fix: code review changes
2026-04-06 16:54:11 -04:00
Michael Harvey 34c265fcf8 feat!: announce toasts via shared ARIA live region (#9672)
* feat: announce toasts via shared ARIA live region

* chore: add extra space
2026-04-03 09:06:11 -04:00
Aaron Dodson 3389f87cee feat: Add keyboard shortcuts to navigate between stacks (#9678)
* feat: Add keyboard shortcuts to navigate between stacks

* test: Add tests for stack jumping shortcuts

* chore: Clarify logic

* test: Add additional tests for no-op stack navigation
2026-04-02 12:26:52 -07:00
Aaron Dodson dc4d751b93 fix: Display focus rings on flyout buttons and labels (#9679) 2026-04-02 12:08:15 -07:00
Aaron Dodson 43be0edf5d fix!: Fix types on BlockSvg connections (#9669) 2026-04-02 11:01:29 -07:00
Aaron Dodson 15a4d5050e Merge pull request #9675 from RaspberryPiFoundation/merger
chore: Merge `main` into `v13`
2026-04-01 12:51:32 -07:00
Aaron Dodson f454e1b317 chore: Bump closure to the latest version 2026-04-01 12:49:20 -07:00
Aaron Dodson 5b79a29b7c feat: Update CSS for keyboard navigation (#9674) 2026-04-01 12:34:07 -07:00
Aaron Dodson ba0f9b2836 Merge branch 'main' into merger 2026-04-01 09:37:30 -07:00
Aaron Dodson 05af6b6711 feat!: Add support for keyboard navigation (#9634)
* refactor!: Merge `Marker`, `LineCursor` and `Navigator`

* refactor!: Use the Navigator to traverse the toolbox and flyout.

* feat: Register keyboard shortcuts for navigation

* test: Fix and add tests

* chore: Export `ToolboxNavigator`

* chore: Make the linter happy

* chore: Reorganize files

* chore: Fix docstrings

* chore: Fix variable names

* fix: Focus the flyout on T for simple toolboxes

* test: Add tests for focus toolbox shortcut

* refactor: Remove `WorkspaceSvg.keyboardAccessibilityMode`

* refactor: Simplify navigation logic

* fix: Fix tests

* chore: Normalize imports

* fix: Fix bad merge resolution

* fix: Fix docstrings

* fix: Fix navigation down on blocks with a statement input and no next connection

* fix: Be more defensive about navigating to connections

* fix: Use FlyoutButton IDs as row IDs
2026-04-01 08:14:12 -07:00
Michael Harvey 3fb96e4ecd feat: aria live region for announcements (#9653)
* feat: aria live region for announcements

* fix: code review and add tests

* fix: better suite name

* chore: remove unused function

* fix: code review changes

* chore: add back ability to remove role
2026-04-01 10:23:45 -04:00
Aaron Dodson 5d304df504 chore: Remove the keyboard-navigation plugin from the advanced playground (#9670) 2026-03-31 12:15:11 -07:00
Michael Harvey 1ad060819e feat: Stop on workspace during constrained move (#9649) 2026-03-27 09:41:39 -04:00
Rachel Fenichel 5dedd85872 chore: remove unused gulp helpers (#9651)
* chore: remove unused dev dependency gulp-insert

* chore: remove unused dev dependency gulp-series

* chore: remove unused dev dependency gulp-shell
2026-03-25 15:30:40 +00:00
Aaron Dodson 6059d1f5fc feat: Add keyboard shortcut for disconnecting the selected block (#9650) 2026-03-24 08:13:04 -07:00
github-actions[bot] 6f7d50552e release: v12.5.1 blockly-v12.5.1 2026-03-20 17:04:50 +00:00
Aaron Dodson 1f1e2c4679 Revert "fix: Improve zoom animations (#9584)" (#9647)
This reverts commit 3acdf5e536.
2026-03-20 09:38:55 -07:00
Mike Harvey 8e6798a094 fix: visit all connection candidates in move mode (#9641)
* fix: visit all connection candidates in move mode

* fix: remove unused parameters from doc

* fix: correct findTraversalCandidate doc

* chore: simplify instance variables

* fix: remove unreachable return
2026-03-20 11:24:58 -04:00
Maribeth Moffatt 92dd086b3a chore: update repo name in blockly package (#9645) blockly-v12.5.0 2026-03-19 14:39:30 -04:00
Maribeth Moffatt 46d7294dca chore: use node 24 for publishing (#9644) 2026-03-19 14:17:17 -04:00
Maribeth Moffatt 48426dc485 chore: add option to publish the package without bumping version (#9643) 2026-03-19 13:57:36 -04:00
github-actions[bot] ec6035e809 release: v12.5.0 2026-03-19 17:00:15 +00:00
Maribeth Moffatt d1bbc97c53 chore: add a deploy key to allow pushing to main (#9642) 2026-03-19 12:49:35 -04:00
Aaron Dodson c862b5ef0e feat: Beep when attempting constrained move on top-level block (#9635)
* feat: Beep when attempting constrained move on top-level block

* chore: Remove errant `only`

* refactor: Add and use `playErrorBeep()`
2026-03-18 12:45:01 -07:00
Aaron Dodson 92c73f62c7 fix: Fix bug that caused blocks to become disconnected when undoing deletions (#9636) 2026-03-18 13:10:37 -04:00
Maribeth Moffatt 5239bde021 chore: add release env to publish action to get review (#9639) 2026-03-18 13:09:52 -04:00
Aaron Dodson 83c8caca97 chore: Make JSDom a peer/dev dependency on NodeJS only (#9579)
* chore: Make JSDom a peer/dev dependency on NodeJS only

* chore: Bump closure compiler version
2026-03-17 10:22:27 -07:00
Maribeth Moffatt 6413d71257 chore: fix version command for publish (#9637) 2026-03-17 11:22:43 -04:00
Aaron Dodson de7abd0c40 fix: Remove unsafe non-null assertions (#9598) 2026-03-16 15:56:26 -07:00
Maribeth Moffatt f6f5fcc6ad chore: add workflow for versioning/publishing blockly (#9627)
* chore: add workflow for versioning/publishing blockly

* chore: add dry run option
2026-03-16 16:10:40 -04:00
Aaron Dodson a6325ed0e3 fix: Fix a bug that could cause menus to scroll incorrectly on mouseover (#9603)
* fix: Fix a bug that could cause menus to scroll incorrectly on mouseover

* refactor: Simplify CSS
2026-03-16 12:57:59 -07:00
Mike Harvey 3044298f99 feat: Move mode for stacks of blocks (#9630)
* feat: Move mode for stacks of blocks

* lint; add tests

* push to remote in order to switch devices (tests still failing)

* fix tests

* code review test updates
2026-03-16 12:19:59 -04:00
Aaron Dodson 25968ffbdf feat: Add keyboard shortcut to focus the workspace (#9615)
* feat: Add keyboard shortcut to focus the workspace

* test: Added tests for keyboard shortcut to focus workspace

* fix: Disable the focus workspace shortcut while dragging
2026-03-09 13:28:34 -07:00
Aaron Dodson 09d19d8f7b feat!: Allow using Blockly in web components/shadow DOM (#9611)
* feat!: Allow using Blockly in web components/shadow DOM

* test: Fix tests

* chore: Add a playground to exercise web component support

* fix: Remove JSDoc argument

* chore: Format playground

* fix: Hopefully fix tests in CI

* fix: Improve test performance

* fix: Fix test failure

* fix: Allow changing the theme
2026-03-06 12:53:18 -08:00
Aaron Dodson a5a18d3894 refactor!: Move responsibility for block creation out of flyouts (#9610)
* refactor!: Move responsibility for block creation out of flyouts

* chore: Clarify naming and documentation

* fix: Make test less convoluted

* refactor: Use serialization instead of zero-length drag to handle block clicks

* fix: Fix undoing when dragging a block from the flyout

* refactor: Make `getTargetBlock()` always return a value
2026-03-05 12:29:39 -08:00
Aaron Dodson e65ac7f7e2 feat: Add a method to play beep tones (#9612) 2026-03-05 11:04:12 -08:00
Aaron Dodson 14cbb9acba chore: Remove keyboard experimentation CI (#9609) 2026-03-04 13:21:20 -08:00
Maribeth Moffatt 3caee2faf5 chore: improve gh-pages publishing steps (#9604)
* fix: Fix gulpfiles related to publishing GitHub pages

* chore: remove unused gulp tasks

* feat: allow passing a remote to push gh-pages to

* feat: add ability to skip syncing with main

* feat: add gh workflow to publish ghpages

* chore: update node version

---------

Co-authored-by: Aaron Dodson <aaron.dodson@raspberrypi.org>
2026-03-03 20:26:01 +00:00
Aaron Dodson da1db45dd2 feat!: Allow moving blocks, comments and bubbles using the keyboard (#9593)
* refactor!: Update dragging APIs.

* fix: Fix bug that caused drags to always result in deletion

* refactor: Clean up block drag handling with new API

* chore: Format files

* feat: Add an `isBoundedElement` type predicate

* feat: Make `Bubble` implement `IBoundedElement`

* fix: Fix jumping/scrolling when moving blocks

* feat: Add a `KeyboardMover`

* feat: Update the `BlockDragStrategy` to support constrained movement

* feat: Register keyboard shortcuts to drive movement

* feat: Display a move indicator on items that are being moved

* fix: Reenable move hints

* fix: Fix bugs that caused elements to be mispositioned by keyboard moves at non-default zoom levels

* fix: Fix a bug that caused certain connections to be visited out of order

* fix: Fix a bug that caused blocks to become disconnected during constrained moves

* test: Add tests for keyboard-driven movement

* chore: Add exports

* chore: Run formatter

* chore: Make the linter happy

* chore: Update closure compiler

* fix: Fix test suite on non-macOS

* fix: Don't scroll in response to arrow keys while moving items

* fix: Fix positioning of move indicator in RTL

* refactor: Clarify return types of drag-start related methods

* refactor: Make the `KeyboardMover` a singleton

* fix: Fix import path

* refactor: Remove `WorkspaceSvg.keyboardMoveInProgress`

* fix: Fix tests

* chore: Remove unused import

* chore: Clean up comments and names

* refactor: Make `IDraggable` extend `IBoundedElement` and `ISelectable`

* chore: Rename test blocks file for move mode

* refactor: Make block connection offset a constant

* refactor: Export `KeyboardMover` class with a static instance

* fix: Use Command and Control as modifiers for unconstrained move mode

* fix: Fix test failures in CI

* feat: Support allowlisting keyboard shortcuts for mid-move use
2026-03-03 11:51:07 -08:00
Aaron Dodson 81c2ed6ed1 chore(deps): Update Closure compiler to the latest version (#9607) 2026-03-02 12:28:19 -08:00
Aaron Dodson 43dfe2e61f Merge pull request #9606 from RaspberryPiFoundation/main
chore: Merge `main` into `v13`
2026-03-02 12:11:51 -08:00
Aaron Dodson a16580ae26 feat: Add a keyboard shortcut for displaying the contextual menu (#9602)
* feat: Add support for getting the contextual menu

* feat: Add a keyboard shortcut for opening the contextual menu

* test: Add tests for `ContextMenu.getMenu()`.

* test: Add tests for context menu keyboard shortcut

* fix: Fix tests when not run on their own

* chore: Add type annotation
2026-02-26 13:39:56 -08:00
Aaron Dodson 26d035177c chore!: Update supported Node versions (#9600)
* chore!: Update supported Node versions

* fix: Remove references to not-yet-available Node 26

* chore: Revert formatting change
2026-02-26 13:36:33 -08:00
Aaron Dodson 93c29dbe84 Merge pull request #9592 from RaspberryPiFoundation/rollup
chore: Merge `main` into `v13`
2026-02-26 13:25:27 -08:00
Aaron Dodson 589e05d4d1 fix!: Normalize Zelos connection indicators (#9565)
* fix: Normalize Zelos connection indicators

* feat: Add `IPathObject.updateReplacing()`
2026-02-26 11:27:33 -08:00
Aaron Dodson 3d78491dd9 fix: Focus nearest neighbor when deleting a focused block (#9599)
* fix: Focus the nearest neighbor on block deletion

* test: Add tests

* fix: Use `strictEqual`

* chore: Reduce the number of test blocks

* fix: Explicitly verify that dying blocks are not focused

* fix: Fix exception when disposing of a workspace with a focused block

* chore: Run formatter
2026-02-26 10:45:35 -08:00
Aaron Dodson 3b14950a36 feat: Add dynamic keycode for primary modifier key (#9571)
* feat: Add dynamic keycode for primary modifier key

* fix: Don't duplicate constants.
2026-02-25 08:51:43 -08:00
Aaron Dodson a5bdaf8b28 release: Bump version to 12.4.1 (#9595) 2026-02-18 12:39:21 -05:00
Aaron Dodson 39c4b589ea release: Bump version number to 12.4.0 (#9594) blockly-v12.4.1 2026-02-18 12:24:17 -05:00
Aaron Dodson 5fa493bac1 Merge branch 'main' into v13 2026-02-17 10:44:25 -08:00