- Fix multiselect checkbox on narrow screens.
- Fix skeleton shimmer animation.
- Fix safari checkbox mark alignment.
- Fix combobox highlighting.
- Rebuild before
npm publish.
- New: skeleton loader components.
- New: icon
photo.
- Grid column cell renderer now accepts svelte snippets.
- Grid no longer tries to guess the columns' types to auto-set column widths and alignment. There are now new properties for the Column:
widthandalignfor that purpose. - fix grid row derived double subscription which caused a svelte warning in the console.
- fix dev source maps
- fix tooltip edge case, where tooltip would not hide if the tag was removed from the DOM while the tooltip was visible.
- fix input error padding.
Thousand thanks to the Svelte's team, for the long months of hard work, that we wasted on rewriting this library, to make it compatible with Svelte v5. Hopefully this is the last time they decided to innovate 😉.
- This is the first version of the library that is compatible with Svelte v5.
- All components have been rewritten to use the new Svelte v5 syntax and features.
- All components now use TypeScript for better developer experience.
- Setup, tests & build process have been updated to vite & vitest.
- Event handling has been standardized across all components (more details in the Breaking Changes section below).
- Added
ThemeSwitchercomponent.
- All Svelte v4 events are now loosing the colon (e.g.
on:change->onchange). - All events have been refactored, and all listeners/handlers have the same signature:
function(event: Event, data?: any), where the first argument is alwaysevent, and second argument (data) is specific to the event & component, e.g.- for Inputs
onchangeevent,dataargument will contain the new value ({ value: any })
- for Inputs
- Event listeners added to components' events will receive the relevant data as the second argument of the callback. There is no
event.detailanymore. - Utils functions & constants have been updated to use a new reactive state object
UI, which is now exported fromsrc/utils:$ANIMATION_SPEED->UI.ANIMATION_SPEED- (number) reactive constant$PREFERS_DARK->UI.PREFERS_DARK- (boolean) reactive constantisMobile()->UI.isMobile- (boolean) constant
- As per Svelte's best practices, attributes bound to variables will not use quotes anymore, so:
value="{value}"->value={value}or even better:{value}. - Attributes are typed now, and are a bit more restrictive, so e.g. a
booleanor anumberattribute will not accept a string value. - Like in HTML,
booleanattributes default tofalseif not present, andtrueif passed without a value, so<Button disabled/>is enough to disable the button, and is the same as<Button disabled={true}/>. - Removed components:
InputTag- the UX is too complex, and unintuitive. Please use aComboboxwithmultiselectoption or a 3rd party library like.
- Utils functions removed (please use 3rd party libraries like es-toolkit or implement your own):
getValueAtPath()setValueAtPath()empty()isset()pluck()roundAmount()isInScrollable()throttle()debounce()deepCopy()
- Removed the need for consumers to provide & load the
zxcvbnlibrary. The library will now be automatically loaded from the CDN when it's needed. If it was already loaded and is available (window.zxcvbn), the local instance will be used instead. - Added
Shortcutcomponent (which is used inMenuandTooltip). - Added some gradients to the palette which are now used throughout the components to give more visual depth.
- Added
ArrowLeftandArrowRighttoTogglecomponent, to allow toggling the value with the keyboard. - Added
ArrowUpandArrowDowntoInputNumbercomponent, to allow incrementing/decrementing the value with the keyboard. - Fixed
Tooltip: when mouse entered target from the top - tooltip would show up and hide instantly. - Handle
ctrlKeyfor windows for shortcuts in event handlers Panel- now uses better css-only animate to auto (#209)- Upgrade all
class:attributes to use all the fanciness from Svelte's class directive - Fixed
aria-invalidvalue: should betrue/falseand not a message. - Test coverage has been improved significantly, with all components now having >80% coverage.
- Tests speed and performance has been improved significantly by eliminating the animations' delays, and by a better handling of the events in tests.