Skip to content

Commit aec09b3

Browse files
committed
feat: release v7.10.0
1 parent 59e6f06 commit aec09b3

6 files changed

Lines changed: 47 additions & 20 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
## [7.10.0] - 2026-03-09
2+
3+
### Added
4+
5+
* **`enableInteractiveSelection` for `InputField` and `FieldStyleTextField`** - New parameter to control whether text selection handles and toolbar are shown. Available on `InputField`, `InputField.compact`, `InputField.password`, `InputField.email`, `InputField.fromFieldStyleText`, and `FieldStyleTextField`
6+
7+
### Fixed
8+
9+
* **`FieldStyleTextField.copyWith` losing existing values** - Parameters like `textCapitalization`, `maxLengthEnforcement`, `onAppPrivateCommand`, `inputFormatters`, `cursorWidth`, `dragStartBehavior`, and `clipBehavior` now correctly fall back to `this.xxx` instead of overriding with hardcoded defaults
10+
111
## [7.9.1] - 2026-03-06
212

313
### Fixed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import 'package:nylo_support/widgets/ny_widgets.dart';
4949

5050
```yaml
5151
dependencies:
52-
nylo_support: ^7.9.1
52+
nylo_support: ^7.10.0
5353
```
5454
5555
### Documentation

example/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ packages:
467467
path: ".."
468468
relative: true
469469
source: path
470-
version: "7.9.0"
470+
version: "7.9.1"
471471
objective_c:
472472
dependency: transitive
473473
description:

lib/widgets/src/fields/field_style.dart

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@ class FieldStyleTextField extends FieldStyle {
304304
this.filled = false,
305305
this.isDense = false,
306306
this.suffixIcon,
307+
this.enableInteractiveSelection = true,
307308
}) : decoration = decoration;
308309

