Commit Graph

15 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
Harel M
eb48bed32a Update MapLibre dependencies, add terrain editing (#859)
This PR aims at updating MapLibre dependencies.

The main goal of this update is to allow adding terrain specification to
the editor.
This requires version 4 of maplibre so currently it will use the
pre-release.
2024-01-11 22:05:47 +02:00
Harel M
a22476cab2 Add lint to CI and fix errors (#853)
Adds lint to CI and fixes errors.
I'm not sure I'm fully proud of all the solutions there.
But there's no lint issues and the lint is being checked as part of the
CI.

---------

Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
2023-12-26 23:13:22 +02:00
Harel M
656264f2bc Migration of jsx files to tsx 3 (#851)
This is in continue to:
- #850
- #848

The last files should be converted as part of this PR, there are only a
handful left.
2023-12-25 15:48:46 +02:00