solidjs-community / solid-primitives

A library of high-quality primitives that extend SolidJS reactivity.
https://primitives.solidjs.community
MIT License
1.28k stars 124 forks source link
solidjs

Solid Primitives

Solid Primitives

pnpm turborepo combined-downloads

A project that strives to develop high-quality, community contributed Solid primitives. All utilities are well tested and continuously maintained. Every contribution to the repository is checked for quality and maintained to the highest degree of excellence. The ultimate goal is to extend Solid's primary and secondary primitives with a set of tertiary primitives.

While Solid Primitives is not officially maintained by the SolidJS Core Team, it is managed by members of the SolidJS core and ecosystem teams. This separation allows the core library to iterate independently while allowing Solid Primitives to remain in-sync with future plans.

Philosophy

The goal of Solid Primitives is to wrap client and server side functionality to provide a fully reactive API layer. Ultimately the more rooted our tertiary primitives are, the more they act as foundation within Solid's base ecosystem. With well built and re-used foundations, the smaller (aggregate tree-shaking benefits), more concise (readability) and stable (consistent and managed testing + maintenance) applications can be overall.

Primitives

Name Stage Primitives Size NPM

Inputs

active-element STAGE createActiveElement
createFocusSignal
SIZE VERSION
autofocus STAGE autofocus
createAutofocus
SIZE VERSION
input-mask STAGE createInputMask
createMaskPattern
SIZE VERSION
keyboard STAGE useKeyDownList
useCurrentlyHeldKey
useKeyDownSequence
createKeyHold
createShortcut
SIZE VERSION
mouse STAGE createMousePosition
createPositionToElement
SIZE VERSION
pointer STAGE createPointerListeners
createPerPointerListeners
createPointerPosition
createPointerList
SIZE VERSION
scroll STAGE createScrollPosition
useWindowScrollPosition
SIZE VERSION
selection STAGE createSelection SIZE VERSION

Display & Media

audio STAGE makeAudio
makeAudioPlayer
createAudio
SIZE VERSION
bounds STAGE createElementBounds SIZE VERSION
devices STAGE createDevices
createMicrophones
createSpeakers
createCameras
createAccelerometer
createGyroscope
SIZE VERSION
filesystem STAGE createFileSystem
createSyncFileSystem
createAsyncFileSystem
makeNoFileSystem
makeNoAsyncFileSystem
makeVirtualFileSystem
makeWebAccessFileSystem
makeNodeFileSystem
makeTauriFileSystem
makeChokidarWatcher
rsync
SIZE VERSION
idle STAGE createIdleTimer SIZE VERSION
intersection-observer STAGE createIntersectionObserver
createViewportObserver
createVisibilityObserver
SIZE VERSION
media STAGE makeMediaQueryListener
createMediaQuery
createBreakpoints
usePrefersDark
SIZE VERSION
page-visibility STAGE createPageVisibility SIZE VERSION
resize-observer STAGE createResizeObserver
createWindowSize
createElementSize
SIZE VERSION
styles STAGE createRemSize SIZE VERSION

Browser APIs

broadcast-channel STAGE makeBroadcastChannel
createBroadcastChannel
SIZE VERSION
clipboard STAGE copyClipboard
writeClipboard
createClipboard
SIZE VERSION
event-listener STAGE createEventListener
createEventSignal
createEventListenerMap
WindowEventListener
DocumentEventListener
SIZE VERSION
event-props STAGE createEventProps SIZE VERSION
fullscreen STAGE createFullscreen SIZE VERSION
geolocation STAGE createGeolocation
createGeolocationWatcher
SIZE VERSION
mutation-observer STAGE createMutationObserver SIZE VERSION
permission STAGE createPermission SIZE VERSION
storage STAGE makePersisted
cookieStorage
tauriStorage
multiplexStorage
storageSync
messageSync
wsSync
multiplexSync
addClearMethod
addWithOptionsMethod
makeObjectStorage
SIZE VERSION
timer STAGE makeTimer
createTimer
createTimeoutLoop
createPolled
createIntervalCounter
SIZE VERSION
upload STAGE createFileUploader
createDropzone
SIZE VERSION
workers STAGE createWorker
createWorkerPool
createSignaledWorker
SIZE VERSION

