Releases: wintercounter/gridla
Release list
gridla@0.2.1
Patch Changes
62b69a0Thanks @wintercounter! - Resize handle geometry uses the--gridla-handle-size,--gridla-handle-inset, and--gridla-handle-cursor[-<edge>]custom properties, so stylesheets size and restyle the built-in handles without!important. The sharedresizeHandleStyle,rectStyle, andstyleToTexthelpers are exported fromgridla/interactionand back every adapter. Newgridla/base.cssstarter stylesheet, and a styling guide in the docs.
gridla@0.2.0
Minor Changes
-
1c315c0Thanks @wintercounter! - Framework adapters. Every adapter is a subpath of thegridlapackage, built on the new framework-neutral interaction layer, with the framework as an optional peer dependency and the same names, props, anddata-gridla-*attributes asgridla/react.gridla/interaction: the layergridla/reactis now built on (createGridController,createPointerGesturewithbindPointer/bindKeyboard,createTransferScope,observeSize,createGridStore,renderLayout,GRID_DATA, and the interaction types). The React API is unchanged.gridla/dom:mountGrid(element, options)returns aGridHandle; vanilla, no framework.gridla/elements:<gridla-canvas>,<gridla-item>,<gridla-preview>,<gridla-transfer-scope>custom elements overgridla/dom, registered withdefineGridlaElements().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 asvelteexport condition.gridla/solid: Solid components and primitives, hyperscript on the client andssrElementon 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/reactruns onpreact/compatunchanged; the alias setup is documented and verified by the package contract suite.
Patch Changes
-
1f52e0dThanks @wintercounter! -applyGapnow 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 passingrecognizedGaps. Previously only0, 1, 6, 12, 18were recognized and a 16px layout kept its vertical spacing. -
1fd83e1Thanks @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. -
46b3420Thanks @wintercounter! - React adapter: while a dragged item is previewed in another canvas of aGridTransferScope, the source canvas no longer keeps its own move preview. Siblings settle back to their resting positions andGridPreviewOutlinedisappears there until the pointer returns. -
18956ffThanks @wintercounter! - React adapter:GridTransferScopeno 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.
gridla 0.1.0
Minor Changes
-
e288780Thanks @wintercounter! - Initial public release: framework-neutral core (moveItem,resizeItem,
placeItem,transferItem,projectLayout,applyGap,flattenLayout,
compactLayout,applyPreset) and the React adapter (GridProvider,
GridCanvas,GridItem,GridPreviewOutline,GridTransferScope, hooks).Behavior: solvers honor fixed-size axes of bystanders, rejected results return the input layout, overlapping pointer placements are reported as rejected, and chain projection groups items into lanes so rows stay aligned under any canvas size.