All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
8.0.0-rc.5 (2026-07-24)
8.0.0-rc.4 (2026-07-24)
- data: add countries v4 vector tile pipeline notebook (#1610) (a4836b4)
- mobile: frontend rework — view tabs, bottom nav, location tools, legend & map chrome (GMW-1070) (#1627) (75a236a)
- promote alerts widget + login out of feature flags, remove alerts-staging (#1619) (6ed8023)
- correct user_role_other API key + revive signup role fields (#1622) (70fd090)
- custom-area reset 400 + upload/save fixes (GMW-1067) (#1612) (c553f09)
- deps: address 20 dependency vulnerabilities (#1616) (9a4bf39)
- keep small widget values visible in number formatting (#1608) (191b89a)
- net change y-axis double-converts km² to ha (GMW-1071) (#1626) (ee1a68d)
- PATCH /users for profile update (current_user is GET-only, was 404) (#1624) (ba427f9)
- persist free-text 'Other' role (user_other_role key) (#1620) (10a6cd0)
- profile update goes direct to BE /users; align getToken cookie for /auth/me GET (#1625) (c87901c)
- profile update persists (correct key + same-origin PATCH proxy) (#1621) (6991d40)
- resolve Node engine version mismatch (GMW-1055) (#1617) (ae35fd7)
- sync user profile updates with BE (current_user source of truth) (#1623) (9f737d0)
- test: distinct testids for mobile Menu/Help triggers (GMW-1070) (#1628) (9663864)
- use PATCH for user updates + stop logging password payloads (#1618) (faa4c84)
8.0.0-rc.3 (2026-07-16)
- add monitored area legend to alerts widget and map legends (#1593) (be9df22)
- draw and analyse saved custom areas on map click (#1599) (b108b20)
- add thousands separators to net change widget Y-axis (GMW-1054) (#1600) (8ea451c)
- alerts widget axis labels and monitored areas outline (#1592) (46327c4)
- correct species widget no-data behaviour (GMW-1062) (#1606) (666a8e7)
- filter alerts map layer by widget date range (#1590) (7d9e506)
- only require current password when changing password in account form (GMW-1046) (#1594) (713ac67)
- order map-tip contextual layers on the map (GMW-1057) (#1603) (c5abe54)
- prevent empty toast on dark-mode OS (GMW-1043) (#1607) (2273db6)
8.0.0-rc.2 (2026-07-09)
- allow selecting roles in profile dropdown inside dialog (GMW-1043) (#1586) (4ccc395)
- preserve logo aspect ratio to silence next/image warning (#1585) (e3b9546)
- role dropdown hidden behind menu dialog on profile (GMW-1043) (#1584) (d418539)
- show widget list by default on mobile (#1582) (b9e5747)
- unify mobile bottom-toolbar icons (#1580) (5cb5cd9)
8.0.0-rc.1 (2026-07-08)
- log window.Transifex to debug Transifex Live init (be5ceb1)
- popup and widget control accessibility amendments (#1575) (207b923)
- popup docking behavior and widget accessibility improvements (#1577) (2f21464)
8.0.0-rc.0 (2026-07-06)
- data-driven year range in extent & net-change info + dropdowns (GMW-1039) (e410f44)
- fly map to worldwide on Reset page (GMW-1037) (eea5d64)
2.0.0 (2026-07-06)
- drop release-as bootstrap now that v2.0.0-rc.0 is cut (90741c1)
2.0.0-rc.0 (2026-07-06)
- accessibility improvements (ARIA, button names, touch targets) (f9517ee)
- accessibility improvements (ARIA, button names, touch targets) (9995cc5)
- add branded accessible 404 and 500 error pages (6a4c4d7)
- add cross-app SSO between GMW and MRTT (e4310a2)
- add cross-app SSO between GMW and MRTT (c346ef2)
- add MRTT sites grouped by landscape to saved areas (9b73c73)
- add MRTT sites grouped by landscape to saved areas (84a9f53)
- add timeline slider with animated playback to habitat extent widget (b81b0aa)
- add xs breakpoint and adapt location toolbar to card width (0a7ef63)
- add year axis to net change brush track (8e45e76)
- add year dropdown to habitat extent timeline sentence (a0ca47e)
- add year dropdown to habitat extent timeline sentence (3010649)
- align net change tooltip rows (label left, value right) (8f1953e)
- analysis: migrate NetChange to GMW v4 unified classification IC (cc3a6c8)
- analysis: migrate NetChange to GMW v4 unified classification ImageCollection (94191af)
- App Router migration (5e78f1b)
- compact per-source legend controls and source reordering (86e5bfc)
- data: add notebook to export GMW v4 gain/loss map tiles (800071d)
- data: add notebook to export GMW v4 gain/loss map tiles (0cd9248)
- disable year dropdown selection while timeline is playing (5352c7c)
- extract widgets-deck disclaimer banner and refine dialog close button (d6d3883)
- gate extent layer source by timeline_slider flag (b5ac006)
- gate extent layer source by timeline_slider flag (653c472)
- gate habitat extent timeline slider behind feature flag (4754d4d)
- implement gain-loss-v4 tilesets for net change layer (GMW-1035) (63d9a3f)
- implement gain-loss-v4 tilesets for net change layer (GMW-1035) (6e83f99)
- implement new net change design + shared chart tick/brush (GMW-845) (6c4c6d3)
- implement new net change design, shared chart tick and brush (GMW-845) (671f3d3)
- improve a11y on Slider and TimelineSlider (b32458b)
- keep a brush tick per date, thin labels when they would crowd (29db393)
- make timeline draggable and clickable across the full track (4cddf9c)
- migrate HabitatExtent analysis to GMW v4 multiband raster (4f6e1ef)
- migrate HabitatExtent analysis to GMW v4 multiband raster (6e52990)
- mobile: 20px gap between location card and first widget (51b63ab)
- mobile: align legend, map controls, sidebar buttons to xl breakpoint (dc2aa7e)
- mobile: redesign legend with Collapsible (20c4b20)
- mobile: redesign navigation bar with tooltips and shared News component (f11c7ae)
- mobile: responsive dialog, widget collapse, nav bp alignment (5d2eaf1)
- mobile: switch layout at xl breakpoint + redesigned nav bar (ad277da)
- mobile: switch to xl (1280px) breakpoint, redesign nav and legend (022fbe0)
- mobile: tweak widgets layout widths and padding (a7c8d54)
- move desktop/mobile layout breakpoint from xl to lg (b830603)
- redesign net change widget (gain/loss bars, brush, extent layer) (837cf40)
- redesign net change widget with gain/loss bars, brush and extent layer (7d54f12)
- remove brush x-axis line and add ticks (net change + alerts) (51032e6)
- render net change brush year axis with ticks below the brush band (e55fb12)
- replace inline print styles with dedicated print report page (9df2ea8)
- replace inline print styles with dedicated print report page (d15d783)
- replace TimelineSlider with Timeline component in habitat extent widget (9e05b8b)
- show gain and loss in net change chart tooltip (534b2dd)
- smooth client-side navigation with persistent map state (2ed6a1a)
- smooth client-side navigation with persistent map state (3454903)
- split legend controls for national dashboard (17ded6d)
- switch mobile/desktop layout at xl breakpoint (1280px) (32f0de3)
- sync net change brush with chart (0d52ca0)
- timeline slider for habitat extent widget (f102b9a)
- add DialogTitle to saved-areas dialog for a11y (6d0cbc4)
- add gap between brush ticks and axis labels (098c5f8)
- add top fade overlay to planet date select popup (733b98f)
- add vertical spacing between net change sentence, map tip banner and chart (1a358a0)
- align basemap settings spacing, cursor styles, and hydration (cfbbeb4)
- align national dashboard per-source controls with parent legend (67551db)
- align net-change brush and even out timeline labels (2931866)
- align net-change brush and even out timeline labels (e34953a)
- align Playwright specs with a11y switch role and category UI (8e4b264)
- analysis: restore zero anchor row for 1985 base year (34b70a8)
- anchor net change gain/loss bars at zero (f39e2fe)
- auto-reload GMW after silent SSO restore (14a684c)
- auto-reload GMW after silent SSO restore so the page reflects the new session (3a049f3)
- break datasets barrel circular imports causing Turbopack SSR 500 (6d181a7)
- build SSO authorize redirects from public origin, not Heroku dyno host (7b1fae2)
- bump Node to 22.20.0 so CI installs rolldown native binding (b5d1faf)
- call /users/current_user on backend, not /users/me (b70c66c)
- cap planet date select popup height and make it scrollable (9e9b1fd)
- cap planet date select popup height and make it scrollable (6b84d5f)
- center brush axis labels under their ticks (8965147)
- ci: unblock Playwright build by guarding NEXT_PUBLIC_FEATURED_FLAGS parse (c7de92e)
- clip overflowing widget content inside legend statistics dialog (b057045)
- close controlled dialogs on outside click (f327196)
- correct MapMarker image aspect ratio to match natural dimensions (3566888)
- deploy analysis-production from main + replace dead credentials action (255d0fd)
- deploy analysis-production from main and replace dead credentials action (5177458)
- deps: address 13 dependency vulnerabilities (1977d3c)
- deps: address dependency vulnerabilities (undici, form-data) (ec1c3b4)
- deps: bump alerts-tiler mocha>serialize-javascript override to 7.0.5 to fix CPU exhaustion DoS (GHSA-qj8w-gfj5-8c6v) (b8cbc77)
- deps: bump alerts-tiler mocha>serialize-javascript override to 7.0.5 to fix CPU exhaustion DoS (GHSA-qj8w-gfj5-8c6v) (1bb5938)
- deps: override @tootallnate/once to 3.0.1 in cloud functions (GHSA-vpq2-c234-7xj6) (3870f31)
- deps: override axios>follow-redirects to 1.16.0 to fix custom auth header leak on cross-domain redirects (GHSA-r4q5-vmmm-2653) (8c07ae8)
- deps: override axios>follow-redirects to 1.16.0 to fix custom auth header leak on cross-domain redirects (GHSA-r4q5-vmmm-2653) (38c05f6)
- deps: override flatted to 3.4.1 to fix unbounded recursion DoS in parse() (GHSA-25h7-pfq9-p65f) (bb1f62c)
- deps: override lint-staged>yaml to 2.8.3 to fix stack overflow via deeply nested YAML collections (GHSA-48c2-rrv3-qjmp) (3d699e5)
- deps: override lint-staged>yaml to 2.8.3 to fix stack overflow via deeply nested YAML collections (GHSA-48c2-rrv3-qjmp) (52fb5e6)
- deps: override minimatch>brace-expansion to fix zero-step sequence DoS (GHSA-f886-m6hf-6m8v) (0262da1)
- deps: override minimatch>brace-expansion to fix zero-step sequence DoS (GHSA-f886-m6hf-6m8v) (592414e)
- deps: override picomatch transitive deps to fix extglob ReDoS and POSIX class method injection (GHSA-c2c7-rcm5-vvqj, GHSA-3v7f-55p6-f55p) (d67f93b)
- deps: override picomatch transitive deps to fix extglob ReDoS and POSIX class method injection (GHSA-c2c7-rcm5-vvqj, GHSA-3v7f-55p6-f55p) (8b5a76a)
- deps: override recharts>lodash to 4.18.1 to fix _.template code injection and .unset/.omit prototype pollution (GHSA-r5fr-rjxr-66jc, GHSA-f23m-r3pf-42rh) (024f780)
- deps: override recharts>lodash to 4.18.1 to fix _.template code injection and .unset/.omit prototype pollution (GHSA-r5fr-rjxr-66jc, GHSA-f23m-r3pf-42rh) (eb777d0)
- deps: override serialize-javascript to 7.0.4 in alerts-tiler to fix RCE (GHSA-5c6j-r48x-rmvq) (919c1c3)
- deps: override webpack to 5.104.1 to fix buildHttp SSRF bypasses (GHSA-8fgc-7cc6-rx7x, GHSA-38r7-794h-5758) (c9a8c7c)
- deps: patch brace-expansion DoS via scoped pnpm override (6572b26)
- deps: patch form-data CRLF injection in fetch-alerts (GHSA-hmw2-7cc7-3qxx) (e5ab53f)
- deps: pin @eslint/eslintrc>js-yaml to 4.2.0 to fix quadratic-complexity DoS in merge key handling (GHSA-h67p-54hq-rp68) (12db334)
- deps: pin axios>form-data to 4.0.6 to fix CRLF injection via unescaped multipart field names (GHSA-hmw2-7cc7-3qxx) (92aa1aa)
- deps: pin brace-expansion to 5.0.6 under minimatch@^10 to fix DoS (GHSA-jxxr-4gwj-5jf2) (698201f)
- deps: pin eslint-plugin-react-hooks>@babel/core to 7.29.6 to fix arbitrary file read via sourceMappingURL comment (GHSA-4x5r-pxfx-6jf8) (9b5d8a1)
- deps: pin next-auth>uuid to 11.1.1 (GHSA-w5hq-g745-h8pq) (ef9a8ae)
- deps: pin next-auth>uuid to 11.1.1 to fix buffer bounds check (GHSA-w5hq-g745-h8pq) (f1cfcd6)
- deps: pin next>postcss override to exact version (a28cbc7)
- deps: pin next>postcss override to exact version (521a182)
- deps: prune redundant pnpm overrides (e49aa97)
- deps: remove braces blanket override (a3eb674)
- deps: remove lint-staged>yaml override (851574e)
- deps: remove micromatch>picomatch override (67acb29)
- deps: remove minimatch>brace-expansion overrides (a7ad7cb)
- deps: remove recharts>lodash override (2f3155d)
- deps: remove tinyglobby>picomatch override (8937003)
- deps: upgrade axios to 1.15.0 in alerts-tiler to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (f09bfee)
- deps: upgrade axios to 1.15.0 in alerts-tiler to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (fb9a693)
- deps: upgrade axios to 1.15.0 in fetch-alerts to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (f0b814c)
- deps: upgrade axios to 1.15.0 in fetch-alerts to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (2100c9d)
- deps: upgrade axios to 1.15.0 in fetch-alerts-heatmap to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (ab34001)
- deps: upgrade axios to 1.15.0 in fetch-alerts-heatmap to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (982c9a8)
- deps: upgrade axios to 1.15.0 to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (5e49ee9)
- deps: upgrade axios to 1.15.0 to fix NO_PROXY SSRF bypass and cloud metadata exfiltration (GHSA-3p68-rc4w-qgx5, GHSA-fvcv-3m26-pcqx) (f3c974a)
- deps: upgrade dompurify to 3.4.9 to fix mXSS/XSS sanitizer bypasses (GHSA-76mc-f452-cxcm, GHSA-hpcv-96wg-7vj8, GHSA-r47g-fvhr-h676, GHSA-rp9w-3fw7-7cwq) (6014d8a)
- deps: upgrade flatted and minimatch in analysis cloud function (GHSA-25h7, GHSA-7r86, GHSA-23c5) (322f3c5)
- deps: upgrade next to 16.1.7 to fix CSRF bypass, HTTP request smuggling, image cache DoS, postponed resume DoS, and HMR websocket CSRF (GHSA-mq59, GHSA-ggv3, GHSA-3x4c, GHSA-h27x, GHSA-jcc7) (23871d6)
- deps: upgrade next to 16.2.3 to fix Server Components DoS (GHSA-q4gf-8mx6-v5v3) (0400170)
- deps: upgrade next to 16.2.3 to fix Server Components DoS (GHSA-q4gf-8mx6-v5v3) (c0d638b)
- deps: upgrade node-forge to 1.4.0 in upload-alerts to fix certificate chain bypass, Ed25519/RSA-PKCS signature forgery, and BigInteger.modInverse DoS (GHSA-2328-f5f3-gj25, GHSA-q67f-28xg-22rw, GHSA-5m6q-g25r-mvwx, GHSA-ppp5-5v6c-4jwp) (efef751)
- deps: upgrade node-forge to 1.4.0 in upload-alerts to fix certificate chain bypass, Ed25519/RSA-PKCS signature forgery, and BigInteger.modInverse DoS (GHSA-2328-f5f3-gj25, GHSA-q67f-28xg-22rw, GHSA-5m6q-g25r-mvwx, GHSA-ppp5-5v6c-4jwp) (695812b)
- deps: upgrade nodemailer to 8.0.5 to fix SMTP command injection via CRLF in Transport name option (GHSA-vvjj-xcjg-gr5g) (c8aba58)
- deps: upgrade nodemailer to 8.0.5 to fix SMTP command injection via CRLF in Transport name option (GHSA-vvjj-xcjg-gr5g) (3326b11)
- deps: upgrade nodemailer to 8.0.9 to fix CRLF header injection via List-* comment fields (GHSA-268h-hp4c-crq3, GHSA-wqvq-jvpq-h66f, GHSA-r7g4-qg5f-qqm2) (aacdf27)
- deps: upgrade tqdm to 4.66.3 to fix CLI arguments injection (CVE-2024-34062) (f82dfb3)
- deps: upgrade transitive deps in alerts-tiler to clear non-breaking advisories (02208c6)
- deps: upgrade transitive deps in alerts-tiler to clear non-breaking advisories (3f36332)
- deps: upgrade transitive deps in analysis to clear high/moderate advisories (78fe739)
- deps: upgrade transitive deps in analysis to clear high/moderate advisories (ed85d24)
- deps: upgrade transitive deps in fetch-alerts to clear remaining advisories (5d27e14)
- deps: upgrade transitive deps in fetch-alerts to clear remaining advisories (69b0f1c)
- deps: upgrade transitive deps in fetch-alerts-heatmap to clear remaining advisories (132a8aa)
- deps: upgrade transitive deps in fetch-alerts-heatmap to clear remaining advisories (63e23c1)
- deps: upgrade undici to 7.28.0 to fix 7 advisories via jsdom (GHSA-vmh5-mc38-953g, GHSA-vxpw-j846-p89q, GHSA-hm92-r4w5-c3mj) (10083c5)
- develop pre-releases track next version as rc (3f6a252)
- develop pre-releases track next version as rc (11845d1)
- dialog: close button outside card on desktop, restore outside-click close (a8af942)
- dialog: edge fade indicators and welcome modal close placement (3c5bf1b)
- drop invalid className prop on PopoverPortal (0dba3c8)
- drop redundant DialogClose positioning override in legend item (2f499f4)
- extend net change brush handles down to just above the axis (f9ac9d7)
- fall back to next-auth session in silent SSO + clear next-auth cookies on logout (401c398)
- give net change brush left/right margin so edge handles aren't clipped (016a0f5)
- guard flyTo callers against uninitialized react-map-gl refs (fc9bc9a)
- guard flyTo callers against uninitialized react-map-gl refs (7032ad8)
- guard JSON.parse against undefined NEXT_PUBLIC_FEATURED_FLAGS (280a175)
- guard JSON.parse against undefined NEXT_PUBLIC_FEATURED_FLAGS (ae13e1a)
- habitat-extent: use per-year tileset for map layer (f1c3814)
- harden cross-domain SSO between GMW and MRTT in production (c9e5027)
- harden cross-domain SSO restore and CORS pathways (6549161)
- hide scroll fade in welcome dialog (c0757e4)
- hydration: wrap useLocalStorage to prevent React #418 in prod (f20025f)
- indent national dashboard widget legend (5ecd0c4)
- inset net change brush bars above the axis with padded y-domain (8ccbb43)
- install rolldown native bindings for all CI platforms (75c0efb)
- keep net change brush pattern above the axis ticks (b52d505)
- legend: render only one legend at xl breakpoint (22e58e7)
- map scroll zoom (7ccc07b)
- national dashboard multi-source rendering (GMW-1020) (6c3ccd9)
- parse opacity string to number for Slider defaultValue (0d98805)
- patch axios and tmp vulnerabilities in cloud-functions (419cdbd)
- patch axios and tmp vulnerabilities in cloud-functions (ec88cfd)
- patch moderate audit vulnerabilities (ecee890)
- patch moderate audit vulnerabilities (2032879)
- pin API URLs in .env.test and guard useLocation destructuring (89f6bc4)
- pin API URLs in .env.test and guard useLocation destructuring (fec4227)
- pin tmp to ^0.2.7 in analysis cloud function (f38829c)
- pin tmp to ^0.2.7 in analysis cloud function (security) (d71a1a9)
- planet-date-select dropdown empty when mosaics response shape varies (2063921)
- preserve bounds across location nav and write them after fly (fd78305)
- prevent fisheries sub-widget data loss on layer toggle (4580d5f)
- prevent map jump-back when switching locations (36fbc8e)
- prevent mobile logo from overlapping map legend (f6bc814)
- prevent restoration-sites filter dropdown from being clipped (53ecc6f)
- prevent restoration-sites filter dropdown from being clipped (4e58ce6)
- prevent WDPA 404 by neutralizing useLocation placeholder (a9bf4ef)
- prevent WDPA 404 from useLocation placeholder (4ed1ea9)
- print report map layers, controls, and disabled state (9213326)
- purge stale national dashboard layers on location change (6baee59)
- register import and react eslint plugins for flat config (6e6b45a)
- remount habitat-extent prod layers on year change (9cee382)
- remount habitat-extent prod layers on year change (20b8bda)
- remove duplicated monitored areas text from alerts widget (d7cf906)
- remove duplicated monitored areas text from alerts widget (e2fe672)
- remove stale Recoil turbopack aliases from next.config.js (a44a4f4)
- remove styled-jsx dependency causing build failures (509b22f)
- remove styled-jsx dependency causing build failures (0abc974)
- render national dashboard sources independently (b74a9bb)
- render net change bars flush with no gap (5d296dc)
- render visible brush track for net change widget (f367c3c)
- replace <p> with <div> in chart tooltips to fix hydration error (51ee678)
- replace national dashboard palette color clashing with extent (fc0641f)
- replace nested button in categories menu with visual indicator (71be130)
- resolve all ESLint errors across codebase (3328860)
- resolve browser console warnings (f484754)
- resolve build break after next@16.2.3 tsconfig auto-migration (db7f904)
- resolve build break after next@16.2.3 tsconfig auto-migration (41651ab)
- resolve Playwright test failures from app-router migration (5148770)
- resolve runtime React/HTML warnings (145139a)
- restore keyboard and outside-click handling on dialogs (c1d021f)
- restore location modal click and clean dashboard layout (8c6ea67)
- restore location modal click and clean dashboard layout (efa1907)
- restore mobile layout and widgets scroll (63cdf8b)
- restore mobile layout and widgets scroll (fedf4ad)
- restore widgets deck and print button style polish (5247907)
- show all brush tick marks with an even subset of labels (e46f4f7)
- shrink date select fade and viewport padding (feead6d)
- snap timeline marker instantly while dragging (62905e8)
- split zoom controls into per-button tooltips (2229881)
- SSO authorize uses public origin instead of Heroku dyno host (f761804)
- SSO calls /users/current_user, not /users/me (root cause of broken cross-app SSO) (9bada5f)
- SSO session fallback + cross-cookie logout cleanup (d890caf)
- stabilize drawing-tool and logo-desktop Playwright flakes (31961fd)
- stabilize drawing-tool and logo-desktop Playwright flakes (e1d747c)
- stack net change gain/loss bars per year via stackId (be02817)
- suppress Radix Dialog a11y warnings and fix nested button (6502e7b)
- tests: add Firefox support, rewrite CI workflow, fix Radix click issues (81f6958)
- tests: add missing data-testid attributes to source components (493e276)
- tests: assert visibility instead of no-op in legend test (cfe0f4a)
- tests: complete Playwright test suite overhaul — 54/55 pass (736db6a)
- tests: dismiss welcome dialog via global setup (8b74591)
- tests: fix broken images, legend, and layer legend test IDs (c67d204)
- tests: fix drawing-tool, categories, interactivity, and navigation tests (8e0351f)
- use sign stack offset so net change gain/loss bars diverge (321fb18)
- use standalone server and disable WebGL for stable CI tests (9374fdd)
- use standalone server and disable WebGL for stable CI tests (2ab764f)
- widen brush side margins so edge labels are not clipped (4d3c9ea)
- widgets: scope selector to custom area, force custom category on toggle-all (514d6ff)
- widgets: show active widgets regardless of selected category (ecdc153)
- adaptive scale and single reduceRegion in cloud analysis calculations (2889b18)
- analysis: reduce GEE timeout risk in HabitatExtent and NetChange (35bbdbe)
- replace List.iterate() with toBands() in cloud analysis calculations (84f74af)
- replace per-image reduceRegion with multi-band stacking in cloud analysis (3da5d24)
- stabilize height chart memos and reuse sorted fisheries list (e403a1c)
- drop suppressHydrationWarning on <html> (e73a9a6)
- undo widgets container split into separate component files (3e6caf4)
Unreleased
- New animated widget to have access to widgets deck
- New params to URL. Layer and widget id stored in URL independently
- Custom language selector
- New (fixed) navigation bar for app tool
- Restyle of the whole interface
- Widgets deck added
- Planet layers separate from the rest of contextual layers
- New legend with functionality for layers
- Edit function for custom areas removed
- New cursor to map for interactive layers
- "Select data" changed to "widgets deck"
- Print report
- Highlighted places
Released 25/09/2023
- Blog post tags
- Access to Blog (news) moved from main menu to sidebar
- Access to different tools simplified (menu, language, blog and user guide)
- Blurry images in blog section
- Link to subsections in Global Mangrove Alliance
Released 23/08/2023
- Blog content and images
- Expand / collapse widgets interactivity
- Menu categories interactivity
- Drawing tool flow
- Gobal Tidal Wetland Change layer
- Categories added to url with router instead of recoil
- Google Analytics tag
- Max Zoom level in planet Imagery contextual layers
- Blog post modal height
- IUCN ecosystem_assessment tooltip position
- Duplicated layers for extent and restoration
Released 26/07/2023
- React query
- Radix UI
- Playwright for testing
- Tests
- Species by country widget
- Species distribution widget
- Protection layer
- Potential benefit to fisheries widget (restoration)
- Driver of change widget
- New language selector
- Restoration sites widget and filters
- National Dashboard widget
- Mangrove fisheries widget
- Contextual layers
- selector
- Allen coral atlas
- Global tidal wetland change
- Tidal flats
- Flood protection widget
- Data application guide added to widgets
- Blog - Communications section
- User guide
- Migration from create react app to Next 13
- Migration to TS
- Migration fom styled components to Tailwind
- Migration from redux to Recoil
- Protection widget
- Restoration sites layer
- Satellite basemap selector
- Mangrove alerts
- Alerts frequency layer improvement
- New chart added
- New layer for locations monitored added
- Bug in biomass widget
- Bug in alerts layer
- Bug in info links for some widgets
- Sagas
- Storybook