Skip to content

Releases: forus-labs/forui

Forui Hooks 0.16.0

05 Oct 10:24

Choose a tag to compare

  • Breaking Replace useFDateFieldController(animationDuration: ...) with useFDateFieldController(popoverMotion: ...).
  • Breaking Replace useFPopoverController(animationDuration: ...) with useFPopoverController(motion: ...).
  • Breaking Replace useFSelectController(animationDuration: ...) with useFSelectController(popoverMotion: ...).
  • Breaking Replace useFSMultiSelectController(animationDuration: ...) with useFSMultiSelectController(popoverMotion: ...).
  • Breaking Replace useFTabController(animationDuration: ...) with useFTabController(motion: ...).
  • Breaking Replace useFTimeFieldController(animationDuration: ...) with useFTimeFieldController(popoverMotion: ...).
  • Breaking Replace useFTooltipController(animationDuration: ...) with useFTooltipController(motion: ...).

Forui Assets 0.16.0

05 Oct 10:24

Choose a tag to compare

  • Update icons to Lucide 0.544.0.

Forui 0.16.0

05 Oct 10:23

Choose a tag to compare

Better Generated Documentation

We've improved the styles' generated documentation. They should be much easier to navigate and understand.

FAccordion

  • Add FAccordionMotion.

  • Breaking Move animation related fields from FAccordionStyle to FAccordionMoton.

FAutocomplete

  • Add FAutocomplete.onReset.

  • Add FAutocompletController(popoverMotion: ...).

  • Breaking Change FAutocompleteContentStyle.loadingIndicatorStyle to FAutocompleteContentStyle.progressStyle.

FCheckbox

  • Add FCheckboxMotion.

  • Breaking Move animation related fields from FCheckboxStyle to FCheckboxMotion.

  • Fix FCheckbox flickering when rapidly hovering.

FDateField

  • Add FDateField.onReset.

  • Breaking Replace FDateFieldController(animationDuration: ...) with FDateFieldController(popoverMotion: ...).

FDialog

  • Add FDialogRouteStyle.

  • Add FDialogRouteMotion.

  • Add showFDialog(routeStyle: ...).

  • Add FDialogMotion.

  • Breaking Move barrier related fields from FDialogStyle to FDialogRouteStyle.

  • Breaking Move animation related fields from FDialogStyle to FDialogMotion.

  • Fix FDialog.body not allowing ScrollViews.

FFormField

  • Breaking Add FFormField(onReset: ...).
  • Breaking Add FFormFieldProperties(onReset: ...).

FHeader

  • Fix FHeader(...) not vertically centering title.
  • Fix FHeader(...) not respecting RTL locales.
  • Fix FHeader.nested(...) not vertically centering title.
  • Fix FHeader.nested(...) not respecting RTL locales.

FItem

  • Fix GestureDetector being absorbed in focused FItems.

FPopover & FPopoverMenu

  • Add FPopoverMotion.

  • Change default animations to be more subtle.

  • Breaking Replace FPopoverController(animationDuration: ...) with FPopoverController(motion: ...).

  • Breaking Change FPopoverMenu.hideRegion's default value from FHidePopoverRegion.anywhere to FHidePopoverRegion.excludeChild.

FProgress

We've reworked FProgress to be more customizable and easier to use.

  • Add FCircularProgress which represents indeterminate circular progress.

  • Add FCircularProgressStyle.

  • Add FInheritedCircularProgressStyle.

  • Add FDeterminateProgress which represents determinate linear progress.

  • Add FDeterminateProgressStyle.

  • Breaking Change FProgress to represent indeterminate linear progress.

  • Breaking Remove FProgressStyles.

FRadio

  • Add FRadioMotion.

  • Breaking Move animation related fields from FRadioStyle to FRadioMotion.

FSelect & FMultiSelect

  • Add FSelect.onReset.

  • Add FMultiSelect.onReset.

  • Breaking Rename FSelectSearchStyle.loadingIndicatorStyle to FSelectSearchStyle.progressStyle.

  • Breaking Replace FSelectController(animationDuration: ...) with FSelectController(popoverMotion: ...).

  • Breaking Replace FMultiSelectController(animationDuration: ...) with FMultiSelectController(popoverMotion: ...).