309310
final String? labelText;
@@ -381,6 +382,7 @@ class FieldStyleTextField extends FieldStyle {
381382
final Color? fillColor;
382383
final bool? isDense;
383384
final Widget? suffixIcon;
385+
final bool enableInteractiveSelection;
384386

385387
static FieldStyleTextField base() {
386388
return FieldStyleTextField(
@@ -550,20 +552,19 @@ class FieldStyleTextField extends FieldStyle {
550552
int? maxLength,
551553
MouseCursor? mouseCursor,
552554
String? validationErrorMessage,
553-
TextCapitalization textCapitalization = TextCapitalization.none,
555+
TextCapitalization? textCapitalization,
554556
MaxLengthEnforcement? maxLengthEnforcement,
555557
AppPrivateCommandCallback? onAppPrivateCommand,
556-
List<TextInputFormatter>? inputFormatters = const [],
557-
bool? enabled = true,
558-
double cursorWidth = 2.0,
559-
double? cursorHeight = 20.0, // Default height if not provided
558+
List<TextInputFormatter>? inputFormatters,
559+
bool? enabled,
560+
double? cursorWidth,
561+
double? cursorHeight,
560562
Radius? cursorRadius,
561563
Color? cursorColor,
562-
Brightness? keyboardAppearance = Brightness.light, // Default appearance
564+
Brightness? keyboardAppearance,
563565
EdgeInsets? scrollPadding,
564-
TextSelectionControls? selectionControls = null, // Default to null
565-
DragStartBehavior dragStartBehavior =
566-
DragStartBehavior.start, // Default behavior
566+
TextSelectionControls? selectionControls,
567+
DragStartBehavior? dragStartBehavior,
567568
GestureTapCallback? onTap,
568569
TapRegionCallback? onTapOutside,
569570
InputDecoration? decoration,
@@ -572,7 +573,8 @@ class FieldStyleTextField extends FieldStyle {
572573
ScrollController? scrollController,
573574
ScrollPhysics? scrollPhysics,
574575
Iterable<String>? autofillHints,
575-
Clip? clipBehavior = Clip.hardEdge, // Default to hard edge clipping
576+
Clip? clipBehavior,
577+
bool? enableInteractiveSelection,
576578
Function(FormValidationResponse handleError)? handleValidationError,
577579
bool? passwordVisible,
578580
String? type,
@@ -633,20 +635,19 @@ class FieldStyleTextField extends FieldStyle {
633635
mouseCursor: mouseCursor ?? this.mouseCursor,
634636
validationErrorMessage:
635637
validationErrorMessage ?? this.validationErrorMessage,
636-
textCapitalization: textCapitalization,
637-
maxLengthEnforcement:
638-
maxLengthEnforcement ?? MaxLengthEnforcement.enforced,
639-
onAppPrivateCommand: onAppPrivateCommand,
640-
inputFormatters: inputFormatters,
638+
textCapitalization: textCapitalization ?? this.textCapitalization,
639+
maxLengthEnforcement: maxLengthEnforcement ?? this.maxLengthEnforcement,
640+
onAppPrivateCommand: onAppPrivateCommand ?? this.onAppPrivateCommand,
641+
inputFormatters: inputFormatters ?? this.inputFormatters,
641642
enabled: enabled ?? this.enabled,
642-
cursorWidth: cursorWidth,
643+
cursorWidth: cursorWidth ?? this.cursorWidth,
643644
cursorHeight: cursorHeight ?? this.cursorHeight,
644645
cursorRadius: cursorRadius ?? this.cursorRadius,
645646
cursorColor: cursorColor ?? this.cursorColor,
646647
keyboardAppearance: keyboardAppearance ?? this.keyboardAppearance,
647648
scrollPadding: scrollPadding ?? this.scrollPadding,
648649
selectionControls: selectionControls ?? this.selectionControls,
649-
dragStartBehavior: dragStartBehavior,
650+
dragStartBehavior: dragStartBehavior ?? this.dragStartBehavior,
650651
onTap: onTap ?? this.onTap,
651652
onTapOutside: onTapOutside ?? this.onTapOutside,
652653
decoration: decoration ?? this.decoration,
@@ -656,6 +657,8 @@ class FieldStyleTextField extends FieldStyle {
656657
scrollPhysics: scrollPhysics ?? this.scrollPhysics,
657658
autofillHints: autofillHints ?? this.autofillHints,
658659
clipBehavior: clipBehavior ?? this.clipBehavior,
660+
enableInteractiveSelection:
661+
enableInteractiveSelection ?? this.enableInteractiveSelection,
659662
passwordVisible: passwordVisible ?? this.passwordVisible,
660663
prefixIcon: prefixIcon ?? this.prefixIcon,
661664
backgroundColor: backgroundColor ?? this.backgroundColor,

lib/widgets/src/input_field.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class InputField extends StatefulWidget {
7979
final String? maskMatch;
8080
final bool? maskedReturnValue;
8181
final DecoratorTextField? decorator;
82+
final bool enableInteractiveSelection;
8283
final Field? field;
8384
final String? stateName;
8485

@@ -159,6 +160,7 @@ class InputField extends StatefulWidget {
159160
this.decorator,
160161
this.field,
161162
this.stateName,
163+
this.enableInteractiveSelection = true,
162164
});
163165

164166
/// CapitalizeWords Text Field - auto-capitalizes each word
@@ -236,6 +238,7 @@ class InputField extends StatefulWidget {
236238
String? stateName,
237239
bool? passwordVisible,
238240
bool? passwordViewable,
241+
bool enableInteractiveSelection = true,
239242
}) : this(
240243
key: key,
241244
controller: controller,
@@ -311,6 +314,7 @@ class InputField extends StatefulWidget {
311314
stateName: stateName,
312315
passwordVisible: passwordVisible,
313316
passwordViewable: passwordViewable,
317+
enableInteractiveSelection: enableInteractiveSelection,
314318
);
315319

316320
InputField.fromFieldStyleText({
@@ -399,6 +403,7 @@ class InputField extends StatefulWidget {
399403
maskMatch: style?.maskMatch,
400404
maskedReturnValue: style?.maskedReturnValue,
401405
decorator: style?.decorator,
406+
enableInteractiveSelection: style?.enableInteractiveSelection ?? true,
402407
);
403408

404409
/// Password Text Field - obscured by default with visibility toggle
@@ -477,6 +482,7 @@ class InputField extends StatefulWidget {
477482
bool? maskedReturnValue,
478483
DecoratorTextField? decorator,
479484
String? stateName,
485+
bool enableInteractiveSelection = true,
480486
}) : this(
481487
key: key,
482488
controller: controller,
@@ -552,6 +558,7 @@ class InputField extends StatefulWidget {
552558
maskedReturnValue: maskedReturnValue,
553559
decorator: decorator,
554560
stateName: stateName,
561+
enableInteractiveSelection: enableInteractiveSelection,
555562
);
556563

557564
/// Email Address Text Field - email keyboard with autofocus
@@ -630,6 +637,7 @@ class InputField extends StatefulWidget {
630637
bool? maskedReturnValue,
631638
DecoratorTextField? decorator,
632639
String? stateName,
640+
bool enableInteractiveSelection = true,
633641
}) : this(
634642
key: key,
635643
controller: controller,
@@ -705,6 +713,7 @@ class InputField extends StatefulWidget {
705713
maskedReturnValue: maskedReturnValue,
706714
decorator: decorator,
707715
stateName: stateName,
716+
enableInteractiveSelection: enableInteractiveSelection,
708717
);
709718

710719
/// Copy with method
@@ -783,6 +792,7 @@ class InputField extends StatefulWidget {
783792
String? maskMatch,
784793
bool? maskedReturnValue,
785794
DecoratorTextField? decorator,
795+
bool? enableInteractiveSelection,
786796
}) {
787797
return InputField(
788798
labelText: labelText ?? this.labelText,
@@ -857,6 +867,8 @@ class InputField extends StatefulWidget {
857867
maskMatch: maskMatch ?? this.maskMatch,
858868
maskedReturnValue: maskedReturnValue ?? this.maskedReturnValue,
859869
decorator: decorator ?? this.decorator,
870+
enableInteractiveSelection:
871+
enableInteractiveSelection ?? this.enableInteractiveSelection,
860872
);
861873
}
862874

@@ -981,6 +993,7 @@ class InputField extends StatefulWidget {
981993
maskMatch: maskMatch,
982994
maskedReturnValue: maskedReturnValue,
983995
decorator: decorator,
996+
enableInteractiveSelection: enableInteractiveSelection,
984997
);
985998
}
986999

@@ -1353,6 +1366,7 @@ class _InputFieldState extends NyState<InputField> {
13531366
scrollPhysics: widget.scrollPhysics,
13541367
autofillHints: widget.autofillHints,
13551368
clipBehavior: widget.clipBehavior,
1369+
enableInteractiveSelection: widget.enableInteractiveSelection,
13561370
);
13571371

13581372
if (widget.header != null || widget.footer != null) {

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: nylo_support
22
description: Support library for the Nylo framework. This library supports routing, widgets, localization, cli, storage and more.
3-
version: 7.9.1
3+
version: 7.10.0
44
homepage: https://nylo.dev
55
repository: https://github.com/nylo-core/support/tree/7.x
66
issue_tracker: https://github.com/nylo-core/support/issues

0 commit comments

Comments
 (0)