crdt_lf_flutter 0.2.1
crdt_lf_flutter: ^0.2.1 copied to clipboard
Flutter reactivity for crdt_lf — rebuild widgets when CRDT state changes, with selectors, a provider and a collaborative text field. Wraps provider, like flutter_bloc.
0.2.1 #
Date: 2026-07-21
Fixed #
CrdtTextFieldBuilder: an edit made next to an identical character no longer slides to the wrong side of that character. The text delta is now anchored to the post-edit caret.
0.2.0+1 #
Date: 2026-07-19
Documentation release: refreshes the CHANGELOG and docs published on pub.dev. No functional changes since 0.2.0.
0.2.0 #
Date: 2026-07-18
Added #
- Split the presence overlay into three composable, all-exported pieces for
maximum flexibility:
CrdtAwarenessCursorsBuilder— the transport/layout half of the overlay (positioning + local-pointer handling) with a per-cursorbuilder, so you can draw a completely custom marker (an avatar, a badge, …) per cursor.CrdtAwarenessCursorMarker— the standalone default marker (pointer arrow- name bubble) for a single cursor, positioning-agnostic.
CrdtAwarenessCursorsOverlay— the ready-made combination of the two.
CrdtAwarenessCursorStyleto style a marker: a plaincolorfor the common case, or a full style (color + label text style + marker sizes) when you need more. Set it per cursor viaCrdtAwarenessCursor.styleor for the whole overlay viaCrdtAwarenessCursorsOverlay.style(each peer keeps its own identity color).
0.1.0 #
Date: 2026-07-17
Added #
- Initial release of
crdt_lf_flutter(94), a Flutter reactivity layer forcrdt_lfbuilt on top ofprovider(minimal re-exported):CrdtProvider— dependency injection of aCRDTDocument, created and owned by the provider or caller-owned;CrdtBuilder—builder: (context, document), rebuilds on every document update.CrdtSelector<R>—selector: (context, document) => R, rebuilds only when the selected value changes.CrdtHandlerBuilder<H>—id+builder: (context, handler), rebuilds only when that handler changes (an applied change, a snapshot import, or — withnested: true— a descendant handler). Hands you the concrete typed handler to read itsvalue.CrdtHandlerSelector<H, R>—id+selector: (context, handler) => R, rebuilds only when the selected value changes.CrdtHandlerListener<H>— fires a side-effect callback on a handler change (BlocListener analogue).CrdtTextFieldBuilder— binds aTextEditingControllerto the text handler registered underid.CrdtTextCursorsOverlay+CrdtTextCursor— paints collaborators' carets, selection highlights and name tags over the text field.CrdtAwarenessCursorsOverlay+CrdtAwarenessCursor— overlays collaborators' mouse-style presence cursors (pointer arrow + name bubble) on any pane, and reports the local pointer for publishing.- Context helpers:
context.crdtDocument,context.watchCrdtDocument(),context.selectCrdtDocument(...), andcontext.crdtHandler<H>(id)for imperative access.