FSelectGroup

  • Add FSelectGroup.onReset.

FSelectMenuTile

  • Add FSelectMenuTile.onReset.

FSelectTileGroup

  • Add FSelectTileGroup.onReset.

FSheet

  • Add FModalSheetStyle.

  • Add FPersistentSheetStyle.

  • Add FSheetMotion.

  • Add FModalSheetMotion.

  • Add FPersistentSheetMotion.

  • Add FModalSheet(onClosing: ...).

  • Add FPersistentSheet(onClosing: ...).

  • Breaking Split FSheetStyle into FModalSheetStyle and FPersistentSheetStyle.

  • Breaking Move animation related fields from FSheetStyle to FSheetMotion.

FSidebar

  • Add FSidebarItemMotion.

  • Breaking Move animation related fields from FSiderbarItemStyle to FSiderbarItemMotion.

FSlider

  • Add FSlider.onReset.
  • Add FSliderStyle.tooltipMotion.

FTab

  • Add FTabMotion.
  • Breaking Replace FTabController(animationDuration: ...) with FTabController(motion: ...).

FTappable

  • Add FTappableMotion.

  • Breaking Move animation related fields from FTappableStyle to FTappableMotion.

FTextField & FTextFormField

We've added a password visibility toggle to password fields.

  • Add password visibility toggle to FTextField.password(...).

  • Add password visibility toggle to FTextFormField.password(...).

  • Add FTextFormField.onReset.

  • Change FTextField.email(label: ...) to be localized.

  • Change FTextField.password(label: ...) to be localized.

  • Change FTextFormField.email(label: ...) to be localized.

  • Change FTextFormField.password(label: ...) to be localized.

FThemeData

We've added support for animated theme transitions. This should make transitions between themes gradual instead of abrupt.

  • Add FThemeData.lerp(...).

  • Change FThemeData.copyWith(...) to accept style builder functions.

FTimeField

  • Add FTimeField.onReset.

  • Breaking Replace FTimeFieldController(animationDuration: ...) with FTimeFieldController(popoverMotion: ...).

FToast

  • Add FToastMotion.

  • Add FToasterMotion.

  • Change animation to be more subtle.

  • Breaking Move animation related fields from FToastStyle to FToastMotion.

  • Breaking Move animation related fields from FToasterStyle to FToasterMotion.

  • Remove no-op FToast.onDismiss parameter that was accidentally included.

FTooltip

  • Add FTooltipMotion.

  • Breaking Replace FTooltipController(animationDuration: ...) with FTooltipController(motion: ...).

FWidgetStateMap

  • Add FWidgetStateMap.lerpBoxDecoration(...).
  • Add FWidgetStateMap.lerpColor(...).
  • Add FWidgetStateMap.lerpIconThemeData(...).
  • Add FWidgetStateMap.lerpTextStyle(...).
  • Add FWidgetStateMap.lerpWhere(...).

FToaster

  • Add FToaster.of(...).

  • Make FToasterState.show(context: ...) optional.

Others

  • Add FImmutableTween.

  • Add FLabel.expands.

  • Fix FTextField.expands causing a render error.

Forui Hooks 0.15.0

20 Aug 02:31

Choose a tag to compare

  • Add useFAutocompleteController.

  • Add useFMultiSelectController.

  • Breaking Change useFMultiValueNotifier({Set<T> values}) to useFMultiValueNotifier({Set<T> value}).

  • Breaking Change useFSelectGroupController({Set<T> values}) to useFSelectGroupController({Set<T> value}).

  • Breaking Change useFSelectTileGroupController({Set<T> values}) to useFSelectTileGroupController({Set<T> value}).

  • Breaking Change useFSelectMenuTileController({Set<T> values}) to useFSelectMenuTileController({Set<T> value}).

Forui Assets 0.15.0

20 Aug 02:28

Choose a tag to compare

  • Update icons to Lucide 0.540.0.

Forui 0.15.1

20 Aug 09:15
bfc39bb

Choose a tag to compare

  • Fix CLI generating incorrect icon mappings.
  • Fix CLI generating theme that references private constant.

Forui 0.15.0

20 Aug 02:30

Choose a tag to compare

Cursors

