Repository navigation
0.47.0
Leaning further into Atomic’s design ethos: zero-cost primitives, sharp utilities, and predictably reactive behavior. This release builds on what was already working, just sharper, cleaner, and more ergonomic.
Added
- feat: New Atomic util
$.isArrto verify a provided value is an array (type guarded) - feat: New Atomic util
$.isBoolto verify a provided value is a boolean (type guarded) - feat: New Atomic util
$.isDateto verify a provided value is a valid Date instance (type guarded) - feat: New Atomic util
$.isFnto verify a provided value is a function (type guarded) - feat: New Atomic util
$.isIntto verify a provided value is an integer (type guarded) - feat: New Atomic util
$.isNumto verify a provided value is a finite number (type guarded) - feat: New Atomic util
$.isObjto verify a provided value is a plain object (type guarded) - feat: New Atomic util
$.isStrto verify a provided value is a string (type guarded)
if ($.isArr(data.items)) {
console.log('Array length:', data.items.length);
}
if ($.isStr(user.name)) {
el.textContent = user.name.toUpperCase();
}- feat: Atomic Global store (accessible through
$.storeGetand$.storeSet) now retrieves data from localStorage on initialization using"$tfs:..."as the key prefix - feat: Atomic Global store
$.storeSetcan now be passed{persist: true}to persist to localStorage - feat: Atomic Global store now exposes a
$.storeDelmethod to remove a key from memory and localStorage. On delete we will also publish a relay event in the same way that$.storeSetdoes
$.storeSet('theme', 'dark', { persist: true }); // persisted to localStorage
const theme = $.storeGet('theme'); // returns "dark"
$.storeDel('theme'); // removes from memory and localStorageImproved
- qol: It is now also possible to pass a string and object to
data.$setfor leaf-specific updates.
<Script>{({data}) => {
data.$bind('form.name', 'input[name="name"]');
data.$bind('form.lastName', 'input[name="lastName"]');
data.$set('form', {name: 'Peter', lastName: 'V'});
...
}}</Script>Fixed
- Fixed an issue with reactive data proxy not updating radio input types correctly
Atomic keeps getting tighter. No magic, no overhead — just state, DOM, and data doing what they're told.
More to come, but for now, as always, stay frosty ❄️.