Releases: bdlukaa/fluent_ui
v4.0.3
4.0.2
- Add
NavigationView.paneBodyBuilderfor customization of widget built for body of pane. (#548) - Fixed
NavigationAppBarunnecessary leading icon when no pane is provided inNavigationView(#551) - Added
NavigationView.minimalPaneOpenand, with it, the possibility to open minimal pane programatically (#564) - Assign an index to pane item expanders (#566)
- Update
NavigationViewcompact mode transition TreeViewupdates (#555):- BREAKING Added
TreeViewItemInvokeReasonparameter toTreeView.onItemInvokedandTreeViewItem.onInvoked. - Fix clearing out selection state on initial state build in certain cases for a single selection mode tree view.
- Fix single selection mode to properly deselect hidden child items when selecting a collapsed parent item.
- Add
TreeView.includePartiallySelectedItemsso that items who have children with a mixed selection state will be included in theonSelectionChangedcallback. - Add
TreeView.deselectParentWhenChildrenDeselectedoptional behavior so that parent items can remain selected when all of their children are deselected. - Add
TreeViewItem.setSelectionStateForMultiSelectionModehelper method and[TreeViewItem].selectedItemsextension method, to make it easier for application code to programmatically change selection state of items in a multi-selection mode tree view.
- BREAKING Added
- Added support for Uzbek language
What's Changed
- Add support for Hebrew language by @YehudaKremer in #550
- Fix #544: TimePicker popup gets cut on a small application by @YehudaKremer in #547
- fix: PaneItemAction tap event called twice by @MasterHiei in #546
- I have added Uzbek language by @bobobekturdiyev in #563
- TreeView selection state fixes by @klondikedragon in #556
- Add NavigationView.paneBodyBuilder by @klondikedragon in #553
- Fix unnecessary NavigationAppBar leading icon when no NavigationPane was provided by @DMouayad in #551
- [Example Project] Colorful Code Snippets by @YehudaKremer in #567
- NavigationView updates by @bdlukaa in #569
New Contributors
- @MasterHiei made their first contribution in #546
- @bobobekturdiyev made their first contribution in #563
- @DMouayad made their first contribution in #551
Full Changelog: v4.0.1...v4.0.2
4.0.1
PaneItemAction.bodyis no longer required (#545)- Added
DropDownButton.onOpenandDropDownButton.onClosecallbacks (#537) - Ensure
MenuFlyoutItem.onPressedis called after the flyout is closed ifDropDownButton.closeAfterClickis true (#520) - Ensure the
TimePickerandDatePickerpopups will fit if the screen is small (#544) - Do not apply padding to
NavigationAppBar.leading(#539) - Added
AutoSuggestBox.noResultsFoundBuilder(#542) - Added
AutoSuggestBox.inputFormatters(#542)
Full Changelog: v4.0.0...v4.0.1
4.0.0
-
BREAKING Removed
NavigationBody. UsePaneItem.bodyinstead (#510/#531):
Before:NavigationView( pane: NavigationPane( items: [ PaneItem(icon: Icon(FluentIcons.add)), PaneItem(icon: Icon(FluentIcons.add)), PaneItem(icon: Icon(FluentIcons.add)), ], ), content: NavigationBody( children: [ _Item1(), _Item2(), _Item3(), ], ), ),
Now:
NavigationView( ... pane: NavigationPane( items: [ PaneItem( icon: Icon(FluentIcons.add), body: _Item1(), ), PaneItem( icon: Icon(FluentIcons.add), body: _Item2(), ), PaneItem( icon: Icon(FluentIcons.add), body: _Item3(), ), ], ), ),
Or if you don't have a pane, you can use the content like the following:
NavigationView( content: ScaffoldPage( header: PageHeader( title: titleRow, ), content: child, ), ),
either one attribute of pane or content must not be null
Use
NavigationView.transitionsBuilderto create custom transitions -
Added
PaneItem.onTap(#533) -
BREAKING
AutoSuggestBoxdynamic type support (#441):Before:
AutoSuggestBox( items: cats.map((cat) { return AutoSuggestBoxItem( value: cat, onFocusChange: (focused) { if (focused) debugPrint('Focused $cat'); } ); }).toList(), onSelected: (item) { setState(() => selected = item); }, ),
Now:
AutoSuggestBox<String>( items: cats.map((cat) { return AutoSuggestBoxItem<String>( value: cat, label: cat, onFocusChange: (focused) { if (focused) debugPrint('Focused \$cat'); } ); }).toList(), onSelected: (item) { setState(() => selected = item); }, ),
-
Compact pane is no longer toggled when item is selected (#533).
To toggle it programatically, useNavigationViewState.toggleCompactOpenModewhen an item is tapped -
Dynamic header height for open pane (#530)
-
Fixes memory leaks on
NavigationView -
TreeViewupdates:-
All items of the same depth level now have the same indentation. Before, only items with the same parent were aligned.
-
The hitbox for the expand icon of each item now uses the item's full height and is three times wider than the actual icon. This corresponds to the implementation in the explorer of Windows 10/11.
-
You can now choose whether the items of a TreeView should use narrow or wide spacing.
-
Do not invoke the tree view item on secondary tap (#526)
-
BREAKING
TreeView.onSecondaryTapis now a(TreeViewItem item, TapDownDetails details)callback:
Before:TreeView( ..., onSecondaryTap: (item, offset) async {} ),
Now:
TreeView( ..., onSecondaryTap: (item, details) { final offset = details.globalPosition; }, )
-
Expand/collape items with right and left arrow keys, respectively (#517)
-
Added
TreeView.onItemExpandToggleandTreeViewItem.onExpandToggle(#522)
-
What's Changed
- Add italian (IT) localization by @patricknicolosi in #337
- add FlyoutOpenMode secondaryPress by @nidetuzi in #334
- Add macOS support to example project by @h3x4d3c1m4l in #339
- Add Dutch (nl) l10n support by @h3x4d3c1m4l in #338
- Fix incorrect documentation for waitDuration on Tooltip by @harysuryanto in #349
- Add Traditional Chinese (zh_Hant) localization by @rk0cc in #340
- Show menu button on minimal mode when display mode is auto by @bdlukaa in #350
- Fluent app review by @bdlukaa in #351
TextBoxreview by @bdlukaa in #352- Add Persian by @xmine64 in #354
- Add
AutoSuggestBox.formby @bdlukaa in #353 - UI updates by @bdlukaa in #355
- Retry add Korean (ko) from #267 by @rk0cc in #358
- add korean(ko) localization by @dubh3 in #267
- Date/Time pickers review by @bdlukaa in #357
- Color updates by @bdlukaa in #368
- Fix flutter.dev link by @WinXaito in #378
- Added Malay (ms) localizations to l10n by @jonsaw in #380
- Updated DropDownButton documentation by @tobiasht in #374
- Remove header space when null by @Alphamplyer in #359
- AutoSuggestBox updates by @bdlukaa in #389
- Polish translations by @madik7 in #388
- NavigationView updates by @bdlukaa in #390
- Add supported language in README.md by @rk0cc in #391
- TextBox review by @bdlukaa in #395
- [wip] Example app rework by @bdlukaa in #397
- README improvements by @phorcys420 in #400
- Example app update by @bdlukaa in #407
- add context menu by @nidetuzi in #398
- DateTimePicker update by @bdlukaa in #406
- Update Dutch translations by @h3x4d3c1m4l in #410
- Add date time localization in Chinese (both Simplified and Traditional) by @rk0cc in #416
- add japanese localization by @chari8 in #408
- Tiles update by @bdlukaa in #422
- Navigation view updates by @bdlukaa in #425
- Tabview rework by @bdlukaa in #427
- Flyouts size by @bdlukaa in #435
- Added Czech localization [cs] by @morning4coffe-dev in #439
- Top navigation update by @bdlukaa in #440
- Add Hungarian language by @RedyAu in #442
- Fix incorrect time display format in TimePicker in Chinese by @rk0cc in #445
- Padding by @bdlukaa in #447
- Use
trackColorand add innerpaddingfor Scrollbar by @bdlukaa in #356 - Rework AutoSuggestBox by @bdlukaa in #450
- Comboboxes by @bdlukaa in #454
- Close overlay when size changes by @bdlukaa in #458
- Public PaneItemKeys for support custom PaneItem by @ccl0326 in #453
- Correctly check for supported locales by @bdlukaa in #459
- Lazy loading asb by @bdlukaa in #460
- Update README's
ScaffoldPageexample by @loic-sharma in #466 - Some bug fixes by @bdlukaa in #469
- tr localization by @timurturbil in #470
- Changed source code of second combobox by @DobreRadu in #465
- Some fixes by @bdlukaa in #480
- Fix dropdown button padding issue by @loic-sharma in #476
- Interactive code snippet by @YehudaKremer in #479
- Combobox updates by @bdlukaa in #481
- Pane item expander by @bdlukaa in #299
- Update Arabic translations by @dmakwt in #488
- Live documentation by @bdlukaa in #494
- Some fixes by @bdlukaa in #495
- Focus review by @bdlukaa in #497
- fix: changelog scrollbar wrong position by @DemoJameson in #491
- [localizations] S renamed to FluentS by @bdlukaa in #503
- Fix progress indicator animation speed affected by frame rate by @DemoJameson in #502
- Make the animation of the progress ring consistent with FluentUI by @DemoJameson in https://github.com/bdl...
4.0.0 release candidate 3
DisableAcrylicnow fully disable transparency of its decendentsAcrylics (#468)- Do not interpolate between infinite constraints on
TabView(#430) - Do not rebuild the
TimePickerpopup when already rebuilding (#437) ToggleSwitchupdates:- Added
TextChangedReason.cleared, which is called when the text is cleared by the user in anAutoSuggestBox(#461) - Call
AutoSuggestBox.onChangedwhen an item is selected using the keyboard (#483) Tooltipoverlay is now ignored when hovered (#443)- Do not add unnecessary padding in
DropdownButton(#475) ComboBoxupdates:- BREAKING Renamed
ComboboxtoComboBox - BREAKING Renamed
ComboboxItemtoComboBoxItem - BREAKING Renamed
ComboBox.backgroundColortoComboBox.popupColor - Implement
EditableComboBox, a combo box that accepts items that aren't listed (#244) ComboBox.isExpanded: falsenow correctly sets the button width (#382)ComboBox's items height are correctly calculated, as well as initial scroll offset (#472)- BREAKING
ComboBox.disabledHintwas renamed toComboBox.disabledPlaceholder - Added
ComboBoxFormFieldandEditableComboBoxFormField(#373) ComboBox.comboBoxColoris now correctly applied (#468)ComboBoxpopup can't be opened if disabled
- BREAKING Renamed
- Implemented
PaneItemExpander(#299) TimePickerandDatePickerpopup now needs a minimum width of 260 (#494)- Correctly align
NavigationAppBarcontent (#494) - BREAKING Added
InfoLabel.rich.InfoLabelis no longer a constant contructor (#494) - Always add
GlobalMaterialLocalizationsaboveReorderableListView(#492) - BREAKING Removed
ContentDialog.backgroundDismiss. UseshowDialog.barrierDismissable(#490) - Reviewed focus (#496)
DatePickerandTimePickernow show the focus highlight.
Their popup now can be controlled using the keyboardNavigationBodynow uses aFocusTraversalGroupto handle focus
This means the the content of the body will be fully traversed before moving on to another widget or group of widgets. Learn moreTreeViewItemnow shows the focus highlight. They can also be selected using the keyboardExpandernow shows the focus highlight
- Progress Indicators velocity is no longer affected by device frame rate (#502)
- Added
AutoSuggestBox.enabled(#504) - Correctly keep the
NavigationViewanimation state (cf0fae1 ,bd89ba6) - Calculate
selectedfor all parents as soon as theTreeViewis built
What's Changed
- Update README's
ScaffoldPageexample by @loic-sharma in #466 - Some bug fixes by @bdlukaa in #469
- tr localization by @timurturbil in #470
- Changed source code of second combobox by @DobreRadu in #465
- Some fixes by @bdlukaa in #480
- Fix dropdown button padding issue by @loic-sharma in #476
- Interactive code snippet by @YehudaKremer in #479
- Combobox updates by @bdlukaa in #481
- Pane item expander by @bdlukaa in #299
- Update Arabic translations by @dmakwt in #488
- Live documentation by @bdlukaa in #494
- Some fixes by @bdlukaa in #495
- Focus review by @bdlukaa in #497
- fix: changelog scrollbar wrong position by @DemoJameson in #491
- [localizations] S renamed to FluentS by @bdlukaa in #503
- Fix progress indicator animation speed affected by frame rate by @DemoJameson in #502
- Make the animation of the progress ring consistent with FluentUI by @DemoJameson in #505
- Fix #482 and support to save and restore the open state by @DemoJameson in #501
- Theme change by @bdlukaa in #507
New Contributors
- @loic-sharma made their first contribution in #466
- @timurturbil made their first contribution in #470
- @DobreRadu made their first contribution in #465
- @YehudaKremer made their first contribution in #479
- @DemoJameson made their first contribution in #491
Full Changelog: v4.0.0-pre.3...v4.0.0-pre.4
4.0.0 release candidate 3
-
NavigationViewmode fixes:- When top overflow menu is opened,
PaneItemHeaderno longer throws an unsupported error - When on top mode,
PaneItemHeaderis properly aligned to the other items. - Added
NavigationPaneThemeData.headerPadding, which is applied toPaneItemHeaderon open, compact and minimal mode. It defaults to 10 pixels at the top - BREAKING
PaneItem.getPropertyFromTitleis nowwidget.getProperty:
Before:
getPropertyFromTitle<TextStyle>()Now:
title.getProperty<TextStyle>()This was changed because the properties of
PaneItemHeaderneeded to be accessed, but the old version only supported to get the properties ofPaneItem.title. It can be called on aText,RichTextor in anIconwidgetInheritedNavigationViewis now accessible on the top overflow menu- Added
NavigationPaneThemeData.selectedTopTextStyleandNavigationPaneThemeData.unselectedTopTextStyle, which is applied to the items on top mode - Fixed
contentfocus on minimal mode - Updated default transitions for top mode:
HorizontalSlidePageTransition
- When top overflow menu is opened,
-
Fix incorrect translation of
TimePickerin Traditional Chinese. -
Added
ScaffoldPage.resizeToAvoidBottomInset(#444) -
Consider view padding for
NavigationAppBar -
Scrollbarupdates (#356):- Correctly use
backgroundColorto display the track color - Added
paddingandhoveringPadding - Check if animation is disposed before using it (#446)
- Correctly use
-
Update
AutoSuggestBox(#450):- Added
.enableKeyboardControls. When true, items can be selected using the keyboard (#19) - Added
.sorter, which lets you set a custom sort function for the suggestions.AutoSuggestBox.defaultItemSorteris used by default - Overlay's height is now correctly calculated based on the screen size. It no longer overlaps the screen.
viewPaddingis also taken into consideration - Close the overlay if the textbox width is changes (#456)
.itemscan be dynamically loaded (#387)- BREAKING
.itemsis now aList<AutoSuggestBoxItem>:
Before:
AutoSuggestBox( items: [ 'Cat', 'Dog', 'Bird', 'Horse', ], ... ),
Now:
AutoSuggestBox( items: [ 'Cat', 'Dog', 'Bird', 'Horse', ].map((animal) { return AutoSuggestBoxItem( value: animal, // this takes a String child: Text('Animal $animal'), // this takes a Widget. If null, value is displayed as a text onFocusChange: (focused) { // this is called when the item is focused using the keyboard arrow keys if (focused) debugPrint('Focused animal $animal'); }, onSelected: () { // this is called when the item is selected debugPrint('Selected animal $animal'); } ); }).toList(), ... )
- Added
-
Comboboxupdates (#454): -
Correctly check if a locale is supported (#455)
Release candidate 2
- Remove whitespace on
ContentDialogif title is omitted (#418) - Apply correct color to the Date and Time Pickers button when selected (#415, #417)
- Expose more useful properties to
AutoSuggestBox(#419) - BREAKING
PopupContentSizeInfowas renamed toContentSizeInfo - Reworked
ListTile(#422):- BREAKING Removed
TappableListTile - Added support for single and multiple selection. Use
ListTile.selectable(#409) - Added focus support
- Use the Win UI design
- BREAKING Removed
- Reviewed animation durations (#421)
- BREAKING Removed
.animationDurationand.animationCurvefromScrollbarThemeData - Added
expandContractAnimationDurationandcontractDelaytoScrollbarThemeData
- BREAKING Removed
NavigationPaneSizeconstraints are now correctly applied when in open mode (#336)NavigationIndicatorcan't be invisble anymore when animation is stale (#335)- Updated
TabView:-
BREAKING Removed
TabView.bodies. Now,Tab.bodyis used.
BeforeTabView( tabs: [ Tab(text: Text('Tab 1')), Tab(text: Text('Tab 2')), ], bodies: [ Tab1Body(), Tab2Body(), ], ),
Now:
TabView( tabs: [ Tab( text: Text('Tab 1'), body: Tab1Body(), ), Tab( text: Text('Tab 2'), body: Tab2Body(), ), ], ),
-
Updated
TabViewtabs' constraints and padding -
Fixed tab width when
TabWidthBehavioriscompact -
FlutterLogois no longer the default tab Icon
-
DropDownButtonmenu is now sized correctly according to the screen size- If there isn't enough space to display the menu on the preferred position,
Flyoutwill display on the opposite position (#435)
Release candidate 1
-
Exposed private properties that makes it easier to create custom panes for
NavigationView(#365):kCompactNavigationPaneWidthkOpenNavigationPaneWidthNavigationPane.changeToPaneItem.getPropertyFromTitle
-
PaneScrollConfigurationis now applied to custom pane onNavigationView -
Added
NavigationViewState.displayMode. It results in the current display mode used by the view, including the automatic display mode (#360):// Define the key final key = GlobalKey<NavigationViewState>(); NavigationView( // pass the key to the view key: key, ..., ) // Get the current display mode. Note that, in order to find out the automatic display mode, // the widget must have been built at least once final PaneDisplayMode currentDisplayMode = key.currentState.displayMode;
-
The app bar action no longer overflow when minimal pane/compact overlay is open (#361)
-
Update
AutoSuggestBox:- It now uses
Acrylic, but it can be disabled usingDisableAcrylic TextChangedReason.suggestionChoosenis now called properly
- It now uses
-
Updated
TextBox:TextBoxcolors were updated to match the Win 11 design.- Fluent Text Selection Control now make use of
Acrylic. Its items were also updated
-
Updated pickers (#406):
- If
selectedis null, a placeholder text is shown (#306) - Added new localization messages:
hour,minute,AM,PM,month,dayandyear. - BREAKING Removed
.hourPlaceholder,.minutePlaceholder,.amText,.pmTextfromTimePicker. It was replaced, respectivelly, by thehour,minute,AM,PMlocalization messages - On
DatePicker, it's now possible to change the order of the fields:
DatePicker( ..., fieldOrder: [ DatePickerField.day, DatePickerField.month, DatePickerField.year, ], )
The fields are ordered based on the current locale by default
- On
DatePicker, the day and year fields are now formatted based on the current locale (getDateOrderFromLocale)
- If
-
Update
Slider(#405):- Added
.thumbRadiusand.trackHeighttoSliderThemeData - The active track now isn't taller than the inactive track
- Added
What's Changed
- Add italian (IT) localization by @patricknicolosi in #337
- add FlyoutOpenMode secondaryPress by @nidetuzi in #334
- Add macOS support to example project by @h3x4d3c1m4l in #339
- Add Dutch (nl) l10n support by @h3x4d3c1m4l in #338
- Fix incorrect documentation for waitDuration on Tooltip by @harysuryanto in #349
- Add Traditional Chinese (zh_Hant) localization by @rk0cc in #340
- Show menu button on minimal mode when display mode is auto by @bdlukaa in #350
- Fluent app review by @bdlukaa in #351
TextBoxreview by @bdlukaa in #352- Add Persian by @xmine64 in #354
- Add
AutoSuggestBox.formby @bdlukaa in #353 - UI updates by @bdlukaa in #355
- Retry add Korean (ko) from #267 by @rk0cc in #358
- add korean(ko) localization by @dubh3 in https://github.com/bdlukaa/fl...
Flutter 3.0.0
What's Changed
- Build on Flutter 3.0.0 by @h3x4d3c1m4l in #325
- Bump Version + flutter_lints by @bdlukaa in #333
New Contributors
- @h3x4d3c1m4l made their first contribution in #325
Full Changelog: v3.11.1...v3.12.0
v3.11.1
What's Changed
- Dropdown scroll by @bdlukaa in #297
- Make
TextButtonuse the text button style by @devnought in #302 - Hotfixes by @bdlukaa in #308
- Add decoration property by @bdlukaa in #312
- Remove DragToMoveArea parent of WindowButtons by @bdlukaa in #313
New Contributors
- @devnought made their first contribution in #302
Full Changelog: v3.11.0...v3.11.1
v3.11.0 - Menu Flyouts
3.10.3
What's Changed
- NavigationView hotfix by @bdlukaa in #278
- Add _NavigationViewScrollBehavior by @bdlukaa in #279
- Allow to define the minimal tab width by @WinXaito in #283
- Pane header height by @WinXaito in #281
- Fix link (anchor) for Info Label by @WinXaito in #285
- Feature 284 - Added leading property for NavigationPane Widget #288 by @imp-sike in #288
- Text field focus fix by @bdlukaa in #290
- TextFormBox expands fix by @bdlukaa in #291
New Contributors
- @imp-sike made their first contribution in #288
Full Changelog: v3.10.1...v.3.10.3