UNPKG

svelte-5-ui-lib

Version:

Svelte 5 UI Lib is a UI library built from scratch to leverage Svelte 5's runes system, creating smooth, reactive components.

58 lines (57 loc) 1.48 kB
export function uiHelpers() { let isOpen = $state(false); function toggle() { isOpen = !isOpen; // console.log('toggled', isOpen); } function close() { isOpen = false; // console.log('closed', isOpen); } function open() { isOpen = true; // console.log('opened', isOpen); } return { get isOpen() { return isOpen; }, set isOpen(value) { isOpen = value; }, toggle, close, open }; } export function clickOutside(element, callbackFunction) { function onClick(event) { if (typeof callbackFunction === 'function') { const targetNode = event.target; if (!element.contains(targetNode)) { callbackFunction(); } } else { console.error('Callback function is not a function'); } } document.body.addEventListener('click', onClick); return { update(newCallbackFunction) { if (typeof newCallbackFunction === 'function') { callbackFunction = newCallbackFunction; } else { console.error('New callback function is not a function'); } }, destroy() { document.body.removeEventListener('click', onClick); } }; } let n = Date.now(); export function idGenerator() { return (++n).toString(36); }