What's Changed
- fix(settings): editable hex input for the custom accent color by @giswqs in #914
- feat(tour): per-keyframe hold/transition controls and named setup save by @giswqs in #909
- feat(sql): dock SQL Workspace as a resizable panel with autocomplete by @giswqs in #910
- docs: rename Live Demo to Launch GeoLibre Web; make Getting Started user-focused by @giswqs in #920
- fix(storymap): export globe + 3D extrusion, scroll/exit/resize fixes, name prompt by @giswqs in #922
- fix(raster): offer convert-to-COG for striped GeoTIFFs loaded from a URL by @giswqs in #924
- fix(3d-tiles): panel fills form content on resize (#923) by @giswqs in #925
- fix(basemap): apply resolved provider style URL and recover from failed basemaps by @giswqs in #927
- fix(map): sync layer control style editor with the Style sidebar (#912) by @giswqs in #926
- docs: fix home page title and bump status to 1.8 by @giswqs in #928
- chore: move web viewer to web.geolibre.app by @giswqs in #929
- fix(viewer): keep viewer.geolibre.app as a worker route by @giswqs in #930
- feat(style): add transparent fill/outline option to color picker by @giswqs in #938
- fix(storymap): hide faded point outlines and render plugin basemaps in HTML export by @giswqs in #941
- feat(help): add Website and GitHub links to Help menu by @giswqs in #943
- fix(graticule): release focus when pressing Enter in numeric inputs by @giswqs in #945
- fix(processing): drop reserved OGC_FID property before ST_Read (#944) by @giswqs in #946
- docs: add Troubleshooting page for browser/Safari cache issues by @giswqs in #947
- docs: simplify Homebrew install (official cask merged) by @giswqs in #948
- fix: exported story basemap + collapse plugin panels on project load by @giswqs in #953
- fix(graticule): disable interval input when spacing is Auto by @giswqs in #955
- feat(add-data): Add CAD (DXF/DWG) Layer source with layer picker and CRS by @giswqs in #957
- feat(conversion): add generic Vector to Vector tool (any format by extension) by @giswqs in #959
- fix(geoagent): custom provider, model loading, and commit-based key save by @giswqs in #949
- fix(vector): load desktop files with native DuckDB by @giswqs in #963
- fix(desktop): shrink default DuckDB build by @giswqs in #967
- fix(planetary): restore saved raster layers by @giswqs in #966
- fix(add-data): relabel "Insert before" to "Insert below" (#973) by @giswqs in #975
- Show video layer metadata in layer info by @giswqs in #976
- Fix Deck.gl example data flow by @giswqs in #978
- Add directions route metrics by @giswqs in #977
- Update vector sample loading workflow by @giswqs in #979
- Update raster plugin for issue 969 by @giswqs in #980
- Fix globe popup occlusion by @giswqs in #981
- Address globe popup review follow-up by @giswqs in #982
- Tighten popup zero opacity handling by @giswqs in #983
- Fix GeoParquet files with base64 WKB geometry by @giswqs in #987
- Update MapLibre plugin dependencies by @giswqs in #988
- Show external plugin load failures by @giswqs in #989
- fix(pyodide-console): load pyodide.asm.js via blob so a self-hosted mirror works under CSP by @giswqs in #1002
- fix(usgs-lidar): disambiguate Clear labels and lock Search Map Extent while drawing by @giswqs in #1004
- Fix OAuth popup new-window panic by @giswqs in #1003
- chore(deps): clear npm audit vulnerabilities and deprecation warnings via overrides by @giswqs in #1005
- fix(new-project): prompt to save unsaved changes before the new-project form (#990) by @giswqs in #1007
- Prompt for HTML export name and skip onboarding in embeds (#991) by @giswqs in #1006
- Fix offline download count, completion state, and cache-limit gating by @giswqs in #1008
- fix: numerical angle input for the GeoEditor Rotate tool by @giswqs in #1010
- feat(storymap): hide-itinerary toggle, handout subtitle/byline, start/closing slides by @giswqs in #1009
- feat(plugins): expose maplibre-gl-raster and projection control to plugins by @giswqs in #1011
- fix: load GeoPackages via Add Vector Layer without hanging by @giswqs in #1018
- fix(geo-editor): keep edit overlay at the edited layer's z-position (#1015) by @giswqs in #1017
- feat(map): exclude plugin-internal style layers from the layer control by @giswqs in #1012
- fix(geo-editor): dead first click when switching between draw tools (#889) by @giswqs in #1020
- feat(raster): populate Legend from a paletted raster's color table by @giswqs in #1019
- fix: exclude Vantor internal helper layers from Layer Swipe by @giswqs in #1021
- feat(add-data): retrieve layers/types for WMS and WFS from GetCapabilities by @giswqs in #1039
- chore(release): v1.9.0 by @giswqs in #1040
- fix(msix): default PublisherDisplayName to the registered Store name by @giswqs in #1043
Full Changelog: v1.8.0...v1.9.0