Network

connectivity STAGE createConnectivitySignal SIZE VERSION
cookies STAGE createServerCookie
createUserTheme
getCookiesString
SIZE VERSION
fetch STAGE createFetch SIZE VERSION
graphql STAGE createGraphQLClient SIZE VERSION
stream STAGE createStream
createAmplitudeStream
createMediaPermissionRequest
createAmplitudeFromStream
createScreen
SIZE VERSION
websocket STAGE makeWS
createWS
createWSState
makeReconnectingWS
createReconnectingWS
makeHeartbeatWS
SIZE VERSION

Control Flow

context STAGE createContextProvider
MultiProvider
SIZE VERSION
jsx-tokenizer STAGE createTokenizer
createToken
resolveTokens
isToken
SIZE VERSION
keyed STAGE keyArray
Key
Entries
SIZE VERSION
list STAGE listArray
List
SIZE VERSION
range STAGE repeat
mapRange
indexRange
Repeat
Range
IndexRange
SIZE VERSION
refs STAGE mergeRefs
resolveElements
resolveFirst
Ref
Refs
SIZE VERSION

Utilities

controlled-props STAGE createControlledProp SIZE VERSION
cursor STAGE createElementCursor
createBodyCursor
SIZE VERSION
date STAGE createDate
createDateNow
createTimeDifference
createTimeDifferenceFromNow
createTimeAgo
createCountdown
createCountdownFromNow
SIZE VERSION
event-bus STAGE createEventBus
createEmitter
createEventHub
createEventStack
SIZE VERSION
event-dispatcher STAGE createEventDispatcher SIZE VERSION
flux-store STAGE createFluxStore
createFluxFactory
createActions
createAction
SIZE VERSION
history STAGE createUndoHistory SIZE VERSION
i18n STAGE flatten
resolveTemplate
translator
scopedTranslator
chainedTranslator
SIZE VERSION
platform STAGE List of variables SIZE VERSION
promise STAGE promiseTimeout
raceTimeout
until
SIZE VERSION
props STAGE combineProps
filterProps
SIZE VERSION
scheduled STAGE debounce
throttle
scheduleIdle
leading
createScheduled
leadingAndTrailing
SIZE VERSION
script-loader STAGE createScriptLoader SIZE VERSION
share STAGE createSocialShare
createWebShare
SIZE VERSION

Reactivity

deep STAGE trackDeep
trackStore
captureStoreUpdates
SIZE VERSION
destructure STAGE destructure SIZE VERSION
immutable STAGE createImmutable SIZE VERSION
lifecycle STAGE createIsMounted
isHydrated
onConnect
SIZE VERSION
map STAGE ReactiveMap
ReactiveWeakMap
SIZE VERSION
memo STAGE createLatest
createLatestMany
createWritableMemo
createLazyMemo
createPureReaction
createMemoCache
createReducer
SIZE VERSION
mutable STAGE createMutable
modifyMutable
SIZE VERSION
resource STAGE createAggregated
createDeepSignal
makeAbortable
createAbortable
makeCache
makeRetrying
SIZE VERSION
rootless STAGE createSubRoot
createCallback
createDisposable
createSharedRoot
createRootPool
SIZE VERSION
set STAGE ReactiveSet
ReactiveWeakSet
SIZE VERSION
signal-builders STAGE List of builders SIZE VERSION
state-machine STAGE createMachine SIZE VERSION
static-store STAGE createStaticStore
createDerivedStaticStore
SIZE VERSION
trigger STAGE createTrigger
createTriggerCache
SIZE VERSION

UI Patterns

marker STAGE createMarker SIZE VERSION
masonry STAGE createMasonry SIZE VERSION
pagination STAGE createPagination
createInfiniteScroll
SIZE VERSION
virtual STAGE createVirutalList
VirtualList
SIZE VERSION

Animation

presence STAGE createPresence SIZE VERSION
raf STAGE createRAF
createMs
targetFPS
SIZE VERSION
spring STAGE createSpring
createDerivedSpring
SIZE VERSION
transition-group STAGE createSwitchTransition
createListTransition
SIZE VERSION
tween STAGE createTween SIZE VERSION