We've changed the default cursor for many widgets from MouseCursor.click to MouseCursor.defer. This is in line with
native desktop behavior and W3C User Interface guidelines.

FThemeData

Hover colors now use lightness-based adjustments rather than alpha blending, providing better visual feedback across all
color variants, especially FColors.secondary.

We've also added support for theme extensions. This allows you to add custom application-specific properties to the theme
without having to manage them around separately.

  • Add FThemeData.extension().

  • Add FThemeData.extensions.

  • Remove foreground parameter from FColors.hover(...).

FAccordion

  • Add FAccordionItem.onHoverChange

  • Add FAccordionItem.onStateChange

  • Breaking Make FAccordionController.controllers private.

  • Breaking Change FAccordionItem.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

  • Breaking Remove FAccordionController.radio(...) - use FAccrdionController(max: 1) instead.

  • Breaking Remove FAccordionController.validate(...).

FAutocomplete (new)

  • Add FAutocomplete.
  • Add FAutocompleteController.
  • Add FAutocompleteStyle.
  • Add FAutocompleteSection.
  • Add FAutocompleteItem.

FBottomNavigationBar

  • Breaking Change FBottomNavigationBarItem.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FButton

  • Breaking Change FButton.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FBreadcrumb

  • Add onTapHide to FBreadcrumb.collapsed(...).

  • Breaking Change FBreadcrumb.hideOnTapOutside to FBreadcrumb.hideRegion.

FDateField

  • Add onTapHide to FDateField.calendar(...).

  • Add FDateFieldCalendarProperties.onTapHide.

  • Breaking Change FDateField.hideOnTapOutside to FDateField.hideRegion.

  • Breaking Change FDateField.builder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldBuilder<FDateFieldStyle>.

  • Breaking Change FDateField.prefixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FDateFieldStyle>.

  • Breaking Change FDateField.suffixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FDateFieldStyle>.

FHeader

  • Breaking Change FHeaderAction.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FItem

  • Breaking Change FItem.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FMultiSelect (new)

  • Add FMultiSelect.
  • Add FMultiSelectController.
  • Add FMultiSelectStyle.
  • Add FMultiSelectTag.

FPopover & FPopoverMenu

  • Add FPopover.onTapHide.

  • Add FPopoverMenu.onTapHide.

  • Breaking Change FPopover.hideOnTapOutside to FPopover.hideRegion.

  • Breaking Change FPopoverMenu.hideOnTapOutside to FPopoverMenu.hideRegion.

  • Breaking Change FHidePopoverRegion to FPopoverHideRegion.

  • Breaking Change FHidePopoverRegion.excludeTarget to FHidePopoverRegion.excludeChild.

FSelect

We've done an overhaul of FSelect to make it more consistent and easier to use.

  • Add FSelect.contentEmptyBuilder.

  • Add FSelectItem.raw(...)

  • Change FSelect's vertical padding for default loading and empty indicators to be the same height.

  • Breaking Rename FSelect.divider to FSelect.contentDivider.

  • Breaking Replace FSelect.hideOnTapOutside with FSelect.hideRegion.

  • Breaking Change FSelect.builder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldBuilder<FTextFieldStyle>.

  • Breaking Change FSelect.prefixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> prefixBuilder.

  • Breaking Change FSelect.suffixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> suffixBuilder.

  • Breaking Change FSelectSearchFieldProperties.builder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldBuilder<FTextFieldStyle>.

  • Breaking Change FSelectSearchFieldProperties.prefixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> prefixBuilder.

  • Breaking Change FSelectSearchFieldProperties.suffixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> suffixBuilder.

  • Change FSelectSearchContentBuilder from List<FSelectItemMixin> Function(BuildContext context, FSelectSearchData<T> data);
    to List<FSelectItemMixin> Function(BuildContext context, String query, Iterable<T> values).

  • Breaking Remove FSelectSearchFilter<T> typedef - use the literal function signature instead.

  • Breaking Remove FSelectSearchData<T> typedef.

  • Breaking Replace FSelect.emptyBuilder with FSelect.contentEmptyBuilder.

  • Breaking Replace FSelect.searchLoadingBuilder with FSelect.contentLoadingBuilder.

  • Breaking Replace FSelect.searchErrorBuilder with FSelect.contentErrorBuilder.

  • Breaking Replace FSelect.defaultEmptyBuilder with FSelect.defaultContentEmptyBuilder.

  • Breaking Replace FSelect.defaultSearchLoadingBuilder with FSelect.defaultContentLoadingBuilder.

  • Breaking Replace FSelect.fromMap(...) with FSelectSection.new(...).

  • Breaking Replace FSelect(...) with FSelectSection.rich(...).

  • Breaking Replace FSelect.searchFromMap(...) with FSelectSection.search(...).

  • Breaking Replace FSelect.search(...) with FSelectSection.searchBuilder(...).

  • Breaking Replace FSelectSection.new(...) with FSelectSection.rich(...)

  • Breaking Replace FSelectSection.fromMap(...) with FSelectSection.new(...).

  • Breaking Change FSelectItem(...)'s parameters to no longer accept string parameter.

  • Breaking Change FSelectItem.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

  • Breaking Replace FSelectItemStyle with underlying FItemStyle.

  • Fix first focused item not unfocusing when other items are pressed on touch devices.

