9 dec 2024
- Fixed setting of correct color when turning off rtt on an element
- Added check for txManager in reactivity
- Fixed reference to correct
this
-scope in router before hook
5 dec 2024
- Added
padding
attribute to Layout component - Added logging of Blits and Renderer version used in App
- Fixed show attribute for elements without predefined width and height
- Added automatic proxy fallback (when no browser support) for reactivity
- Fixed and added tests related to Blits Element
- Fixed memory issue with effects used in for-loop
- Fixed memory issue when changing props in dynamic shader effects
- Updated renderer to v2.8.0
26 nov 2024
- Fixed
$hasFocus
state variable not being set when navigating back to a page withkeepAlive
enabled - Added
@updated
-event to Layout component - Fixed issue with simple config for Theme plugin
19 nov 2024
- Added support for splitting up translation file per language
- Added hasFocus property to ComponentBase type
- Fixed issue with alpha during router transitions
15 nov 2024
- Upgraded to renderer 2.7.1
- Added documentation on Router
8 nov 2024
- Fixed issue with back button not bubbling to App component after last page in router history is popped
- Added
align-items
attribute to Layout component - Fixed issue with watching nested state variables and global state
- Upgraded to renderer 2.6.2
- Fixed issue with white background for Elements with falsy src attribute
- Fixed issue with calling focus on component that already is focussed
5 nov 2024
- Fixed Element related tests
- Bumped renderer to version 2.6.0
4 nov 2024
- Added fix for omitting gap-attribute in Layout component
4 nov 2024
- Added Layout component
31 oct 2024
- Exported TS interfaces and improved return type of before route hook
- Fixed test cases for codegenerator
30 oct 2024
- Fixed edge case issue with array based props not triggering reactivity
29 oct 2024
- Fixed issue with array based props not triggering reactivity
- Upgraded renderer to 2.5.1
22 oct 2024
- Refactored TypeScript definitions to give better autocompletion and general TS support for business logic
- Added option for custom characters in MSDF generated fonts
- Added export for symbols
- Upgraded renderer to 2.4.0
- Added transition progress event
14 oct 2024
- Fixed support for
.otf
and.woff
fonts files in combination with MSDF generator
14 oct 2024
- Added cleanup upon component destroy of effects generated by global reactivity
9 oct 2024
- Abstracted app create functionality to separate package
- Cleaned up dependencies
- Fixed issue with item reference in for loop
- Fixed issue with looping directly over
<Text>
components
7 oct 2024
- Added export of symbols
- Various small performance improvements related to component creation
1 oct 2024
- Fixed issue with interrupting running / scheduled transitions with a new transition on the same prop
- Fixed issue with (incompatible) SDF text renderer being loaded when
renderMode
is set to canvas - Added support for handling key release (i.e
keyup
) events
26 sept 2024
- Fixed issues with sprites in minified production build
- Bumped renderer to v2.2.0 (with fixes for nested alpha / show issue)
- Fixed reactivity in plugins not using reactivity mode setting
- Fixed named slots functionality
24 sept 2024
- Fixed timing issue with calculation of percentages
- Improved check to see if object is a Blits component, so it's more robust in case of code minification
18 sept 2024
- Fixed support for inspector, compatible with renderer 2.x changes
16 sept 2024
- Added support for
fit
attribute to enable resizeModes for images (cover, contain) - Added priority parameter for event emitters + ability to stop propagation
- Added Global App State plugin
- Added Theme plugin
- Standardized built-in utility methods (i.e. focus, select, setTimeout, etc.) to all be prefixed with a
$
. - Added support for triggering nested state variables with dot-notation (i.e
foo.bar.bla
) - Added support for watching nested state variables (i.e
foo.bar.bla
) - Fixed bug with Log plugin not picking up on
debugLevel
setting - Fixed bug when using hex-colors in an effect
- Upgraded to latest version of the renderer (2.1.1)
27 aug 2024
- Moved
this.$log
functionality to a plugin, which delays the instantation and allows it to pick up launch settings (bug fix)
19 aug 2024
- Fixed bug in for-loop when key is not a string but a number
- Added
$shallow
-modifier to for-loop - Added several performance optimizations
- Added support for dynamic arguments in object notation (i.e.
mount="{x: $x, y: $y}"
)
5 aug 2024
- Added plugin system for Blits
- Added Language plugin, modeled after L2-SDK Language plugin
- Removed unused built-in Image component
- Marked
this.trigger()
-method as deprecated in definition file - Removed double assignment of
this.node
during element creation
25 july 2024
- Made
holdTimeout
configurable and added to launch settings - Improved test coverage
- Removed imporChunkUrl dependency as it’s no longer needed
- Abstracted path from pre-compiler, to make it more reusable (in playground for example)
- Added
defaultFont
launch setting to boilerplate example
15 july 2024
- Added multiple optimizations that improve the performance
- Fixed mountY prop setting
- Added functionality for providing custom shaders
- Added initial support for accessing children
- Added first version of Layout component
- Improved test coverage
- Refactored transitions and fixed promise resolve issues
- Upgraded to renderer v1.0.0
17 june 2024
- Updated renderer to version v0.9.1
- Updated font generation to use the new
@lightningjs/msdf-generator
-package with required font metrics - Added queue mechanism to font generation to prevent hanging process
- Added functionality to pass a component into the Component
:is
attribute
Please read refer to the breaking changes in the
renderer related to MSDF fonts. When you have custom msdf fonts in your /public
folder you may need to regenerate
them (or remove the files and let Blits take care of generating for you from a .ttf
)
22 may 2024
- Added support for
rtt
-attribute (Render To Texture) - Refactored Component for efficiency and readability
- Improved type definitions
- Fixed error when no settings object is supplied to Launch method
- Fixed issue with
parent
variable being set on the global window object - Improved code of firing transitions
- Bumped renderer to version 0.8.4
25 apr 2024
- Fixed issue with removing children during navigation with the router
- Added support for overflow (as an inversed alias of clipping)
- Upgraded to latest version of renderer (0.8.3)
- Introduced
renderMode
setting (webgl
orcanvas
)
15 apr 2024
- Added support for direct assignment of an Array element and triggering reactivity
- Added support for .env in boilerplate
- Fixed issue with Blits component being wrapped in a Proxy when assigned to a state variable
- Fixed built-in
hasFocus
-state to also work for components that don't have state in their config object
4 apr 2024
- Added before hook to router
- Upgraded Lightning renderer to v0.8.2
29 mar 2024
- Fixed cancelling of scheduled / running transitions when starting a new transition on the same prop (broke in v0.7.1).
- Added viewport relates lifecycle hooks
28 mar 2024
- Upgraded Lightning renderer to v0.8.0
- Fixed issue with reactivity in a forloop when initial array is empty
- Introduced new
gpuMemoryLimit
launch setting
25 mar 2024
- Added support for mount / pivot on Text elements and Sprites.
21 mar 2024
- Fixed issue with updates not triggering during array operation
21 mar 2024
- Improved support for reactive advanced array operations (i.e.
splice()
,concat()
,sort()
) - Upgraded Lightning renderer to v0.7.6
- Reverted removal of destroy of child nodes (added in v0.8.1)
- Introduced
viewportMargin
setting - Added
undefined
-check for props sent to renderer
18 mar 2024
- Added symbol for
id
on component - Fixed issue in for loop when
:key
is a number (and not a string) - Added built-in
hasFocus
state variable, available on every Component - Refactored font loading, removed the need for temporary
src/fontLoader.js
file - Replaced using component name with unique identifier for registering and emitting hooks
9 mar 2024
- Added pre-processing of hardcoded colors used in the template
- Upgraded Lightning renderer to v0.7.5
- Removed explicit destroy of child nodes, as the renderer now takes care of this
- Re-added support for clipping
1 mar 2024
- Added
this.$clearIntervals()
andthis.$clearTimeouts()
methods that clear all intervals and timers set on a certain component - Breaking change: Renamed the key
function
toeasing
in the transitions object used to specify a custom easing functio (deprecation notice added)
28 feb 2024
- Fixed dependency for on the fly MSDF font generation
28 feb 2024
- Added functionality that forces focus hook to fire when parent receives focus from child
- Improved destroy sequence of nodes to be disposed
- Fixed issue with tracking reactive objects multiple times (potential max call stack error)
- Added on the fly MSDF font generation from a
.ttf
file placed inpublics/fonts
- Added support for pre-compilation for files with more than 1 Blits component
- Fixed transitions on scale attribute when passed an object with
x
andy
values
23 feb 2024
- Added small fix to support for (re)assigning an array used in a for-loop
- Added option to enable the Lightning inspector in launch setting (
inspector: true/false
)
22 feb 2024
- Fixed clean up of children nodes when routing to a new view
- Fixed test cases for code generator (100% coverage)
- Added support for colorizing sprites
- Removed before setup and setup lifecycle events and optimized lifecycle instance in components
- Added support for (re)assigning an array used in a for-loop
- Refactored delay of transitions (using the now available built-in delay in the renderer)
- Added preliminary support for frameTick hook
- Upgraded to latest version of the renderer (0.7.4)
20 feb 2024
- Added support for dynamic components through the
is
-attribute (<Component is="Poster" />
or<Component is="$dynamicComponent" />
) - Added functionality to pass extra data / props when navigating to a new route ( breaking change in signature of
router.to()
method - previously:router.to(path, options)
, now:router.to(path, data, options)
) - Added configuration option to set the canvas color (aka clear color)
16 feb 2024
- Upgraded to 0.7.2 of the renderer
- Introduced new
maxheight
attribute (besided the existingmaxlines
attribute) for the<Text />
component - Fixed issue with order of lifecycle event emits
- Fixed logic to not unfoces a parent when it passes focus to a child
- Removed temporary fix for renderer issue #123
9 feb 2024
- Added type hinting for
this.$clearInterval
andthis.$clearTimeout
- Fixed issue with
.gitignore
in app create flow - Added support for dynamic route parts in the router (i.e
/tv/:series/episodes/:episode
)
7 feb 2024
- Enabled the use of
type
as a component prop or state variable - Removed setting focus to AppComponent on back key press in RouterView
- Fixed broken app create flow caused by missing dev dependencies in npx command (temporary fix)
2 feb 2024
- Added FPS counter from Example App as a built-in Blits component (available as
<FPScounter />
) - Added precompilation to all built-in Blits components for increased performance
- Updated flow to create a new App project with an interactive prompt of questions (
npx @lightningjs/blits@latest
) - Upgraded to latest version of the Lightning 3 renderer (0.7.1)
31 jan 2024
- Fixed single quote escaping for all browsers (removing sometimes unsupported negative lookahead)
- Fixed issue with focus when navigating back to a page that is kept in history
29 jan 2024
- Reverted fix (initially) empty for-loops
26 jan 2024
- Added
this.$clearInterval
andthis.$clearTimeout
helper functions to Component - Updated Lightning renderer to version 0.7.0
- Added
lineheight
andtextoverflow
attributes to<Text />
-component - Added setting for specifying maximum number of web workers to spawn (
webWorkersLimit
) - Added fix for issue with setting up reactivity for (initially) empty for-loops
24 jan 2024
- Added temporary fix for renderer issue #123
- Fixed issue with setting mount, pivot and scale values to zero (0) in object literal with x and y key
- Added automatic mapping of ref string to each item in a for-loop
16 jan 2024
- Added
path
to boilerplate vite.config.js for deployments in a sub folder - Improved error handling in the template parser, with more contextual error messages
15 jan 2024
- Added fix for sprites not working on certain devices
12 jan 2024
- Removed prepending protocol and host from sprite image
12 jan 2024
- Fixed issue with Sprites not working correctly due to missing background color
8 jan 2024
- Fixed issue with using single quotes as Text content
- Added first Text-to-Speech / Announcer functionality
4 jan 2024
- Added pre-compilation functionality to improve performance. Requires an update to the
vite.config.js
to enable. Read more details in this blog post - Added
defaultFont
to the Launch settings
3 jan 2024
- Updated and improved documentation
- Added
screenResolution
andpixelRatio
options to settings
21 dec 2023
- Changed transition-end callback to receive real prop value from node
- Implemented symbol for
wrapper
on Component (freeing up the name wrapper to be used in Component state) - Added functionality to prevent a route ending up in the history stack (route option:
inHistory: false
) - Improved router backtracking logic
- Added functionality to override route options during navigation
- Upgraded to latest version of the renderer (0.6.1) which contains a fix for animations not finishing correctly
15 dec 2023
- Internal refactor of the
Element
13 dec 2023
- Added history and backhandling to the router
- Linked effects directly to the available shaders exposed by the L3 renderer (starting 0.6.0)
- Added setting
reactivityMode
to control whetherProxy
(default) ordefineProperty
is used to trigger reactive side effects
11 dec 2023
- Upgraded to version 0.6.0 of the Lightning 3 renderer
5 dec 2023
- Fixed regression in Slots functionality caused by forloop cleanup fix in 0.5.4
5 dec 2023
- Fixed issue with Components and Elements not always being cleaned up in forloop
- Added support for nested children inside a forloop on an Element
4 dec 2023
- Added transition
start
and tranitionend
callbacks
30 nov 2023
- Fixed issue in code generator leading to creation unnecessary child nodes
- Added focus handler to router view (that passes focus to the current active page)
29 nov 2023
- Fixed issue with unexpected unfocus
- Added fastforward of transitions on the same property
- Added functionality to skip focus change on key hold
23 nov 2023
- Introduced
wordwrap
andmaxlines
attributes on the Text-component, replacing the previousw
andh
attributes (breaking change!)
22 nov 2023
- Improved parser and added more template validation (i.e. one single root element in a template)
- Fixed typo in documentation
13 nov 2023
- Added support for using dynamic import of components in routes
- Added support for returning components in an async function / Promise in routes
9 nov 2023
- Fixed bug related to animating percentage based values
- Added (customizable) navigation transitions to the router
- Renamed
.eslintrc.js
to.eslintrc.cjs
in boilerplate code to make linting work on new projects - Fixed issue in Settings when the default value was set to
false
- Replace underscored keys for private properties with Symbols
- Added
keepAlive
option to the router (i.e. keeping a page in memory when navigating to a new page) - Introduced a
this.$trigger
function to force a reevaluation of a reactive value (without changing the value) - Exposed
currentRoute
,routes
andnavigating
on thethis.$router
object - Upgraded to lates version of
@lightningjs/renderer
(v0.5.0)
23 oct 2023
- Added support for slots
- Added support for defining custom keymapping
- Improved error handling of the template parser
19 oct 2023
- Fixed error when
<Text />
-component doesn't have any content - Removed generic escape key handler that closed the App
- Introduced
quit()
-method on the root Application component - Updated to v0.4.0 of the renderer
18 oct 2023
- Added support for
borderTop
,borderBottom
,borderLeft
,borderRight
andgrayScale
effects - Fixed
@loaded
and@error
events on<Text/>
componenent only firing once (and not for each change) - Fixed loading of web canvas2d fonts
- Fixed error when using
this
-reference in component state - Added basic support for inline text (i.e.
<Text>My text with a {{$dynamic}} value</Text>
)
17 oct 2023
- Fixed path to logo on readme
17 oct 2023
- Added support for using percentages in dimensions (
w
/h
) and positioning (x
/y
) - Refactored template parser to be more robust and throw errors when the template contains a syntax mistake
- Re-enabled tests (still depends on renderer version bump though)
- Added the new official Blits logo to the readme!
9 oct 2023
- Updated L3 renderer dependency to 0.3.6
- Renamed internal methods for creating textures and shaders
5 oct 2023
- Updated L3 renderer dependency to 0.3.3
4 oct 2023
- Added Blits VS code extension to recommended extensions
3 oct 2023
- Fixed reactivity issue when using
null
values in state
2 oct 2023
- Bumped version number of dependency in boilerplate
2 oct 2023
- Added workaround for Vite import chunk url plugin for fontloading
27 sep 2023
- Fixed issue with re-applying reactivity to already reactive props in forloop
25 sep 2023
- Added support for
@loaded
and@error
events on Elements (and Text Component)
22 sep 2023
- Changed name of attribute to reference an Element or Component from
id
toref
20 sep 2023
- Fixed Blits dependency in create App boilerplate package.json
20 sep 2023
Initial beta release of Blits ⚡️