Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/syncfusion_flutter_barcodes/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

* No changes.

## [31.2.15] - 11/25/2025
## [31.2.15] - 11/25/2025

**General**

* The compatible version of our Flutter barcodes widget has been updated to Flutter SDK 3.38.
* The compatible version of our Flutter barcodes widget has been updated to Flutter SDK 3.38.

## [31.1.20] - 09/17/2025

Expand Down
3 changes: 0 additions & 3 deletions packages/syncfusion_flutter_barcodes/example/README.md

This file was deleted.

2 changes: 1 addition & 1 deletion packages/syncfusion_flutter_barcodes/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: syncfusion_flutter_barcodes
description: Flutter Barcodes generator library is used to generate and display data in the machine-readable, industry-standard 1D and 2D barcodes.
version: 32.1.19
version: 33.1.44
homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_barcodes

environment:
Expand Down
16 changes: 15 additions & 1 deletion packages/syncfusion_flutter_calendar/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
## Unreleased

* No changes.
**Features**

* #FR29362 - Added explicit `height` and `width` support to [ResourceViewSettings](https://pub.dev/documentation/syncfusion_flutter_calendar/latest/calendar/SfCalendar/resourceViewSettings.html). When provided, `height` adjusts each resource item's height and `width` adjusts the resource panel width. These explicit values take precedence over `size`.

## [32.1.24] - 01/20/2026

**General**

* Upgraded the `timezone` package to the latest version 0.11.0.

## [32.1.22] - 01/06/2026

**Bugs**

* #GH1498 - The child widget in [loadMoreWidgetBuilder](https://pub.dev/documentation/syncfusion_flutter_calendar/latest/calendar/SfCalendar/loadMoreWidgetBuilder.html) was repeatedly invoked when [minDate](https://pub.dev/documentation/syncfusion_flutter_calendar/latest/calendar/SfCalendar/minDate.html) was set to current month-end date. Now, it runs once initially, and then load-more will be triggered only when required during scrolling.

## [31.2.15] - 11/25/2025