FSelectMenuTile

  • Add FSelectMenuTile.onTapHide.

  • Breaking Change FSelectMenuTile.hideOnTapOutside to FSelectMenuTile.hideRegion.

FSelectTileGroup

  • Breaking Change FSelectTile.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FSidebar

  • Breaking Change FSidebarGroup.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.
  • Breaking Change FSidebarItem.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FTappable

  • Breaking Change FTappable.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FTextField & FTextFormField

  • Add FFieldBuilder.

  • Add `FFieldIconBuilder.

  • Add FTextField.selectAllOnFocus.

  • Add FTextFormField.selectAllOnFocus.

  • Breaking Change FTextField.builder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldBuilder<FTextFieldStyle>.

  • Breaking Change FTextField.prefixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> prefixBuilder.

  • Breaking Change FTextField.suffixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> suffixBuilder.

  • Breaking Change FTextFormField.builder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldBuilder<FTextFieldStyle>.

  • Breaking Change FTextFormField.prefixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> prefixBuilder.

  • Breaking Change FTextFormField.suffixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FTextFieldStyle> suffixBuilder.

FTile

  • Breaking Change FTile.onStateChange from ValueChanged<Set<WidgetState>> to ValueChanged<FWidgetStatesDelta>.

FTimeField

  • Add onTapHide to FTimeField.picker(...).

  • Breaking Change FTimeField.hideOnTapOutside to FTimeField.hideRegion.

  • Breaking Change FTimeField.builder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldBuilder<FDateFieldStyle>.

  • Breaking Change FTimeField.prefixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FDateFieldStyle>.

  • Breaking Change FTimeField.suffixBuilder from ValueWidgetBuilder<(FTextFieldStyle, Set<WidgetState>)> to
    FFieldIconBuilder<FDateFieldStyle>.

  • Fix regression in Flutter 3.35.2 by reducing FTextFieldStyle.contentPadding from EdgeInsets.symmetric(horizontal: 14, vertical: 10)
    to EdgeInsets.symmetric(horizontal: 10, vertical: 10).

Others

  • Add FSelectMenuTile.onTapHide.

  • Add FTypeaheadController.

  • Add FWidgetStatesDelta.

  • Change FMultiValueNotifier to be non-abstract.

  • Breaking Change FMultiValueNotifier.radio({T? value}) to FMultiValueNotifier.radio([T? value]).

  • Breaking Change ValueWidgetBuilder<FToasterEntry>? suffixBuilder to Widget Function(BuildContext, FToasterEntry)? suffixBuilder
    in showFToast(...).

  • Fix FProgress.circularIcon() using incorrect c...

Read more

Forui 0.14.1

14 Jul 07:41
46c38c0

Choose a tag to compare

Fix FToaster sometimes crashing due to an incorrect update of a late final variable.

Forui Hooks 0.14.0

12 Jul 14:08

Choose a tag to compare

Bump Forui dependency from 0.13.0 to 0.14.0.

Forui Assets 0.14.0

12 Jul 14:08

Choose a tag to compare

Bump to remain consistent with the forui package.