You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1c315c0 Thanks @wintercounter! - Framework adapters. Every adapter is a subpath of the gridla package, built on the new framework-neutral interaction layer, with the framework as an optional peer dependency and the same names, props, and data-gridla-* attributes as gridla/react.
gridla/interaction: the layer gridla/react is now built on (createGridController, createPointerGesture with bindPointer/bindKeyboard, createTransferScope, observeSize, createGridStore, renderLayout, GRID_DATA, and the interaction types). The React API is unchanged.
gridla/dom: mountGrid(element, options) returns a GridHandle; vanilla, no framework.
gridla/elements: <gridla-canvas>, <gridla-item>, <gridla-preview>, <gridla-transfer-scope> custom elements over gridla/dom, registered with defineGridlaElements().
gridla/vue: Vue 3 components (v-model:layout) and composables.
gridla/svelte: Svelte 5 components (bind:layout) and rune-style readers; shipped as Svelte source with a svelte export condition.
gridla/solid: Solid components and primitives, hyperscript on the client and ssrElement on the server.
gridla/angular: standalone components and directives with signals ([(layout)]), compiled with ng-packagr.
gridla/qwik: resumable components with $-suffixed callbacks; the controller is created on the client.
Preact: gridla/react runs on preact/compat unchanged; the alias setup is documented and verified by the package contract suite.
Patch Changes
1f52e0d Thanks @wintercounter! - applyGap now reads the existing spacing from the layout: any neighbor distance up to 64px counts as a gap, so layouts authored with 16px (or any other scale) re-space on both axes without passing recognizedGaps. Previously only 0, 1, 6, 12, 18 were recognized and a 16px layout kept its vertical spacing.
1fd83e1 Thanks @wintercounter! - Controlled providers now render an accepted change immediately instead of waiting for the owner to pass the layout back. Passing the emitted layout back is a no-op; passing a different layout still overrides. Frameworks that apply props on a scheduled change-detection tick (Angular, Vue, Svelte, Solid, Qwik) no longer lose a second gesture that lands inside that tick.
46b3420 Thanks @wintercounter! - React adapter: while a dragged item is previewed in another canvas of a GridTransferScope, the source canvas no longer keeps its own move preview. Siblings settle back to their resting positions and GridPreviewOutline disappears there until the pointer returns.
18956ff Thanks @wintercounter! - React adapter: GridTransferScope no longer flips between a target and the drag source when the target's drop preview pushes the source canvas under the pointer. Hit-testing now uses each canvas' resting position, so dropping into the gap between two groups keeps the outer canvas as the target instead of oscillating.