Releases: solidjs-community/solid-primitives
Release list
@solid-primitives/async@0.0.101-next.0
@solid-primitives/virtual@1.0.0-next.0
Major Changes
-
49acc0f: Migrate to Solid.js v2.0 (beta.14)
Breaking Changes
Peer dependency:
solid-js@^2.0.0-beta.14and@solidjs/web@^2.0.0-beta.14are now required.@solid-primitives/virtualcreateVirtualList: returns[Accessor<VirtualState>, onScroll]— the first element is now an Accessor that must be called to readcontainerHeight,viewerTop, andvisibleItems.VirtualListchildren: the child render function now receives(item: Accessor<T>, index: Accessor<number>)—itemis an Accessor and must be called asitem()to get the value. This matches Solid 2.0's<For>component behavior.{ ownedWrite: true }: the internal scroll offset signal usesownedWriteto allow writes from theonScrollevent handler outside the owning reactive scope.
Patch Changes
@solid-primitives/video@1.0.0-next.0
Major Changes
-
98a57ab: New package:
@solid-primitives/videoLayered primitives for managing HTML video playback, built for Solid 2.0 (beta.14).
makeVideoNon-reactive base. Creates an
HTMLVideoElementwith optional event handlers and initial configuration (autoPlay,loop,muted,preload). Returns a[player, cleanup]tuple. No Solid owner required.makeVideoPlayerWraps
makeVideowith imperative controls:play,pause,seek,setVolume,setMuted,setPlaybackRate, andsetLoop.createVideoReactive primitive covering essential playback state:
playing/setPlaying,currentTime/seek,ended,seeking,error(MediaError | null), andduration(throwsNotReadyErroruntil metadata loads — integrates with<Loading>). Accepts a static or reactiveVideoSourceand optionalVideoOptions.createVideoPlayerExtends
createVideowith the full control surface:volume/setVolume,muted/setMuted,playbackRate/setPlaybackRate,loop/setLoop,buffered,readyState,videoWidth, andvideoHeight. AcceptsVideoControlsOptionswhich addsvolumeandplaybackRateinitial values toVideoOptions.Design notes
createVideoandcreateVideoPlayerare composable —createVideoPlayercallscreateVideointernally and layers additionalcreateEventListenerMapbindings on the same player element. Choose the primitive that matches your needs; the non-reactivemake*layer remains available when no Solid owner is present.
Patch Changes
@solid-primitives/upload@1.0.0-next.0
Major Changes
-
94ff872: Migrate to Solid.js 2.0 (beta.14)
- Updated peer dependencies to
solid-js@^2.0.0-beta.14and@solidjs/web@^2.0.0-beta.14 isServeris now imported from@solidjs/web(moved out ofsolid-js/web)createDropzone: now returns asetRefref callback; event listeners are attached when the ref is assigned and cleaned up viaonCleanupregistered throughrunWithOwnerback into the reactive owner scopefileUploader: replaced theuse:fileUploaderdirective (removed in Solid 2.0) with a ref callback factory — useref={fileUploader(opts)}instead ofuse:fileUploader={opts}
- Updated peer dependencies to
Patch Changes
- Updated dependencies [4a5bf32]
- @solid-primitives/event-listener@3.0.0-next.0
@solid-primitives/trigger@3.0.0-next.0
Major Changes
-
254a964: Migrate to Solid.js v2.0 (beta.14)
Breaking Changes
Peer dependency:
solid-js@^2.0.0-beta.14and@solidjs/web@^2.0.0-beta.14are now required.@solid-primitives/triggerisServernow imported from@solidjs/web(notsolid-js/web)getListenerreplaced bygetObserver(renamed in Solid 2.0)- Signal options updated:
internal: trueremoved,ownedWrite: trueadded — allowsdirty()anddirtyAll()to be called from within reactive scopes - Added
test/server.test.tsverifying SSR no-op behaviour forcreateTriggerandcreateTriggerCache
Patch Changes
@solid-primitives/styles@1.0.0-next.0
Major Changes
-
4777730: Migrate to Solid.js v2.0 (beta.14)
Breaking Changes
Peer dependency:
solid-js@^2.0.0-beta.14and@solidjs/web@^2.0.0-beta.14are now required.@solid-primitives/stylesisServernow imported from@solidjs/web(notsolid-js/web)- Requires Solid.js v2 — signal writes from browser callbacks (e.g. ResizeObserver) are microtask-batched; reads reflect the new value immediately but effects are deferred until the next microtask or
flush()
Patch Changes
@solid-primitives/signal-builders@1.0.0-next.0
Major Changes
-
1d6c9d3: Migrate to Solid.js v2.0 (beta.14)
Breaking Changes
Peer dependency:
solid-js@^2.0.0-beta.14is now required.- The
onhelper fromsolid-js(used internally bycapitalize) is removed in Solid 2.0;capitalizenow uses a plaincreateMemowhich is equivalent getandmergenow correctly return reactiveAccessor<T>values viacreateMemo— previously they returned plain (non-reactive) values despite their type signatures claiming otherwise; any code that was working around this bug by calling the result as a plain value will break
- The
Patch Changes
@solid-primitives/set@1.0.0-next.0
Major Changes
-
a7f09be: Migrate to Solid.js v2.0 (beta.14)
Breaking Changes
Peer dependencies:
solid-js@^2.0.0-beta.14and@solidjs/web@^2.0.0-beta.14are now required.New Exports
union(a, b)— reactiveAccessor<ReadonlySet<T>>of all elements in either set.intersection(a, b)— reactiveAccessor<ReadonlySet<T>>of elements present in both sets.difference(a, b)— reactiveAccessor<ReadonlySet<T>>of elements inanot inb.symmetricDifference(a, b)— reactiveAccessor<ReadonlySet<T>>of elements in either set but not both.readonlySet(set)— casts aReactiveSettoReadonlySet(type-only, zero runtime cost).
Patch Changes
- Updated dependencies [254a964]
- @solid-primitives/trigger@3.0.0-next.0
@solid-primitives/sensors@1.0.0-next.0
Major Changes
-
8b5c942: New package. Provides sensor primitives following the Solid Primitives
make*/create*convention (make*= raw listener, returns cleanup, no Solid lifecycle;create*= reactive accessor or store, integrates withonCleanup).makeSensor(SensorClass, onChange, options?)— generic raw Generic Sensor API listener, returns cleanupcreateSensor(SensorClass, options?)— reactive accessor for any Generic Sensor API sensormakeAccelerometer(onChange, options?)— rawdevicemotionevent listener, returns cleanupcreateAccelerometer(includeGravity?, interval?)— reactive accessor backed bydevicemotioneventsmakeGyroscope(onChange, options?)— rawdeviceorientationevent listener, returns cleanupcreateGyroscope(interval?)— reactive store{ alpha, beta, gamma }backed bydeviceorientationeventsmakeCompass(onChange, options?)— raw compass/orientation event listener, returns cleanupcreateCompass(options?)— reactive store for compass heading/orientationmakeBattery(onChange)— raw Battery Status API listener, returns cleanupcreateBattery()— reactive accessor for battery status{ level, charging, … }