Bumps [sass](https://github.com/sass/dart-sass) from 1.104.0 to 1.104.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/releases">sass's
releases</a>.</em></p>
<blockquote>
<h2>Dart Sass 1.104.1</h2>
<p>To install Sass 1.104.1, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<h1>Changes</h1>
<ul>
<li>
<p>Fix a bug where loud comments before <code>@use</code> rules could be
emitted multiple times under certain circumstances.</p>
</li>
<li>
<p>Fix a bug in which an invalid selector at the end of an indented
syntax stylesheet would cause the parser to crash instead of emitting a
useful error message.</p>
</li>
</ul>
<h3>Command Line Interface</h3>
<ul>
<li>
<p>Many-to-many compilations no longer compile any files that appear in
the output directory if the output directory is also within the source
directory. This fixes a bug where <code>--watch</code> mode could enter
an infinite loop recompiling the same CSS file over and over.</p>
</li>
<li>
<p>Sass now sets the modification time of output files to the time
compilation <em>started</em> rather than the time it <em>ended</em>.
This ensures that, if a source file is modified during compilation,
<code>--watch</code> and <code>--update</code> mode will recompile the
outputs to include the new source file contents.</p>
</li>
</ul>
<p>See the <a
href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#11041">full
changelog</a> for changes in earlier releases.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/blob/main/CHANGELOG.md">sass's
changelog</a>.</em></p>
<blockquote>
<h2>1.104.1</h2>
<ul>
<li>
<p>Fix a bug where loud comments before <code>@use</code> rules could be
emitted multiple
times under certain circumstances.</p>
</li>
<li>
<p>Fix a bug in which an invalid selector at the end of an indented
syntax
stylesheet would cause the parser to crash instead of emitting a useful
error
message.</p>
</li>
</ul>
<h3>Command Line Interface</h3>
<ul>
<li>
<p>Many-to-many compilations no longer compile any files that appear in
the
output directory if the output directory is also within the source
directory.
This fixes a bug where <code>--watch</code> mode could enter an infinite
loop recompiling
the same CSS file over and over.</p>
</li>
<li>
<p>Sass now sets the modification time of output files to the time
compilation
<em>started</em> rather than the time it <em>ended</em>. This ensures
that, if a source file
is modified during compilation, <code>--watch</code> and
<code>--update</code> mode will recompile
the outputs to include the new source file contents.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sass/dart-sass/commit/da84fb52f6b7576cc9516e12312bc33f93ac7596"><code>da84fb5</code></a>
Fix <code>--watch</code> not recompiling sources modified during a
compilation (<a
href="https://redirect.github.com/sass/dart-sass/issues/2850">#2850</a>)</li>
<li><a
href="https://github.com/sass/dart-sass/commit/8a287a71e0fd8cf24fc5fe93a33179c14c845924"><code>8a287a7</code></a>
Merge pull request <a
href="https://redirect.github.com/sass/dart-sass/issues/2859">#2859</a>
from sass/fix-auto-merge</li>
<li><a
href="https://github.com/sass/dart-sass/commit/6033b463ec9f3fc17ab1e5fc2c860b18b7a270d2"><code>6033b46</code></a>
Add explicit versions to .github/util actions</li>
<li><a
href="https://github.com/sass/dart-sass/commit/cc71d43f78056e4f43394711ece111520fd6ade9"><code>cc71d43</code></a>
Only auto-merge dependabot PRs once the tests pass</li>
<li><a
href="https://github.com/sass/dart-sass/commit/49ddc4fe9e59e29271a377cf3f59d557f5a88c4a"><code>49ddc4f</code></a>
Revert "Bump dart-lang/setup-dart in
/.github/util/initialize"</li>
<li><a
href="https://github.com/sass/dart-sass/commit/71a127d6bbe49d86d2b31d8531f2253dfb933bc9"><code>71a127d</code></a>
Avoid duplicating loud comments that appear before <code>@use</code> (<a
href="https://redirect.github.com/sass/dart-sass/issues/2854">#2854</a>)</li>
<li><a
href="https://github.com/sass/dart-sass/commit/f19baabb4ffe16323f02365d04d025be7cabe840"><code>f19baab</code></a>
Merge pull request <a
href="https://redirect.github.com/sass/dart-sass/issues/2857">#2857</a>
from sass/dependabot/github_actions/dot-github/util/...</li>
<li><a
href="https://github.com/sass/dart-sass/commit/f5263e2a4ffd7f24c31969612d1a4e35246973dd"><code>f5263e2</code></a>
Bump dart-lang/setup-dart in /.github/util/initialize</li>
<li><a
href="https://github.com/sass/dart-sass/commit/3018c0d73f61c29634099a97007987c040e641aa"><code>3018c0d</code></a>
Merge pull request <a
href="https://redirect.github.com/sass/dart-sass/issues/2856">#2856</a>
from sass/dependabot/github_actions/dart-lang/setup-...</li>
<li><a
href="https://github.com/sass/dart-sass/commit/5d74adbcb6dd19c403e21c03a54cffa43ddb96f4"><code>5d74adb</code></a>
Bump dart-lang/setup-dart from 1.8.0 to 1.8.1</li>
<li>Additional commits viewable in <a
href="https://github.com/sass/dart-sass/compare/1.104.0...1.104.1">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#1351 made `styleStore` initialization asynchronous in
`componentDidMount`. `setStyle` currently treats `toolbar:link`
appearing as the signal that loading is complete, but if the style
network request (`empty-style.json` from jsdelivr) takes over ~1s, the
`toolbar:link` can appear while `styleStore` is still null (because the
request has not finished). Subsequent `saveStyle` calls in tests then
silently do nothing, causing test failures (3 in #2157, and often 20+ on
my machine).
Changes are:
1. Mock the default empty style to avoid slow network E2E failures.
2. Also cap Playwright workers at 4 to avoid overloading Chromium on
high-core machines.
Fixes#2158.
## Launch Checklist
<!-- Thanks for the PR! Feel free to add or remove items from the
checklist. -->
- [x] Briefly describe the changes in this PR.
- [x] Link to related issues.
- [ ] ~~Include before/after visuals or gifs if this PR includes visual
changes.~~
- [ ] ~~Write tests for all new functionality.~~
- [ ] ~~Add an entry to `CHANGELOG.md` under the `## main` section.~~
(only minor test infra fix)
Co-authored-by: liuly <me@liuly.moe>
Co-authored-by: Harel M <harel.mazor@gmail.com>
Bumps [i18next-cli](https://github.com/i18next/i18next-cli) from 1.73.1
to 1.73.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next-cli/blob/main/CHANGELOG.md">i18next-cli's
changelog</a>.</em></p>
<blockquote>
<h2>1.73.2</h2>
<ul>
<li>fix(deps): <code>react</code> is no longer a runtime dependency; it
only lives in <code>devDependencies</code> for the
type import. The CLI only needs <code>react-i18next</code> at runtime,
which resolves React from the
consuming project. Previously the <code>^19.2.8</code> floor could not
dedupe against a project pinning an
older React patch (Expo SDK 57 pins <code>react@19.2.3</code>) and
nested a second copy under
<code>node_modules/i18next-cli</code>, which Expo Doctor flagged as a
duplicate. Now a single React copy is
used. Fixes <a
href="https://redirect.github.com/i18next/i18next-cli/issues/292">#292</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/i18next/i18next-cli/commit/c2115949bbb887bfbb6cf7191e4de2abf910ef8b"><code>c211594</code></a>
1.73.2</li>
<li><a
href="https://github.com/i18next/i18next-cli/commit/d2daa22212ce77afdc3834603208ed20cdc05db7"><code>d2daa22</code></a>
fix(deps): move react to devDependencies so it no longer nests a second
copy ...</li>
<li>See full diff in <a
href="https://github.com/i18next/i18next-cli/compare/v1.73.1...v1.73.2">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
## Launch Checklist
- [x] Briefly describe the changes in this PR.
- [x] Link to related issues.
- [ ] Include before/after visuals or gifs if this PR includes visual
changes. — not applicable, nothing visual changes.
- [x] Write tests for all new functionality.
- [x] Add an entry to `CHANGELOG.md` under the `## main` section.
### What changed
Keyboard shortcuts went dead as soon as the map had focus.
The global `keyup` handler in `App.tsx` gated shortcuts on
`document.activeElement === document.body`. That reads like "the user is
not
typing", but it actually asks "is nothing focused at all". Clicking the
map makes
`.maplibregl-canvas` the active element, so every shortcut stopped
working until the
map was blurred.
The `m` shortcut demonstrates the problem nicely: its entire job is to
focus that
canvas, so pressing `m` silently disabled all shortcuts until `Esc`.
That path is
covered by an existing test (`'m' should focus map`), which is why the
regression
was easy to miss.
### How
`isTextEntryElement()` now answers the question the guard was reaching
for, so
shortcuts are suppressed only for text entry targets:
`input`, `textarea`, `select`, and `contenteditable` — the last one
covering the
CodeMirror editor, which is a `contenteditable` `.cm-content`.
The check stays independent of either renderer's DOM. MapLibre's
`.maplibregl-canvas` and the OpenLayers viewport live in different
structures, so an
allow-list of canvas class names would have fixed one renderer and left
the other
broken.
### Behaviour change
Single-letter shortcuts now also fire while focus is on a button or a
panel, where
previously they did not. That is inherent to making the map case work —
the old
predicate simply excluded everything that was not `document.body`. Per
@HarelM, this
can be reverted if anyone complains.
### Tests
`e2e/keyboard.spec.ts` gains a `while the map has focus` block. Its
`beforeEach`
focuses the canvas through the `m` shortcut and asserts the canvas
really is focused,
then two independent tests check that `!` and `s` still open their
modals.
Verified the new tests fail without the fix:
```
Error: expect(locator).toBeVisible() failed
Locator: locator('[data-wd-key="modal:debug"]').first()
Expected: visible
Error: element(s) not found
```
and pass with it.
Local results:
| Check | Result |
|---|---|
| `npm run lint` | clean |
| `npx vitest run` | 9 files, 50 tests passed |
| `npx vite build --mode=production` | clean |
| `npx playwright test` | 170 passed, 3 failed |
The 3 failures — `modals › open › upload via drag and drop`,
`modals › global state › remove variable` and `modals › global state ›
edit variable key`
— also fail on unmodified `main`, so they are pre-existing and unrelated
to this
change.
Fixes#940
## Launch Checklist
<!-- Thanks for the PR! Feel free to add or remove items from the
checklist. -->
When a fixed paint value is converted to a zoom function, Maputnik
creates exactly two stops.
<img width="362" height="226" alt="image"
src="https://github.com/user-attachments/assets/209aebbf-7bb3-4422-b0c7-1019e20a9ddb"
/>
Deleting either one of those two stops leaves a single remaining value.
During the transition back to the ordinary field editor, `ZoomProperty`
can render with `stops` undefined. It previously called `.map`
unconditionally, causing the editor to crash.
<img width="2551" height="1248" alt="image"
src="https://github.com/user-attachments/assets/f5c2af59-dcae-4ffe-8245-f175eea9c843"
/>
This PR guards the stop list with optional chaining. The change only
protects the render path and does not alter zoom-function conversion or
value persistence.
Now, the remaining stop's value will be restored after deleting the
other stop:
<img width="367" height="168" alt="image"
src="https://github.com/user-attachments/assets/8d13236b-6140-451b-8613-0bc5f11893de"
/>
The regression test covers `circle-opacity`:
1. Convert a fixed value to a zoom function.
2. Change the second stop's value.
3. Delete the first of the two stops.
4. Verify that the ordinary field editor reappears.
5. Verify that the remaining stop's value is restored.
6. Edit the restored field and verify that the style updates
successfully.
- [x] Briefly describe the changes in this PR.
- [ ] Link to related issues.
- [x] Include before/after visuals or gifs if this PR includes visual
changes.
- [x] Write tests for all new functionality.
- [x] Add an entry to `CHANGELOG.md` under the `## main` section.
Deleting a layer changes the starting indices of later groups, so their
stored expansion state no longer matches. Preserve that state through
surviving layer IDs when rebuilding the group keys.
This keeps expanded groups open after deleting an earlier layer or the
first layer of a group. Separate groups with the same prefix retain
their own states; if deletion joins two groups, the merged group stays
expanded when either was expanded.
- Fixes#1781.
Adds five deletion regression tests, a small style fixture, and a
changelog entry.
Validation:
- All 33 layer-list E2E tests and 50 unit tests pass.
- Lint and the production build, including TypeScript checking, pass.
- Manually checked OSM Liberty: all 15 groups remain expanded after
deleting the background layer.
- The full E2E suite reports 160 passing tests and one failure in
`modals > open > upload` (`Could not get styleItem from localStorage`).
The same failure reproduces with the original production code restored.
---------
Co-authored-by: Harel M <harel.mazor@gmail.com>
Bumps [@codemirror/state](https://github.com/codemirror/state) from
6.7.3 to 6.7.4.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/codemirror/state/commits">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [i18next-cli](https://github.com/i18next/i18next-cli) from 1.73.0
to 1.73.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/i18next/i18next-cli/blob/main/CHANGELOG.md">i18next-cli's
changelog</a>.</em></p>
<blockquote>
<h2>1.73.1</h2>
<ul>
<li>fix(extract): the <code><Trans></code> child error added for
<a
href="https://redirect.github.com/i18next/i18next-cli/issues/246">#246</a>
now also fires for <code>{table.name}</code>,
<code>{fn()}</code>, <code>{`a ${b}`}</code> and any other child
expression the extractor cannot serialise, not
only for bare identifiers like <code>{name}</code>. react-i18next
inlines the value at runtime, while
extraction silently produced an empty <code><1></1></code>
placeholder, so the key never matched. The
message suggests the <code>{{name: table.name}}</code> object form. It
also no longer asks for a <code>values</code>
prop: react-i18next reads the value from the <code>{{name}}</code>
object child itself, so
<code><Trans>See table {{name}}</Trans></code> works on its
own. Extraction output is unchanged.
Fixes <a
href="https://redirect.github.com/i18next/i18next-cli/issues/290">#290</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/i18next/i18next-cli/commit/938cfa0b39b72c144ba6300f7533f9ff41b7d37b"><code>938cfa0</code></a>
1.73.1</li>
<li><a
href="https://github.com/i18next/i18next-cli/commit/bc99139723bdb47d2e01c527f108db237e3665d7"><code>bc99139</code></a>
fix(extract): error on <Trans> children like {table.name} that
won't match at...</li>
<li><a
href="https://github.com/i18next/i18next-cli/commit/83988c9ff0aa2cb5446f0b1f29db1a040003c073"><code>83988c9</code></a>
fix github actions</li>
<li>See full diff in <a
href="https://github.com/i18next/i18next-cli/compare/v1.73.0...v1.73.1">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-08 14:23:11 +00:00
13 changed files with 636 additions and 601 deletions
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.