Commit Graph

9598 Commits

Author SHA1 Message Date
Michael Harvey 23c08ac0af fix: all use closest candidate when moving disconnected blocks (#9971)
* fix: all use closest candidate when moving disconnected blocks

* fix: update move commands in test
2026-06-10 14:29:53 -04:00
Michael Harvey 000aafd5ec feat: add block role description to verbose block labels (#9960) 2026-06-10 14:28:21 -04:00
Matt Hillsdon bb8b7a9bbc fix: allow nav into collapsed block row via right arrow (#9958)
This supports e.g. expand/collapse icons added outside core Blockly.

MakeCode has an expand FieldImageNoText on collapsed blocks that wasn't
otherwise navigable (inserted into COLLAPSED_INPUT_NAME):

input.appendField(new FieldImageNoText(image, 24, 24, "Expand", () => {
    this.setCollapsed(false)
}, false));

To support this:
1. the input that shares the block row id takes into account visibility
2. we drop the short circuit for collapsed blocks and rely on the filtering
  already in place to filter out the collapsed content

Also filter icons whose updateCollapsed() hides them via display:none;
without this they remain in the candidate list and the navigator can
focus e.g. an invisible cog for a mutator workspace.

Add tests for icon visibility.
2026-06-10 14:25:50 -04:00
Aaron Dodson 00882a8b22 fix: Fix styling and focusing of connections in shadow DOM (#9952) 2026-06-10 14:22:56 -04:00
Aaron Dodson b69c38d6cc feat: Reduce build size by enabling assume_function_wrapper build flag (#9921)
* chore: Format build_tasks.mjs

* feat: Enable `assume_function_wrapper` build flag

* refactor(build): Separate chunk exporter creation from compilation

Since the chunk export files are source files to Closure Compiler,
separate the creation of the former from the invocation of the
latter.  Specifically:

- Rename writeChunkExportFiles to buildChunkExporters.
- Invoked as a separate task in the minify series, instead of
  calling it directly from buildCompiled.
- Revert the changes to buildCompiled that made it an async
  function just so it could call writeChunkExportFiles.

* refactor(build): Use a separate property for each chunk's exports

The existing code results in each chunk overwriting the same
well-known property ($.__chunkExports__).  Since these properties
are only expected to be read once, in the same chunk's wrapper's
factory function, this isn't strictly wrong - but it made
understanding the minified bundles produced by PR #9912 a bit
confusing.

* cleanup(build): Minor naming improvements

* docs(build): Improve JSDocs + inline comments

Note that some comments have been deleted without replacement;
these made statements which are no longer true.

* cleanup(build): Reorder new chunk-exporters-related code

Reorder the new code that generates the chunk exporters, to put
it together with (but before) the code that generates the chunk
wrappers, since the two are closely coupled.

* fix(build): Rename chunk exporter's dir + filenames to "exporters"

For consistency with code and docs, call the files that contain code
which retrieves the chunks' export objects "chunk exporters", since
"chunk exports" better describes the objects being exported.

---------

Co-authored-by: Christopher Allen <cpcallen+git@google.com>
2026-06-10 14:18:02 -04:00
Michael Harvey e22287ec39 fix: remove redundant labels for child blocks of parent input (#9967)
* fix: remove redundant labels for child blocks of parent input

* chore: make new argument optional
2026-06-10 13:28:25 -04:00
Zoe Spriggs 0b43cb312d docs: add docs as conventional commit option (#9970) 2026-06-10 17:20:20 +00:00
Matt Hillsdon 5f76e2c8c2 fix: only show paste hint toast on keyboard copy/cut (#9962)
This differs from the keyboard nav plugin but I think it's correct for an
on-by-default world as it's very weird to encounter this toast on a touch
device with and not helpful for mouse usage (e.g. in MakeCode's context menu).
2026-06-09 10:07:19 -04:00
Matt Hillsdon 37dbf5f35f fix: don't allow disconnecting shadow blocks (#9964) 2026-06-09 10:03:51 -04:00
Michael Harvey b55e845cf5 fix: use translated 'bubble' string for ARIA label fallback (#9954) 2026-06-08 14:09:01 -04:00
Aaron Dodson 1cac226a19 fix: Fix loss of focus when deleting blocks via context menu (#9951) 2026-06-02 11:48:15 +01:00
Rachel Fenichel 5e880c3974 chore(docs): fix broken links (#9949) 2026-05-29 16:21:17 -07:00
github-actions[bot] 7ea6a17b73 release: v13.0.0-beta.8 blockly-v13.0.0-beta.8 2026-05-29 20:16:22 +00:00
Maribeth Moffatt 7682eeab29 chore: make ci more robust, fix stack overflow and import problem (#9948)
* chore: add additional logging to CI to catch circular deps and exit mocha on failure

* chore: fix blockly import

* chore: format

* chore: increase webdriver timeout to allow longer tests

* fix: stack overflow if a sound is missing

* chore: dont fail for any console errors

* chore: needs more timeout

* chore: run mocha in a subprocess

* chore: fix chromedriver cache issues

* chore: remove bad error condition
2026-05-29 11:53:07 -07:00
Robert Knight 75de6cb905 fix: Improve fallback for getInitialCandidate (#9941)
* fix: Improve fallback for getInitialCandidate

* Improve variable name
2026-05-28 15:54:55 -04:00
Maribeth Moffatt 695e071caf fix: improve fallback behavior for custom input labels (#9942)
* fix: refactor custom input labels to simplify

* fix: handle bad field image config from block factory

* chore: remove stray log

* fix: fix move mode labels

* fix: dont use numbered inputs for dummy and end row inputs

* chore: fix test
2026-05-28 10:26:07 -04:00
github-actions[bot] 26568631ce release: v13.0.0-beta.7 blockly-v13.0.0-beta.7 2026-05-26 23:02:44 +00:00
Maribeth Moffatt 9273d642db fix: dont show input number in connection labels (#9940) 2026-05-26 18:57:04 -04:00
Maribeth Moffatt 46ac410723 fix: dont show workspace count on apple devices (#9939)
* fix: dont show workspace count on apple devices

* chore: format msg
2026-05-26 18:12:17 -04:00
Maribeth Moffatt 5d1097e58a fix!: remove deprecated APIs (#9938) 2026-05-26 17:51:04 -04:00
Maribeth Moffatt aab9e2ac1c chore: merge main into v13
chore: merge main into v13
Merge pull request #9937 from maribethb/mainmerge
2026-05-26 17:39:43 -04:00
Maribeth Moffatt 6d8dc2ce92 chore: closure-compiler is killing me 2026-05-26 17:27:25 -04:00
Maribeth Moffatt 938d1fa5f2 fix: typo in unregisterWorkspace (#9936)
* fix: Fix typo in unregisterWorkspace function name

* fix: Add deprecation warning for unregisterWorkpace function

* fix: Add renaming entry for unregisterWorkspace in version 13.0.0

* fix(typo): "." -> "," in renamings.json5

Co-authored-by: Maribeth Moffatt <mebottorff@gmail.com>

* fix(workspace): Correct typo in `unregisterWorkspace` method call

* chore: change v12 to v13

* chore: update import

---------

Co-authored-by: Woosuk Nam <me@suk.kr>
2026-05-26 17:18:46 -04:00
Aaron Dodson c587882ff9 feat: Enable blocks during drags (#9935)
* feat: Enable disabled blocks while dragging

* test: Add tests
2026-05-26 14:12:02 -07:00
Maribeth Moffatt 0fd4bec48d Merge branch 'main' into mainmerge 2026-05-26 16:23:36 -04:00
Aaron Dodson 4262858db3 fix: Avoid issue with toolbox search plugin (#9934) 2026-05-26 10:28:00 -07:00
Michael Harvey 0f719d6402 chore: chain Input.setAriaLabelProvider calls (#9933) 2026-05-26 13:17:45 -04:00
Michael Harvey e2cf797cfe fix: Do not use custom input labels for connection positions and move start (#9932)
* fix: Do not use custom input labels on move start announcements

* fix: do not use custom input labels on input labels subset
2026-05-26 12:52:29 -04:00
Maribeth Moffatt 37c95df81d chore: add legacy docs redirects and some minor fixes (#9929)
* chore: add legacy redirects from devsite

* chore: rename configure/web to just configure

* chore: remove youtube embeds because we are scared of cookies

* chore: fix some broken images
2026-05-26 11:40:53 -04:00
Aaron Dodson 40a584163b fix: Fix bug that caused an incorrect count of inputs on blocks when generating ARIA labels (#9927) 2026-05-22 14:23:51 -07:00
Maribeth Moffatt 00cacc4d6f chore: fix some problems with docs site (#9928)
* update api-documenter versions and patch

* fix: update sidebar generation

* fix: docusaurus config changes

* fix: remove unnecessary slugs

* chore: fix url redirects with md suffix
2026-05-22 15:45:09 -04:00
Aaron Dodson 2d9f4023d7 fix: Improve narration of modifier keys (#9926) 2026-05-22 09:24:05 -07:00
Aaron Dodson 8e73862778 feat: Play error beeps when shortcuts fail (#9925) 2026-05-22 09:01:48 -07:00
github-actions[bot] 0b9efdac4d release: v13.0.0-beta.6 blockly-v13.0.0-beta.6 2026-05-21 21:23:15 +00:00
Aaron Dodson 8e3bd12b6f fix: Fix unexpected toast when committing a move with Space (#9920) 2026-05-21 14:05:03 -07:00
Rachel Fenichel 1da146d921 chore(docs): add accessibility best practices and screen reader docs (#9914)
* chore(docs): add accessibility section under app integration

* chore(docs): add information about accessibility best practices and screen reader usage

* chore(docs): fix formatting

* chore(docs): fix typo
2026-05-21 20:13:28 +00:00
Rachel Fenichel cd2f5d352c chore: add documentation on accessibility of custom fields (#9807)
* chore: add accessibility section for extending a built-in field

* chore: add information about accessibility to the creating a custom field page

* chore(docs): better phrasing about getAriaValue
2026-05-21 13:12:37 -07:00
Aaron Dodson f054cb95da fix: Correctly position blocks dragged by the mouse from the flyout (#9919)
* fix: Correctly position blocks dragged by the mouse from the flyout

* fix: Fix incidental test breakage
2026-05-21 12:00:53 -07:00
Aaron Dodson 715e119d2d feat: Announce usage hints to screenreaders on initial workspace focus (#9871)
* feat: Announce usage hints to screenreaders on initial workspace focus

* fix: Improve robustness of tests

* fix: Fix merge

* fix: Don't announce screenreader usage on first focus of every workspace

* fix: Fix test
2026-05-21 10:01:20 -07:00
Aaron Dodson e66dac5ffd fix: Improve initial block placement (#9903)
* fix: Improve initial block placement

* chore: Remove unused arg

* chore: Clarify variable names
2026-05-21 09:03:31 -07:00
translatewiki.net fee8c396ea Localisation updates from https://translatewiki.net. (#9917) 2026-05-21 08:15:15 -07:00
Aaron Dodson 372af5e7b0 fix: Fix resolution of parent toolbox category for block descriptions (#9891)
* fix: Fix resolution of parent toolbox category for block descriptions

* fix: Fix tests
2026-05-21 08:10:39 -07:00
Aaron Dodson 86d634cc7f fix: Fix bug that caused blocks to skip valid destinations when moving with looping disabled (#9894)
* fix: Fix bug that caused blocks to skip valid destinations when moving with looping disabled

* chore: Remove errant logging
2026-05-21 08:10:20 -07:00
Michael Harvey 2b793a8784 feat: Add custom input labels to built in blocks (#9902)
* feat: Add custom input labels to built in blocks

* feat: Add custom input labels to built in list blocks

* fix: replace 'command' with 'statement' in new translation docs

* fix: remove some labels
2026-05-21 09:55:51 -04:00
Robert Knight d03f848671 fix: Block labels should not use custom input labels (nested inputs) (#9916)
* fix: Block labels should not use custom input labels (nested inputs)

* Join inputs with comma
2026-05-21 09:27:31 -04:00
Greg Annandale a7a1708c50 Merge pull request #9905 from grega/chore/switch-docs-deployment-target
chore(docs): switch documentation deployment target
2026-05-21 09:14:32 +01:00
Michael Harvey d4930b4540 feat: allow chaining with setAriaLabelProvider (#9913) 2026-05-20 19:27:41 -04:00
Robert Knight d7172452e2 fix: Don't prepend "begin stack" to blocks inserted from the flyout (#9911)
* fix: Don't prepend "begin stack" to blocks inserted from the flyout

* Switch block.workspace.isDragging for block.isDragging
2026-05-20 16:36:17 -04:00
Maribeth Moffatt b996259a0d fix: replace 'command' with 'statement' for block descriptions (#9912) 2026-05-20 16:31:38 -04:00
Matt Hillsdon 6a6871ea54 fix: CSS back to <style> for Safari/cascade reasons (#9908)
Reverts the storage mechanism introduced in #9611 (constructable
stylesheets via `adoptedStyleSheets`) while keeping the per-root
injection-site tracking that #9611 added for shadow-DOM support.

Motivations:

- Safari 15.4 compatibility. `new CSSStyleSheet()` and
  `adoptedStyleSheets` require Safari 16.4+
- Cascade order. `adoptedStyleSheets` apply after `<style>`/`<link>`
  elements in the document, so Blockly's defaults silently overrode
  host stylesheets. Prepending a `<style>` to the head (or to the
  shadow root) restores the pre-#9611 behavior where any author
  stylesheet declared later wins on specificity ties.

Trade-offs:

- Per-shadow-root CSS text is duplicated rather than shared via a
  single adopted sheet object. Negligible for typical use.
- `Css.register()` calls made after the first `inject()` no longer
  reach already-injected roots (same as #9611's behavior); subsequent
  `inject()` calls into other roots still pick them up. Web-component
  consumers can legitimately register late, so this is preferred to
  reinstating the pre-#9611 throw.

Fixes #9876
2026-05-20 14:54:09 -04:00