Files
tools/vue/toolkit
robonen c7644ade69 fix(vue): eslint/tsconfig migration + resolve type errors
@robonen/vue (toolkit): migrate to eslint flat config + composite tsconfig;
fix composable + test type errors (writable computed returns, null guards,
overload-compatible signatures, typed test helpers) — all type-level.
2026-06-07 16:29:39 +07:00
..

@robonen/vue

Collection of composables and utilities for Vue 3 — 100+ tree-shakeable, SSR-safe composables.

Install

pnpm install @robonen/vue

Composables

Category Composables
browser onKeyStroke, useActiveElement, useBodyScrollLock, useClickOutside, useClipboard, useCloseWatcher, useColorMode, useDevicePixelRatio, useDocumentReadyState, useDocumentVisibility, useDropZone, useElementBounding, useElementHover, useElementSize, useElementVisibility, useEscapeKey, useEventListener, useEyeDropper, useFavicon, useFileDialog, useFocus, useFocusGuard, useFocusWithin, useFps, useFullscreen, useGeolocation, useIdle, useIntersectionObserver, useIntervalFn, useKeyModifier, useMagicKeys, useMediaQuery, useMouse, useMousePressed, useMutationObserver, useNetwork, useObjectUrl, useOnline, usePageLeave, usePermission, usePointer, usePreferredColorScheme, usePreferredDark, useRafFn, useResizeObserver, useScreenOrientation, useScroll, useScrollLock, useShare, useSupported, useSwipe, useTabLeader, useTextSelection, useTitle, useVibrate, useWindowFocus, useWindowScroll, useWindowSize
component unrefElement, useForwardExpose, useTemplateRefsList
debug useRenderCount, useRenderInfo
lifecycle tryOnBeforeMount, tryOnMounted, tryOnScopeDispose, useMounted
math useClamp
reactivity broadcastedRef, refAutoReset, refDebounced, refThrottled, until, useArrayFilter, useArrayFind, useArrayMap, useCached, useCloned, useCycleList, useLastChanged, usePrevious, useSyncRefs, useToNumber, useToString, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, whenever
state useAppSharedState, useAsyncState, useContextFactory, useCounter, useId, useInjectionStore, useStepper, useToggle
storage useLocalStorage, useSessionStorage, useStorage, useStorageAsync
utilities useDebounceFn, useInterval, useOffsetPagination, useThrottleFn, useTimeoutFn, useTimestamp

The package also exports event-filter helpers (debounceFilter, throttleFilter, pausableFilter, createFilterWrapper) and shared types (ConfigurableWindow, ConfigurableDocument, ConfigurableNavigator, MaybeComputedElementRef, …).

Usage

import { useEventListener, useMagicKeys, useToggle } from '@robonen/vue';

const { value, toggle } = useToggle();

useEventListener('scroll', () => {/* … */}, { passive: true });

const keys = useMagicKeys();
watchEffect(() => {
  if (keys['ctrl+s'].value)
    save();
});