Forui 0.23.0
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
FCalendarControlto handle programmatic navigation. SeeFDateSelectionControlfor handling date selection. -
Breaking Change
FCalendarControllerto handle programmatic navigation. SeeFDateSelectionControllerfor handling date selection.
FCheckbox
- Add support for styling the label in the
focusedstate.
FCollapsible
- Add
FCollapsible.axisto collapse the child horizontally.
FContextMenu (New)
- Add
FContextMenu.
FDateField
-
Add split grid and wheel calendar modes via
FDateFieldGridSplitCalendarPropertiesandFDateFieldWheelCalendarProperties. -
Add
FDateField.selectionControlto control the selected date. -
Add
FDateField.validatoras a top-level parameter. -
Breaking Change
FDateFieldCalendarPropertiesto a sealed class. UseFDateFieldGridCalendarPropertiesfor the
default grid calendar. -
Breaking Move the calendar's selectable range, today's date,
dayBuilder,autoHide,popoverBuilder, and
popover positioning onto thecalendarproperties. -
Breaking Change
FDateFieldPopoverBuilder's second argument fromFDateFieldControllertoFCalendarController. -
Breaking Remove
FDateFieldControllerandFDateFieldControl. UseFDateField.selectionControl
(FDateSelectionControl) andFDateField.validatorinstead. -
Breaking Remove
FDateField.calendar(initialType: ...).
FFormField
- Add
FFormFieldVariant.focused. - Add
FFormFieldErrorVariant.focused.
FItem & FTile
- Fix nested
FTappable-based widgets (e.g.FButtonin a prefix or suffix) not receiving their own taps when the
enclosing tile is inside anFItemGrouporFTileGroup.
FLineCalendar
-
Add
FLineCalendar.selectableto determine whether a date can be selected. -
Breaking Change
FLineCalendarControl.managed(controller: ...)to acceptFDateSelectionController<DateTime?>
instead ofFCalendarController<DateTime?>. -
Breaking Remove
FLineCalendarControl.managed(selectable: ...). UseFLineCalendar.selectableinstead. -
Breaking Remove
FLineCalendarControl.lifted(selectable: ...). UseFLineCalendar.selectableinstead.
FLocalizations
- Breaking Remove
FLocalizations.fullDate. UseDateFormat.yMMMMdinstead. - Breaking Remove
FLocalizations.year. UseDateFormat.yinstead. - Breaking Remove
FLocalizations.yearMonth. UseDateFormat.yMMMMinstead. - Breaking Remove
FLocalizations.abbreviatedMonth. UseDateFormat.MMMinstead. - Breaking Remove
FLocalizations.day. UseDateFormat.dinstead. - Breaking Remove
FLocalizations.shortDate. UseDateFormat.yMdinstead.
FPointPortal (New)
- Add
FPointPortal.
FRadio
- Add support for styling the label in the
focusedstate.
FResizable
-
Add
FResizableRegion.flex(...)for proportionally-sized regions. -
Breaking Change
FResizableRegionto a sealed class withFResizableRegion.fixed(...)and
FResizableRegion.flex(...). -
Breaking Rename
FResizableRegion(...)toFResizableRegion.fixed(...). -
Breaking Rename
FResizableRegion.region(...)toFResizableRegion.fixed(...). -
Breaking Rename
FResizableRegion(initialExtent: ...)toFResizableRegion.fixed(extent: ...).
FSelect & FMultiSelect
-
Add support for styling the label in the
focusedstate. -
Fix
FMultiSelectretaining the highlight on the first item instead of the last tapped item.
FSelectMenuTile
- Add support for styling the label in the
focusedstate.
FSwitch
-
Add support for styling the label in the
focusedstate. -
Fix
FSwitchthrowing when afocusNodeis provided. -
Fix
FSwitchregistering two focus nodes, causing it to be a duplicate stop when tabbing through.
FTappable & FTappableGroup
- Fix
FTappablethrowing a null check error when unmounted mid-gesture inside anFTappableGroup.
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.bodyandFTypography.displaytypefaces. -
Breaking Split
FTypographyinto twoFTypefaces. Replacetypography.<token>withtypography.body.<token>
(e.g.typography.smbecomestypography.body.sm). -
Breaking Rename
FTypographyExtensiontoFScalableExtension.