Commit Graph

9373 Commits

Author SHA1 Message Date
translatewiki.net
d0a6777bfd Localisation updates from https://translatewiki.net. 2025-12-11 13:00:47 +01:00
translatewiki.net
f6fad862d8 Localisation updates from https://translatewiki.net. 2025-12-08 13:00:47 +01:00
translatewiki.net
f7069876fc Localisation updates from https://translatewiki.net. 2025-12-04 13:00:48 +01:00
translatewiki.net
0470db1848 Localisation updates from https://translatewiki.net. 2025-12-01 13:00:48 +01:00
translatewiki.net
06de8860be Localisation updates from https://translatewiki.net. 2025-11-27 13:00:41 +01:00
translatewiki.net
58ebb7aa77 Localisation updates from https://translatewiki.net. 2025-11-17 13:01:21 +01:00
translatewiki.net
51c09e8ebc Localisation updates from https://translatewiki.net. 2025-11-13 13:01:11 +01:00
translatewiki.net
4f498164ef Localisation updates from https://translatewiki.net. 2025-11-06 13:01:05 +01:00
translatewiki.net
2ea0e4b0d4 Localisation updates from https://translatewiki.net. 2025-10-30 13:01:28 +01:00
translatewiki.net
918daf9b0b Localisation updates from https://translatewiki.net. 2025-10-16 14:01:16 +02:00
translatewiki.net
876bc7b6ba Localisation updates from https://translatewiki.net. 2025-10-13 14:01:16 +02:00
translatewiki.net
6b9167857c Localisation updates from https://translatewiki.net. 2025-10-09 14:01:06 +02:00
translatewiki.net
d4229b7ffe Localisation updates from https://translatewiki.net. 2025-10-02 14:01:05 +02:00
translatewiki.net
3a744cbe45 Localisation updates from https://translatewiki.net. 2025-09-25 14:01:16 +02:00
translatewiki.net
f930bb2476 Localisation updates from https://translatewiki.net. 2025-09-22 14:00:58 +02:00
translatewiki.net
7bf7d74a67 Localisation updates from https://translatewiki.net. 2025-09-18 14:01:12 +02:00
translatewiki.net
9528107cfc Localisation updates from https://translatewiki.net. 2025-09-15 14:01:02 +02:00
translatewiki.net
9306c0ec22 Localisation updates from https://translatewiki.net. 2025-09-04 14:00:51 +02:00
translatewiki.net
d7115a8a80 Localisation updates from https://translatewiki.net. 2025-09-01 14:01:05 +02:00
translatewiki.net
f679d8d4c6 Localisation updates from https://translatewiki.net. 2025-08-25 14:01:18 +02:00
translatewiki.net
b1464bb68c Localisation updates from https://translatewiki.net. 2025-08-21 14:00:47 +02:00
translatewiki.net
89c0a3992f Localisation updates from https://translatewiki.net. 2025-08-18 14:00:55 +02:00
translatewiki.net
d91607cc26 Localisation updates from https://translatewiki.net. 2025-08-11 14:00:42 +02:00
translatewiki.net
d68fcd8ffa Localisation updates from https://translatewiki.net. 2025-08-07 14:00:48 +02:00
translatewiki.net
1e0086d44c Localisation updates from https://translatewiki.net. 2025-07-31 14:00:53 +02:00
translatewiki.net
460e1ae203 Localisation updates from https://translatewiki.net. 2025-07-24 14:00:49 +02:00
translatewiki.net
87f242f0d3 Localisation updates from https://translatewiki.net. 2025-07-21 14:00:45 +02:00
translatewiki.net
bd6d8f0bab Localisation updates from https://translatewiki.net. 2025-07-17 14:00:46 +02:00
translatewiki.net
80711e6d27 Localisation updates from https://translatewiki.net. 2025-07-10 14:00:58 +02:00
Aaron Dodson
af5f5cca44 Merge pull request #9196 from google/dev-into-wiki
chore: Merge develop into translatewiki
2025-07-07 10:59:04 -07:00
Aaron Dodson
030cf7c4c0 fix: Add message dropped during merge 2025-07-07 10:47:46 -07:00
translatewiki.net
386fbbfdd4 Localisation updates from https://translatewiki.net. 2025-07-07 14:00:49 +02:00
translatewiki.net
90b1d44d37 Localisation updates from https://translatewiki.net. 2025-07-03 14:00:49 +02:00
Aaron Dodson
a59fdb0bf5 Merge branch 'develop' into translatewiki 2025-07-01 15:57:31 -07:00
Aaron Dodson
e5804e7095 feat: Add support for keyboard navigation in/to workspace comments. (#9182)
* feat: Enhance the Rect API.

* feat: Add support for sorting IBoundedElements in general.

* fix: Improve typings of getTopElement/Comment methods.

* feat: Add classes to represent comment icons.

* refactor: Use comment icons in comment view.

* feat: Update navigation policies to support workspace comments.

* feat: Make the navigator and workspace handle workspace comments.

* feat: Visit workspace comments when navigating with the up/down arrows.

* chore: Make the linter happy.

* chore: Rename comment icons to bar buttons.

* refactor: Rename CommentIcons to CommentBarButtons.

* chore: Improve docstrings.

* chore: Clarify unit type.

* refactor: Remove workspace argument from `navigateStacks()`.

* fix: Fix errant find and replace in CSS.

* fix: Fix issue that could cause delete button to become misaligned.
2025-07-01 15:13:13 -07:00
Ben Henning
c426c6d820 fix: Short-circuit node lookups for missing IDs (#9174)
## The basics

- [x] I [validated my changes](https://developers.google.com/blockly/guides/contribute/core#making_and_verifying_a_change)

## The details
### Resolves

Fixes #9155

### Proposed Changes

In cases when an ID is missing for an element passed to `FocusableTreeTraverser.findFocusableNodeFor()`, always return `null`.

Additionally, the new short-circuit logic exposed that `Toolbox` actually wasn't being set up correctly (that is, its root element was not being configured with a valid ID). This has been fixed.

### Reason for Changes

These are cases when a valid node should never be matched (and it's technically possible to incorrectly match if an `IFocusableNode` is set up incorrectly and is providing a focusable element with an unset ID). This avoids the extra computation time of potentially calling deep into `WorkspaceSvg` and exploring all possible nodes for an ID that should never match.

Note that there is a weird quirk with `null` IDs actually being the string `"null"`. This is a side effect of how `setAttribute` and attributes in general work with HTML elements. There's nothing really that can be done here, so it's now considered invalid to also have an ID of string `"null"` just to ensure the `null` case is properly short-circuited.

Finally, the issue with toolbox being configured incorrectly was discovered with the introducing of a new hard failure in `FocusManager.registerTree()` when a tree with an invalid root element is registered. From testing there are no other such trees that need to be updated.

A new warning was also added if `focusNode()` is used on a node with an element that has an invalid ID. This isn't a hard failure to follow the convention of other invalid `focusNode()` situations. It's much more fragile for `focusNode()` to throw than `registerTree()` since the former generally happens much earlier in a page lifecycle, and is less prone to dynamic behaviors.

### Test Coverage

New tests were added to validate the various empty ID cases for `FocusableTreeTraverser.findFocusableNodeFor()`, and to validate the new error check for `FocusManager.registerTree()`.

### Documentation

No new documentation should be needed.

### Additional Information

Nothing to add.
2025-07-01 14:07:39 -07:00
dependabot[bot]
19da66c532 chore(deps): bump gulp from 5.0.0 to 5.0.1 (#9188)
Bumps [gulp](https://github.com/gulpjs/gulp) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/gulpjs/gulp/releases)
- [Changelog](https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/gulp/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: gulp
  dependency-version: 5.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:46:13 -07:00
dependabot[bot]
0f73bd53d4 chore(deps): bump mocha from 11.7.0 to 11.7.1 (#9193)
---
updated-dependencies:
- dependency-name: mocha
  dependency-version: 11.7.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 11:42:46 -07:00
Aaron Dodson
fd3a756764 fix: Fix loss of focus when un/redoing block deletions or moves. (#9195) 2025-07-01 11:05:30 -07:00
dependabot[bot]
460c8c8d1b chore(deps): bump @blockly/block-test from 6.0.11 to 7.0.1 (#9192)
---
updated-dependencies:
- dependency-name: "@blockly/block-test"
  dependency-version: 7.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 14:17:11 -07:00
dependabot[bot]
fa93ba2a2f chore(deps): bump glob from 11.0.2 to 11.0.3 (#9189)
Bumps [glob](https://github.com/isaacs/node-glob) from 11.0.2 to 11.0.3.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.2...v11.0.3)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 18:42:25 +01:00
Christopher Allen
9424deb06a build: Refactor gulpfiles from CJS to ESM (#9149)
* refactor(build): Rename "package" gulp task (but not npm script) to "pack"

  This is to avoid an issue due to "package" being a reserved word
  in JavaScript, and therefore not a valid export identifier.

* refactor(build): Convert gulpfile.js from CJS to ESM.

* refactor(build): Convert scripts/gulpfiles/*.js from CJS to ESM

* fix(build): Fix eslint warning for @license tag in gulpfile.mjs

* chore(build): Remove unused imports

* fix(build): Fix incorrect import of gulp-gzip

* fix(build): Fix incorrect sourcemaps import reference
2025-06-30 17:32:08 +01:00
dependabot[bot]
6a04d0eadb chore(deps): bump eslint-plugin-jsdoc from 50.7.1 to 51.3.1 (#9191)
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 50.7.1 to 51.3.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.7.1...v51.3.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-version: 51.3.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 09:19:06 -07:00
dependabot[bot]
53b6362c2f chore(deps): bump eslint from 9.26.0 to 9.30.0 (#9186)
Bumps [eslint](https://github.com/eslint/eslint) from 9.26.0 to 9.30.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.26.0...v9.30.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.30.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 08:26:04 -07:00
translatewiki.net
5e9e8ea1ee Localisation updates from https://translatewiki.net. 2025-06-30 14:00:41 +02:00
Richard Knoll
0d6da6cfc4 fix: clear touch identifier on comment text area pointerdown (#9172) 2025-06-26 13:56:08 -07:00
Matt Hillsdon
9cc3e11856 fix: tweak redo shortcut order to match convention (#9169)
The order of the modifiers is not significant to Blockly but it's conventional
to say e.g. Cmd+Shift+Z. Following that order here means that UI like the
keyboard navigation shortcut dialog gets the correct order without having to
sort.
2025-06-26 11:41:01 -07:00
translatewiki.net
379763da00 Localisation updates from https://translatewiki.net. 2025-06-26 14:00:50 +02:00
Christopher Allen
f4dbea0a65 refactor(interfaces): Make type predicates more robust (#9150)
* refactor(interfaces): Use typeof ... === 'function' to test for methods

  Testing for

      'name' in object

  or

      obj.name !== undefined

  only checks for the existence of the property (and in the latter
  case that the property is not set to undefined).  That's fine if
  the interface specifies a property of indeterminate type, but in
  the usual case that the interface member is a method we can do
  one better and check to make sure the property's value is
  callable.

* refactor(interfaces): Always check obj is not null/undefined

  Since most type predicates take an argument of type any but then
  check for the existence of certain properties, explicitly check
  that the argument is not null or undefined (or check implicitly
  by calling another type predicate that does so first, which
  necessitates adding a few casts because tsc infers the type of
  the argument too narrowly).

* fix(interfaces): Add missing check to hasBubble type predicate

  This appears to have inadvertently been omitted in PR #9004.

* fix(interfaces): Fix misplaced typeof

* fix: Fix typos in JSDocs

* fix(tests): Make Mocks conform to corresponding interfaces

  Introduce a new MockFocusable, and add methods to MockIcon,
  MockBubbleIcon and MockComment, so that they fulfil the
  IFocusableNode, IIcon, IHasBubble and ICommentIcon interfaces
  respectively.

* chore(tests): Add assertions verifying mocks conform to predicates

  Add (test) runtime assertions that:

  - isFocusableNode(MockFocusable) returns true
  - isIcon(MockIcon) returns true
  - hasBubble(MockBubbleIcon) returns true
  - isCommentIcon(MockCommentIcon) returns true

  (The latter is currently failing because Blockly is undefined when
  isCommentIcon calls the MockCommentIcon's getType method.)

* fix(tests): Don't rely on Blockly being set in Mock methods

  For some reason the global Blockly binding is not visible at the
  time when isCommentIcon calls MockCommentIcon's getType method,
  and presumably this problem would apply to getBubbleSize too,
  so directly import the required items.

* refactor(tests): Make MockCommentIcon a MockBubbleIcon

  This slightly simplifies it and makes it less likely to accidentally
  stop conforming to IHasBubble.

* fix(interfaces): Fix incorrect check in isSelectable

  Fix an error which caused ISelectable instances to fail
  isSelectable() checks, one of the results of which is that
  Blockly.common.getSelected() would generally return null.

  Whoops!
2025-06-25 12:49:37 +01:00
Maribeth Moffatt
eaf5eea98e feat: make comment editor separately focusable from comment itself (#9154)
* feat: make comment editor separately focusable from comment itself

* feat: improve design and add styling

* chore: fix lint

* fix: add event listeners to focus parent comment

* fix: export CommentEditor

* fix: export CommentEditor

* fix: extract comment identifier to constant
2025-06-24 12:40:23 -07:00