+TrackHoverInfoPopup now displays switch ID and model if the hovered track is part of a switch
*Fixed typo: renamed the "Switches names" layer to "Switch names"
*Updated ElectrificationResolver to use the new tracks connections logic
*Improved ElectrificationResolver status propagation for switches
*Fixed an issue where ElectrificationResolver would sometimes overwrite tracks having the CONFLICT status
+Added connectTracks scenery parsing function that links Track objects together in the scenery model, including support for one‑to‑many connections (for switches)
+Added an option to include additional aliases indexes in switches definitions
+Added additional aliases indexes for switches Rz 60E1-300-1_9 R / L and Rz 60E1-190-1_9 R / L
*Fixed AlwaysUpText and SimpleLabelText throwing warnings because off how props were passed. Now to set props of the inside text tag, you pass them as textProps
*Updated Object Renderers to use the new text props passing method
+Added AlwaysUpText component that rotates text by 180 degrees if it is upside down (taking view rotation into account)
+Added SimpleLabelText component that always displays text horizontally relative to the view rotation
+Added mapRotationService which stores a subscribable view rotation value
*Refactored all ObjectRenderers to use the above components for object labels
*Refactored ZoomPanWrapper code to be cleaner and more efficient. It now uses refs instead of state and performs camera translation / zooming using transform svg attribute instead of changing the viewbox
*Cleaned up ExtendedSignalsHelper
*Moved extended signal signs height calculations to a separate function
*Fixed mechanical signals arms being rendered in a wrong position
*Split SignalExtendedRenderer into SignalExtendedRenderer (Components) and ExtendedSignalsHelper (Calculating points data etc.)
*Moved all the magic values from the SignalExtendedRenderer to ExtendedSignalsConstants
*Fixed some extended signals components having a fill while not needed
*Overhead signals in Extended signal rendering mode have now, just like standard signals, their labels rendered "below" them
*Cleaned up SignalExtendedRenderer's code a bit
*Fixed mechanical distant signals not having the W1 sign
*Fixed useless ";" appearing in the SVG code of signal signs
*Fixed signal signs overlapping with mechanical signals' arms
+Extended signal renderering: Signs mounted on signals can now have displayed text over them (i.e. W21 sign). During the parsing, the text string is extracted from the sign name using regex from the sign's def
*Signal signs can now have custom height and will still be rendered with proper spacing
*Order of signs rendered on signal's pole is now defined by the order in the DefinedSignalSigns dictionary
+Added rendering of signs attached to signals. If a sign is attached to a signal, attachedAs is set in the sign's def and signal has SignalElements, the sign is no longer rendered on the Signs layer but appears on the signal pole (ifextended signal rendering is enabled)
+Added definitions and icons for signal signs W1 and W18
*Extracted sign attaching logic into attachSign function
+Added signs support in the extended signals parser
+Added signal signs rendering in SignalExtendedRenderer
+Added definitions and icons for W19, W20 and W24 signal signs
*Replaced getPoleLength function of SignalExtendedRenderer with getPolePoints which gives y offsets for all major points of the pole