@lightningjs/blits 1.30.1 → 1.30.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/.editorconfig +7 -7
  2. package/.eslintignore +1 -1
  3. package/.eslintrc.cjs +65 -65
  4. package/.github/workflows/comment-lint-results.yml +124 -124
  5. package/.github/workflows/comment-test-results.yml +108 -108
  6. package/.github/workflows/deploy-docs.yml +27 -27
  7. package/.github/workflows/run-blits-tests.yml +141 -141
  8. package/.github/workflows/run-lint.yml +127 -127
  9. package/.husky/pre-commit +1 -1
  10. package/.vscode/extensions.json +7 -7
  11. package/.vscode/settings.json +9 -9
  12. package/CHANGELOG.md +1019 -1012
  13. package/COPYING +1 -0
  14. package/LICENSE +202 -202
  15. package/NOTICE +12 -12
  16. package/README.md +33 -33
  17. package/bin/index.js +8 -8
  18. package/blits.d.ts +6 -6
  19. package/docs/README.md +19 -19
  20. package/docs/_sidebar.md +37 -37
  21. package/docs/built-in/directives.md +50 -50
  22. package/docs/built-in/for-loop.md +203 -203
  23. package/docs/built-in/layout.md +168 -168
  24. package/docs/components/component_state.md +90 -90
  25. package/docs/components/computed_properties.md +45 -45
  26. package/docs/components/lifecycle_events.md +42 -42
  27. package/docs/components/methods.md +45 -45
  28. package/docs/components/props.md +56 -56
  29. package/docs/components/user_input.md +186 -186
  30. package/docs/components/utility_methods.md +320 -320
  31. package/docs/components/watchers.md +34 -34
  32. package/docs/essentials/application_root.md +19 -19
  33. package/docs/essentials/components.md +68 -68
  34. package/docs/essentials/displaying_images.md +67 -67
  35. package/docs/essentials/displaying_text.md +135 -135
  36. package/docs/essentials/element_attributes.md +195 -195
  37. package/docs/essentials/settings.md +117 -117
  38. package/docs/essentials/template_syntax.md +83 -83
  39. package/docs/getting_started/file_structure.md +58 -58
  40. package/docs/getting_started/getting_started.md +45 -45
  41. package/docs/getting_started/intro.md +20 -20
  42. package/docs/index.html +47 -47
  43. package/docs/performance/lazy-loading.md +161 -161
  44. package/docs/plugins/global_app_state.md +98 -98
  45. package/docs/plugins/language.md +172 -172
  46. package/docs/plugins/text-to-speech-announcer.md +119 -119
  47. package/docs/plugins/theme.md +176 -176
  48. package/docs/router/basics.md +175 -175
  49. package/docs/router/hooks.md +70 -70
  50. package/docs/router/transitions.md +146 -146
  51. package/docs/sidebar.json +171 -171
  52. package/docs/transitions_animations/transitions.md +150 -150
  53. package/index.d.ts +1099 -1099
  54. package/index.js +28 -28
  55. package/jsconfig.json +12 -12
  56. package/package.json +56 -56
  57. package/public/assets/fps_sprite.base64.js +1 -1
  58. package/scripts/postpublish.js +59 -59
  59. package/scripts/prepublishOnly.js +84 -84
  60. package/scripts/prepush.js +78 -78
  61. package/src/announcer/announcer.js +162 -162
  62. package/src/announcer/speechSynthesis.js +107 -107
  63. package/src/application.js +100 -100
  64. package/src/component/base/announcer.js +27 -27
  65. package/src/component/base/events.js +69 -69
  66. package/src/component/base/index.js +33 -33
  67. package/src/component/base/methods.js +244 -244
  68. package/src/component/base/router.js +41 -41
  69. package/src/component/base/timeouts_intervals.js +99 -99
  70. package/src/component/base/utils.js +72 -72
  71. package/src/component/setup/computed.js +48 -48
  72. package/src/component/setup/index.js +62 -62
  73. package/src/component/setup/input.js +30 -30
  74. package/src/component/setup/methods.js +37 -37
  75. package/src/component/setup/props.js +62 -62
  76. package/src/component/setup/props.test.js +238 -238
  77. package/src/component/setup/routes.js +42 -42
  78. package/src/component/setup/state.js +59 -59
  79. package/src/component/setup/watch.js +35 -35
  80. package/src/component.js +437 -437
  81. package/src/component.test.js +388 -388
  82. package/src/components/Circle.js +73 -73
  83. package/src/components/Circle.orig.js +31 -31
  84. package/src/components/FPScounter.js +1510 -1510
  85. package/src/components/FPScounter.orig.js +121 -121
  86. package/src/components/RouterView.js +81 -81
  87. package/src/components/RouterView.orig.js +54 -54
  88. package/src/components/Sprite.js +94 -94
  89. package/src/components/Sprite.orig.js +58 -58
  90. package/src/components/index.js +28 -28
  91. package/src/components/index.orig.js +28 -28
  92. package/src/constants.js +21 -21
  93. package/src/engine.js +1 -1
  94. package/src/engines/L3/element.js +744 -744
  95. package/src/engines/L3/element.test.js +579 -579
  96. package/src/engines/L3/fontLoader.js +38 -38
  97. package/src/engines/L3/index.js +7 -7
  98. package/src/engines/L3/launch.js +123 -123
  99. package/src/engines/L3/shaderLoader.js +12 -12
  100. package/src/engines/index.js +1 -1
  101. package/src/focus.js +90 -90
  102. package/src/helpers/deepEqualArray.js +50 -50
  103. package/src/helpers/deepEqualArray.test.js +127 -127
  104. package/src/helpers/fetchJson.js +34 -34
  105. package/src/helpers/sequence.js +26 -26
  106. package/src/launch.js +123 -123
  107. package/src/lib/blitsfileconverter/blitsfileconverter.js +52 -52
  108. package/src/lib/codegenerator/generator.js +788 -788
  109. package/src/lib/codegenerator/generator.test.js +3801 -3801
  110. package/src/lib/colors/colors.js +92 -92
  111. package/src/lib/colors/colors.test.js +290 -290
  112. package/src/lib/colors/htmlColors.js +168 -168
  113. package/src/lib/componentId.js +49 -49
  114. package/src/lib/componentId.test.js +84 -84
  115. package/src/lib/eventListeners.js +123 -123
  116. package/src/lib/eventListeners.test.js +236 -236
  117. package/src/lib/hooks.js +59 -59
  118. package/src/lib/lifecycle.js +85 -85
  119. package/src/lib/log.js +117 -117
  120. package/src/lib/precompiler/precompiler.js +73 -73
  121. package/src/lib/reactivity/effect.js +93 -93
  122. package/src/lib/reactivity/effect.test.js +35 -35
  123. package/src/lib/reactivity/reactive.js +208 -208
  124. package/src/lib/reactivity/reactive.test.js +27 -27
  125. package/src/lib/reactivityguard/computedprops.js +218 -218
  126. package/src/lib/symbols.js +108 -108
  127. package/src/lib/templateparser/parser.js +386 -386
  128. package/src/lib/templateparser/parser.test.js +1411 -1411
  129. package/src/lib/utils.js +27 -27
  130. package/src/plugin.js +27 -27
  131. package/src/plugins/appstate.js +26 -26
  132. package/src/plugins/index.js +20 -20
  133. package/src/plugins/language.js +152 -152
  134. package/src/plugins/log.js +25 -25
  135. package/src/plugins/theme.js +94 -94
  136. package/src/router/router.js +514 -514
  137. package/src/router/router.test.js +473 -473
  138. package/src/router/transitions/fadeIn.js +27 -27
  139. package/src/router/transitions/fadeInOut.js +33 -33
  140. package/src/router/transitions/index.js +21 -21
  141. package/src/router/transitions/slideIn.js +28 -28
  142. package/src/router/transitions/slideInOut.js +33 -33
  143. package/src/settings.js +40 -40
  144. package/vite/blitsFileConverter.js +67 -67
  145. package/vite/index.js +28 -28
  146. package/vite/msdfGenerator.js +269 -269
  147. package/vite/preCompiler.js +42 -42
  148. package/vite/reactivityGuard.js +45 -45
  149. package/vscode/data/template-attributes.json +589 -589
