Skip to content

Forui 0.23.0

Choose a tag to compare

@Pante Pante released this 19 Jun 08:40
· 1 commit to main since this release
cd837f6

This update introduces the long-awaited context menu, a revamped calendar, and support for multiple typefaces.

FCalendar (New)

FCalendar was one of the first complex widgets we implemented back in 2024, and it is showing its age. We have
re-implemented FCalendar with more selection modes, a controller for programmatic navigation, and updated styling
and an API similar to other widgets.

  • Add FDateSelectionControl.

  • Add FDateSelectionController.

  • Breaking Re-implement FCalendar.

  • Breaking Change FCalendarControl to handle programmatic navigation. See FDateSelectionControl for handling date selection.

  • Breaking Change FCalendarController to handle programmatic navigation. See FDateSelectionController for handling date selection.

FCheckbox

  • Add support for styling the label in the focused state.

FCollapsible

  • Add FCollapsible.axis to collapse the child horizontally.

FContextMenu (New)

  • Add FContextMenu.

FDateField

  • Add split grid and wheel calendar modes via FDateFieldGridSplitCalendarProperties and FDateFieldWheelCalendarProperties.

  • Add FDateField.selectionControl to control the selected date.

  • Add FDateField.validator as a top-level parameter.

  • Breaking Change FDateFieldCalendarProperties to a sealed class. Use FDateFieldGridCalendarProperties for the
    default grid calendar.

  • Breaking Move the calendar's selectable range, today's date, dayBuilder, autoHide, popoverBuilder, and
    popover positioning onto the calendar properties.

  • Breaking Change FDateFieldPopoverBuilder's second argument from FDateFieldController to FCalendarController.

  • Breaking Remove FDateFieldController and FDateFieldControl. Use FDateField.selectionControl
    (FDateSelectionControl) and FDateField.validator instead.

  • Breaking Remove FDateField.calendar(initialType: ...).

FFormField

  • Add FFormFieldVariant.focused.
  • Add FFormFieldErrorVariant.focused.

FItem & FTile

  • Fix nested FTappable-based widgets (e.g. FButton in a prefix or suffix) not receiving their own taps when the
    enclosing tile is inside an FItemGroup or FTileGroup.

FLineCalendar

  • Add FLineCalendar.selectable to determine whether a date can be selected.

  • Breaking Change FLineCalendarControl.managed(controller: ...) to accept FDateSelectionController<DateTime?>
    instead of FCalendarController<DateTime?>.

  • Breaking Remove FLineCalendarControl.managed(selectable: ...). Use FLineCalendar.selectable instead.

  • Breaking Remove FLineCalendarControl.lifted(selectable: ...). Use FLineCalendar.selectable instead.

FLocalizations

  • Breaking Remove FLocalizations.fullDate. Use DateFormat.yMMMMd instead.
  • Breaking Remove FLocalizations.year. Use DateFormat.y instead.
  • Breaking Remove FLocalizations.yearMonth. Use DateFormat.yMMMM instead.
  • Breaking Remove FLocalizations.abbreviatedMonth. Use DateFormat.MMM instead.
  • Breaking Remove FLocalizations.day. Use DateFormat.d instead.
  • Breaking Remove FLocalizations.shortDate. Use DateFormat.yMd instead.

FPointPortal (New)

  • Add FPointPortal.

FRadio

  • Add support for styling the label in the focused state.

FResizable

  • Add FResizableRegion.flex(...) for proportionally-sized regions.

  • Breaking Change FResizableRegion to a sealed class with FResizableRegion.fixed(...) and
    FResizableRegion.flex(...).

  • Breaking Rename FResizableRegion(...) to FResizableRegion.fixed(...).

  • Breaking Rename FResizableRegion.region(...) to FResizableRegion.fixed(...).

  • Breaking Rename FResizableRegion(initialExtent: ...) to FResizableRegion.fixed(extent: ...).

FSelect & FMultiSelect

  • Add support for styling the label in the focused state.

  • Fix FMultiSelect retaining the highlight on the first item instead of the last tapped item.

FSelectMenuTile

  • Add support for styling the label in the focused state.

FSwitch

  • Add support for styling the label in the focused state.

  • Fix FSwitch throwing when a focusNode is provided.

  • Fix FSwitch registering two focus nodes, causing it to be a duplicate stop when tabbing through.

FTappable & FTappableGroup

  • Fix FTappable throwing a null check error when unmounted mid-gesture inside an FTappableGroup.

FTypography & FTypeface

We've added support for multiple typefaces by introducing a FTypeface that contains a text scale and changing
FTypography to contain a display and body typeface.

  • Add FTypeface, a single typeface's text scale.

  • Add FTypeface.fontFamilyFallback.

  • Add FTypography.body and FTypography.display typefaces.

  • Breaking Split FTypography into two FTypefaces. Replace typography.<token> with typography.body.<token>
    (e.g. typography.sm becomes typography.body.sm).

  • Breaking Rename FTypographyExtension to FScalableExtension.