Tweaked syiro.animation.Animate() to take Component and animation "properties", like the class, duration, etc. This gives us the ability to tweak when we should call postAnimationFunction in terms of duration (default of 250ms). Since window.setTimeout is only needed if a postAnimationFunction is used, we decided to make sure to only set the timeout when we actually have a postAnimationFunction to call. As a result of the Animate() changes, FadeIn() and FadeOut() were tweaked. We fixed an issue with syiro.component.Fetch where it would raise an issue with comparing to undefined, so we made sure do to a "typeof" first. syiro.device.SupportsTouch was implemented, which means we can detect when a device supports touch and only use that during Events. This should help prevent multiple function calls from occurring as well as any bubbling. syiro.event.eventStrings["press"] was dropped entirely. Any use of it has been switched to "up", like in Dropdowns. Bug fix for incorrect cleanup of "on" instances in listener string. We now only check for it in the first 2 chars, rather than entire string. For syiro.events.Add(), we now check for SupportTouch TRUE and if it does, we ensure that mouseup or mousedown is removed and touchend or touchstart is added, respectively. Player: Major changes to the Player Control has been implemented, which a new slider design that now is "above" the Player Control Buttons. As a result, we are able to drop the calculation of input range width, simplifying future scaling (will be done in next commit), etc. The redesign also has the Player Control float above the video in the Video Player Component, which fades in and out based on where your mouse is. We are currently working on getting the new function, syiro.player.TogglePlayerControl, to act more predictably and be more friendly to mobile devices. So this aspect is a work in progress. Across different parts of the Players, we cleaned up and simplified parts of the code. Share Menu has seen a partial change that will be more fleshed out later. Currently it is simply changing "Share" to "Menu", more will be changed in future commits. Lastly in terms of Typescript work, we have implemented the backwards compatibility / API support for syiro.Animate(). You can use the old arguments as well as new. This falls in line with our API Support Policy. LESS: Animations have been nearly 100% redone. Dropped use of keyframes to use transitions fully. Our .animate mixin will now output transition and transform styling instead of animation-*. We droppsed the use of optimizequality in particular Elements, now using it in the entire body. Lets all have nicer rendering images, shall we? Player LESS changes fall in line with major simplification of syntax, less reliance on fixed height / width definition, simplification of input range / selector design.