Commit Graph

866 Commits

Author SHA1 Message Date
Harel M
a322afdcee Use different icons for different layers (#1375)
## Launch Checklist

This changes the layers icons a bit in order to make them a bit more
distinct:

After:
<img width="580" height="331" alt="image"
src="https://github.com/user-attachments/assets/f341a64e-0310-40f7-8f5a-650d7bb06b9f"
/>


 - [x] Briefly describe the changes in this PR.
- [x] Include before/after visuals or gifs if this PR includes visual
changes.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.

---------

Co-authored-by: Frank Elsinga <frank@elsinga.de>
2025-09-13 22:46:28 +00:00
Harel M
c6f599cc61 Unite icons (#1374)
## Launch Checklist

This removes the `@mdi` (material design icons) package and uses the
icons from `react-icons`.
The icons are not exactly the same, but have the same idea behind them.

 - [x] Briefly describe the changes in this PR.
- [x] Include before/after visuals or gifs if this PR includes visual
changes.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.

Main changes can be found below.
Before:
<img width="580" height="780" alt="image"
src="https://github.com/user-attachments/assets/e3d5fc8a-bd59-48fe-bdae-31bb290749c8"
/>


After:

<img width="580" height="780" alt="image"
src="https://github.com/user-attachments/assets/bacdbdba-9e73-4bef-bd30-26fe946269c1"
/>

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-13 22:11:13 +02:00
dependabot[bot]
5fe38bb6ff chore(deps-dev): Bump typescript from 5.8.3 to 5.9.2 (#1301)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.3
to 5.9.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.9</h2>
<p>Release notes pending.</p>
<!-- raw HTML omitted -->
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.1 (RC)</a>.</li>
<li>[[No specific changes for TypeScript 5.9.2 (Stable)]]</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
</ul>
<h2>TypeScript 5.9 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-rc/">release
announcement</a></p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.1 (RC)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
</ul>
<h2>TypeScript 5.9 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/">release
announcement</a>.</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="be86783155"><code>be86783</code></a>
Give more specific errors for <code>verbatimModuleSyntax</code> (<a
href="https://redirect.github.com/microsoft/TypeScript/issues/62113">#62113</a>)</li>
<li><a
href="22ef57786f"><code>22ef577</code></a>
LEGO: Pull request from
lego/hb_5378966c-b857-470a-8675-daebef4a6da1_20250714...</li>
<li><a
href="d5a414cd1d"><code>d5a414c</code></a>
Don't use <code>noErrorTruncation</code> when printing types with
<code>maximumLength</code> set (#...</li>
<li><a
href="f14b5c8a2f"><code>f14b5c8</code></a>
Remove unused and confusing dom.iterable.d.ts file (<a
href="https://redirect.github.com/microsoft/TypeScript/issues/62037">#62037</a>)</li>
<li><a
href="2778e84ed8"><code>2778e84</code></a>
Restore AbortSignal.abort (<a
href="https://redirect.github.com/microsoft/TypeScript/issues/62086">#62086</a>)</li>
<li><a
href="65cb4bd2d5"><code>65cb4bd</code></a>
LEGO: Pull request from
lego/hb_5378966c-b857-470a-8675-daebef4a6da1_20250710...</li>
<li><a
href="9e20e032ef"><code>9e20e03</code></a>
Clear out checker-level stacks on pop (<a
href="https://redirect.github.com/microsoft/TypeScript/issues/62016">#62016</a>)</li>
<li><a
href="87740bc7fe"><code>87740bc</code></a>
Fix for Issue 61081 (<a
href="https://redirect.github.com/microsoft/TypeScript/issues/61221">#61221</a>)</li>
<li><a
href="833a8d492c"><code>833a8d4</code></a>
Fix Symbol completion priority and cursor positioning (<a
href="https://redirect.github.com/microsoft/TypeScript/issues/61945">#61945</a>)</li>
<li><a
href="0018c9ff12"><code>0018c9f</code></a>
LEGO: Pull request from
lego/hb_5378966c-b857-470a-8675-daebef4a6da1_20250702...</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=5.8.3&new-version=5.9.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

You can trigger a rebase of this PR 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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>

> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Harel M <harel.mazor@gmail.com>
2025-09-13 18:45:03 +00:00
Harel M
42e1273241 Color relief support and hillshading improvements. (#1371)
## Launch Checklist

This adds support for `relief-color` property so that it will create an
elevation expression when the button is pressed.
It also adds support for `colorArray` and `numberArray` types so that
the user would be able to add the relevant information.

Before:
<img width="403" height="324" alt="image"
src="https://github.com/user-attachments/assets/250abd81-6176-4711-a1ee-d33d443932d7"
/>

<img width="403" height="324" alt="image"
src="https://github.com/user-attachments/assets/6a1bb268-66db-42a1-97fc-33e5a40863b6"
/>


After:
<img width="403" height="324" alt="image"
src="https://github.com/user-attachments/assets/8ebaa1ea-4ef9-4aed-abcd-3c8b0057ea76"
/>

<img width="403" height="324" alt="image"
src="https://github.com/user-attachments/assets/e0728c92-85f9-4b86-8635-8877cf257b2f"
/>


 - [x] Briefly describe the changes in this PR.
- [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.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-11 20:43:20 +03:00
Harel M
d81316435b Fix missing spec info (#1370)
## Launch Checklist

This fixes an issue with missing info in the spec field due to using the
redacted spec (the one without the docs).

Before - missing button near color when hovering

<img width="397" height="202" alt="image"
src="https://github.com/user-attachments/assets/6f261407-5348-4a71-a6d8-afaff5b27e03"
/>

After:
<img width="397" height="202" alt="image"
src="https://github.com/user-attachments/assets/d2de1b2d-d4cf-4394-b995-e50b957da72c"
/>

I think I already solved this in the past, too bad I didn't add the
relevant tests back then...

 - [x] Briefly describe the changes in this PR.
- [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.
2025-09-11 10:09:26 +00:00
Harel M
c3c6118df1 Fix popup issue (#1368)
## Launch Checklist

When clicking the map to create a popup and then clicking on the map
again without closing the popup something breaks in react.
This PR fixes it.

Steps to reproduce:
1. Click on the map
2. Click on the map but not on the popup

The following malformed popup appears:
Before:
<img width="610" height="626" alt="image"
src="https://github.com/user-attachments/assets/99cbdf9a-0b3c-436d-ab13-f219ee3c6e75"
/>

After - popup looks good.
<img width="610" height="626" alt="image"
src="https://github.com/user-attachments/assets/6b379c0d-cbbf-40ed-916d-3cc10eaf4410"
/>

I couldn't make cypress reproduce the exact scenario, but I added some
basic tests for popups.

 - [x] Briefly describe the changes in this PR.
- [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.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-10 11:44:38 +00:00
Harel M
9c85883b8a Move modals and rename classes to match file names (#1367)
## Launch Checklist

I've created a folder for modals and moved them all inside.
I removed the icons which were small files with no real benefit and
moved the icons to where they were used.
I fixed an issue with the close button position in modal.
I've added missing translation to "Links" in debug modal.

Before: 

<img width="610" height="81" alt="image"
src="https://github.com/user-attachments/assets/dd7520f6-9634-4ff1-a83d-99ceae7c9144"
/>

After:
<img width="610" height="81" alt="image"
src="https://github.com/user-attachments/assets/fe3a2ccf-6c09-42ab-bf6f-dd30d3c68e13"
/>


 - [x] Briefly describe the changes in this PR.
- [x] Include before/after visuals or gifs if this PR includes visual
changes.
 - [ ] Add an entry to `CHANGELOG.md` under the `## main` section.
2025-09-10 14:37:23 +03:00
Harel M
3725f83b48 Update React to 19 (#1360)
## Launch Checklist

This updates React to 19.
It removes the unmaintained `react-icon-base` package and uses icons
from the existing one (also removes the svgs).
It also updates the other packages so that everything should be up to
date.

 - [x] Briefly describe the changes in this PR.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-09 22:52:52 +00:00
Harel M
7bfc3188f7 Fix layer selection (#1366)
## Launch Checklist

- This fixes the issue of layer selection that was introduced as part of
the migration to dnd-kit #1359
- Fixes #1364

This also adds the relevant test.

 - [x] Briefly describe the changes in this PR.
 - [x] Link to related issues.
 - [x] Write tests for all new functionality.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-10 01:46:58 +03:00
Harel M
55a487d0c8 Replacing react-sortable-hoc with dnd-kit (#1359)
## Launch Checklist

This PR replace react-sortable-hoc which is unmaintained with dnd-kit

- Resolves #1016
- Replaces the following PR: #1259

I've tested it locally to make sure it does what it should.
I'll see if I can add a test...

 - [x] Briefly describe the changes in this PR.
 - [x] Link to related issues.
 - [x] Write tests for all new functionality.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-08 22:08:32 +03:00
Harel M
abe6230932 Move style and store initialization to mount method (#1351)
This is in order to reduce warnings in the console for React 19 usage.
This removes the deprecated defaultProp and also move all the store
initialization logic out of the App.tsx file, keeping it a lot more
clean.
It removes the `debug` flag from the supported urls along with the
`localport` and `localhost`, which I'm not sure if and how they were
ever used.
The tests are using the `style` url, so I think it is covered in terms
of tests.
It also improves some typings along the project.
It removes some callbacks from the code and moves to use promises.

## Launch Checklist

 - [x] Briefly describe the changes in this PR.
- [x] Include before/after visuals or gifs if this PR includes visual
changes.
 - [x] Write tests for all new functionality.
 - [ ] Add an entry to `CHANGELOG.md` under the `## main` section.


Before:
<img width="1263" height="439" alt="image"
src="https://github.com/user-attachments/assets/1988c4f7-39de-4fd2-b6da-b4736abc0441"
/>

After:
<img width="1263" height="203" alt="image"
src="https://github.com/user-attachments/assets/28079e6d-9de7-40a1-9869-01a0876ca79f"
/>

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Bart Louwers <bart.louwers@gmail.com>
2025-09-08 15:22:29 +03:00
Bart Louwers
6f4c34b29a Fix ReactDOM.render usage (#1267)
## Summary
- render popups with createRoot
- document the fix in CHANGELOG

## Testing
- `npm run lint`
- `npm run build`
- `apt run xvfb` *(fails: Invalid operation)*
- `xvfb-run -a npm run test` *(fails: command not found)*

------
https://chatgpt.com/codex/tasks/task_e_686915f46ba883319b83639b6b71cc6b
2025-09-07 17:42:40 +03:00
dependabot[bot]
7289e26563 chore(deps): Bump maplibre-gl from 5.5.0 to 5.6.2 (#1308)
Bumps [maplibre-gl](https://github.com/maplibre/maplibre-gl-js) from
5.5.0 to 5.6.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/maplibre/maplibre-gl-js/releases">maplibre-gl's
releases</a>.</em></p>
<blockquote>
<h2>v5.6.2</h2>
<p><a
href="https://github.com/maplibre/maplibre-gl-js">https://github.com/maplibre/maplibre-gl-js</a>
<a
href="https://github.com/maplibre/maplibre-gl-js/compare/v5.6.1...v5.6.2">Changes</a>
since <a
href="https://github.com/maplibre/maplibre-gl-js/releases/tag/v5.6.1">MapLibre
GL JS v5.6.1</a>:</p>
<h3>🐞 Bug fixes</h3>
<ul>
<li>Fix white artifacts when using non-zero elevation (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6032">#6032</a>)</li>
<li>Fix geolocate control lock loss on window resize and zoom (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/3504">#3504</a>)</li>
<li>Fix a memory leak in <code>GeoJSONSource</code> when rapidly
updating data (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6163">#6163</a>)</li>
<li>Fix <code>Map.setTransformRequest</code> parameter type to include
<code>null</code> (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6179">#6179</a>)</li>
<li>Fix typo <code>_rotatePitchHandler</code> in the
<code>navigation_control.ts</code> file (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6207">#6207</a>)</li>
</ul>
<h2>v5.6.1</h2>
<p><a
href="https://github.com/maplibre/maplibre-gl-js">https://github.com/maplibre/maplibre-gl-js</a>
<a
href="https://github.com/maplibre/maplibre-gl-js/compare/v5.6.0...v5.6.1">Changes</a>
since <a
href="https://github.com/maplibre/maplibre-gl-js/releases/tag/v5.6.0">MapLibre
GL JS v5.6.0</a>:</p>
<h3>🐞 Bug fixes</h3>
<ul>
<li>Fix use of <code>textureSize</code> call in color relief shader (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5980">#5980</a>)</li>
<li>Fix Y axis transformation in projectFromLabelPlaneToClipSpace (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6021">#6021</a>)</li>
<li>Alpha-sort all examples (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6049">#6049</a>)</li>
<li>Ensure opacity is reset for popups when
<code>locationOccludedOpacity</code> no longer applicable (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6088">#6088</a>)</li>
</ul>
<h2>v5.6.0</h2>
<p><a
href="https://github.com/maplibre/maplibre-gl-js">https://github.com/maplibre/maplibre-gl-js</a>
<a
href="https://github.com/maplibre/maplibre-gl-js/compare/v5.5.0...v5.6.0">Changes</a>
since <a
href="https://github.com/maplibre/maplibre-gl-js/releases/tag/v5.5.0">MapLibre
GL JS v5.5.0</a>:</p>
<h3> Features and improvements</h3>
<ul>
<li>Add <code>setGlobalStateProperty()</code> and
<code>getGlobalState()</code> to the map public API (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5613">#5613</a>)</li>
<li>Improve tile frustum culling for globe, leading to better
performance and faster loading times. (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5865">#5865</a>)</li>
<li>Add new <code>color-relief</code> layer type to render hypsometric
tint from terrain-RGB tiles. (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5742">#5742</a>)</li>
</ul>
<h3>🐞 Bug fixes</h3>
<ul>
<li>Fix <code>queryRenderedFeatures</code> bounding box crossing
antimeridian in globe view. (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5856">#5856</a>)</li>
<li>Fix handling invalid glyph placement results along lines (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5118">#5118</a>)</li>
<li>Fix <code>refreshTiles()</code> for vector tiles (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5875">#5875</a>)</li>
<li>Revert changes to polygon intersection detection (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5590">#5590</a>
caused issue <a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/5864">5864</a>)</li>
<li>Fix breaking clusters when non-integer value provided for
<code>clusterMaxZoom</code> (warning is shown) (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/5929">#5929</a>)
+ clarify API docs</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/maplibre/maplibre-gl-js/blob/main/CHANGELOG.md">maplibre-gl's
changelog</a>.</em></p>
<blockquote>
<h2>5.6.2</h2>
<h3>🐞 Bug fixes</h3>
<ul>
<li>Fix white artifacts when using non-zero elevation (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6032">#6032</a>)</li>
<li>Fix geolocate control lock loss on window resize and zoom (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/3504">#3504</a>)</li>
<li>Fix a memory leak in <code>GeoJSONSource</code> when rapidly
updating data (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6163">#6163</a>)</li>
<li>Fix <code>Map.setTransformRequest</code> parameter type to include
<code>null</code> (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6179">#6179</a>)</li>
<li>Fix typo <code>_rotatePitchHandler</code> in the
<code>navigation_control.ts</code> file (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6207">#6207</a>)</li>
</ul>
<h2>5.6.1</h2>
<h3>🐞 Bug fixes</h3>
<ul>
<li>Fix use of <code>textureSize</code> call in color relief shader (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5980">#5980</a>)</li>
<li>Fix Y axis transformation in projectFromLabelPlaneToClipSpace (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6021">#6021</a>)</li>
<li>Alpha-sort all examples (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6049">#6049</a>)</li>
<li>Ensure opacity is reset for popups when
<code>locationOccludedOpacity</code> no longer applicable (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/6088">#6088</a>)</li>
</ul>
<h2>5.6.0</h2>
<h3> Features and improvements</h3>
<ul>
<li>Add <code>setGlobalStateProperty()</code> and
<code>getGlobalState()</code> to the map public API (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5613">#5613</a>)</li>
<li>Improve tile frustum culling for globe, leading to better
performance and faster loading times. (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5865">#5865</a>)</li>
<li>Add new <code>color-relief</code> layer type to render hypsometric
tint from terrain-RGB tiles. (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5742">#5742</a>)</li>
</ul>
<h3>🐞 Bug fixes</h3>
<ul>
<li>Fix <code>queryRenderedFeatures</code> bounding box crossing
antimeridian in globe view. (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5856">#5856</a>)</li>
<li>Fix handling invalid glyph placement results along lines (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5118">#5118</a>)</li>
<li>Fix <code>refreshTiles()</code> for vector tiles (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5875">#5875</a>)</li>
<li>Revert changes to polygon intersection detection (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5590">#5590</a>
caused issue <a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/5864">5864</a>)</li>
<li>Fix breaking clusters when non-integer value provided for
<code>clusterMaxZoom</code> (warning is shown) (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/5929">#5929</a>)
+ clarify API docs</li>
<li>Fix use of reserved GLSL <code>switch</code> statement in hillshade
shader (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/pull/5972">#5972</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7887f2c899"><code>7887f2c</code></a>
Bump version to 5.6.2 (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6225">#6225</a>)</li>
<li><a
href="f3bf5d392e"><code>f3bf5d3</code></a>
msft tier update (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6212">#6212</a>)</li>
<li><a
href="6a66c11936"><code>6a66c11</code></a>
Fix: issue <a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/3504">#3504</a>
geolocate lock loss zoom (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6219">#6219</a>)</li>
<li><a
href="627ddaf4ad"><code>627ddaf</code></a>
chore(deps): bump <code>@​mapbox/tiny-sdf</code> from 2.0.6 to 2.0.7 (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6224">#6224</a>)</li>
<li><a
href="5bbdd804ab"><code>5bbdd80</code></a>
chore(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6221">#6221</a>)</li>
<li><a
href="cb873a5833"><code>cb873a5</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 24.1.0 to 24.2.0
(<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6222">#6222</a>)</li>
<li><a
href="b20ddb1049"><code>b20ddb1</code></a>
chore(deps-dev): bump <code>@​typescript-eslint/parser</code> from
8.38.0 to 8.39.0 (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6220">#6220</a>)</li>
<li><a
href="34b050ca74"><code>34b050c</code></a>
chore(deps-dev): bump devtools-protocol from 0.0.1493946 to 0.0.1495869
(<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6218">#6218</a>)</li>
<li><a
href="cc4dfc25d5"><code>cc4dfc2</code></a>
Fix _rotatePitchHandler typo (<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6208">#6208</a>)</li>
<li><a
href="b1a2d89710"><code>b1a2d89</code></a>
chore(deps-dev): bump stylelint-config-standard from 38.0.0 to 39.0.0
(<a
href="https://redirect.github.com/maplibre/maplibre-gl-js/issues/6203">#6203</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/maplibre/maplibre-gl-js/compare/v5.5.0...v5.6.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=maplibre-gl&package-manager=npm_and_yarn&previous-version=5.5.0&new-version=5.6.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Co-authored-by: Birk Skyum <74932975+birkskyum@users.noreply.github.com>
Co-authored-by: Harel M <harel.mazor@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-07 14:24:50 +00:00
Gopi Aravind
e2e29d7f5e Add LocationIQ as supported map provider (#1293)
- Add LocationIQ access token field to settings and export modals
  - Include LocationIQ Streets style in gallery
  - Support automatic token replacement for LocationIQ URLs
  - Add LocationIQ tileset configuration
  - Include translations for all supported languages

## Launch Checklist
 - [x] Briefly describe the changes in this PR.
 - [x] Write tests for all new functionality.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.
2025-08-17 11:06:26 +03:00
Bart Louwers
2fef0467b6 Refactor Field components with const arrow functions (#1261)
## Summary
- convert all remaining Field components to const arrow functions
- document the refactor in the CHANGELOG

## Testing
- `npm run lint`
- `npm run build`


------
https://chatgpt.com/codex/tasks/task_e_68684db1b6b88331837307a54e3f9dc1
2025-07-05 14:47:03 +02:00
Bart Louwers
eb985f4d95 Replace react-autocomplete (#1263)
## Summary
- switch InputAutocomplete to `downshift`
- remove obsolete `react-autocomplete` dependency
- document autocomplete change in the changelog

## Testing
- `npm run lint`
- `npm run build`


------
https://chatgpt.com/codex/tasks/task_e_68685a78c2d483319c068f813723c1a7

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-05 14:58:28 +03:00
Bart Louwers
c486aa2139 Fix unbound callback in App (#1266)
## Summary
- ensure `onSetFileHandle` keeps the right `this`
- cover export dialog save with regression test

## Testing
- `npm run lint`
- `npm run build`
- `xvfb-run -a npx cypress run --spec cypress/e2e/modals.cy.ts` *(fails:
Failed to execute 'showSaveFilePicker' due to environment issues)*

------
https://chatgpt.com/codex/tasks/task_e_68690228e2cc8331a76abc157e8aadf3
2025-07-05 14:55:05 +03:00
Bart Louwers
533f647c71 Add duplicate layer id check (#1262)
## Summary

<img width="437" alt="Screenshot 2025-07-05 at 00 29 02"
src="https://github.com/user-attachments/assets/ebf8b024-a340-4eac-b470-29fd8f080c0a"
/>

- show an error if a layer with an existing id is added
- keep Add Layer modal open until the id is unique

## Testing
- `npm run lint`
- `npm run build`


------
https://chatgpt.com/codex/tasks/task_e_6868498a46188331b16e7b6e120930a7
2025-07-05 11:32:32 +02:00
Bart Louwers
4b977fd33e Remove legacy context API (#1258)
## Summary
- replace `childContextTypes` usage with `IconContext` providers
- drop `prop-types` imports

## Testing
- `npm run lint`
- `npm run build`


------
https://chatgpt.com/codex/tasks/task_e_6868431f6ecc83318393a5d079ca736e
2025-07-04 23:49:11 +02:00
Bart Louwers
e58b92b0cd Remove react autobind (#1254)
## Launch Checklist

<!-- Thanks for the PR! Feel free to add or remove items from the
checklist. -->
Remove react-autobind dependency

 - [x] Briefly describe the changes in this PR.
 - [ ] Link to related issues.
- [ ] Include before/after visuals or gifs if this PR includes visual
changes.
 - [ ] Write tests for all new functionality.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.
2025-07-04 22:21:56 +02:00
Frank Elsinga
4f52df7c3b fix: Multi choice options style regression (#1174)
## Launch Checklist


This PR fixes the silliness with the `maputnik-multibutton` requiring
`maputnik-button` and `@extend` not working because not included in said
file.

Fixes https://github.com/maplibre/maputnik/issues/1044

| Before | After |
|--------|--------|
|
![image](https://github.com/user-attachments/assets/0f4cd7a3-0359-4d0f-aaca-b346739cb760)
|
![image](https://github.com/user-attachments/assets/8b8f4aa4-b672-4495-9454-864d756799cc)
|


This also fixes the same issue a few lines up where
`maputnik-delete-filter` refers to an not imprted `@extend`.


 - [x] Write tests for all new functionality.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.
2025-05-04 07:39:48 +03:00
BlackGanglion
d691d49538 fix: fix filter-editor style (#1114)
Include before/after visuals or gifs if this PR includes visual changes.

### Before

![image](https://github.com/user-attachments/assets/84377ff4-f887-45c4-8424-d76d8724f79e)


### After

![image](https://github.com/user-attachments/assets/4e77bc54-a061-4474-b53f-d91677528336)

---------

Co-authored-by: Harel M <harel.mazor@gmail.com>
2025-03-28 13:33:46 +00:00
Yuri Astrakhan
9540686b40 Add precommit check (#1080)
Keeps the repo clean, same as several other of our repos

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-02-25 05:01:15 -05:00
Birk Skyum
abf3bd1fa0 Fix insertion of access tokens, when swapping renderer (#1021)
Going from e.g. MapTiler to OpenLayers and back will lose the maptlier
key.

This code finds the urls in the style that has "{key}" and insert the
correct API keys

Fixes the error reported here, cc @nyurik 
- Fixes
https://github.com/maplibre/maputnik/issues/874#issuecomment-2605896666

Related to:
- https://github.com/maplibre/maputnik/issues/869

## Launch Checklist

<!-- Thanks for the PR! Feel free to add or remove items from the
checklist. -->


 - [ ] Briefly describe the changes in this PR.
 - [ ] 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.
2025-01-28 12:57:38 +00:00
Pirmin Kalberer
5af2cc2f9e Add PMTiles support (#938)
Add support for pmtiles sources. Solves #807 

<strike>
There is still an error, probably when adding the source to the Maputnik
sources:

```
Failed to process sources for 'pmtiles://https://example.com/data/switzerland.pmtiles' TypeError: NetworkError when attempting to fetch resource.
    fetchSources App.tsx:642
```

@bdon How did you solve this for https://editor.protomaps.com/ ?
</strike>

---------

Co-authored-by: Brandon Liu <bdon@bdon.org>
Co-authored-by: WebFreak001 <gh@webfreak.org>
Co-authored-by: ShellyDCMS <60476837+ShellyDCMS@users.noreply.github.com>
Co-authored-by: Harel M <harel.mazor@gmail.com>
2025-01-23 10:59:08 +02:00
Birk Skyum
87cd79e86f Use new scss syntax (#1015) 2025-01-21 22:38:05 +01:00
Birk Skyum
cd7d607f13 Upgrade eslint (#1014)
It's apparently forced now to use the eslint.config.js instead of
.eslintrc

It got more strict with requiring the underscore on unused vars like
`catch(_err)` , but that was all

Closes #1012
Closes #995
Closes #992

## Launch Checklist

<!-- Thanks for the PR! Feel free to add or remove items from the
checklist. -->


 - [ ] Briefly describe the changes in this PR.
 - [ ] 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.
2025-01-21 15:21:30 +00:00
Birk Skyum
3e6994084c Bump OpenLayers (#998)
Closes #996

## Launch Checklist

<!-- Thanks for the PR! Feel free to add or remove items from the
checklist. -->


 - [ ] Briefly describe the changes in this PR.
 - [ ] 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.
2025-01-21 15:24:15 +02:00
dependabot[bot]
69e4888d71 Bump eslint-plugin-react-refresh from 0.4.6 to 0.4.18 (#987)
Bumps
[eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh)
from 0.4.6 to 0.4.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases">eslint-plugin-react-refresh's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.18</h2>
<p>ESM/CJS interop is the worse that happened to this ecosystem, this is
all I have to say.</p>
<h2>v0.4.17</h2>
<ul>
<li>Fix detection of local components to not generate warning on for
variable inside JSX files that follow React component naming (fixes <a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/75">#75</a>)</li>
<li>Update types to not require extra unnecessary <code>.default</code>
property access under TS node16 module resolution (fixes <a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/70">#70</a>)</li>
</ul>
<h2>v0.4.16</h2>
<p>Fix CJS/ESM interop issue. Sorry everyone for the trouble.</p>
<h2>v0.4.15</h2>
<h3>Add support for custom HOCs (<a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/60">#60</a>)</h3>
<p>By default, the rule only knows that <code>memo</code> &amp;
<code>forwardRef</code> function calls with return a React component.
With this option, you can also allow extra function names like Mobx
observer to make this code valid:</p>
<pre lang="tsx"><code>const Foo = () =&gt; &lt;&gt;&lt;/&gt;;
export default observer(Foo);
</code></pre>
<pre lang="json"><code>{
  &quot;react-refresh/only-export-components&quot;: [
    &quot;error&quot;,
    { &quot;customHOCs&quot;: [&quot;observer&quot;] }
  ]
}
</code></pre>
<p>Thanks <a
href="https://github.com/HorusGoul"><code>@​HorusGoul</code></a>!</p>
<h3>Add recommended config and simple types (<a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/67">#67</a>)</h3>
<p>You can now add the recommended config to your ESLint config like
this:</p>
<pre lang="js"><code>import reactRefresh from
&quot;eslint-plugin-react-refresh&quot;;
<p>export default [
/* Main config */
reactRefresh.configs.recommended, // Or reactRefresh.configs.vite for
Vite users
];
</code></pre></p>
<p>To follow ESLint recommandations, the rule is added with the
<code>error</code> severity.</p>
<p>Some simple types ensure that people typecheking their config won't
need <code>@ts-expect-error</code> anymore.</p>
<h3>Bump ESLint peer dependency to 8.40</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md">eslint-plugin-react-refresh's
changelog</a>.</em></p>
<blockquote>
<h2>0.4.18</h2>
<p>ESM/CJS interop is the worth that happend to this ecosystem, this is
all I have to say.</p>
<h2>0.4.17</h2>
<ul>
<li>Fix detection of local components to not generate warning on for
variable inside JSX files that follow React component naming (fixes <a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/75">#75</a>)</li>
<li>Update types to not require extra unnecessary <code>.default</code>
property access under TS node16 module resolution (fixes <a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/70">#70</a>)</li>
</ul>
<h2>0.4.16</h2>
<p>Fix CJS/ESM interop issue. Sorry everyone for the trouble.</p>
<h2>0.4.15</h2>
<h3>Add support for custom HOCs (<a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/60">#60</a>)</h3>
<p>By default, the rule only knows that <code>memo</code> &amp;
<code>forwardRef</code> function calls with return a React component.
With this option, you can also allow extra function names like Mobx
observer to make this code valid:</p>
<pre lang="tsx"><code>const Foo = () =&gt; &lt;&gt;&lt;/&gt;;
export default observer(Foo);
</code></pre>
<pre lang="json"><code>{
  &quot;react-refresh/only-export-components&quot;: [
    &quot;error&quot;,
    { &quot;customHOCs&quot;: [&quot;observer&quot;] }
  ]
}
</code></pre>
<p>Thanks <a
href="https://github.com/HorusGoul"><code>@​HorusGoul</code></a>!</p>
<h3>Add recommended config and simple types (<a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/67">#67</a>)</h3>
<p>You can now add the recommended config to your ESLint config like
this:</p>
<pre lang="js"><code>import reactRefresh from
&quot;eslint-plugin-react-refresh&quot;;
<p>export default [
/* Main config */
reactRefresh.configs.recommended, // Or reactRefresh.configs.vite for
Vite users
];
</code></pre></p>
<p>To follow ESLint recommandations, the rule is added with the
<code>error</code> severity.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3d6251de43"><code>3d6251d</code></a>
Fix types [publish]</li>
<li><a
href="47f25f07d9"><code>47f25f0</code></a>
Update types to not require extra unnecessary <code>.default</code>
property access unde...</li>
<li><a
href="639e7724f4"><code>639e772</code></a>
Fix detection of local components to not generate warning on for
variable ins...</li>
<li><a
href="d939cc4bd4"><code>d939cc4</code></a>
Fix exports [publish]</li>
<li><a
href="7d1709b065"><code>7d1709b</code></a>
0.4.15 [publish]</li>
<li><a
href="ec747c2a25"><code>ec747c2</code></a>
Add configs and simple types (<a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/67">#67</a>)</li>
<li><a
href="359ae21a40"><code>359ae21</code></a>
Bump ESLint peer dependency (fixes <a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/56">#56</a>)</li>
<li><a
href="86bddb3b9a"><code>86bddb3</code></a>
Add changelog entry &amp; simplify legacy name based only check</li>
<li><a
href="478e7788bd"><code>478e778</code></a>
Add basic support for custom HOCs (<a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/60">#60</a>)</li>
<li><a
href="94c9d7d98c"><code>94c9d7d</code></a>
docs: switch suggested severity from 'warn' to 'error' (<a
href="https://redirect.github.com/ArnaudBarre/eslint-plugin-react-refresh/issues/66">#66</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.4.6...v0.4.18">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint-plugin-react-refresh&package-manager=npm_and_yarn&previous-version=0.4.6&new-version=0.4.18)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
Co-authored-by: Harel M <harel.mazor@gmail.com>
2025-01-21 14:24:47 +02:00
Joscha Eckert
405b8aa951 add fallback behavior for showOpenFilePicker and showSaveFilePicker (#967)
## 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.
- [x] Include before/after visuals or gifs if this PR includes visual
changes.
 - [ ] Write tests for all new functionality.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.

## Description

`showOpenFilePicker` and `showSaveFilePicker` are undefined on Firefox.
With this pr, Maputnik uses the old behavior as a fallback. It keeps the
naming "open" and "save" instead of "upload" and "download" to underline
that the style stays within the browser and no actual upload happens.

@zstadler Could you give it a try, please?

## Related Issue

- fixes https://github.com/maplibre/maputnik/issues/966

## Visual Changes

The "Save as" button gets hidden if `showSaveFilePicker` is not
available since it would have no use.

<table>
<tr>
<td>
Chrome
</td>
<td>
Firefox
</td>
</tr>
<tr>
<td>
<img
src="https://github.com/user-attachments/assets/cdc2cd4d-1c09-4dec-8c94-f8b0dd0c5b8e"
/>
</td>
<td>
<img
src="https://github.com/user-attachments/assets/0763ef63-6501-4cc1-977b-94753c3008ae"
/>
</td>
</tr>
</table>
2025-01-16 23:53:27 +02:00
Joscha
d50ea76347 feat: use FileSystemFileHandle to modify a file on the local filesystem (#965)
## 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.
- [x] Include before/after visuals or gifs if this PR includes visual
changes.
 - [ ] Write tests for all new functionality.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.

## Changes

- This pull request makes use of the FileSystemFileHandle API to modify
a local file. No need to download it - just click save.
- I don't know how to cover this functionality by tests so I need
directions in case test coverage is required.
- The pull request adds
[@types/wicg-file-system-access](https://www.npmjs.com/package/@types/wicg-file-system-access)
as a new dev dependency which I am not really pleased about but can't
think of a way around it.

## Known Limitations

- The used File API is only available in when accessed from https or on
localhost.
- There is no visual indicator that the file has been saved. Previously
the browser showed it as a new download.

## Issue

- https://github.com/maplibre/maputnik/issues/964

## Screenshots

### Menu
<img
src="https://github.com/user-attachments/assets/dfcfc5c2-0019-4857-ba26-224b5598fc11"
/>

### Open modal
<img
src="https://github.com/user-attachments/assets/4e1293e8-16b6-4b86-925b-3bebb49d8ca6"
height="200px" />

### Save modal
<img
src="https://github.com/user-attachments/assets/4f10e2c0-2dd3-4726-a613-30e0406619b0"
height="200px" />

---------

Co-authored-by: Harel M <harel.mazor@gmail.com>
2025-01-09 18:54:26 +02:00
Rob Labs
687f9abaf2 [user interface]: Use .png as the XYZ Tile URL format hint for raster & raster-dem tiles (#952)
## Launch Checklist

 - [x] Briefly describe the changes in this PR.

* When adding a new Raster or Raster-dem tile source, use `.png` as the
hint for the tile URL hint prompt.
* Currently, the user is prompted for a Vector tile source (e.g.,
`.pbf`)
* If a new Mapnik user already has their XYZ raster Tile URL, then they
may already know how to modify this text field.
* This change may be useful for new users and is intended for them.
* `.png` is a start. It could be `.webp` or `.jpg`, or `.jpg`, or in the
case of Esri there is no extension for the images.
* See [RobLabs.com/xyz](https://RobLabs.com/xyz) for sample XYZ raster
tile URLs

---

- [x] Include before/after visuals or gifs if this PR includes visual
changes.
* Steps to reproduce
* See [RobLabs.com/maputnik](https://roblabs.com/maputnik) for a working
version of this fix for Maputnik
* On top menu bar: *Data Sources* > In the *Add New Source* section >
Change *Source Type* to "Raster (Tile URLs)"
* There you will see prompt hint for a raster Tile instead of vector
tile `.pbf`.
* See the release notes for the National Park Service prototype release
for [Maputnik for National Park Service Park
Tiles](https://github.com/roblabs/maputnik/releases/tag/v2.1.1-nationalparkservice)
for more screen shots.

#### Before

`.pbf` may be confusing for those adding a Raster


![image](https://github.com/user-attachments/assets/f3869f2e-b2d6-4339-807d-7c14ddfecd29)

#### After


![image](https://github.com/user-attachments/assets/2bb06206-23c2-467c-981d-f939a9525d3d)

---

 - [x] Write tests for all new functionality.
 * See screen shots for functionality
 - ~~[] Add an entry to `CHANGELOG.md` under the `## main` section.~~
 *Not really a feature, so I will leave this out*
 - [ ] ~~Link to related issues.~~
2024-10-31 21:03:35 +02:00
teyotan
172d4d5278 Add tileSize field for raster and raster-dem tile sources (#946) (#947)
## Launch Checklist

Add `tileSize` field for raster and raster-dem tile sources. Solves #946


![Untitled](https://github.com/user-attachments/assets/833bf41b-0439-47f3-b9ff-5f289f437725)

### Not in this PR

i18n for `Tile Size`

 - [x] Briefly describe the changes in this PR.
 - [x] 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.

---------

Co-authored-by: Harel M <harel.mazor@gmail.com>
Co-authored-by: Keitaroh Kobayashi <keita@kbys.me>
Co-authored-by: Hugues Tavernier <hugues.tavernier@protonmail.com>
Co-authored-by: Joscha <34318751+josxha@users.noreply.github.com>
2024-10-15 10:11:57 +03:00
huangli
6089cde302 Add scheme type options for vector/raster tile (#943)
## Launch Checklist

<!-- Thanks for the PR! Feel free to add or remove items from the
checklist. -->


 - [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.
 - [ ] Write tests for all new functionality.
 - [x] Add an entry to `CHANGELOG.md` under the `## main` section.


![image](https://github.com/user-attachments/assets/39c275dc-b526-426b-9d46-db1f1635d7ee)
2024-09-29 15:01:30 +03:00
Ian Wagner
25cf61a825 Add links to tile provider authentication docs (#914)
This probably confused some people in the past, since vector tiles won't
even display an access denied image ;)

Before (no information on access keys and where to get them):

<img width="411" alt="image"
src="https://github.com/user-attachments/assets/8820fb20-bda4-460c-9cc9-8fec5daa480d">

After (add links to providers in info callout + add a field for Stadia
Maps API keys):

<img width="395" alt="image"
src="https://github.com/user-attachments/assets/91ee732c-b3f5-45f8-81a6-8d896a93f644">

---------

Co-authored-by: Harel M <harel.mazor@gmail.com>
Co-authored-by: Joscha <34318751+josxha@users.noreply.github.com>
Co-authored-by: Hugues Tavernier <hugues.tavernier@protonmail.com>
Co-authored-by: Keitaroh Kobayashi <keita@kbys.me>
2024-09-25 10:22:39 +03:00
Harel M
60785f53bc Add translation process and small fixes (#930)
## Launch Checklist

This adds information about how to translate Maputnik and how to get in
touch with people who have translated in the past.
@keichan34, @jieme, @lhapaipai - I need your approval for this so that
people in the future will know to contact you in case text is being
added and they need help translating it.

CC: @ianthetechie 

I've also changed the word "Language" in the upper part of the screen so
that it won't be translated in case you accidentally switch language,
and you need to switch back.

I've also fixed some RTL issues in the CSS and updated the maplibre
components labels when the language changes.
2024-09-02 12:44:44 +03:00
Harel M
8184ac8393 Update geocoder to 1.6.0 (#920)
This is to update geocoder to latest version which now have types and is
fully modernized.
2024-08-21 08:56:59 +03:00
Keitaroh Kobayashi
58edd262b0 Add react-i18next for multi-language support (#917)
This is a rough start on adding react-i18next. I'll be working on adding
more translatable strings and translations in the coming days. I'm going
to need to wrap class components in HOCs, so let me know if there's
something I should be fixing before doing that. I'm thinking now to keep
the exported class names exactly the same, and rename the existing
classes by prefixing an `I` (for internal). For example:

```
export default class AppToolbar ...
```

becomes

```
class IAppToolbar ...
const AppToolbar = withTranslation()(IAppToolbar);
export default AppToolbar;
```

I'll be able to contribute Japanese strings (I've talked to a couple
people on my team and they'll be happy to help as well), so that's the
language I decided to go with in this PR.

Closes #746

---------

Co-authored-by: Ko Nagase <nagase@georepublic.co.jp>
Co-authored-by: Harel M <harel.mazor@gmail.com>
2024-08-19 12:43:04 +03:00
Kacper Golinski
d0f6e0fadb Update feature id label to $id in feature properties popup (#912)
Current label, "Feature ID", creates a little bit of confusion. It's not
clear that this label isn't really part of the feature properties.

For example, when we want to filter by feature id, we need to use `$id`

```
[==, "$id," 123] 
```
2024-07-12 21:18:23 +03:00
Harel M
c82c6158e6 Update Cypress related packages (#903)
Let's see if this adds the relevant information to the CI run details.
CC: @ShellyDCMS
2024-05-29 10:47:14 +03:00
IGUCHI Kanahiro
a73b11805d localIdeographFontFamily: false to load CJK fonts (#893)
close #892 

this changes works well for CJK fonts.

<img width="736" alt="Screenshot 2024-03-25 at 22 04 36"
src="https://github.com/maplibre/maputnik/assets/20744195/adb0295e-5428-4773-b216-8f380e2dcb05">
2024-03-27 01:12:17 +02:00
Harel M
ff15b77b7f Update React to version 18 and other deps (#890)
This PR aims at updating some packages.
I'll keep this in draft until I'll be more happy with the results.
Current setup seems to work, I'll let the CI run and see how bad this
is.
Packages that needs to be updated/replaces:
- [x] ~autocompete - The only warning left in the console is related to
the autocomplete, which probably needs to be updated since it's a
package that wasn't updated in the last 6 years.~ #611
- [x] ~Codemirror is also something that will need an update, but it
looks too complicated at this point in time, so let's see how this
goes.~ #891
- [ ] react-color
- [x] ~react-aria-menubutton~ #846
- [ ] Others?

Most of the changes here are related to types, which is good.
2024-03-21 22:51:29 +02:00
Harel M
355b663e7e Another attempt to fix the inspect issues (#889)
Fixes #871

- #871 

In case of same sources, calling the render method when the map style
changes, but not right away to let the map load the sources should fix
the issue.
2024-03-14 21:02:49 +02:00
Harel M
3c043fd5e0 Replace mapbox-gl-inspect with maplibre-gl-inspect (#888)
This hopefully fixes #871 

- #871 

I still need to update maplibre-gl-inspect to allow this to be fixed.
2024-03-13 22:48:01 +02:00
Harel M
3727f5da48 Improve inspect hover UI (#879)
Fixes #868
- #868

It solves all the block within blocks and all kind of controls that are
not required which creates gaps.
I use a simple table, so the width is dynamic but it is always aligned
for all the properties and the features.

![image](https://github.com/maplibre/maputnik/assets/3269297/75138b00-ec7b-4e8d-b51b-f8ff6abcd5cb)

Vary basic stuff.
There's still the layer popup, which I'm not sure I know what it is and
might need to be fixed as well.
CC: @zstadler
2024-02-21 07:17:28 +02:00
Harel M
bc5ecfade6 Removes number conversion for dirty input (#878)
Fixes #870

- #870

This regression bug was introduced as part of the refactoring of
typescript.
Here:
- #848

I've added tests to cover the scenario so that it won't happen again,
hopefully.
2024-02-07 10:32:19 +02:00
Harel M
cb77c6b4e2 Add nominatim search to maputnik (#873)
This replaces PR:
- #785

Before:

![image](https://github.com/maplibre/maputnik/assets/3269297/95297211-4108-43d8-8a43-42f87e2fbe16)
After:

![image](https://github.com/maplibre/maputnik/assets/3269297/86c3ae58-1bb7-4d2c-8ad9-6b84a21c96f7)

This is based on the geocoder example in maplibre docs:
https://maplibre.org/maplibre-gl-js/docs/examples/geocoder/
2024-02-04 11:37:23 +02:00
HarelM
3b95b25777 Remove unneed console.log 2024-01-13 14:38:56 +02:00
Harel M
1da65f2116 Fix missing logo (#863)
Fixes #861
This should hopefully address the last item in the below issue of the
missing logo.
I tested it locally and it seems to be working as expected, I hope this
will be the case once deployed.
- #861
2024-01-12 18:46:10 +02:00
Harel M
a62db148cd Remove Storybook, cleanups (#860)
1. Changed references to point to this new repo
2. Fixed docker image publishing to point to ghcr.io.
3. Remove survey link - the survey is closed and there's no point in
keeping it.
4. Remove storybook - Basically a storybook is the ability to look at
components and see how they look and interact with them.
It's a powerful tool for developing component library with "live"
documentation.
But it's an overkill for this project and I would like to reduce
maintenance costs.
Currently all the "stories" are in javascript and not in typescript and
it feels like a waste of time to try and maintain it, along with
updating the storybook library itself and everything around it.
2024-01-12 10:59:57 +02:00