Skip to content

Redux 5, runtime icons, combined features, and config validation#52

Merged
pjeweb merged 49 commits into
mainfrom
develop
Jun 11, 2026
Merged

Redux 5, runtime icons, combined features, and config validation#52
pjeweb merged 49 commits into
mainfrom
develop

Conversation

@pjeweb

@pjeweb pjeweb commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Overview

This is a significant release comprising 49 commits with major infrastructure upgrades, new features, and comprehensive improvements across the Mapsight ecosystem.

Major Changes

Infrastructure & Dependencies

  • Redux Ecosystem Upgrade: Migrate to Redux Toolkit 2, Redux 5, react-redux 9, and reselect 5
    • Replace deprecated createStructuredSelector usage
    • Prefer @reduxjs/toolkit exports
    • Update vector-editor to React 18 createRoot
  • TypeScript & Tooling: Fix tsconfig conflicts, improve type coverage across core packages

New Features

  1. Combined Feature Sources (@mapsight/core)

    • Merge features from multiple member sources
    • combinedVisibleLayers plugin keeps combined source in sync with visible layer state
  2. Composable Runtime Icons (@mapsight/traffic-style, @mapsight/lib-ol, @mapsight/ui)

    • Pictogram-based icon templates with mapsightIconId parsing
    • Async rasterization with configurable xsmall/small icon zoom levels
    • Runtime icon style plugin (useMapsightIcon)
  3. Mapsight Config Validation (@mapsight/core, @mapsight/ui)

    • Zod-based schema validation: createMapsightConfigSchema, validateConfig
    • Per-domain schemas for map, layers, feature sources, and filters
    • Development warnings + optional strict mode for production
  4. Embed Exports (@mapsight/ui)

    • Add @mapsight/ui/embed/* package exports for embed entry points
  5. Performance & Bug Fixes

    • Feature highlight race condition fixes
    • Export FeatureInteractionNames
    • shallowEqualRecords utility for shallow record comparison
    • Tag selector caching optimization
    • Vector style compiler fixes (nested function codegen, style-tree state)

App Updates

  • Rename demo-viteshowcase: comprehensive ecosystem demo
    • UI demos (simple map, full featured, custom, router-based)
    • Icon catalog and editor
    • Landing page with package overview
    • Dev-linked watch mode for local package development

DevOps & Config

  • Add pre-push hook to protect private/* branches
  • Update .gitignore for test runners (Playwright, etc.)
  • TypeScript configuration improvements
  • Enhanced build scripts with parallel compilation

Notes

  • This PR contains breaking changes due to Redux major version upgrades
  • Migration guide: See commits for per-package implementation details
  • Showcase app replaces demo-vite as the primary demo/reference application

pjeweb added 30 commits June 11, 2026 15:56
…lector

Signed-off-by: Paul Golmann <mail@pje-web.de>
…ucturedSelector

Signed-off-by: Paul Golmann <mail@pje-web.de>
…ateStructuredSelector

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Bumps the rtk group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) | `1.9.7` | `2.11.2` |
| [react-redux](https://github.com/reduxjs/react-redux) | `8.1.3` | `9.2.0` |
| [redux-thunk](https://github.com/reduxjs/redux-thunk) | `2.4.2` | `3.1.0` |
| [redux](https://github.com/reduxjs/redux) | `4.2.1` | `5.0.1` |
| [reselect](https://github.com/reduxjs/reselect) | `4.1.8` | `5.1.1` |

Updates `@reduxjs/toolkit` from 1.9.7 to 2.11.2
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](reduxjs/redux-toolkit@v1.9.7...v2.11.2)

Updates `react-redux` from 8.1.3 to 9.2.0
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](reduxjs/react-redux@v8.1.3...v9.2.0)

Updates `redux-thunk` from 2.4.2 to 3.1.0
- [Release notes](https://github.com/reduxjs/redux-thunk/releases)
- [Commits](reduxjs/redux-thunk@v2.4.2...v3.1.0)

Updates `redux` from 4.2.1 to 5.0.1
- [Release notes](https://github.com/reduxjs/redux/releases)
- [Changelog](https://github.com/reduxjs/redux/blob/master/CHANGELOG.md)
- [Commits](reduxjs/redux@v4.2.1...v5.0.1)

Updates `reselect` from 4.1.8 to 5.1.1
- [Release notes](https://github.com/reduxjs/reselect/releases)
- [Changelog](https://github.com/reduxjs/reselect/blob/master/CHANGELOG.md)
- [Commits](reduxjs/reselect@v4.1.8...v5.1.1)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-version: 2.11.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rtk
- dependency-name: react-redux
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rtk
- dependency-name: redux
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rtk
- dependency-name: redux-thunk
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rtk
- dependency-name: reselect
  dependency-version: 5.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: rtk
...

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
…d pure annotations)

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
…urable

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
…ons)

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
pjeweb and others added 16 commits June 11, 2026 15:56
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
…isible features

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
…ywright e2e)

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Replace pre-baked per-variant SVGs in traffic-style with pictogram
templates composed at build time and rasterized at runtime. Add
mapsightIconId parsing, color variants, and LRU-cached async loading.

Wire async icons into the style pipeline via volatile cache keys in
lib-ol and vector-style-compiler, and expose useMapsightIcon plus a
runtime icon style plugin in ui.

Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Paul Golmann <mail@pje-web.de>
@changeset-bot

changeset-bot Bot commented Jun 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: eeb6355

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 8 packages
Name Type
@mapsight/core Minor
@mapsight/ui Minor
@mapsight/traffic-style Minor
@mapsight/lib-ol Minor
@mapsight/vector-style-compiler Major
@mapsight/vector-editor Minor
@mapsight/lib-redux Minor
@mapsight/lib-js Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Comment thread packages/ui/vitest.config.ts Fixed
pjeweb added 3 commits June 11, 2026 16:26
Signed-off-by: Paul Golmann <mail@pje-web.de>
Signed-off-by: Paul Golmann <mail@pje-web.de>
…r than private

Signed-off-by: Paul Golmann <mail@pje-web.de>
@pjeweb pjeweb changed the title Yep a lot Redux 5, runtime icons, combined features, and config validation Jun 11, 2026
@pjeweb pjeweb merged commit 49da00b into main Jun 11, 2026
14 checks passed
@pjeweb pjeweb deleted the develop branch June 11, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant