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