bce817bc05
CI / @robonen/crdt (pull_request) Failing after 4m43s
CI / @robonen/docs (pull_request) Failing after 20s
CI / @robonen/encoding (pull_request) Failing after 6s
CI / @robonen/eslint (pull_request) Failing after 36m41s
CI / @robonen/fetch (pull_request) Failing after 37m56s
CI / @robonen/platform (pull_request) Failing after 3m25s
CI / @robonen/primitives (pull_request) Failing after 3m19s
CI / @robonen/primitives-playground (pull_request) Failing after 28m54s
CI / @robonen/renovate (pull_request) Failing after 1m17s
CI / @robonen/stdlib (pull_request) Failing after 2m56s
CI / @robonen/stories (pull_request) Failing after 2m14s
CI / @robonen/tsconfig (pull_request) Failing after 2m57s
CI / @robonen/tsdown (pull_request) Failing after 33m13s
CI / @robonen/vue (pull_request) Failing after 2m54s
CI / @robonen/writekit (pull_request) Failing after 4m20s
CI / @robonen/writekit-playground (pull_request) Failing after 34m43s
CI / CI (pull_request) Failing after 5s
@robonen/vue
Collection of composables and utilities for Vue 3 — 213+ tree-shakeable, SSR-safe composables.
Install
pnpm install @robonen/vue
Composables
| Category | Composables |
|---|---|
| animation | useAnimate, useCountdown, useDateFormat, useInterval, useIntervalFn, useNow, useRafFn, useTimeAgo, useTimeout, useTimeoutFn, useTimestamp, useTransition |
| array | useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useSorted |
| browser | broadcastedRef, useBreakpoints, useClipboard, useClipboardItems, useCloseWatcher, useColorMode, useCssVar, useDark, useDocumentPiP, useEventListener, useEyeDropper, useFavicon, useFileDialog, useFileSystemAccess, useFullscreen, useImage, useLocalFonts, useMediaQuery, useObjectUrl, usePermission, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useScriptTag, useShare, useStyleTag, useTabLeader, useTextareaAutosize, useTitle, useUrlSearchParams, useVibrate, useWakeLock, useWebNotification |
| component | createReusableTemplate, unrefElement, useCurrentElement, useForwardExpose, useTemplateRefsList, useVirtualList |
| debug | useRenderCount, useRenderInfo |
| elements | onElementRemoval, useActiveElement, useDocumentReadyState, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementSize, useElementVisibility, useFocusGuard, useIntersectionObserver, useMutationObserver, useParentElement, useResizeObserver, useWindowFocus, useWindowScroll, useWindowSize |
| forms | useField, useFieldArray, useForm, useFormContext |
| lifecycle | tryOnBeforeMount, tryOnMounted, tryOnScopeDispose, useMounted |
| math | logicAnd, logicNot, logicOr, useAbs, useAverage, useCeil, useClamp, useFloor, useMath, useMax, useMin, usePrecision, useProjection, useRound, useSum, useTrunc |
| media | useBluetooth, useDisplayMedia, useMediaControls, useMemory, usePerformanceObserver, useSpeechRecognition, useSpeechSynthesis, useUserMedia, useWebWorker, useWebWorkerFn |
| reactivity | computedAsync, computedEager, computedWithControl, extendRef, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, syncRef, toReactive, useCached, useCloned, useDebounceFn, usePrevious, useSyncRefs, useThrottleFn, useToNumber, useToString |
| sensors | onKeyStroke, onLongPress, onStartTyping, useBattery, useBodyScrollLock, useClickOutside, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useElementByPoint, useElementHover, useEscapeKey, useFocus, useFocusWithin, useFps, useGamepad, useGeolocation, useIdle, useInfiniteScroll, useKeyModifier, useMagicKeys, useMouse, useMouseInElement, useMousePressed, useNetwork, useOnline, usePageLeave, useParallax, usePointer, usePointerLock, usePointerSwipe, useScreenOrientation, useScroll, useScrollLock, useSwipe, useTextSelection |
| state | createSharedComposable, useAppSharedState, useAsyncState, useContextFactory, useCounter, useCycleList, useDebouncedRefHistory, useId, useInjectionStore, useLastChanged, useManualRefHistory, useOffsetPagination, useRefHistory, useStepper, useThrottledRefHistory, useToggle |
| storage | useLocalStorage, useSessionStorage, useStorage, useStorageAsync |
| utilities | createEventHook, get, isDefined, set, useEventBus, useMemoize, useSupported |
| watch | until, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, whenever |
The package also exports event-filter helpers (debounceFilter, throttleFilter, pausableFilter, createFilterWrapper) and shared types (ConfigurableWindow, ConfigurableDocument, ConfigurableNavigator, ConfigurableFlush, 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();
});