Changelog
2.4.1 (2026-04-16)
Features
- Board (Solari) Display Mode: Added a new
Boarddisplay mode that renders data as a classic Solari departure-board layout with configurable header, title, column names, row numbers, compact layout, and scrolling support. - True Wall Display: Added
True Wallstyling variant for the Board mode with fixed column widths and per-digit recess effect for a realistic recessed-cell Solari board appearance. - Uniform Digit Width in Board Split Mode: Digits per column are now padded to a uniform count so rows stay visually aligned even when values have different lengths.
- Threshold Coloring in Board Rows: Panel-level threshold configuration is now respected when coloring Board mode row values.
- Board Demo Dashboard: Added a provisioned demo dashboard (
board-demo.json) for easy out-of-the-box testing of the Board mode.
Improvements
- Board Mode UX: Auto-generated column names, optional row numbers, compact layout toggle, and vertical scrolling for long data sets.
- Alignment Options: Board mode rows support left, center, and right alignment.
Maintenance
- Security Patches: Updated
yarnresolutions to address multiple security vulnerabilities:dompurify: 3.2.5 → 3.4.0 (GHSA-39q2-94rc-95cp)lodash: 4.17.21 → 4.18.1picomatch: 4.0.2 → 4.0.4serialize-javascript: 7.0.3 → 7.0.5yaml: 2.7.1 → 2.8.3immutable: 5.0.3 → 5.1.5minimatch: 9.0.6 → 10.2.3brace-expansion: 2.0.3 → 5.0.5
- Library Updates:
@grafana/uiand@grafana/i18n: 12.3.2 → 12.4.2@emotion/css: 11.10.6 → 11.13.5@testing-library/react: 14.0.0 → 15.0.7webpack-cli: 5.1.4 → 7.0.2style-loader: 3.3.3 → 4.0.0eslint-webpack-plugin: 5.0.2 → 6.0.0prettier: 2.8.8 → 3.8.2@swc/helpers: 0.5.18 → 0.5.21@types/node: 20.19.30 → 25.6.0
- Workflow & CI:
actions/checkout: v4 → v6actions/upload-artifact: v5 → v7softprops/action-gh-release: v1 → v3grafana/plugin-actions: updatedcreate-plugin-update(v2.0.2) andis-compatible(v1.0.3)- Fixed
react-data-gridinstallation issues and optimized Grafana compatibility workflow.
2.4.0-dev.1 (2026-04-16)
Features
- Merged the
boardbranch intomainfor development testing of the Board (Solari) mode features.
Maintenance
- Updated
dompurifyresolution to^3.4.0to address Dependabot alert#41(GHSA-39q2-94rc-95cp).
2.4.0-beta.1 (2026-04-15)
Features
- Added the Board (Solari) display mode with alignment controls, compact layout options, scrolling, and threshold-aware row rendering.
- Added the True Wall board styling and a provisioned demo dashboard for easier testing.
- Normalized digit widths per column in Board split mode so rows stay visually aligned even when values have different lengths.
Maintenance
- Merged the
maindependency and CI workflow updates intoboardfor testing on top of the latest base.
2.3.1 (2026-04-15)
Maintenance
- Merged the pending Dependabot updates for frontend packages and GitHub Actions workflows.
- Fixed the Grafana compatibility workflow to use the repository's committed Yarn lockfile instead of
npm ci. - Kept the Playwright report publishing job on
actions/checkout@v5to avoid theDuplicate header: "Authorization"failure seen withv6.
2.2.7 (2026-01-09)
Fixes
- Provisioning: Fixed Docker Compose configuration to use correct plugin ID (
dzaczek-splitflap-panel), enabling proper provisioning and testing of the plugin.
2.2.1 (2026-01-08)
Fixes
- CI/CD: Fixed dependency installation issues in GitHub Actions by switching
react-data-gridto HTTPS protocol. - Linting: Fixed missing dependency in
useEffecthook inFlipDigitcomponent.
2.2.0 (2026-01-08)
Features
- AM/PM Customization: Added full control over AM/PM indicator in 12-hour clock mode:
- Position: Can be placed Left, Right, or Inline (In Text).
- Orientation: Support for Vertical (stacked characters) or Horizontal layout.
- Styling: Independent control over font size and gap/spacing.
- Independent Rendering: AM/PM is now rendered as a separate FlipDisplay component even in "In Text" mode, allowing for consistent styling and animation.
Improvements
- Clock Logic: Optimized clock animation to use a dedicated 0-9 numeric drum for seconds/minutes, eliminating lag and "scrolling" through special characters during time changes.
- Layout: Improved layout engine for FlipItem to better handle "shrink-wrap" sizing, ensuring the clock stays centered regardless of timezone or AM/PM alignment.
2.1.38 (2025-12-12)
Fixes
- Flip Animation Logic: Fixed a synchronization issue where the bottom half of the digit changed too early (before the flap finished falling). Now implements correct split-flap physics:
- Top half reveals the new character immediately.
- Bottom half keeps the old character until covered by the falling flap.
- Falling flap transitions from old character (front) to new character (back).
- Animation Speed: Adjusted default flip duration from 0.6s to 0.49s for snappier, more realistic mechanical movement.
Documentation
- Intro Rewrite: Made the README introduction more accessible and developer-friendly.
2.1.37 (2025-12-12)
Summary
This release represents a major evolution of the Split Flap Panel, with significant improvements across security, architecture, themes, and documentation. The journey from 1.1.31 to 2.1.37 has been organized into three main development stages:
- Etap 1: Security & Architecture Overhaul (1.1.32) - Complete security hardening and React migration
- Etap 2: Theme Expansion & Visual Enhancements (1.2.x - 2.0.x) - Major theme expansion from 9 to 22 themes
- Etap 3: Final Polish & Documentation (2.1.x) - Comprehensive documentation updates
Statistics
- Themes: Expanded from 9 to 22 themes (+144% increase)
- Security: Eliminated all XSS vulnerabilities, full CSP compliance
- Code Quality: Migrated 754 lines of legacy code to modern React architecture
- Documentation: Complete rewrite covering all features and options
Statistics
- Themes: Expanded from 9 to 22 themes (+144% increase)
- Security: Eliminated all XSS vulnerabilities, full CSP compliance
- Code Quality: Migrated 754 lines of legacy code to modern React architecture
- Documentation: Complete rewrite covering all features and options
Documentation
- Complete README overhaul: Comprehensive update documenting all 22 available themes, all configuration options, Clock Mode features, and layout customization options
- CHANGELOG expansion: Added detailed changelog entries for all versions from 1.1.31 to 2.1.37, organized by development stages
- Configuration documentation: Fully documented Clock Mode options (time separator, date format, day of week)
- Layout documentation: Complete documentation of name and unit positioning, alignment, rotation, and font size options
- Animation documentation: Added Fast Speed option documentation
Etap 3: Final Polish & Documentation (2.1.x)
2.1.32 (2025-12-08)
Documentation
- Complete README update: Added all 22 available themes to documentation with descriptions and use cases:
- Aviation themes (Departure, Cockpit, Tarmac)
- Swiss SBB themes (Black, White, Blue)
- iOS themes (Light, Dark)
- Specialty themes (Wood, Red 3D, Blue Glass, Rainbow, Newspaper)
- Configuration options: Documented all Clock Mode options:
- Time separator options (Colon, Dot, Dash, Space, None)
- Date format options (DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD, DD.MM.YYYY)
- Day of week display option
- Layout options: Documented name and unit positioning, alignment, rotation, and font size options
- Animation options: Added Fast Speed option documentation
- Data options: Documented value aggregation, main content display modes, and auto-fit functionality
Etap 2: Theme Expansion & Visual Enhancements (1.2.x - 2.0.x)
2.0.0 (2025-12-04)
Features
- Major Theme Expansion: Added 13 new professional themes bringing total to 22 themes:
- Aviation Collection (3 themes):
aviation-departure: Classic airport board style with yellow text (#f7d100) on black background, uses Oswald fontaviation-cockpit: Technical instrument style with cyan text (#00ffcc) on dark gray, uses Share Tech Mono fontaviation-tarmac: Orange/amber high-visibility style (#fdcb6e) for ground operations
- Swiss SBB Collection (3 themes):
swiss-sbb-black: Black background with white textswiss-sbb-white: White background with black textswiss-sbb-blue: Dark blue with red border (added in 1.2.0)
- iOS Collection (2 themes):
ios-light: Apple iOS light mode style with white backgroundios-dark: Apple iOS dark mode style with dark background
- Specialty Themes (5 themes):
wood: Natural wooden texture with brown tonesred-3d: Red 3D gradient style for alerts/warningsblue-glass: Blue-tinted glass effect with transparencyrainbow: Colorful gradient display with rainbow effectnewspaper: Halftone newspaper print style with vintage look
- Aviation Collection (3 themes):
Improvements
- Font System: Updated logo and theme fonts to use system fonts for improved cross-platform compatibility
- Aviation themes automatically load Google Fonts (Oswald, Share Tech Mono) when available
- Graceful fallback to system fonts for offline/air-gapped environments
- Theme Organization: Better categorization and naming of themes for easier discovery
- Visual Polish: Enhanced gradients, shadows, and effects across all new themes
1.2.0 (2025-12-11)
Features
- Swiss SBB Blue Theme: Added official Swiss railway blue theme (
swiss-sbb-blue) with:- Dark blue background (
#0B1E3C) - White text
- Red border accent (
#EB0000) matching SBB branding - Gradient effects for depth
- Dark blue background (
Improvements
- Theme Refinements: Improved visual consistency across all themes
- Theme Organization: Better categorization of themes in the selector
Etap 1: Security & Architecture Overhaul (1.1.32)
1.1.32 (2025-12-11)
Security
- XSS Protection: Removed XSS vulnerabilities by replacing
innerHTML(lines 328, 584 in old flip-engine) with React rendering - Character Escaping: Added character escaping in FlipDigit to only allow safe characters (numbers, letters, and specific symbols)
- Safe DOM Updates: All DOM updates now use React's safe rendering mechanisms
CSP Compatibility
- Removed Google Fonts: Removed Google Fonts
@importstatements (lines 330-331) that violated Content Security Policy - System Font Fallbacks: Replaced with system font fallbacks (e.g.,
-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif) - Local Fonts Only: All fonts now use local/system fonts that work with strict CSP policies
Architecture Overhaul
- React Migration: Complete migration from custom elements to React components
- Created
FlipDigit.tsx— React component for individual flip digits with animation logic - Created
FlipDisplay.tsx— Component managing multiple digits - Removed custom element (
FlipSensorCard) in favor of React components - Updated
FlipBoard.tsxto use the new React components
- Created
- Styling Modernization:
- Converted all styles to Emotion CSS-in-JS (Grafana best practice)
- Removed shadow DOM and inline styles
- All themes preserved with the same visual appearance
- Code Cleanup:
- Removed deprecated
src/core/flip-engine.ts(754 lines removed) - Removed duplicate
src/core/flip-engine.txfile - Improved code organization and maintainability
- Removed deprecated
Impact
- Security: Plugin is now safe from XSS attacks and CSP-compliant
- Maintainability: React-based architecture is easier to maintain and extend
- Performance: Better React optimization and rendering performance
- Compatibility: Works in environments with strict CSP policies
1.1.31 (2025-11-30)
Maintenance
- Fixed incorrect path for
grafana/plugin-actions/build-pluginin release workflow (reverted to explicit tag path).
1.1.30 (2025-11-30)
Maintenance
- Reverted to official
grafana/plugin-actions/build-pluginworkflow, now that signing issues are resolved via CLI flags. - Kept
softprops/action-gh-releasefor artifact publishing.
1.1.29 (2025-11-30)
Maintenance
- Official release (removed
-betasuffix). - Stabilized build workflow with manual signing and packaging steps.
1.1.28-beta.26 (2025-11-30)
Maintenance
- Fixed release artifact naming by using git tag version instead of parsing JSON.
- Marked release as full release (not prerelease).
1.1.28-beta.25 (2025-11-30)
Maintenance
- Replaced opaque
package-pluginaction with manualzipcommand to ensure artifact creation and correct naming for release upload.
1.1.28-beta.24 (2025-11-30)
Maintenance
- Switched to
softprops/action-gh-releasefor reliable GitHub Release creation.
1.1.28-beta.23 (2025-11-30)
Maintenance
- Added manual MD5 checksum generation step to release workflow.
1.1.28-beta.22 (2025-11-30)
Maintenance
- Corrected artifact path pattern for GitHub Release upload (checking root directory instead of
dist/).
1.1.28-beta.21 (2025-11-30)
Maintenance
- Added GitHub Release step to upload plugin artifacts (.zip and .md5) to the release page.
1.1.28-beta.20 (2025-11-30)
Maintenance
- Added
id-token: writeandattestations: writepermissions to workflow for build provenance attestation.
1.1.28-beta.19 (2025-11-30)
Maintenance
- Removed
rootUrlsfromplugin.jsonto satisfy plugin validator (using command line flag for signing instead). - Cleaned up build workflow.
1.1.28-beta.18 (2025-11-30)
Maintenance
- Added
--rootUrlsflag toyarn signcommand as a fallback for JSON configuration.
1.1.28-beta.17 (2025-11-30)
Maintenance
- Fixed GitHub Action path for
package-plugin. - Added forced injection of
rootUrlsintodist/plugin.jsonbefore signing to ensure field presence.
1.1.28-beta.16 (2025-11-30)
Maintenance
- Switched to manual build workflow in GitHub Actions to debug signing issues.
1.1.28-beta.15 (2025-11-30)
Maintenance
- Added debug step to CI to verify
plugin.jsoncontent.
1.1.28-beta.14 (2025-11-30)
Maintenance
- Bump version to retry build process.
1.1.28-beta.13 (2025-11-30)
Maintenance
- Added
rootUrlstoplugin.jsonto fix signing error for private plugin token.
1.1.28-beta.12 (2025-11-30)
Maintenance
- Re-trigger release build with correct secrets configuration.
1.1.28-beta.11 (2025-11-30)
Maintenance
- Fixed Github Action reference for
grafana/plugin-actions/build-plugin.
1.1.28-beta.10 (2025-11-30)
Maintenance
- Fixed yarn registry configuration to resolve installation issues in CI.
- Updated workflow configurations.
1.0.0 (2025-11-30)
Features
- Smart Flip Logic: Numbers spin fast using a numeric drum, while text uses the full alphanumeric drum for realistic effect.
- Animation Easing: Added physics-based easing (acceleration/deceleration) for long flip sequences.
- New Themes: Added
Matrix(digital rain),Cyberpunk(CRT effect),Airport,Mechanical,Glass, andNeonstyles. - Data Aggregation: Added selector for Last, First, Min, Max, Mean, Sum, Count value reduction.
- Display Content: Option to show Value, Name, or both directly on the flaps (e.g. "London 20").
- Performance: Added
will-change: transformfor GPU acceleration and optimized React re-renders. - Accessibility: Added ARIA labels and roles for screen readers.
Fixes
- Thresholds: Fixed conflict where themes overrode Grafana threshold colors (removed
!importantfrom styles). - Text Formatting: Fixed issue where "Name + Value" ignored rounding settings (now formats numbers before combining).
- Visual Glitches: Fixed "TTkyo" glitch by preventing animation on disconnected DOM elements.
- Spacing: Added proper spacing for "Name + Value" display mode.
- Memory: Added cleanup logic to stop animations when panel is unmounted.
- Timestamp: Fixed logic to prioritize value fields over time fields.