v0.2.0
Changed
-
Breaking. Text-carrying properties on the declarative components now
take aWidgetinstead of aString, matching Flutter's own convention
(AlertDialog.title,ListTile.title) and the kit's existing
Alert.messageandTabItem.label. Each is rendered inside a
DefaultTextStylecarrying its own colour, size and weight, so a bare
Text('Saved')still needs no styling — and aRow, aRichTextor an
icon now fits where only a string did.MessageConfig.contentWidgetNotificationConfig.message/.descriptionWidgetModalConfig.title/.content/.okText/.cancelTextWidgetPopconfirm.title/.description/.okText/.cancelTextWidgetDrawerConfig.titleWidgetResult.title/.subTitleWidgetTooltip.messageWidgetProgress.formatWidget Function(double)The imperative shorthands keep taking plain text, because they are
one-liners inside callbacks and aText(...)there costs more than it
gives:message.success('Saved'); notification.error('Upload failed', description: 'The server said no.'); Modal.confirm(title: 'Delete file?', content: 'This cannot be undone.');
One rule covers it: a shorthand takes a
String, a config takes a
Widget. Anything richer goes through the config the shorthand already
wraps —message.open(MessageConfig(content: Row(...))).SegmentedOption.labelstays aStringfor the same reason: it already
has achildbeside it for the widget case. -
Breaking.
CreateTabData.titleis nowCreateTabData.label, typed
Widget?. It seedsTabItem.label, so it now shares that name and type.
TabsController.setTitleis unchanged and still takes aString.
Removed
- Breaking.
ModalConfig.childand thechildparameter of everyModal
opener. WithcontenttypedWidgetthe two were the same thing;content
is the survivor, and it scrolls once it outgrows the dialog.
Fixed
-
A dark theme left the system status bar unreadable: nothing ever stated a
SystemUiOverlayStyle, so the platform's dark icons stayed on a dark bar.
ConfigProvidernow declares one matching its theme, through an
AnnotatedRegionrather thanSystemChrome— the style belongs to its
subtree instead of mutating global state. Only the icon brightness is set,
leaving a translucent or coloured bar alone, and
ConfigProvider(systemOverlayStyle: false)hands control back to an app
that drives its own chrome. -
The gallery declared a hosted
seed_uidependency, so it — and with it the
exampleCI job and the published demo — was building against the release
on pub.dev rather than the working tree. Adependency_overridesentry
points it back at the repository, which immediately surfaced 80 call sites
the previous setup had hidden.