Releases: witchcraftjs/ui
v0.3.24
v0.3.23
v0.3.22
v0.3.21
v0.3.20
0.3.20 (2026-01-06)
⭐ New Features
improved animations (278423f)
- added
slideIn[Direction]animations with controllable from points (using
animate-from-*
added useTimeConditionally composable (26fe164)
notifications: improved notifications on small screens + animations (a70d737)
On small screens, all notifications will take the full screen width and
notifications that require action will now popup up from the bottom.
Buttons are now also larger for regular notifications on small screens.
🐛 Fixes
notifications: fixed notification timer resetting when calling notify (eb36efe)
Really what was happening is that we were carelessly calling resume onMounted in
the pointerdown listener without checking if the notification was already
running (which it is immediately after it's sent).
dates: fixed animations in date picker (9867665)
notifications: fixed popup notification height being too large (1189898)
v0.3.19
0.3.19 (2025-12-28)
⭐ New Features
table: dragging class is now added to the table when it's columns are being dragged (e94c836)
🐛 Fixes
table: wrapper-class attribute is now properly passed (335c6f5)
Accidentally snake-cased it, causing only wrapperClass to work, which is not in
the same style as the rest of the lib.
table: fixed some more resize issues (462a2ac)
-
It was still possible in some circumstances for columns to go below the min
margin width. That's no longer the case, when elements reach the min margin
width, their widths are now set in pixels and the table will scroll, even with
fitWidth true. -
There was some jitter when the container started to scroll along the x axis.
With the scrollbar appearing/dissapearing. This was due to a previous faulty fix
which didn't correctly address the underlying issues (the above min width
problem).
table: fixed incorrect selector docs and defaults (663e7cc)
table: fix "El went missing" error when toggling resize.enabled (dbdcbd9)
v0.3.18
v0.3.17
v0.3.16
0.3.16 (2025-12-25)
⭐ New Features
table: no-resize cols now stay the same initial width regardless of if the table is resized (8d3436b)
These types of columns are meant for things like showing icons. Before, on
resize of the table, they would expand/shrink with it, causing issues.
Now they won't. Resizable columns are shrunk in proportion instead. Note that
for very large no-resize columns this can cause fitWidth tables to scroll sooner
than expected (there is always a point at which they will because of the minimum
col width).
🐛 Fixes
table: added will-change-transform for better virtualized performance (a045ff9)
table: fixed grips sometimes not correctly positioned after dragging (244ff56)
Element sizes aren't correct immediately after we set them. So added a small
timeout before positioning the grips and made sure we don't get into an infinite
resize observer loop.
table: fixed grips not getting correctly positioned after resize when multiple tables shown (5008e07)
Something about throttling the resize observer callback was causing the
reference to the el to be "lost" / disconnected from the dom. Could not pinpoint
exactly how as vue should have unmounted the el if so.
Disabled throttling for now.
v0.3.15
0.3.15 (2025-12-24)
⭐ New Features
added no-truncate tailwind util to remove truncate easily (4cc275b)
table: added virtualization to table (22164ad)
This involves some minor breaking changes. Note virtualization is NOT enabled by
default.
-
(breaking) The table is now wrapped in two divs. The class attribute is still
forwarded to the table, but now wrapperClass can be used to forward classes to
the root wrapper div. This was required to make virtualization work.
.resizable-cols-setup is now also added to the wrapper. -
If using slots with virtualization be sure to read the docs for the
virtualizerOptions and update the props passed to your slot element. -
(breaking) cells are now styled as truncate by default to avoid issues with
virtualization. -
Improved performance not just via virtualization: Classes are now all
pre-computed including style merges, instead of inline in the template. -
Added stories to testvirtualization.
-
Added has-scrollbar-* classes so we can style overflowed states better
-
This required several tricks to get working with sticky headers and fit width
false and resize in general. Read docs carefully.
table: added onSetup/Teardown callbacks to vResizableCols (a0e411e)
table: added sticky header option to Table (014987a)
🐛 Fixes
table: fixed last column not being draggable when fitWidth is false (770be78)
table: fixed "el went missing" error when disabling/enabling (c3ec9a1)
table: fixed incorrectly named header cells (td => th) (d2d4367)
- technically breaking since it's been wrong for so long
📖 Documentation
table: fixed missing style prop and incorrect classes in story for table with initial sizing (d3616e2)
The style prop always needs to be passed as it determines the real size after
the initial setup. While the story appeared to work, in more complex real life
scenarios it fails.
Setup only classes also need to be correctly prefixed so as to not affect
post-setup styles.