Expand Down
16 changes: 0 additions & 16 deletions packages/syncfusion_flutter_calendar/example/README.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -312,31 +312,35 @@ class CalendarViewHelper {
ResourceViewSettings resourceViewSettings,
int resourceCount,
) {
/// The combined padding value between the circle and the display name text
// The combined padding value between the circle and the display name text.
final double textPadding = resourceViewSettings.showAvatar ? 10 : 0;

/// To calculate the resource item height based on visible resource count,
/// added this condition calculated the resource item height based on
/// visible resource count.
// When visibleResourceCount is specified, that determines the height
// distribution regardless of provided height/width settings.
if (resourceViewSettings.visibleResourceCount > 0) {
return timelineViewHeight / resourceViewSettings.visibleResourceCount;
}

// If the user provided an explicit per-resource height, apply it directly.
if (resourceViewSettings.height != null) {
return resourceViewSettings.height!;
}

// Fallback: use resourceItemHeight (height ?? size) for sizing calculations.
final double effectiveResourceViewSize =
resourceViewSettings.height ?? resourceViewSettings.size;

double itemHeight = timelineViewHeight + textPadding;

/// Added this condition to check if the visible resource count is `-1`, we
/// have calculated the resource item height based on the resource panel
/// width and the view height, the smallest of this will set as the
/// resource item height.
if (timelineViewHeight > resourceViewSize &&
// If the timeline view height is greater than the resource panel size,
// limit the item height to the resource panel size (plus padding).
if (timelineViewHeight > effectiveResourceViewSize &&
resourceViewSettings.visibleResourceCount < 0) {
itemHeight = resourceViewSize + textPadding;
itemHeight = effectiveResourceViewSize + textPadding;
}

/// Modified the resource height if the visible resource count is `-1` on
/// this scenario if the resource count is less, to avoid the empty white
/// space on the screen height, we calculated the resource item height to
/// fill into the available screen height.
// If there are fewer resources than slots available, expand to fill the
// available height; otherwise use the calculated itemHeight.
return resourceCount * itemHeight < timelineViewHeight
? timelineViewHeight / resourceCount
: itemHeight;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,44 @@ import 'package:flutter/material.dart';
/// ```
@immutable
class ResourceViewSettings with Diagnosticable {
/// Creates a resource view settings for calendar.
/// Creates resource view settings for [SfCalendar].
///
/// The properties allows to customize the resource view of [SfCalendar].
/// Use this to customize the size, layout, and appearance of the resource view.
///
/// `size` — Sets both the resource panel width and each resource item's height.
/// Defaults to `75`.
///
/// `height` — Sets the height for each resource item when given explicitly.
/// Ignored when `visibleResourceCount` > 0. Falls back to `size` when null.
///
/// `width` — Sets the width for the resource panel when given explicitly.
/// Falls back to `size` when null.
///
/// `visibleResourceCount` — When greater than `0`, splits the available
/// vertical space equally among visible resources, overriding both `height`
/// and `size`.
///
/// `showAvatar` — Indicates whether a circular avatar is shown for each
/// resource. Defaults to `true`.
///
/// `displayNameTextStyle` — Text style used for the display name of each
/// resource.
///
/// ### Behavior and precedence
///
/// * If `height` or `width` is provided, the provided value is used.
/// * If neither is provided, `size` is used for both dimensions.
/// * When `visibleResourceCount` > 0, it takes precedence for resource item
/// height over both `height` and `size`.
const ResourceViewSettings({
this.size = 75,
this.visibleResourceCount = -1,
this.showAvatar = true,
this.displayNameTextStyle,
}) : assert(size >= 0),
this.height,
double? width,
}) : width = width ?? size,
assert(size >= 0),
assert(visibleResourceCount >= -1);

/// The number of resources to be displayed in the available screen height in
Expand Down Expand Up @@ -181,6 +210,60 @@ class ResourceViewSettings with Diagnosticable {
/// ```
final double size;

/// Optional explicit height to use for each resource item.
///
/// When `height` is provided, value will be used as the per-resource height in scenarios where `visibleResourceCount`
/// is not provided. If `visibleResourceCount` is provided, it determines
/// the height distribution and height property will be ignored.
///
/// Example:
/// ```dart
///@override
/// Widget build(BuildContext context) {
/// return Container(
/// child: SfCalendar(
/// view: CalendarView.timelineMonth,
/// dataSource: _getCalendarDataSource(),
/// resourceViewSettings: ResourceViewSettings(
/// height: 120,
/// displayNameTextStyle: TextStyle(
/// fontStyle: FontStyle.italic,
/// fontSize: 15,
/// fontWeight: FontWeight.w400,
/// ),
/// ),
/// ),
/// );
///}
///```
final double? height;

/// Optional explicit width to use for the resource panel.
///
/// When `width` is provided, value will be used as the resource panel width.
///
/// Example:
/// ```dart
///@override
/// Widget build(BuildContext context) {
/// return Container(
/// child: SfCalendar(
/// view: CalendarView.timelineMonth,
/// dataSource: _getCalendarDataSource(),
/// resourceViewSettings: ResourceViewSettings(
/// width: 150,
/// displayNameTextStyle: TextStyle(
/// fontStyle: FontStyle.italic,
/// fontSize: 15,
/// fontWeight: FontWeight.w400,
/// ),
/// ),
/// ),
/// );
///}
///```
final double? width;

/// Shows a circle that represents a user.
///
/// Typically used with a user's profile image, or, in the absence of such an
Expand Down Expand Up @@ -235,6 +318,8 @@ class ResourceViewSettings with Diagnosticable {
otherStyle = other;
}
return otherStyle.size == size &&
otherStyle.height == height &&
otherStyle.width == width &&
otherStyle.visibleResourceCount == visibleResourceCount &&
otherStyle.showAvatar == showAvatar &&
otherStyle.displayNameTextStyle == displayNameTextStyle;
Expand All @@ -250,6 +335,8 @@ class ResourceViewSettings with Diagnosticable {
),
);
properties.add(DoubleProperty('size', size));
properties.add(DoubleProperty('height', height));
properties.add(DoubleProperty('width', width));
properties.add(DiagnosticsProperty<bool>('showAvatar', showAvatar));
properties.add(IntProperty('visibleResourceCount', visibleResourceCount));
}
Expand All @@ -258,6 +345,8 @@ class ResourceViewSettings with Diagnosticable {
int get hashCode {
return Object.hash(
size,
height,
width,
visibleResourceCount,
showAvatar,
displayNameTextStyle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3364,7 +3364,7 @@ class _SfCalendarState extends State<SfCalendar>
_view,
);
final double resourceViewSize =
isResourceEnabled ? widget.resourceViewSettings.size : 0;
isResourceEnabled ? widget.resourceViewSettings.width! : 0;
if ((!_isRTL && updatedPosition.dx < resourceViewSize) ||
(_isRTL && updatedPosition.dx > _minWidth - resourceViewSize)) {
final double viewHeaderHeight =
Expand Down Expand Up @@ -5452,12 +5452,10 @@ class _SfCalendarState extends State<SfCalendar>
if (localPosition.dy < widget.headerHeight) {
_updateMouseHoveringForHeader(localPosition);
} else {
final double resourceViewSize = widget.resourceViewSettings.width!;
if (isResourceEnabled &&
((isRTL &&
localPosition.dx >
(_minWidth - widget.resourceViewSettings.size)) ||
(!isRTL &&
localPosition.dx < widget.resourceViewSettings.size)) &&
((isRTL && localPosition.dx > (_minWidth - resourceViewSize)) ||
(!isRTL && localPosition.dx < resourceViewSize)) &&
localPosition.dy > startPosition! &&
(CalendarViewHelper.shouldRaiseCalendarTapCallback(widget.onTap) ||
CalendarViewHelper.shouldRaiseCalendarLongPressCallback(
Expand Down Expand Up @@ -9552,7 +9550,7 @@ class _SfCalendarState extends State<SfCalendar>
_view,
);
final double resourceViewSize =
isResourceEnabled ? widget.resourceViewSettings.size : 0;
isResourceEnabled ? widget.resourceViewSettings.width! : 0;
final DateTime currentViewDate =
_currentViewVisibleDates[(_currentViewVisibleDates.length / 2)
.truncate()];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -572,14 +572,14 @@ class _CustomCalendarScrollViewState extends State<CustomCalendarScrollView>
final double resourceItemHeight =
isResourceEnabled
? CalendarViewHelper.getResourceItemHeight(
widget.calendar.resourceViewSettings.size,
widget.calendar.resourceViewSettings.width!,
widget.height - viewHeaderHeight - timeLabelWidth,
widget.calendar.resourceViewSettings,
widget.calendar.dataSource!.resources!.length,
)
: 0;
final double resourceViewSize =
isResourceEnabled ? widget.calendar.resourceViewSettings.size : 0;
isResourceEnabled ? widget.calendar.resourceViewSettings.width! : 0;
final bool isMonthView =
widget.view == CalendarView.month ||
widget.view == CalendarView.timelineMonth;
Expand Down Expand Up @@ -4632,7 +4632,7 @@ class _CustomCalendarScrollViewState extends State<CustomCalendarScrollView>
)) {
final double resourceItemHeight =
CalendarViewHelper.getResourceItemHeight(
widget.calendar.resourceViewSettings.size,
widget.calendar.resourceViewSettings.width!,
widget.height,
widget.calendar.resourceViewSettings,
widget.calendar.dataSource!.resources!.length,
Expand Down Expand Up @@ -4767,7 +4767,7 @@ class _CustomCalendarScrollViewState extends State<CustomCalendarScrollView>
)) {
final double resourceItemHeight =
CalendarViewHelper.getResourceItemHeight(
widget.calendar.resourceViewSettings.size,
widget.calendar.resourceViewSettings.width!,
widget.height,
widget.calendar.resourceViewSettings,
widget.calendar.dataSource!.resources!.length,
Expand Down Expand Up @@ -5300,7 +5300,7 @@ class _CustomCalendarScrollViewState extends State<CustomCalendarScrollView>
.position
.viewportDimension;
final double resourceViewSize =
isResourceEnabled ? widget.calendar.resourceViewSettings.size : 0;
isResourceEnabled ? widget.calendar.resourceViewSettings.width! : 0;
final bool isTimeline = CalendarViewHelper.isTimelineView(
widget.controller.view!,
);
Expand Down Expand Up @@ -10035,7 +10035,8 @@ class _CalendarViewState extends State<_CalendarView>
height -= viewHeaderHeight + timeLabelSize;
if (isResourceEnabled) {
_updateProgrammaticSelectedResourceIndex();
final double resourceViewSize = widget.calendar.resourceViewSettings.size;
final double resourceViewSize =
widget.calendar.resourceViewSettings.width!;
resourceItemHeight = CalendarViewHelper.getResourceItemHeight(
resourceViewSize,
widget.height - viewHeaderHeight - timeLabelSize,
Expand Down Expand Up @@ -10547,7 +10548,7 @@ class _CalendarViewState extends State<_CalendarView>
? widget.calendar.dataSource!.resources!.length
: 0;
final double resourceItemHeight = CalendarViewHelper.getResourceItemHeight(
widget.calendar.resourceViewSettings.size,
widget.calendar.resourceViewSettings.width!,
widget.height - viewHeaderHeight - timeLabelSize,
widget.calendar.resourceViewSettings,
resourceCount,
Expand Down
4 changes: 2 additions & 2 deletions packages/syncfusion_flutter_calendar/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

name: syncfusion_flutter_calendar
description: The Flutter Calendar widget has nine built-in configurable views that provide basic functionalities for scheduling and representing appointments/events efficiently.
version: 32.1.19
version: 33.1.44
homepage: https://github.com/syncfusion/flutter-widgets/tree/master/packages/syncfusion_flutter_calendar

screenshots:
Expand All @@ -25,7 +25,7 @@ dependencies:
sdk: flutter
flutter_localizations:
sdk: flutter
timezone: ^0.10.0
timezone: ^0.11.0
intl: '>=0.18.1 <0.21.0'
syncfusion_flutter_core:
path: ../syncfusion_flutter_core
Expand Down
14 changes: 13 additions & 1 deletion packages/syncfusion_flutter_charts/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
## Unreleased

* No changes.

## [32.1.21] - 30/12/2025

**Bugs**

* \#BD795850 - Now, the chart correctly renders all segments when multiple data points shared the same x value within the visible range.

## [32.1.19] - 16/12/2025

### Features

* \#FR68922 - [PlotBand](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/PlotBand-class.html) now provides an option to override its rendering using the `drawRect` and `drawText` methods.

## [31.2.16] - 09/12/2025

**Bugs**

* \#GH2464 - Now, the series fill updates correctly when the axis range changes during screen resize or orientation changes.

## [31.1.20] - 09/17/2025
## [31.1.20] - 17/09/2025

**General**

Expand Down
4 changes: 0 additions & 4 deletions packages/syncfusion_flutter_charts/example/README.md

This file was deleted.

Loading