<itemvalue="Whether this selection has disambiguated its base and extent. On some platforms, the base and extent are not disambiguated until the first time the user adjusts the selection. At that point, either the start or the end of the selection becomes the base and the other one becomes the extent and is adjusted."/>
<itemvalue="If the text range is collapsed and has more than one visual location (e.g., occurs at a line break), which of the two locations to use when painting the caret."/>
<itemvalue="The offset at which the selection terminates. When the user uses the arrow keys to adjust the selection, this is the value that changes. Similarly, if the current theme paints a caret on one side of the selection, this is the location at which to paint the caret. Might be larger than, smaller than, or equal to base."/>
<itemvalue="The offset at which the selection originates. Might be larger than, smaller than, or equal to extent."/>
<itemvalue="The list of providers that this provider potentially depends on. This list must contains the classesfunctions annotated with `@riverpod`, not the generated providers themselves. Specifying this list is strictly equivalent to saying "This provider may be scoped". If a provider is scoped, it should specify [dependencies]. If it is never scoped, it should not specify [dependencies]."/>
<itemvalue="} {@template riverpod.listen} Listen to a provider and call [listener] whenever its value changes. Listeners will automatically be removed when the provider rebuilds (such as when a provider listened with [Ref.watch] changes). Returns an object that allows cancelling the subscription early."/>
<itemvalue="- [asReload] (false by default) can be optionally passed to tell Riverpod to clear the state before refreshing it. This is only useful for asynchronous providers, as by default, [AsyncValue] keeps a reference on state during loading states. Using [asReload] will disable this behavior and count as a "hard refresh"."/>
<itemvalue="As opposed to [refresh], the rebuild is not immediate and is instead delayed by an undefined amount of time. Typically, the rebuild happens at the next tick of the event loop. But if a provider is not listened to, the rebuild may be delayed until the provider is listened to again."/>
<itemvalue="If you do not care about the return value of [refresh], use [invalidate] instead. Doing so has the benefit of: - making the invalidation logic more resilient by avoiding multiple refreshes at once. - possibly avoids recomputing a provider if it isn't needed immediately. This method is useful for features like "pull to refresh" or "retry on error", to restart a specific provider. {@endtemplate}"/>
<itemvalue="{@template riverpod.refresh} Forces a provider to re-evaluate its state immediately, and return the created value. Writing: ```dart final newValue = ref.refresh(provider); ``` is strictly identical to doing: ```dart ref.invalidate(provider); final newValue = ref.read(provider); ```"/>
<itemvalue="{@template riverpod.invalidate} Invalidates the state of the provider, destroying the state immediately and causing the provider to rebuild at some point in the future. As opposed to [refresh], the rebuild is not immediate and is instead delayed by an undefined amount of time. Typically, the rebuild happens at the next tick of the event loop. But if a provider is not listened to, the rebuild may be delayed until the provider is listened to again."/>
<itemvalue="Invalidates the state of the provider, causing it to refresh. As opposed to [refresh], the refresh is not immediate and is instead delayed to the next read or next frame. Calling [invalidate] multiple times will refresh the provider only once. Calling [invalidate] will cause the provider to be disposed immediately. - [asReload] (false by default) can be optionally passed to tell Riverpod to clear the state before refreshing it. This is only useful for asynchronous providers, as by default, [AsyncValue] keeps a reference on state during loading states. Using [asReload] will disable this behavior and count as a "hard refresh". If used on a provider which is not initialized, this method will have no effect."/>
<itemvalue="Listens to changes on the value exposed by this provider. The listener will be called immediately after the provider completes building. As opposed to [Ref.listen], the listener will be called even if [updateShouldNotify] returns false, meaning that the previous and new value can potentially be identical."/>
<itemvalue="[fireImmediately] (false by default) can be optionally passed to tell Riverpod to immediately call the listener with the current value."/>
<itemvalue="- [weak] (false by default) can be optionally passed to have the listener not cause the provider to be initialized and kept alive. This enables listening to changes on a provider, without causing it to perform any work if it currently isn't used."/>
<itemvalue="{@template riverpod.listen} Listen to a provider and call [listener] whenever its value changes. Listeners will automatically be removed when the provider rebuilds (such as when a provider listened with [Ref.watch] changes). Returns an object that allows cancelling the subscription early. [fireImmediately] (false by default) can be optionally passed to tell Riverpod to immediately call the listener with the current value. [onError] can be specified to listen to uncaught errors in the provider.\ Note:\ [onError] will _not_ be triggered if the provider catches the exception and emit a valid value out of it. As such, if a [FutureProvider][StreamProvider] fail, [onError] will not be called. Instead the listener will receive an [AsyncError]. - [weak] (false by default) can be optionally passed to have the listener not cause the provider to be initialized and kept alive. This enables listening to changes on a provider, without causing it to perform any work if it currently isn't used. {@endtemplate}"/>
<itemvalue="Listens to changes on the value exposed by this provider. The listener will be called immediately after the provider completes building. As opposed to [Ref.listen], the listener will be called even if [updateShouldNotify] returns false, meaning that the previous and new value can potentially be identical. Returns a function which can be called to remove the listener."/>
<itemvalue="The size that this [CustomPaint] should aim for, given the layout constraints, if there is no child. Defaults to [Size.zero]. If there's a child, this is ignored, and the size of the child is used instead."/>
<itemvalue="Add an axis-aligned scale to the current transform, scaling by the first argument in the horizontal direction and the second in the vertical direction. If [sy] is unspecified, [sx] will be used for the scale in both directions."/>
<itemvalue="Draws the subset of the given image described by the `src` argument into the canvas in the axis-aligned rectangle given by the `dst` argument. This might sample from outside the `src` rect by up to half the width of an applied filter. Multiple calls to this method with different arguments (from the same image) can be batched into a single call to [drawAtlas] to improve performance."/>
<itemvalue="Multiply the color components of the source and destination images. This can only result in the same or darker colors (multiplying by white, 1.0, results in no change; multiplying by black, 0.0, results in black). When compositing two opaque images, this has similar effect to overlapping two transparencies on a projector. For a variant that also multiplies the alpha channel, consider [multiply]."/>
<itemvalue="Whether the painting is complex enough to benefit from caching. The compositor contains a raster cache that holds bitmaps of layers in order to avoid the cost of repeatedly rendering those layers on each frame. If this flag is not set, then the compositor will apply its own heuristics to decide whether the layer containing this widget is complex enough to benefit from caching. This flag can't be set to true if both [painter] and [foregroundPainter] are null because this flag will be ignored in such case."/>