|
| 1 | +## 5.0.0 |
| 2 | + |
| 3 | +### Breaking changes |
| 4 | + |
| 5 | +- Require Dart 3.13. |
| 6 | +- Replace the forked `codelessly_json_annotation` and |
| 7 | + `codelessly_json_serializable` with the standard `json_annotation` and |
| 8 | + `json_serializable`. Custom nodes should import |
| 9 | + `package:json_annotation/json_annotation.dart`. `DateTimeConverter` is |
| 10 | + now exported by this package. |
| 11 | +- Upgrade to equatable 3, which removes `EquatableMixin`; models mix in |
| 12 | + `Equatable` instead. |
| 13 | +- Remove the unused blend and `value` constructor parameters of |
| 14 | + `LoadingIndicatorNode`, `ProgressBarNode` and `DividerNode`, which were |
| 15 | + silently discarded. |
| 16 | +- Remove the unused `automaticChevron` parameter of |
| 17 | + `ExpansionTileProperties.copyWith`. |
| 18 | + |
| 19 | +### JSON |
| 20 | + |
| 21 | +- Serialized JSON is unchanged: fields that equal their defaults are still |
| 22 | + omitted, now by a small build step in `tool/json_defaults_builder`. |
| 23 | + Golden tests pin the output against 4.4.0. |
| 24 | +- Cloud database query `whereFilters`/`orderByFilters` are omitted when |
| 25 | + empty; they read back as empty lists. |
| 26 | + |
| 27 | +### Flutter parity |
| 28 | + |
| 29 | +- Mirror new Flutter values: `TextAlignHorizontalEnum.start`/`end`, |
| 30 | + `ButtonTypeEnum.filled`/`filledTonal`, `FABLocation.endContained`, |
| 31 | + `TextInputTypeEnum.webSearch`/`twitter`, |
| 32 | + `AutovalidateModeC.onUnfocus`/`onUserInteractionIfError`, |
| 33 | + `SliderTrackShapeEnum.gapped`, `SliderValueIndicatorShape.drop`/ |
| 34 | + `roundedRectangle` and `CShapeBorder.roundedSuperellipse`. |
| 35 | +- Add Flutter parameters that were missing: |
| 36 | + - `AppBarProperties.foregroundColor`, `scrolledUnderElevation` |
| 37 | + - `TabBarProperties.tabAlignment` (new `TabAlignmentC`), `dividerHeight` |
| 38 | + - `RadioProperties.side`, `innerRadius`, `backgroundColor` |
| 39 | + - `SliderProperties.showValueIndicator` (new `ShowValueIndicatorC`), |
| 40 | + `secondaryTrackValue`, `secondaryActiveTrackColor`, `padding` |
| 41 | + - `ListTileProperties.minTileHeight`, `titleAlignment` (new |
| 42 | + `ListTileTitleAlignmentC`) |
| 43 | + - `MaterialLoadingIndicatorProperties.strokeAlign`, `trackGap` |
| 44 | + - `ExpansionTileProperties.showTrailingIcon`, `shape`, `collapsedShape`, |
| 45 | + `cornerRadius` |
| 46 | + - `TextMixin.softWrap`, `textScaleFactor` |
| 47 | + - `MultiSourceIconModel.fill`, `weight`, `grade`, `opticalSize` (the |
| 48 | + Material Symbols variable-font axes) |
| 49 | + - `PageViewProperties.allowImplicitScrolling` |
| 50 | +- Document the Flutter replacements for deprecated `cacheExtent` |
| 51 | + (`scrollCacheExtent`) and `Radio.groupValue` (`RadioGroup`). |
| 52 | +- New nodes use Material 3 defaults: switches use Material 3, buttons are |
| 53 | + stadium-shaped with 24 px horizontal padding, FABs are rounded rectangles |
| 54 | + (radius 16) with Material 3 elevations, a 56 px extended height and 8 px |
| 55 | + icon spacing, list and expansion tiles use 16/24 px content padding, tab |
| 56 | + indicators size to the label, and navigation bars use elevation 3 (M3) |
| 57 | + and 8 (M2). |
| 58 | +- Designs saved before 5.0.0 keep their look: a missing key still reads as |
| 59 | + the old default, and re-saving them writes the same JSON. The new |
| 60 | + `JsonLegacyDefault` annotation supports this for non-literal defaults. |
| 61 | + |
| 62 | +### Fixes |
| 63 | + |
| 64 | +- Register `PlaceholderNode` with `NodeJsonConverter`; layouts containing |
| 65 | + one failed to deserialize. |
| 66 | +- `ListTileNode.empty`/`fromProperties` and `ExpansionTileNode.empty` |
| 67 | + no longer leave late fields uninitialized. |
| 68 | +- `FloatingActionButtonNode.empty` and `EmbeddedVideoNode.empty` use their |
| 69 | + own sizes. |
| 70 | +- `copyWith` keeps Divider `thickness`, Dropdown `enabled`/`dense`/ |
| 71 | + `expanded`/`autoFocus`/`enableFeedback`, FAB `location`, M2 navigation |
| 72 | + bar notch settings. |
| 73 | +- Remove the `contentPadding` parameter of `InputDecorationModel.copyWith`, |
| 74 | + which was ignored; a text field's content padding is its node padding. |
| 75 | +- Equality includes previously ignored fields of ExpansionTile, grid |
| 76 | + delegates, Dropdown, Divider, FAB, ListTile, TabBar, icons, web views, |
| 77 | + submit actions, Vimeo videos, condition groups and visual density. |
| 78 | +- `TypedValue.toEdgeInsetsModel` converts numbers and lists again. |
| 79 | +- Add field access for `TextFieldProperties` and the navigation bar |
| 80 | + properties. |
| 81 | + |
1 | 82 | ## 4.4.0 |
2 | 83 |
|
3 | 84 | - Add CornerRadius typedValue. |
|
0 commit comments