0.1.15 (2024-02-11)
- export LRUCache and Queue (2a59580)
0.1.14 (2024-02-04)
- replace Mat4.rotateFromQuat() with Mat4.getRotationAndTranslationFromQuatAndVec() (2c11e0e)
0.1.13 (2024-02-04)
- correct more math functions (c013d58)
0.1.12 (2024-02-03)
- remove unnecessary * 2 (9df2463)
0.1.11 (2024-02-03)
- change Mat4.perspective to use WebGPU NDC space (ebaf0fa)
0.1.10 (2024-02-02)
- load color attachment in render pass instead of clearing (70e763e)
0.1.9 (2024-02-02)
- add missing typings (8162293)
0.1.8 (2024-02-02)
- make Mat4.lookAt() work like in other math libraries (d9e2dbf)
0.1.7 (2024-01-20)
0.1.6 (2024-01-13)
- add support for onKeyDown in inputs (53e7aad)
0.1.5 (2024-01-13)
0.1.4 (2024-01-07)
- export lookups types (f594b42)
0.1.3 (2024-01-07)
- add onChange() handler to input fields (52a29dc)
0.1.2 (2024-01-01)
- export event enums and functions as values not types (bdd6a43)
0.1.1 (2024-01-01)
- export event types (d2ba6db)
0.1.0 (2023-12-31)
- Add new WebGPU renderer.
- Add missing styling and layout properties:
flexWrap
,flexShrink
,flexGrow
,flexBasis
,aspectRatio
,minHeight
(and width and max variants),overflow
. - Refactor font handling code and added line wrapping, kerning, text alignment.
- Split layout and rendering into phases:
layout()
,compose()
,paint()
. - Add event system scrolling support to
View
(useBaseView
to avoid runtime cost of it). - Add first components as building blocks for larger UIs:
Button
andInput
(which supports keyboard and mouse selection). - Improve CI and automated the release process.
- Remove JSX API for the time being while research is ongoing on how to make it play well with interactive components.
- Add unit tests.
- Add New docs website with multiple pages, search, API reference, examples, and guides.
- Fix paths in
package.json
fieldexports
.
- Export
jsx-dev-runtime
.
- Restore two entrypoints and replace UMD with CJS.
- Fix UMD export.
- Switch to the new JSX transform. As a consequence, now
tsconfig.json
fragment looks like this:and- "jsx": "react", - "jsxFactory": "jsx", + "jsx": "react-jsx", + "jsxImportSource": "red-otter/dist",
vite.config.ts
plugin like this:- jsxFactory: "jsx", + jsx: "automatic", + jsxImportSource: "red-otter",
- Expand math utils further. Make each of the
Vec2
,Vec3
andVec4
support the same set of methods. Addmath/utils.ts
file which supports basic 1D methods such as degree to radian conversion.
- More methods in the
Mat4
class. New exports of math utils from main package:packShelves
,triangulateLine
,triangulatePolygon
.
- Sneak in some more math utils. Long term I suppose they will need to be extracted to another package, but so far I am happily avoiding messing with monorepo restructure.
- Add
Context#getWebGLContext()
so WebGL context can be accessed from outside.
- Move
Interactions
class to the main package.
- This version brings a considerable rendering speed up from rewriting
Context.ts
to use one buffer with strides instead of separate buffers for each vertex attribute. Onexamples/interactivity
I am seeing frame times go down from 2ms to 0.5ms.
- It is now possible to trim text by providing
trimStart
andtrimEnd
coordinates toContext#text()
,Layout#text()
or viaTextStyle
proptrimRectangle
in JSX API. - A small fix to typings: functions returning JSX can now return
<shape>
and<text>
and not only<view>
.
- Fix for
<text>
showing only the first text node, making JSX much less useful.
Layout#flush()
is nowLayout#calculate()
to be more explicit and avoid confusion withContext#flush()
- Fix for critical error that would cause infinite loop if any element was too small to be displayed or had
display: none
set.
- Fix for TypeScript type of font atlas metadata.
- First public release.