package/CHANGELOG.md CHANGED
@@ -1,1012 +1,1019 @@
1
- # Changelog
2
-
3
- _25 jun 2025_
4
-
5
- ## v1.30.1
6
-
7
- - Bumped renderer to v2.14.1
8
-
9
-
10
- _24 jun 2025_
11
-
12
- ## v1.30.0
13
-
14
- - Added documentation on lazy loading performance
15
- - Bumped renderer to v2.14.0 (simplified texture throttling)
16
- - Fixed bug in announcer when utterance is cancelled
17
-
18
-
19
- _12 jun 2025_
20
-
21
- ## v1.29.5
22
-
23
- - Simplified timeout and interval cleanup
24
- - Added explicit reset of component state upon destruction
25
- - Fixed `exit` lifecycle hook
26
-
27
- _06 jun 2025_
28
-
29
- ## v1.29.4
30
-
31
- - Removed excessive shader creation for effects
32
- - Added explicit cleanup of effects in for loop
33
- - Improved element destruction
34
-
35
- _03 jun 2025_
36
-
37
- ## v1.29.3
38
-
39
- - Added first batch internal JS doc types
40
- - Added documentation on Launch settings
41
- - Fixed issue with reactivity effects being shared (and retained) on the prototype
42
-
43
- _28 may 2025_
44
-
45
- ## v1.29.2
46
-
47
- - Added end of life flag to prevent timers, intervals and listeners to be registered after component destroy
48
-
49
- _22 may 2025_
50
-
51
- ## v1.29.1
52
-
53
- - Fixed issue with async and lifecycle ready error
54
-
55
-
56
- _22 may 2025_
57
-
58
- ## v1.29.0
59
-
60
- - Fixed memory leaks
61
- - Added componentId in warning when modifying props directly for easier debugging
62
-
63
- _15 apr 2025_
64
-
65
- ## v1.28.0
66
-
67
- - Added graceful handling of announcer when speechSynthesis API is not available
68
- - Renamed `beforeAll` method on router to `beforeEach` (as specified in the type definitions)
69
- - Fixed detection of correct PR to comment for github workflows
70
-
71
- _15 apr 2025_
72
-
73
- ## v1.27.1
74
-
75
- - Fixed issue with global watcher on router state not being cleared out
76
- - Minor performance updates
77
- - Fixed issue with retrieving correct renderer version for logging
78
- - Fixed issue with nested layouts not properly updating parent layout
79
-
80
- _11 apr 2025_
81
-
82
- ## v1.27.0
83
-
84
- - Added pre push linting check
85
- - Updated Github workflow for tests
86
- - Added noop announcement for when announcer is disabled
87
- - Add ability to interrupt specific announcement messages
88
-
89
- _09 apr 2025_
90
-
91
- ## v1.26.1 / v1.26.2
92
-
93
- - Fixed issue with announcer queue
94
-
95
- _08 apr 2025_
96
-
97
- ## v1.26.0
98
-
99
- - Announcer updates: queue, cancel individual messages, promise based chaining
100
- - Fixed naming collision for `config`-key on component instance
101
- - Fixed logging correct renderer version
102
-
103
- ## v1.25.1
104
-
105
- _01 apr 2025_
106
-
107
- - Fixed issue with page rendering after being destroyed when data is loaded by an async request
108
-
109
- ## v1.25.0
110
-
111
- _28 mar 2025_
112
-
113
- - Fixed issue when same effect type is used in `effects` attribute
114
- - Added ability to enable / disable announcer via launch setting as well as runtime
115
-
116
- ## v1.24.0
117
-
118
- _26 mar 2025_
119
-
120
- - Added additional tests for router
121
- - Fixed issues with `:show` attribute not working properly
122
- - Fixed issue with strings starting with a number being casted to a number
123
- - Fixed named slots functionality
124
-
125
- ## v1.23.2
126
-
127
- _18 mar 2025_
128
-
129
- - Fixed issue with keepAlive pages remaining in cache after navigating back
130
-
131
- ## v1.23.1
132
-
133
- _17 mar 2025_
134
-
135
- - Fixed issue in vite plugin that ensures reacitivity setup in computed props when code block has a comment
136
- - Fixed warnings for non-declared variables in template when they refer to plugins (i.e. `$$apState.foo`)
137
-
138
- ## v1.23.0
139
-
140
- _13 mar 2025_
141
-
142
- - Added support for beforeEach router hook
143
- - Added warning when variables used in the template are not declared on the component scope (only during dev)
144
- - Added vite plugin that ensures reactivity is setup properly for all state variables in a computed prop
145
- - Fixed keepAlive functionality in the router on back navigation
146
- - Fixed various test cases
147
- - Added useful base methods to the this context of plugins
148
- - Added workflow to execute test cases for PRs
149
- - Updated L3 renderer dependency to v2.13.2
150
- - Fixed various typos in the documentation
151
- - Fixed reactivity issue when value is set to `null`
152
-
153
- ## v1.22.0
154
-
155
- _3 mar 2025_
156
-
157
- - Added default value for `createImageBitmapSupport` to `auto`
158
- - Added advanced launch settings
159
-
160
- ## v1.21.1
161
-
162
- _28 feb 2025_
163
-
164
- - Changed gpuMemory launch settings to be optional in type definitions
165
-
166
- ## v1.21.0
167
-
168
- _27 feb 2025_
169
-
170
- - Added functionality for keeping query params when navigating back in the router
171
- - Exposed more info in reactive router state
172
- - Added `range`-attribute to for-loop
173
- - Fixed issue when setting `alpha` to truthy or false values
174
- - Upgraded to renderer v2.13.0
175
-
176
- ## v1.20.1
177
-
178
- _14 feb 2025_
179
-
180
- - Added error message when root element in template contains a `:for`-attribute
181
- - Added workaround fix for shader caching issue
182
- - Upgraded to renderer v2.12.1
183
-
184
- ## v1.20.0
185
-
186
- _12 feb 2025_
187
-
188
- - Improved attribute definitions used for autocompletion in VScode extension
189
- - Fixed calculation of `align-items` in Layout component
190
- - Fixed issue with sorting reactive arrays
191
- - Upgraded to renderer v2.12.0
192
-
193
- ## v1.19.1
194
-
195
- _3 feb 2025_
196
-
197
- - Removed left-over console.log
198
- - Upgraded to renderer v2.11.1
199
- - Fixed issues with wrongly pre-compiling `template` key of non-blits related objects
200
-
201
- ## v1.19.0
202
-
203
- _31 jan 2025_
204
-
205
- - Fixed `show`-attribute when an `alpha`-attribute is also present
206
- - Added `inspector-data`-attribute to help with automated testing based on the Lightning inspector
207
- - Added reactivity to Route changes (`this.$router.state.path` and `this.$router.state.navigating`)
208
- - Added `renderQuality` launch setting
209
-
210
- ## v1.18.1
211
-
212
- _27 jan 2025_
213
-
214
- - Fixed issue with navigating back to a router page with `keepalive=true`
215
-
216
- ## v1.18.0
217
-
218
- _27 jan 2025_
219
-
220
- - Added backtracking functionality to the Router
221
- - Upgraded to latest version of the renderer (2.10.0)
222
- - Changed setting `textureProcessingLimit` to `textureProcessingTimeLimit`
223
-
224
-
225
- ## v1.17.1
226
-
227
- _24 jan 2025_
228
-
229
- - Fixed issue in sprite
230
-
231
- ## v1.17.0
232
-
233
- _24 jan 2025_
234
-
235
- - Deprecated `wordwrap`-attribute on Text component in favour of `maxwidth`
236
- - Added documentation about text overflow
237
- - Upgraded renderer to v2.9.1 and added `canvas` and `textureProcessingLimit` launch options
238
-
239
- ## v1.16.2
240
-
241
- _21 jan 2025_
242
-
243
- - Upgraded to latest version of MSDF font generator, with fix for missing presets
244
-
245
-
246
- ## v1.16.1
247
-
248
- _17 jan 2025_
249
-
250
- - Fixed issue in certain browsers caused by route query params functionality (and optimized for performance)
251
-
252
-
253
- ## v1.16.0
254
-
255
- _16 jan 2025_
256
-
257
- - Fixed issue with component scope in Slots
258
- - Fixed issue with sprites (regression since v1.14.0)
259
- - Changed reactive state to only make plain objects reactive, and return custom Classes, Blits components, Renderer texture etc in raw form
260
-
261
- ## v1.15.0
262
-
263
- _14 jan 2025_
264
-
265
- - Added `placement`-attribute for easily aligning Elements to predefined locations (i.e. `center`, `right`, `middle`, `bottom`)
266
- - Removed automatic injection of `index` variable into forloop-scope to prevent unexpected naming collisions
267
-
268
-
269
- ## v1.14.1
270
-
271
- _8 jan 2025_
272
-
273
- - Fixed `undefined`-error with intercept method, when no input object is specified on root App component
274
-
275
-
276
- ## v1.14.0
277
-
278
- _6 jan 2025_
279
-
280
- - Added ability to deregister listeners (`this.$unlisten()`)
281
- - Added autosize to images without `w` and `h` attributes
282
- - Fixed cleanup of transitions and end-callbacks when Elements are destroyed
283
- - Added support for reactively updating an entire object (instead of having to update each object key individually)
284
- - Added `this.$size()` method to set the dimensions of a Component
285
- - Added `intercept` input method to handle key presses before they reach the currently focused Component
286
- - Added support for query-parameters in routes (in addition to regular query params)
287
-
288
-
289
- ## v1.13.1
290
-
291
- _9 dec 2024_
292
-
293
- - Fixed setting of correct color when turning off rtt on an element
294
- - Added check for txManager in reactivity
295
- - Fixed reference to correct `this`-scope in router before hook
296
-
297
- ## v1.13.0
298
-
299
- _5 dec 2024_
300
-
301
- - Added `padding` attribute to Layout component
302
- - Added logging of Blits and Renderer version used in App
303
- - Fixed show attribute for elements without predefined width and height
304
- - Added automatic proxy fallback (when no browser support) for reactivity
305
- - Fixed and added tests related to Blits Element
306
- - Fixed memory issue with effects used in for-loop
307
- - Fixed memory issue when changing props in dynamic shader effects
308
- - Updated renderer to v2.8.0
309
-
310
- ## v1.12.0
311
-
312
- _26 nov 2024_
313
-
314
- - Fixed `$hasFocus` state variable not being set when navigating back to a page with `keepAlive` enabled
315
- - Added `@updated`-event to Layout component
316
- - Fixed issue with simple config for Theme plugin
317
-
318
-
319
- ## v1.11.0
320
-
321
- _19 nov 2024_
322
-
323
- - Added support for splitting up translation file per language
324
- - Added hasFocus property to ComponentBase type
325
- - Fixed issue with alpha during router transitions
326
-
327
-
328
- ## v1.10.1
329
-
330
- _15 nov 2024_
331
-
332
- - Upgraded to renderer 2.7.1
333
- - Added documentation on Router
334
-
335
-
336
- ## v1.10.0
337
-
338
- _8 nov 2024_
339
-
340
- - Fixed issue with back button not bubbling to App component after last page in router history is popped
341
- - Added `align-items` attribute to Layout component
342
- - Fixed issue with watching nested state variables and global state
343
- - Upgraded to renderer 2.6.2
344
- - Fixed issue with white background for Elements with falsy src attribute
345
- - Fixed issue with calling focus on component that already is focused
346
-
347
-
348
- ## v1.9.2
349
-
350
- _5 nov 2024_
351
-
352
- - Fixed Element related tests
353
- - Bumped renderer to version 2.6.0
354
-
355
- ## v1.9.1
356
-
357
- _4 nov 2024_
358
-
359
- - Added fix for omitting gap-attribute in Layout component
360
-
361
- ## v1.9.0
362
-
363
- _4 nov 2024_
364
-
365
- - Added Layout component
366
-
367
- ## v1.8.3
368
-
369
- _31 oct 2024_
370
-
371
- - Exported TS interfaces and improved return type of before route hook
372
- - Fixed test cases for codegenerator
373
-
374
-
375
- ## v1.8.2
376
-
377
- _30 oct 2024_
378
-
379
- - Fixed edge case issue with array based props not triggering reactivity
380
-
381
-
382
- ## v1.8.1
383
-
384
- _29 oct 2024_
385
-
386
- - Fixed issue with array based props not triggering reactivity
387
- - Upgraded renderer to 2.5.1
388
-
389
-
390
- ## v1.8.0
391
-
392
- _22 oct 2024_
393
-
394
- - Refactored TypeScript definitions to give better autocompletion and general TS support for business logic
395
- - Added option for custom characters in MSDF generated fonts
396
- - Added export for symbols
397
- - Upgraded renderer to 2.4.0
398
- - Added transition progress event
399
-
400
-
401
- ## v1.7.1
402
-
403
- _14 oct 2024_
404
-
405
- - Fixed support for `.otf` and `.woff` fonts files in combination with MSDF generator
406
-
407
-
408
- ## v1.7.0
409
-
410
- _14 oct 2024_
411
-
412
- - Added cleanup upon component destroy of effects generated by global reactivity
413
-
414
- ## v1.6.0 / v1.6.1
415
-
416
- _9 oct 2024_
417
-
418
- - Abstracted app create functionality to separate package
419
- - Cleaned up dependencies
420
- - Fixed issue with item reference in for loop
421
- - Fixed issue with looping directly over `<Text>` components
422
-
423
- ## v1.5.1
424
-
425
- _7 oct 2024_
426
-
427
- - Added export of symbols
428
- - Various small performance improvements related to component creation
429
-
430
- ## v1.5.0
431
-
432
- _1 oct 2024_
433
-
434
- - Fixed issue with interrupting running / scheduled transitions with a new transition on the same prop
435
- - Fixed issue with (incompatible) SDF text renderer being loaded when `renderMode` is set to canvas
436
- - Added support for handling key release (i.e `keyup`) events
437
-
438
- ## v1.4.3
439
-
440
- _26 sept 2024_
441
-
442
- - Fixed issues with sprites in minified production build
443
- - Bumped renderer to v2.2.0 (with fixes for nested alpha / show issue)
444
- - Fixed reactivity in plugins not using reactivity mode setting
445
- - Fixed named slots functionality
446
-
447
- ## v1.4.2
448
-
449
- _24 sept 2024_
450
-
451
- - Fixed timing issue with calculation of percentages
452
- - Improved check to see if object is a Blits component, so it's more robust in case of code minification
453
-
454
- ## v1.4.1
455
-
456
- _18 sept 2024_
457
-
458
- - Fixed support for inspector, compatible with renderer 2.x changes
459
-
460
- ## v1.4.0
461
-
462
- _16 sept 2024_
463
-
464
- - Added support for `fit` attribute to enable resizeModes for images (cover, contain)
465
- - Added priority parameter for event emitters + ability to stop propagation
466
- - Added Global App State plugin
467
- - Added Theme plugin
468
- - Standardized built-in utility methods (i.e. focus, select, setTimeout, etc.) to all be prefixed with a `$`.
469
- - Added support for triggering nested state variables with dot-notation (i.e `foo.bar.bla`)
470
- - Added support for watching nested state variables (i.e `foo.bar.bla`)
471
- - Fixed bug with Log plugin not picking up on `debugLevel` setting
472
- - Fixed bug when using hex-colors in an effect
473
- - Upgraded to latest version of the renderer (2.1.1)
474
-
475
- ## v1.3.1
476
-
477
- _27 aug 2024_
478
-
479
- - Moved `this.$log` functionality to a plugin, which delays the instantation and allows it to pick up launch settings (bug fix)
480
-
481
- ## v1.3.0
482
-
483
- _19 aug 2024_
484
-
485
- - Fixed bug in for-loop when key is not a string but a number
486
- - Added `$shallow`-modifier to for-loop
487
- - Added several performance optimizations
488
- - Added support for dynamic arguments in object notation (i.e. `mount="{x: $x, y: $y}"`)
489
-
490
- ## v1.2.0
491
-
492
- _5 aug 2024_
493
-
494
- - Added plugin system for Blits
495
- - Added Language plugin, modeled after L2-SDK Language plugin
496
- - Removed unused built-in Image component
497
- - Marked `this.trigger()`-method as deprecated in definition file
498
- - Removed double assignment of `this.node` during element creation
499
-
500
- ## v1.1.0
501
-
502
- _25 july 2024_
503
-
504
- - Made `holdTimeout` configurable and added to launch settings
505
- - Improved test coverage
506
- - Removed imporChunkUrl dependency as it’s no longer needed
507
- - Abstracted path from pre-compiler, to make it more reusable (in playground for example)
508
- - Added `defaultFont` launch setting to boilerplate example
509
-
510
- ## v1.0.0
511
-
512
- _15 july 2024_
513
-
514
- - Added multiple optimizations that improve the performance
515
- - Fixed mountY prop setting
516
- - Added functionality for providing custom shaders
517
- - Added initial support for accessing children
518
- - Added first version of Layout component
519
- - Improved test coverage
520
- - Refactored transitions and fixed promise resolve issues
521
- - Upgraded to renderer v1.0.0
522
-
523
- ## v0.10.0
524
-
525
- _17 june 2024_
526
-
527
- - Updated renderer to version v0.9.1
528
- - Updated font generation to use the new `@lightningjs/msdf-generator`-package with required font metrics
529
- - Added queue mechanism to font generation to prevent hanging process
530
- - Added functionality to pass a component into the Component `:is` attribute
531
-
532
- Please read refer to the [breaking changes](https://github.com/lightning-js/renderer/releases/tag/v0.9.0) in the
533
- renderer related to MSDF fonts. When you have custom msdf fonts in your `/public` folder you may need to regenerate
534
- them (or remove the files and let Blits take care of [generating for you from a `.ttf`](https://lightning-js.github.io/blits/#/essentials/displaying_text?id=using-custom-fonts))
535
-
536
-
537
- ## v0.9.9
538
-
539
- _22 may 2024_
540
-
541
- - Added support for `rtt`-attribute (Render To Texture)
542
- - Refactored Component for efficiency and readability
543
- - Improved type definitions
544
- - Fixed error when no settings object is supplied to Launch method
545
- - Fixed issue with `parent` variable being set on the global window object
546
- - Improved code of firing transitions
547
- - Bumped renderer to version 0.8.4
548
-
549
- ## v0.9.8
550
-
551
- _25 apr 2024_
552
-
553
- - Fixed issue with removing children during navigation with the router
554
- - Added support for overflow (as an inversed alias of clipping)
555
- - Upgraded to latest version of renderer (0.8.3)
556
- - Introduced `renderMode` setting (`webgl` or `canvas`)
557
-
558
- ## v0.9.7
559
-
560
- _15 apr 2024_
561
-
562
- - Added support for direct assignment of an Array element and triggering reactivity
563
- - Added support for .env in boilerplate
564
- - Fixed issue with Blits component being wrapped in a Proxy when assigned to a state variable
565
- - Fixed built-in `hasFocus`-state to also work for components that don't have state in their config object
566
-
567
- ## v0.9.6
568
-
569
- _4 apr 2024_
570
-
571
- - Added before hook to router
572
- - Upgraded Lightning renderer to v0.8.2
573
-
574
- ## v0.9.5
575
-
576
- _29 mar 2024_
577
-
578
- - Fixed cancelling of scheduled / running transitions when starting a new transition on the same prop (broke in v0.7.1).
579
- - Added viewport relates lifecycle hooks
580
-
581
- ## v0.9.4
582
-
583
- _28 mar 2024_
584
-
585
- - Upgraded Lightning renderer to v0.8.0
586
- - Fixed issue with reactivity in a forloop when initial array is empty
587
- - Introduced new `gpuMemoryLimit` launch setting
588
-
589
-
590
- ## v0.9.3
591
-
592
- _25 mar 2024_
593
-
594
- - Added support for mount / pivot on Text elements and Sprites.
595
-
596
- ## v0.9.2
597
-
598
- _21 mar 2024_
599
-
600
- - Fixed issue with updates not triggering during array operation
601
-
602
- ## v0.9.1
603
-
604
- _21 mar 2024_
605
-
606
- - Improved support for reactive advanced array operations (i.e. `splice()`, `concat()`, `sort()`)
607
- - Upgraded Lightning renderer to v0.7.6
608
- - Reverted removal of destroy of child nodes (added in v0.8.1)
609
- - Introduced `viewportMargin` setting
610
- - Added `undefined`-check for props sent to renderer
611
-
612
- ## v0.9.0
613
-
614
- _18 mar 2024_
615
-
616
- - Added symbol for `id` on component
617
- - Fixed issue in for loop when `:key` is a number (and not a string)
618
- - Added built-in `hasFocus` state variable, available on every Component
619
- - Refactored font loading, removed the need for temporary `src/fontLoader.js` file
620
- - Replaced using component name with unique identifier for registering and emitting hooks
621
-
622
- ## v0.8.1
623
-
624
- _9 mar 2024_
625
-
626
- - Added pre-processing of hardcoded colors used in the template
627
- - Upgraded Lightning renderer to v0.7.5
628
- - Removed explicit destroy of child nodes, as the renderer now takes care of this
629
- - Re-added support for clipping
630
-
631
- ## v0.8.0
632
-
633
- _1 mar 2024_
634
-
635
- - Added `this.$clearIntervals()` and `this.$clearTimeouts()` methods that clear all intervals and timers set on a certain component
636
- - **Breaking change:** Renamed the key `function` to `easing` in the transitions object used to specify a custom easing functio (deprecation notice added)
637
-
638
- ## v0.7.4
639
-
640
- _28 feb 2024_
641
-
642
- - Fixed dependency for on the fly MSDF font generation
643
-
644
- ## v0.7.3
645
-
646
- _28 feb 2024_
647
-
648
- - Added functionality that forces focus hook to fire when parent receives focus from child
649
- - Improved destroy sequence of nodes to be disposed
650
- - Fixed issue with tracking reactive objects multiple times (potential max call stack error)
651
- - Added on the fly MSDF font generation from a `.ttf` file placed in `publics/fonts`
652
- - Added support for pre-compilation for files with more than 1 Blits component
653
- - Fixed transitions on scale attribute when passed an object with `x` and `y` values
654
-
655
- ## v0.7.2
656
-
657
- _23 feb 2024_
658
-
659
- - Added small fix to support for (re)assigning an array used in a for-loop
660
- - Added option to enable the Lightning inspector in launch setting (`inspector: true/false`)
661
-
662
- ## v0.7.1
663
-
664
- _22 feb 2024_
665
-
666
- - Fixed clean up of children nodes when routing to a new view
667
- - Fixed test cases for code generator (100% coverage)
668
- - Added support for colorizing sprites
669
- - Removed before setup and setup lifecycle events and optimized lifecycle instance in components
670
- - Added support for (re)assigning an array used in a for-loop
671
- - Refactored delay of transitions (using the now available built-in delay in the renderer)
672
- - Added preliminary support for frameTick hook
673
- - Upgraded to latest version of the renderer (0.7.4)
674
-
675
- ## v0.7.0
676
-
677
- _20 feb 2024_
678
-
679
-
680
- - Added support for dynamic components through the `is`-attribute (`<Component is="Poster" />` or `<Component is="$dynamicComponent" />`)
681
- - 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)`)
682
- - Added configuration option to set the canvas color (aka clear color)
683
-
684
- ## v0.6.13
685
-
686
- _16 feb 2024_
687
-
688
- - Upgraded to 0.7.2 of the renderer
689
- - Introduced new `maxheight` attribute (besided the existing `maxlines` attribute) for the `<Text />` component
690
- - Fixed issue with order of lifecycle event emits
691
- - Fixed logic to not unfoces a parent when it passes focus to a child
692
- - Removed temporary fix for renderer issue [#123](https://github.com/lightning-js/renderer/issues/123)
693
-
694
- ## v0.6.12
695
-
696
- _9 feb 2024_
697
-
698
- - Added type hinting for `this.$clearInterval` and `this.$clearTimeout`
699
- - Fixed issue with `.gitignore` in app create flow
700
- - Added support for dynamic route parts in the router (i.e `/tv/:series/episodes/:episode`)
701
-
702
- ## v0.6.11
703
-
704
- _7 feb 2024_
705
-
706
- - Enabled the use of `type` as a component prop or state variable
707
- - Removed setting focus to AppComponent on back key press in RouterView
708
- - Fixed broken app create flow caused by missing dev dependencies in npx command (temporary fix)
709
-
710
- ## v0.6.10
711
-
712
- _2 feb 2024_
713
-
714
- - Added FPS counter from Example App as a built-in Blits component (available as `<FPScounter />`)
715
- - Added precompilation to all built-in Blits components for increased performance
716
- - Updated flow to create a new App project with an interactive prompt of questions (`npx @lightningjs/blits@latest`)
717
- - Upgraded to latest version of the Lightning 3 renderer (0.7.1)
718
-
719
- ## v0.6.9
720
-
721
- _31 jan 2024_
722
-
723
- - Fixed single quote escaping for all browsers (removing sometimes unsupported negative lookahead)
724
- - Fixed issue with focus when navigating back to a page that is kept in history
725
-
726
- ## v0.6.8
727
-
728
- _29 jan 2024_
729
-
730
- - Reverted fix (initially) empty for-loops
731
-
732
- ## v0.6.7
733
-
734
- _26 jan 2024_
735
-
736
- - Added `this.$clearInterval` and `this.$clearTimeout` helper functions to Component
737
- - Updated Lightning renderer to version _0.7.0_
738
- - Added `lineheight` and `textoverflow` attributes to `<Text />`-component
739
- - Added setting for specifying maximum number of web workers to spawn (`webWorkersLimit`)
740
- - Added fix for issue with setting up reactivity for (initially) empty for-loops
741
-
742
- ## v0.6.6
743
-
744
- _24 jan 2024_
745
-
746
- - Added temporary fix for renderer issue [#123](https://github.com/lightning-js/renderer/issues/123)
747
- - Fixed issue with setting mount, pivot and scale values to zero (0) in object literal with x and y key
748
- - Added automatic mapping of ref string to each item in a for-loop
749
-
750
- ## v0.6.5
751
-
752
- _16 jan 2024_
753
-
754
- - Added `path` to boilerplate vite.config.js for deployments in a sub folder
755
- - Improved error handling in the template parser, with more contextual error messages
756
-
757
- ## v0.6.4
758
-
759
- _15 jan 2024_
760
-
761
- - Added fix for sprites not working on certain devices
762
-
763
- ## v0.6.3
764
-
765
- _12 jan 2024_
766
-
767
- - Removed prepending protocol and host from sprite image
768
-
769
-
770
- ## v0.6.2
771
-
772
- _12 jan 2024_
773
-
774
- - Fixed issue with Sprites not working correctly due to missing background color
775
-
776
- ## v0.6.1
777
-
778
- _8 jan 2024_
779
-
780
- - Fixed issue with using single quotes as Text content
781
- - Added first Text-to-Speech / Announcer functionality
782
-
783
- ## v0.6.0
784
-
785
- _4 jan 2024_
786
-
787
- - Added pre-compilation functionality to improve performance. Requires an update to the `vite.config.js` to enable. Read more details in this [blog post](https://lightningjs.io/blogs/blitsPreCompilation.html)
788
- - Added `defaultFont` to the Launch settings
789
-
790
- ## v0.5.10
791
-
792
- _3 jan 2024_
793
-
794
- - Updated and improved documentation
795
- - Added `screenResolution` and `pixelRatio` options to settings
796
-
797
- ## v0.5.9
798
-
799
- _21 dec 2023_
800
-
801
- - Changed transition-end callback to receive real prop value from node
802
- - Implemented symbol for `wrapper` on Component (freeing up the name wrapper to be used in Component state)
803
- - Added functionality to prevent a route ending up in the history stack (route option: `inHistory: false`)
804
- - Improved router backtracking logic
805
- - Added functionality to override route options during navigation
806
- - Upgraded to latest version of the renderer (0.6.1) which contains a fix for animations not finishing correctly
807
-
808
- ## v0.5.8
809
-
810
- _15 dec 2023_
811
-
812
- - Internal refactor of the `Element`
813
-
814
- ## v0.5.7
815
-
816
- _13 dec 2023_
817
-
818
- - Added history and backhandling to the router
819
- - Linked effects directly to the available shaders exposed by the L3 renderer (starting 0.6.0)
820
- - Added setting `reactivityMode` to control whether `Proxy` (default) or `defineProperty` is used to trigger reactive side effects
821
-
822
- ## v0.5.6
823
-
824
- _11 dec 2023_
825
-
826
- - Upgraded to version 0.6.0 of the Lightning 3 renderer
827
-
828
- ## v0.5.5
829
-
830
- _5 dec 2023_
831
-
832
- - Fixed regression in Slots functionality caused by forloop cleanup fix in 0.5.4
833
-
834
- ## v0.5.4
835
-
836
- _5 dec 2023_
837
-
838
- - Fixed issue with Components and Elements not always being cleaned up in forloop
839
- - Added support for nested children inside a forloop on an Element
840
-
841
- ## v0.5.3
842
-
843
- _4 dec 2023_
844
-
845
- - Added transition `start` and tranition `end` callbacks
846
-
847
- ## v0.5.2
848
-
849
- _30 nov 2023_
850
-
851
- - Fixed issue in code generator leading to creation unnecessary child nodes
852
- - Added focus handler to router view (that passes focus to the current active page)
853
-
854
- ## v0.5.1
855
-
856
- _29 nov 2023_
857
-
858
- - Fixed issue with unexpected unfocus
859
- - Added fastforward of transitions on the same property
860
- - Added functionality to skip focus change on key hold
861
-
862
- ## v0.5.0
863
-
864
- _23 nov 2023_
865
-
866
- - Introduced `wordwrap` and `maxlines` attributes on the Text-component, replacing the previous `w` and `h` attributes (breaking change!)
867
-
868
- ## v0.4.2
869
-
870
- _22 nov 2023_
871
-
872
- - Improved parser and added more template validation (i.e. one single root element in a template)
873
- - Fixed typo in documentation
874
-
875
- ## v0.4.1
876
-
877
- _13 nov 2023_
878
-
879
- - Added support for using dynamic import of components in routes
880
- - Added support for returning components in an async function / Promise in routes
881
-
882
- ## v0.4.0
883
-
884
- _9 nov 2023_
885
-
886
- - Fixed bug related to animating percentage based values
887
- - Added (customizable) navigation transitions to the router
888
- - Renamed `.eslintrc.js` to `.eslintrc.cjs` in boilerplate code to make linting work on new projects
889
- - Fixed issue in Settings when the default value was set to `false`
890
- - Replace underscored keys for private properties with Symbols
891
- - Added `keepAlive` option to the router (i.e. keeping a page in memory when navigating to a new page)
892
- - Introduced a `this.$trigger` function to force a reevaluation of a reactive value (without changing the value)
893
- - Exposed `currentRoute`, `routes` and `navigating` on the `this.$router` object
894
- - Upgraded to lates version of `@lightningjs/renderer` (v0.5.0)
895
-
896
- ## v0.3.15
897
-
898
- _23 oct 2023_
899
-
900
- - Added support for slots
901
- - Added support for defining custom keymapping
902
- - Improved error handling of the template parser
903
-
904
- ## v0.3.14
905
-
906
- _19 oct 2023_
907
-
908
- - Fixed error when `<Text />`-component doesn't have any content
909
- - Removed generic escape key handler that closed the App
910
- - Introduced `quit()`-method on the root Application component
911
- - Updated to v0.4.0 of the renderer
912
-
913
- ## v0.3.13
914
-
915
- _18 oct 2023_
916
-
917
- - Added support for `borderTop`, `borderBottom`, `borderLeft`, `borderRight` and `grayScale` effects
918
- - Fixed `@loaded` and `@error` events on `<Text/>` componenent only firing once (and not for each change)
919
- - Fixed loading of web canvas2d fonts
920
- - Fixed error when using `this`-reference in component state
921
- - Added basic support for inline text (i.e. `<Text>My text with a {{$dynamic}} value</Text>`)
922
-
923
- ## v0.3.12
924
-
925
- _17 oct 2023_
926
-
927
- - Fixed path to logo on readme
928
-
929
- ## v0.3.11
930
-
931
- _17 oct 2023_
932
-
933
- - Added support for using [percentages](https://lightning-js.github.io/blits/#/element_attributes?id=using-percentages) in dimensions (`w` / `h`) and positioning (`x` / `y`)
934
- - Refactored template parser to be more robust and throw errors when the template contains a syntax mistake
935
- - Re-enabled tests (still depends on renderer version bump though)
936
- - Added the new official Blits logo to the readme!
937
-
938
- ## v0.3.10
939
-
940
- _9 oct 2023_
941
-
942
- - Updated L3 renderer dependency to 0.3.6
943
- - Renamed internal methods for creating textures and shaders
944
-
945
-
946
- ## v0.3.9
947
-
948
- _5 oct 2023_
949
-
950
- - Updated L3 renderer dependency to 0.3.3
951
-
952
-
953
- ## v0.3.8
954
-
955
- _4 oct 2023_
956
-
957
- - Added Blits VS code extension to recommended extensions
958
-
959
-
960
- ## v0.3.7
961
-
962
- _3 oct 2023_
963
-
964
- - Fixed reactivity issue when using `null` values in state
965
-
966
-
967
- ## v0.3.6
968
-
969
- _2 oct 2023_
970
-
971
- - Bumped version number of dependency in boilerplate
972
-
973
-
974
- ## v0.3.5
975
-
976
- _2 oct 2023_
977
-
978
- - Added workaround for Vite import chunk url plugin for fontloading
979
-
980
- ## v0.3.4
981
-
982
- _27 sep 2023_
983
-
984
- - Fixed issue with re-applying reactivity to already reactive props in forloop
985
-
986
-
987
- ## v0.3.3
988
-
989
- _25 sep 2023_
990
-
991
- - Added support for `@loaded` and `@error` events on Elements (and Text Component)
992
-
993
-
994
- ## v0.3.2
995
-
996
- _22 sep 2023_
997
-
998
- - Changed name of attribute to reference an Element or Component from `id` to `ref`
999
-
1000
-
1001
- ## v0.3.1
1002
-
1003
- _20 sep 2023_
1004
-
1005
- - Fixed Blits dependency in create App boilerplate package.json
1006
-
1007
-
1008
- ## v0.3.0
1009
-
1010
- _20 sep 2023_
1011
-
1012
- Initial beta release of Blits ⚡️
1
+ # Changelog
2
+
3
+ _25 jun 2025_
4
+
5
+ ## v1.30.2
6
+
7
+ - Bumped renderer to v2.14.2
8
+
9
+
10
+ _25 jun 2025_
11
+
12
+ ## v1.30.1
13
+
14
+ - Bumped renderer to v2.14.1
15
+
16
+
17
+ _24 jun 2025_
18
+
19
+ ## v1.30.0
20
+
21
+ - Added documentation on lazy loading performance
22
+ - Bumped renderer to v2.14.0 (simplified texture throttling)
23
+ - Fixed bug in announcer when utterance is cancelled
24
+
25
+
26
+ _12 jun 2025_
27
+
28
+ ## v1.29.5
29
+
30
+ - Simplified timeout and interval cleanup
31
+ - Added explicit reset of component state upon destruction
32
+ - Fixed `exit` lifecycle hook
33
+
34
+ _06 jun 2025_
35
+
36
+ ## v1.29.4
37
+
38
+ - Removed excessive shader creation for effects
39
+ - Added explicit cleanup of effects in for loop
40
+ - Improved element destruction
41
+
42
+ _03 jun 2025_
43
+
44
+ ## v1.29.3
45
+
46
+ - Added first batch internal JS doc types
47
+ - Added documentation on Launch settings
48
+ - Fixed issue with reactivity effects being shared (and retained) on the prototype
49
+
50
+ _28 may 2025_
51
+
52
+ ## v1.29.2
53
+
54
+ - Added end of life flag to prevent timers, intervals and listeners to be registered after component destroy
55
+
56
+ _22 may 2025_
57
+
58
+ ## v1.29.1
59
+
60
+ - Fixed issue with async and lifecycle ready error
61
+
62
+
63
+ _22 may 2025_
64
+
65
+ ## v1.29.0
66
+
67
+ - Fixed memory leaks
68
+ - Added componentId in warning when modifying props directly for easier debugging
69
+
70
+ _15 apr 2025_
71
+
72
+ ## v1.28.0
73
+
74
+ - Added graceful handling of announcer when speechSynthesis API is not available
75
+ - Renamed `beforeAll` method on router to `beforeEach` (as specified in the type definitions)
76
+ - Fixed detection of correct PR to comment for github workflows
77
+
78
+ _15 apr 2025_
79
+
80
+ ## v1.27.1
81
+
82
+ - Fixed issue with global watcher on router state not being cleared out
83
+ - Minor performance updates
84
+ - Fixed issue with retrieving correct renderer version for logging
85
+ - Fixed issue with nested layouts not properly updating parent layout
86
+
87
+ _11 apr 2025_
88
+
89
+ ## v1.27.0
90
+
91
+ - Added pre push linting check
92
+ - Updated Github workflow for tests
93
+ - Added noop announcement for when announcer is disabled
94
+ - Add ability to interrupt specific announcement messages
95
+
96
+ _09 apr 2025_
97
+
98
+ ## v1.26.1 / v1.26.2
99
+
100
+ - Fixed issue with announcer queue
101
+
102
+ _08 apr 2025_
103
+
104
+ ## v1.26.0
105
+
106
+ - Announcer updates: queue, cancel individual messages, promise based chaining
107
+ - Fixed naming collision for `config`-key on component instance
108
+ - Fixed logging correct renderer version
109
+
110
+ ## v1.25.1
111
+
112
+ _01 apr 2025_
113
+
114
+ - Fixed issue with page rendering after being destroyed when data is loaded by an async request
115
+
116
+ ## v1.25.0
117
+
118
+ _28 mar 2025_
119
+
120
+ - Fixed issue when same effect type is used in `effects` attribute
121
+ - Added ability to enable / disable announcer via launch setting as well as runtime
122
+
123
+ ## v1.24.0
124
+
125
+ _26 mar 2025_
126
+
127
+ - Added additional tests for router
128
+ - Fixed issues with `:show` attribute not working properly
129
+ - Fixed issue with strings starting with a number being casted to a number
130
+ - Fixed named slots functionality
131
+
132
+ ## v1.23.2
133
+
134
+ _18 mar 2025_
135
+
136
+ - Fixed issue with keepAlive pages remaining in cache after navigating back
137
+
138
+ ## v1.23.1
139
+
140
+ _17 mar 2025_
141
+
142
+ - Fixed issue in vite plugin that ensures reacitivity setup in computed props when code block has a comment
143
+ - Fixed warnings for non-declared variables in template when they refer to plugins (i.e. `$$apState.foo`)
144
+
145
+ ## v1.23.0
146
+
147
+ _13 mar 2025_
148
+
149
+ - Added support for beforeEach router hook
150
+ - Added warning when variables used in the template are not declared on the component scope (only during dev)
151
+ - Added vite plugin that ensures reactivity is setup properly for all state variables in a computed prop
152
+ - Fixed keepAlive functionality in the router on back navigation
153
+ - Fixed various test cases
154
+ - Added useful base methods to the this context of plugins
155
+ - Added workflow to execute test cases for PRs
156
+ - Updated L3 renderer dependency to v2.13.2
157
+ - Fixed various typos in the documentation
158
+ - Fixed reactivity issue when value is set to `null`
159
+
160
+ ## v1.22.0
161
+
162
+ _3 mar 2025_
163
+
164
+ - Added default value for `createImageBitmapSupport` to `auto`
165
+ - Added advanced launch settings
166
+
167
+ ## v1.21.1
168
+
169
+ _28 feb 2025_
170
+
171
+ - Changed gpuMemory launch settings to be optional in type definitions
172
+
173
+ ## v1.21.0
174
+
175
+ _27 feb 2025_
176
+
177
+ - Added functionality for keeping query params when navigating back in the router
178
+ - Exposed more info in reactive router state
179
+ - Added `range`-attribute to for-loop
180
+ - Fixed issue when setting `alpha` to truthy or false values
181
+ - Upgraded to renderer v2.13.0
182
+
183
+ ## v1.20.1
184
+
185
+ _14 feb 2025_
186
+
187
+ - Added error message when root element in template contains a `:for`-attribute
188
+ - Added workaround fix for shader caching issue
189
+ - Upgraded to renderer v2.12.1
190
+
191
+ ## v1.20.0
192
+
193
+ _12 feb 2025_
194
+
195
+ - Improved attribute definitions used for autocompletion in VScode extension
196
+ - Fixed calculation of `align-items` in Layout component
197
+ - Fixed issue with sorting reactive arrays
198
+ - Upgraded to renderer v2.12.0
199
+
200
+ ## v1.19.1
201
+
202
+ _3 feb 2025_
203
+
204
+ - Removed left-over console.log
205
+ - Upgraded to renderer v2.11.1
206
+ - Fixed issues with wrongly pre-compiling `template` key of non-blits related objects
207
+
208
+ ## v1.19.0
209
+
210
+ _31 jan 2025_
211
+
212
+ - Fixed `show`-attribute when an `alpha`-attribute is also present
213
+ - Added `inspector-data`-attribute to help with automated testing based on the Lightning inspector
214
+ - Added reactivity to Route changes (`this.$router.state.path` and `this.$router.state.navigating`)
215
+ - Added `renderQuality` launch setting
216
+
217
+ ## v1.18.1
218
+
219
+ _27 jan 2025_
220
+
221
+ - Fixed issue with navigating back to a router page with `keepalive=true`
222
+
223
+ ## v1.18.0
224
+
225
+ _27 jan 2025_
226
+
227
+ - Added backtracking functionality to the Router
228
+ - Upgraded to latest version of the renderer (2.10.0)
229
+ - Changed setting `textureProcessingLimit` to `textureProcessingTimeLimit`
230
+
231
+
232
+ ## v1.17.1
233
+
234
+ _24 jan 2025_
235
+
236
+ - Fixed issue in sprite
237
+
238
+ ## v1.17.0
239
+
240
+ _24 jan 2025_
241
+
242
+ - Deprecated `wordwrap`-attribute on Text component in favour of `maxwidth`
243
+ - Added documentation about text overflow
244
+ - Upgraded renderer to v2.9.1 and added `canvas` and `textureProcessingLimit` launch options
245
+
246
+ ## v1.16.2
247
+
248
+ _21 jan 2025_
249
+
250
+ - Upgraded to latest version of MSDF font generator, with fix for missing presets
251
+
252
+
253
+ ## v1.16.1
254
+
255
+ _17 jan 2025_
256
+
257
+ - Fixed issue in certain browsers caused by route query params functionality (and optimized for performance)
258
+
259
+
260
+ ## v1.16.0
261
+
262
+ _16 jan 2025_
263
+
264
+ - Fixed issue with component scope in Slots
265
+ - Fixed issue with sprites (regression since v1.14.0)
266
+ - Changed reactive state to only make plain objects reactive, and return custom Classes, Blits components, Renderer texture etc in raw form
267
+
268
+ ## v1.15.0
269
+
270
+ _14 jan 2025_
271
+
272
+ - Added `placement`-attribute for easily aligning Elements to predefined locations (i.e. `center`, `right`, `middle`, `bottom`)
273
+ - Removed automatic injection of `index` variable into forloop-scope to prevent unexpected naming collisions
274
+
275
+
276
+ ## v1.14.1
277
+
278
+ _8 jan 2025_
279
+
280
+ - Fixed `undefined`-error with intercept method, when no input object is specified on root App component
281
+
282
+
283
+ ## v1.14.0
284
+
285
+ _6 jan 2025_
286
+
287
+ - Added ability to deregister listeners (`this.$unlisten()`)
288
+ - Added autosize to images without `w` and `h` attributes
289
+ - Fixed cleanup of transitions and end-callbacks when Elements are destroyed
290
+ - Added support for reactively updating an entire object (instead of having to update each object key individually)
291
+ - Added `this.$size()` method to set the dimensions of a Component
292
+ - Added `intercept` input method to handle key presses before they reach the currently focused Component
293
+ - Added support for query-parameters in routes (in addition to regular query params)
294
+
295
+
296
+ ## v1.13.1
297
+
298
+ _9 dec 2024_
299
+
300
+ - Fixed setting of correct color when turning off rtt on an element
301
+ - Added check for txManager in reactivity
302
+ - Fixed reference to correct `this`-scope in router before hook
303
+
304
+ ## v1.13.0
305
+
306
+ _5 dec 2024_
307
+
308
+ - Added `padding` attribute to Layout component
309
+ - Added logging of Blits and Renderer version used in App
310
+ - Fixed show attribute for elements without predefined width and height
311
+ - Added automatic proxy fallback (when no browser support) for reactivity
312
+ - Fixed and added tests related to Blits Element
313
+ - Fixed memory issue with effects used in for-loop
314
+ - Fixed memory issue when changing props in dynamic shader effects
315
+ - Updated renderer to v2.8.0
316
+
317
+ ## v1.12.0
318
+
319
+ _26 nov 2024_
320
+
321
+ - Fixed `$hasFocus` state variable not being set when navigating back to a page with `keepAlive` enabled
322
+ - Added `@updated`-event to Layout component
323
+ - Fixed issue with simple config for Theme plugin
324
+
325
+
326
+ ## v1.11.0
327
+
328
+ _19 nov 2024_
329
+
330
+ - Added support for splitting up translation file per language
331
+ - Added hasFocus property to ComponentBase type
332
+ - Fixed issue with alpha during router transitions
333
+
334
+
335
+ ## v1.10.1
336
+
337
+ _15 nov 2024_
338
+
339
+ - Upgraded to renderer 2.7.1
340
+ - Added documentation on Router
341
+
342
+
343
+ ## v1.10.0
344
+
345
+ _8 nov 2024_
346
+
347
+ - Fixed issue with back button not bubbling to App component after last page in router history is popped
348
+ - Added `align-items` attribute to Layout component
349
+ - Fixed issue with watching nested state variables and global state
350
+ - Upgraded to renderer 2.6.2
351
+ - Fixed issue with white background for Elements with falsy src attribute
352
+ - Fixed issue with calling focus on component that already is focused
353
+
354
+
355
+ ## v1.9.2
356
+
357
+ _5 nov 2024_
358
+
359
+ - Fixed Element related tests
360
+ - Bumped renderer to version 2.6.0
361
+
362
+ ## v1.9.1
363
+
364
+ _4 nov 2024_
365
+
366
+ - Added fix for omitting gap-attribute in Layout component
367
+
368
+ ## v1.9.0
369
+
370
+ _4 nov 2024_
371
+
372
+ - Added Layout component
373
+
374
+ ## v1.8.3
375
+
376
+ _31 oct 2024_
377
+
378
+ - Exported TS interfaces and improved return type of before route hook
379
+ - Fixed test cases for codegenerator
380
+
381
+
382
+ ## v1.8.2
383
+
384
+ _30 oct 2024_
385
+
386
+ - Fixed edge case issue with array based props not triggering reactivity
387
+
388
+
389
+ ## v1.8.1
390
+
391
+ _29 oct 2024_
392
+
393
+ - Fixed issue with array based props not triggering reactivity
394
+ - Upgraded renderer to 2.5.1
395
+
396
+
397
+ ## v1.8.0
398
+
399
+ _22 oct 2024_
400
+
401
+ - Refactored TypeScript definitions to give better autocompletion and general TS support for business logic
402
+ - Added option for custom characters in MSDF generated fonts
403
+ - Added export for symbols
404
+ - Upgraded renderer to 2.4.0
405
+ - Added transition progress event
406
+
407
+
408
+ ## v1.7.1
409
+
410
+ _14 oct 2024_
411
+
412
+ - Fixed support for `.otf` and `.woff` fonts files in combination with MSDF generator
413
+
414
+
415
+ ## v1.7.0
416
+
417
+ _14 oct 2024_
418
+
419
+ - Added cleanup upon component destroy of effects generated by global reactivity
420
+
421
+ ## v1.6.0 / v1.6.1
422
+
423
+ _9 oct 2024_
424
+
425
+ - Abstracted app create functionality to separate package
426
+ - Cleaned up dependencies
427
+ - Fixed issue with item reference in for loop
428
+ - Fixed issue with looping directly over `<Text>` components
429
+
430
+ ## v1.5.1
431
+
432
+ _7 oct 2024_
433
+
434
+ - Added export of symbols
435
+ - Various small performance improvements related to component creation
436
+
437
+ ## v1.5.0
438
+
439
+ _1 oct 2024_
440
+
441
+ - Fixed issue with interrupting running / scheduled transitions with a new transition on the same prop
442
+ - Fixed issue with (incompatible) SDF text renderer being loaded when `renderMode` is set to canvas
443
+ - Added support for handling key release (i.e `keyup`) events
444
+
445
+ ## v1.4.3
446
+
447
+ _26 sept 2024_
448
+
449
+ - Fixed issues with sprites in minified production build
450
+ - Bumped renderer to v2.2.0 (with fixes for nested alpha / show issue)
451
+ - Fixed reactivity in plugins not using reactivity mode setting
452
+ - Fixed named slots functionality
453
+
454
+ ## v1.4.2
455
+
456
+ _24 sept 2024_
457
+
458
+ - Fixed timing issue with calculation of percentages
459
+ - Improved check to see if object is a Blits component, so it's more robust in case of code minification
460
+
461
+ ## v1.4.1
462
+
463
+ _18 sept 2024_
464
+
465
+ - Fixed support for inspector, compatible with renderer 2.x changes
466
+
467
+ ## v1.4.0
468
+
469
+ _16 sept 2024_
470
+
471
+ - Added support for `fit` attribute to enable resizeModes for images (cover, contain)
472
+ - Added priority parameter for event emitters + ability to stop propagation
473
+ - Added Global App State plugin
474
+ - Added Theme plugin
475
+ - Standardized built-in utility methods (i.e. focus, select, setTimeout, etc.) to all be prefixed with a `$`.
476
+ - Added support for triggering nested state variables with dot-notation (i.e `foo.bar.bla`)
477
+ - Added support for watching nested state variables (i.e `foo.bar.bla`)
478
+ - Fixed bug with Log plugin not picking up on `debugLevel` setting
479
+ - Fixed bug when using hex-colors in an effect
480
+ - Upgraded to latest version of the renderer (2.1.1)
481
+
482
+ ## v1.3.1
483
+
484
+ _27 aug 2024_
485
+
486
+ - Moved `this.$log` functionality to a plugin, which delays the instantation and allows it to pick up launch settings (bug fix)
487
+
488
+ ## v1.3.0
489
+
490
+ _19 aug 2024_
491
+
492
+ - Fixed bug in for-loop when key is not a string but a number
493
+ - Added `$shallow`-modifier to for-loop
494
+ - Added several performance optimizations
495
+ - Added support for dynamic arguments in object notation (i.e. `mount="{x: $x, y: $y}"`)
496
+
497
+ ## v1.2.0
498
+
499
+ _5 aug 2024_
500
+
501
+ - Added plugin system for Blits
502
+ - Added Language plugin, modeled after L2-SDK Language plugin
503
+ - Removed unused built-in Image component
504
+ - Marked `this.trigger()`-method as deprecated in definition file
505
+ - Removed double assignment of `this.node` during element creation
506
+
507
+ ## v1.1.0
508
+
509
+ _25 july 2024_
510
+
511
+ - Made `holdTimeout` configurable and added to launch settings
512
+ - Improved test coverage
513
+ - Removed imporChunkUrl dependency as it’s no longer needed
514
+ - Abstracted path from pre-compiler, to make it more reusable (in playground for example)
515
+ - Added `defaultFont` launch setting to boilerplate example
516
+
517
+ ## v1.0.0
518
+
519
+ _15 july 2024_
520
+
521
+ - Added multiple optimizations that improve the performance
522
+ - Fixed mountY prop setting
523
+ - Added functionality for providing custom shaders
524
+ - Added initial support for accessing children
525
+ - Added first version of Layout component
526
+ - Improved test coverage
527
+ - Refactored transitions and fixed promise resolve issues
528
+ - Upgraded to renderer v1.0.0
529
+
530
+ ## v0.10.0
531
+
532
+ _17 june 2024_
533
+
534
+ - Updated renderer to version v0.9.1
535
+ - Updated font generation to use the new `@lightningjs/msdf-generator`-package with required font metrics
536
+ - Added queue mechanism to font generation to prevent hanging process
537
+ - Added functionality to pass a component into the Component `:is` attribute
538
+
539
+ Please read refer to the [breaking changes](https://github.com/lightning-js/renderer/releases/tag/v0.9.0) in the
540
+ renderer related to MSDF fonts. When you have custom msdf fonts in your `/public` folder you may need to regenerate
541
+ them (or remove the files and let Blits take care of [generating for you from a `.ttf`](https://lightning-js.github.io/blits/#/essentials/displaying_text?id=using-custom-fonts))
542
+
543
+
544
+ ## v0.9.9
545
+
546
+ _22 may 2024_
547
+
548
+ - Added support for `rtt`-attribute (Render To Texture)
549
+ - Refactored Component for efficiency and readability
550
+ - Improved type definitions
551
+ - Fixed error when no settings object is supplied to Launch method
552
+ - Fixed issue with `parent` variable being set on the global window object
553
+ - Improved code of firing transitions
554
+ - Bumped renderer to version 0.8.4
555
+
556
+ ## v0.9.8
557
+
558
+ _25 apr 2024_
559
+
560
+ - Fixed issue with removing children during navigation with the router
561
+ - Added support for overflow (as an inversed alias of clipping)
562
+ - Upgraded to latest version of renderer (0.8.3)
563
+ - Introduced `renderMode` setting (`webgl` or `canvas`)
564
+
565
+ ## v0.9.7
566
+
567
+ _15 apr 2024_
568
+
569
+ - Added support for direct assignment of an Array element and triggering reactivity
570
+ - Added support for .env in boilerplate
571
+ - Fixed issue with Blits component being wrapped in a Proxy when assigned to a state variable
572
+ - Fixed built-in `hasFocus`-state to also work for components that don't have state in their config object
573
+
574
+ ## v0.9.6
575
+
576
+ _4 apr 2024_
577
+
578
+ - Added before hook to router
579
+ - Upgraded Lightning renderer to v0.8.2
580
+
581
+ ## v0.9.5
582
+
583
+ _29 mar 2024_
584
+
585
+ - Fixed cancelling of scheduled / running transitions when starting a new transition on the same prop (broke in v0.7.1).
586
+ - Added viewport relates lifecycle hooks
587
+
588
+ ## v0.9.4
589
+
590
+ _28 mar 2024_
591
+
592
+ - Upgraded Lightning renderer to v0.8.0
593
+ - Fixed issue with reactivity in a forloop when initial array is empty
594
+ - Introduced new `gpuMemoryLimit` launch setting
595
+
596
+
597
+ ## v0.9.3
598
+
599
+ _25 mar 2024_
600
+
601
+ - Added support for mount / pivot on Text elements and Sprites.
602
+
603
+ ## v0.9.2
604
+
605
+ _21 mar 2024_
606
+
607
+ - Fixed issue with updates not triggering during array operation
608
+
609
+ ## v0.9.1
610
+
611
+ _21 mar 2024_
612
+
613
+ - Improved support for reactive advanced array operations (i.e. `splice()`, `concat()`, `sort()`)
614
+ - Upgraded Lightning renderer to v0.7.6
615
+ - Reverted removal of destroy of child nodes (added in v0.8.1)
616
+ - Introduced `viewportMargin` setting
617
+ - Added `undefined`-check for props sent to renderer
618
+
619
+ ## v0.9.0
620
+
621
+ _18 mar 2024_
622
+
623
+ - Added symbol for `id` on component
624
+ - Fixed issue in for loop when `:key` is a number (and not a string)
625
+ - Added built-in `hasFocus` state variable, available on every Component
626
+ - Refactored font loading, removed the need for temporary `src/fontLoader.js` file
627
+ - Replaced using component name with unique identifier for registering and emitting hooks
628
+
629
+ ## v0.8.1
630
+
631
+ _9 mar 2024_
632
+
633
+ - Added pre-processing of hardcoded colors used in the template
634
+ - Upgraded Lightning renderer to v0.7.5
635
+ - Removed explicit destroy of child nodes, as the renderer now takes care of this
636
+ - Re-added support for clipping
637
+
638
+ ## v0.8.0
639
+
640
+ _1 mar 2024_
641
+
642
+ - Added `this.$clearIntervals()` and `this.$clearTimeouts()` methods that clear all intervals and timers set on a certain component
643
+ - **Breaking change:** Renamed the key `function` to `easing` in the transitions object used to specify a custom easing functio (deprecation notice added)
644
+
645
+ ## v0.7.4
646
+
647
+ _28 feb 2024_
648
+
649
+ - Fixed dependency for on the fly MSDF font generation
650
+
651
+ ## v0.7.3
652
+
653
+ _28 feb 2024_
654
+
655
+ - Added functionality that forces focus hook to fire when parent receives focus from child
656
+ - Improved destroy sequence of nodes to be disposed
657
+ - Fixed issue with tracking reactive objects multiple times (potential max call stack error)
658
+ - Added on the fly MSDF font generation from a `.ttf` file placed in `publics/fonts`
659
+ - Added support for pre-compilation for files with more than 1 Blits component
660
+ - Fixed transitions on scale attribute when passed an object with `x` and `y` values
661
+
662
+ ## v0.7.2
663
+
664
+ _23 feb 2024_
665
+
666
+ - Added small fix to support for (re)assigning an array used in a for-loop
667
+ - Added option to enable the Lightning inspector in launch setting (`inspector: true/false`)
668
+
669
+ ## v0.7.1
670
+
671
+ _22 feb 2024_
672
+
673
+ - Fixed clean up of children nodes when routing to a new view
674
+ - Fixed test cases for code generator (100% coverage)
675
+ - Added support for colorizing sprites
676
+ - Removed before setup and setup lifecycle events and optimized lifecycle instance in components
677
+ - Added support for (re)assigning an array used in a for-loop
678
+ - Refactored delay of transitions (using the now available built-in delay in the renderer)
679
+ - Added preliminary support for frameTick hook
680
+ - Upgraded to latest version of the renderer (0.7.4)
681
+
682
+ ## v0.7.0
683
+
684
+ _20 feb 2024_
685
+
686
+
687
+ - Added support for dynamic components through the `is`-attribute (`<Component is="Poster" />` or `<Component is="$dynamicComponent" />`)
688
+ - 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)`)
689
+ - Added configuration option to set the canvas color (aka clear color)
690
+
691
+ ## v0.6.13
692
+
693
+ _16 feb 2024_
694
+
695
+ - Upgraded to 0.7.2 of the renderer
696
+ - Introduced new `maxheight` attribute (besided the existing `maxlines` attribute) for the `<Text />` component
697
+ - Fixed issue with order of lifecycle event emits
698
+ - Fixed logic to not unfoces a parent when it passes focus to a child
699
+ - Removed temporary fix for renderer issue [#123](https://github.com/lightning-js/renderer/issues/123)
700
+
701
+ ## v0.6.12
702
+
703
+ _9 feb 2024_
704
+
705
+ - Added type hinting for `this.$clearInterval` and `this.$clearTimeout`
706
+ - Fixed issue with `.gitignore` in app create flow
707
+ - Added support for dynamic route parts in the router (i.e `/tv/:series/episodes/:episode`)
708
+
709
+ ## v0.6.11
710
+
711
+ _7 feb 2024_
712
+
713
+ - Enabled the use of `type` as a component prop or state variable
714
+ - Removed setting focus to AppComponent on back key press in RouterView
715
+ - Fixed broken app create flow caused by missing dev dependencies in npx command (temporary fix)
716
+
717
+ ## v0.6.10
718
+
719
+ _2 feb 2024_
720
+
721
+ - Added FPS counter from Example App as a built-in Blits component (available as `<FPScounter />`)
722
+ - Added precompilation to all built-in Blits components for increased performance
723
+ - Updated flow to create a new App project with an interactive prompt of questions (`npx @lightningjs/blits@latest`)
724
+ - Upgraded to latest version of the Lightning 3 renderer (0.7.1)
725
+
726
+ ## v0.6.9
727
+
728
+ _31 jan 2024_
729
+
730
+ - Fixed single quote escaping for all browsers (removing sometimes unsupported negative lookahead)
731
+ - Fixed issue with focus when navigating back to a page that is kept in history
732
+
733
+ ## v0.6.8
734
+
735
+ _29 jan 2024_
736
+
737
+ - Reverted fix (initially) empty for-loops
738
+
739
+ ## v0.6.7
740
+
741
+ _26 jan 2024_
742
+
743
+ - Added `this.$clearInterval` and `this.$clearTimeout` helper functions to Component
744
+ - Updated Lightning renderer to version _0.7.0_
745
+ - Added `lineheight` and `textoverflow` attributes to `<Text />`-component
746
+ - Added setting for specifying maximum number of web workers to spawn (`webWorkersLimit`)
747
+ - Added fix for issue with setting up reactivity for (initially) empty for-loops
748
+
749
+ ## v0.6.6
750
+
751
+ _24 jan 2024_
752
+
753
+ - Added temporary fix for renderer issue [#123](https://github.com/lightning-js/renderer/issues/123)
754
+ - Fixed issue with setting mount, pivot and scale values to zero (0) in object literal with x and y key
755
+ - Added automatic mapping of ref string to each item in a for-loop
756
+
757
+ ## v0.6.5
758
+
759
+ _16 jan 2024_
760
+
761
+ - Added `path` to boilerplate vite.config.js for deployments in a sub folder
762
+ - Improved error handling in the template parser, with more contextual error messages
763
+
764
+ ## v0.6.4
765
+
766
+ _15 jan 2024_
767
+
768
+ - Added fix for sprites not working on certain devices
769
+
770
+ ## v0.6.3
771
+
772
+ _12 jan 2024_
773
+
774
+ - Removed prepending protocol and host from sprite image
775
+
776
+
777
+ ## v0.6.2
778
+
779
+ _12 jan 2024_
780
+
781
+ - Fixed issue with Sprites not working correctly due to missing background color
782
+
783
+ ## v0.6.1
784
+
785
+ _8 jan 2024_
786
+
787
+ - Fixed issue with using single quotes as Text content
788
+ - Added first Text-to-Speech / Announcer functionality
789
+
790
+ ## v0.6.0
791
+
792
+ _4 jan 2024_
793
+
794
+ - Added pre-compilation functionality to improve performance. Requires an update to the `vite.config.js` to enable. Read more details in this [blog post](https://lightningjs.io/blogs/blitsPreCompilation.html)
795
+ - Added `defaultFont` to the Launch settings
796
+
797
+ ## v0.5.10
798
+
799
+ _3 jan 2024_
800
+
801
+ - Updated and improved documentation
802
+ - Added `screenResolution` and `pixelRatio` options to settings
803
+
804
+ ## v0.5.9
805
+
806
+ _21 dec 2023_
807
+
808
+ - Changed transition-end callback to receive real prop value from node
809
+ - Implemented symbol for `wrapper` on Component (freeing up the name wrapper to be used in Component state)
810
+ - Added functionality to prevent a route ending up in the history stack (route option: `inHistory: false`)
811
+ - Improved router backtracking logic
812
+ - Added functionality to override route options during navigation
813
+ - Upgraded to latest version of the renderer (0.6.1) which contains a fix for animations not finishing correctly
814
+
815
+ ## v0.5.8
816
+
817
+ _15 dec 2023_
818
+
819
+ - Internal refactor of the `Element`
820
+
821
+ ## v0.5.7
822
+
823
+ _13 dec 2023_
824
+
825
+ - Added history and backhandling to the router
826
+ - Linked effects directly to the available shaders exposed by the L3 renderer (starting 0.6.0)
827
+ - Added setting `reactivityMode` to control whether `Proxy` (default) or `defineProperty` is used to trigger reactive side effects
828
+
829
+ ## v0.5.6
830
+
831
+ _11 dec 2023_
832
+
833
+ - Upgraded to version 0.6.0 of the Lightning 3 renderer
834
+
835
+ ## v0.5.5
836
+
837
+ _5 dec 2023_
838
+
839
+ - Fixed regression in Slots functionality caused by forloop cleanup fix in 0.5.4
840
+
841
+ ## v0.5.4
842
+
843
+ _5 dec 2023_
844
+
845
+ - Fixed issue with Components and Elements not always being cleaned up in forloop
846
+ - Added support for nested children inside a forloop on an Element
847
+
848
+ ## v0.5.3
849
+
850
+ _4 dec 2023_
851
+
852
+ - Added transition `start` and tranition `end` callbacks
853
+
854
+ ## v0.5.2
855
+
856
+ _30 nov 2023_
857
+
858
+ - Fixed issue in code generator leading to creation unnecessary child nodes
859
+ - Added focus handler to router view (that passes focus to the current active page)
860
+
861
+ ## v0.5.1
862
+
863
+ _29 nov 2023_
864
+
865
+ - Fixed issue with unexpected unfocus
866
+ - Added fastforward of transitions on the same property
867
+ - Added functionality to skip focus change on key hold
868
+
869
+ ## v0.5.0
870
+
871
+ _23 nov 2023_
872
+
873
+ - Introduced `wordwrap` and `maxlines` attributes on the Text-component, replacing the previous `w` and `h` attributes (breaking change!)
874
+
875
+ ## v0.4.2
876
+
877
+ _22 nov 2023_
878
+
879
+ - Improved parser and added more template validation (i.e. one single root element in a template)
880
+ - Fixed typo in documentation
881
+
882
+ ## v0.4.1
883
+
884
+ _13 nov 2023_
885
+
886
+ - Added support for using dynamic import of components in routes
887
+ - Added support for returning components in an async function / Promise in routes
888
+
889
+ ## v0.4.0
890
+
891
+ _9 nov 2023_
892
+
893
+ - Fixed bug related to animating percentage based values
894
+ - Added (customizable) navigation transitions to the router
895
+ - Renamed `.eslintrc.js` to `.eslintrc.cjs` in boilerplate code to make linting work on new projects
896
+ - Fixed issue in Settings when the default value was set to `false`
897
+ - Replace underscored keys for private properties with Symbols
898
+ - Added `keepAlive` option to the router (i.e. keeping a page in memory when navigating to a new page)
899
+ - Introduced a `this.$trigger` function to force a reevaluation of a reactive value (without changing the value)
900
+ - Exposed `currentRoute`, `routes` and `navigating` on the `this.$router` object
901
+ - Upgraded to lates version of `@lightningjs/renderer` (v0.5.0)
902
+
903
+ ## v0.3.15
904
+
905
+ _23 oct 2023_
906
+
907
+ - Added support for slots
908
+ - Added support for defining custom keymapping
909
+ - Improved error handling of the template parser
910
+
911
+ ## v0.3.14
912
+
913
+ _19 oct 2023_
914
+
915
+ - Fixed error when `<Text />`-component doesn't have any content
916
+ - Removed generic escape key handler that closed the App
917
+ - Introduced `quit()`-method on the root Application component
918
+ - Updated to v0.4.0 of the renderer
919
+
920
+ ## v0.3.13
921
+
922
+ _18 oct 2023_
923
+
924
+ - Added support for `borderTop`, `borderBottom`, `borderLeft`, `borderRight` and `grayScale` effects
925
+ - Fixed `@loaded` and `@error` events on `<Text/>` componenent only firing once (and not for each change)
926
+ - Fixed loading of web canvas2d fonts
927
+ - Fixed error when using `this`-reference in component state
928
+ - Added basic support for inline text (i.e. `<Text>My text with a {{$dynamic}} value</Text>`)
929
+
930
+ ## v0.3.12
931
+
932
+ _17 oct 2023_
933
+
934
+ - Fixed path to logo on readme
935
+
936
+ ## v0.3.11
937
+
938
+ _17 oct 2023_
939
+
940
+ - Added support for using [percentages](https://lightning-js.github.io/blits/#/element_attributes?id=using-percentages) in dimensions (`w` / `h`) and positioning (`x` / `y`)
941
+ - Refactored template parser to be more robust and throw errors when the template contains a syntax mistake
942
+ - Re-enabled tests (still depends on renderer version bump though)
943
+ - Added the new official Blits logo to the readme!
944
+
945
+ ## v0.3.10
946
+
947
+ _9 oct 2023_
948
+
949
+ - Updated L3 renderer dependency to 0.3.6
950
+ - Renamed internal methods for creating textures and shaders
951
+
952
+
953
+ ## v0.3.9
954
+
955
+ _5 oct 2023_
956
+
957
+ - Updated L3 renderer dependency to 0.3.3
958
+
959
+
960
+ ## v0.3.8
961
+
962
+ _4 oct 2023_
963
+
964
+ - Added Blits VS code extension to recommended extensions
965
+
966
+
967
+ ## v0.3.7
968
+
969
+ _3 oct 2023_
970
+
971
+ - Fixed reactivity issue when using `null` values in state
972
+
973
+
974
+ ## v0.3.6
975
+
976
+ _2 oct 2023_
977
+
978
+ - Bumped version number of dependency in boilerplate
979
+
980
+
981
+ ## v0.3.5
982
+
983
+ _2 oct 2023_
984
+
985
+ - Added workaround for Vite import chunk url plugin for fontloading
986
+
987
+ ## v0.3.4
988
+
989
+ _27 sep 2023_
990
+
991
+ - Fixed issue with re-applying reactivity to already reactive props in forloop
992
+
993
+
994
+ ## v0.3.3
995
+
996
+ _25 sep 2023_
997
+
998
+ - Added support for `@loaded` and `@error` events on Elements (and Text Component)
999
+
1000
+
1001
+ ## v0.3.2
1002
+
1003
+ _22 sep 2023_
1004
+
1005
+ - Changed name of attribute to reference an Element or Component from `id` to `ref`
1006
+
1007
+
1008
+ ## v0.3.1
1009
+
1010
+ _20 sep 2023_
1011
+
1012
+ - Fixed Blits dependency in create App boilerplate package.json
1013
+
1014
+
1015
+ ## v0.3.0
1016
+
1017
+ _20 sep 2023_
1018
+
1019
+ Initial beta release of Blits ⚡️