diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2f97417..acc0a99 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -97,4 +97,8 @@
### v2.2.0
-Add initial autofocus parameter
\ No newline at end of file
+Add initial autofocus parameter
+
+### v2.3.0
+
+Flutter 2.0 migration
\ No newline at end of file
diff --git a/README.md b/README.md
index 846e7d2..ba2442e 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
alt="Platform" />
-
+
@@ -42,7 +42,7 @@ This package provides visually beautiful UX through animation of credit card inf
```dart
dependencies:
- credit_card_input_form: ^2.2.0
+ credit_card_input_form: ^2.3.0
```
2. Import the package
diff --git a/example/pubspec.lock b/example/pubspec.lock
index d430d72..23b0e79 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -7,49 +7,49 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.5.0-nullsafety"
+ version: "2.5.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety"
+ version: "2.1.0"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.2"
+ version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety"
+ version: "1.2.0"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety"
+ version: "1.1.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
- version: "1.15.0-nullsafety.2"
+ version: "1.15.0"
credit_card_input_form:
dependency: "direct main"
description:
path: ".."
relative: true
source: path
- version: "2.2.0"
+ version: "2.3.0"
cupertino_icons:
dependency: "direct main"
description:
@@ -63,14 +63,14 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety"
+ version: "1.2.0"
flip_card:
dependency: transitive
description:
name: flip_card
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.4"
+ version: "0.5.0"
flutter:
dependency: "direct main"
description: flutter
@@ -87,35 +87,35 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.10-nullsafety"
+ version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.2"
+ version: "1.3.0"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.4"
+ version: "1.0.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety"
+ version: "1.8.0"
provider:
dependency: transitive
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
- version: "4.3.2+2"
+ version: "5.0.0"
sky_engine:
dependency: transitive
description: flutter
@@ -127,56 +127,56 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety"
+ version: "1.8.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
- version: "1.10.0-nullsafety"
+ version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety"
+ version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety"
+ version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety"
+ version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.19-nullsafety"
+ version: "0.2.19"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.2"
+ version: "1.3.0"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.2"
+ version: "2.1.0"
sdks:
- dart: ">=2.10.0-0.0.dev <2.10.0"
+ dart: ">=2.12.0 <3.0.0"
flutter: ">=1.16.0"
diff --git a/lib/components/card_name.dart b/lib/components/card_name.dart
index 9654908..092a6bd 100644
--- a/lib/components/card_name.dart
+++ b/lib/components/card_name.dart
@@ -8,7 +8,7 @@ class CardName extends StatelessWidget {
@override
Widget build(BuildContext context) {
final defaultName =
- Provider.of(context).getCaption('NAME_SURNAME').toUpperCase();
+ Provider.of(context).getCaption('NAME_SURNAME')!.toUpperCase();
final String name =
Provider.of(context).cardName.toUpperCase();
diff --git a/lib/components/card_sign.dart b/lib/components/card_sign.dart
index 5eea180..7108795 100644
--- a/lib/components/card_sign.dart
+++ b/lib/components/card_sign.dart
@@ -5,7 +5,7 @@ import 'package:credit_card_input_form/constants/constanst.dart';
class CardSign extends StatelessWidget {
const CardSign({
- Key key,
+ Key? key,
}) : super(key: key);
@override
diff --git a/lib/components/card_valid.dart b/lib/components/card_valid.dart
index e1f393f..5a206b2 100644
--- a/lib/components/card_valid.dart
+++ b/lib/components/card_valid.dart
@@ -10,7 +10,7 @@ class CardValid extends StatelessWidget {
String inputCardValid = Provider.of(context).cardValid;
var defaultCardValid = Provider.of(context)
- .getCaption('MM_YY')
+ .getCaption('MM_YY')!
.substring(inputCardValid.length);
inputCardValid = inputCardValid.replaceAll("/", "");
diff --git a/lib/components/front_card_view.dart b/lib/components/front_card_view.dart
index 285ced7..969e475 100644
--- a/lib/components/front_card_view.dart
+++ b/lib/components/front_card_view.dart
@@ -41,7 +41,7 @@ class FrontCardView extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
- captions.getCaption('CARDHOLDER_NAME').toUpperCase(),
+ captions.getCaption('CARDHOLDER_NAME')!.toUpperCase(),
style: kTextStyle,
),
SizedBox(
@@ -61,7 +61,7 @@ class FrontCardView extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
- captions.getCaption('VALID_THRU').toUpperCase(),
+ captions.getCaption('VALID_THRU')!.toUpperCase(),
style: kTextStyle,
),
SizedBox(
diff --git a/lib/components/input_view_pager.dart b/lib/components/input_view_pager.dart
index 5e92dc3..a01eb35 100644
--- a/lib/components/input_view_pager.dart
+++ b/lib/components/input_view_pager.dart
@@ -46,7 +46,7 @@ class _InputViewPagerState extends State {
Provider.of(context).addListener(() {
int index = Provider.of(context, listen: false)
- .getCurrentState()
+ .getCurrentState()!
.index;
if (index < focusNodes.length) {
@@ -78,14 +78,14 @@ class _InputViewPagerState extends State {
}
class InputForm extends StatefulWidget {
- final String title;
- final int index;
- final PageController pageController;
- final FocusNode focusNode;
+ final String? title;
+ final int? index;
+ final PageController? pageController;
+ final FocusNode? focusNode;
final isAutoFocus;
InputForm(
- {@required this.title,
+ {required this.title,
this.index,
this.pageController,
this.focusNode,
@@ -98,13 +98,13 @@ class InputForm extends StatefulWidget {
class _InputFormState extends State {
var opacicy = 0.3;
- int maxLength;
- TextInputType textInputType;
+ int? maxLength;
+ TextInputType? textInputType;
TextEditingController textController = TextEditingController();
void onChange() {
setState(() {
- if (widget.index == widget.pageController.page.round()) {
+ if (widget.index == widget.pageController!.page!.round()) {
opacicy = 1;
} else {
opacicy = 0.3;
@@ -112,21 +112,21 @@ class _InputFormState extends State {
});
}
- String value;
+ String? value;
@override
void initState() {
super.initState();
int index = Provider.of(context, listen: false)
- .getCurrentState()
+ .getCurrentState()!
.index;
if (widget.index == index) {
opacicy = 1;
}
- widget.pageController.addListener(onChange);
+ widget.pageController!.addListener(onChange);
if (widget.index == InputState.NUMBER.index) {
maxLength = 19;
@@ -152,7 +152,7 @@ class _InputFormState extends State {
@override
void dispose() {
- widget.pageController.removeListener(onChange);
+ widget.pageController!.removeListener(onChange);
super.dispose();
}
@@ -161,7 +161,7 @@ class _InputFormState extends State {
@override
Widget build(BuildContext context) {
- String textValue = "";
+ String? textValue = "";
if (widget.index == InputState.NUMBER.index) {
textValue =
@@ -177,7 +177,7 @@ class _InputFormState extends State {
}
int index = Provider.of(context, listen: false)
- .getCurrentState()
+ .getCurrentState()!
.index;
return Opacity(
@@ -187,7 +187,7 @@ class _InputFormState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
- widget.title,
+ widget.title!,
style: TextStyle(fontSize: 12, color: Colors.black38),
),
SizedBox(
@@ -200,7 +200,7 @@ class _InputFormState extends State {
..value = textController.value.copyWith(
text: textValue,
selection: TextSelection.fromPosition(
- TextPosition(offset: textValue.length),
+ TextPosition(offset: textValue!.length),
),
),
focusNode: widget.focusNode,
diff --git a/lib/components/reset_button.dart b/lib/components/reset_button.dart
index 88251f3..1d9389d 100644
--- a/lib/components/reset_button.dart
+++ b/lib/components/reset_button.dart
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class ResetButton extends StatefulWidget {
- final Function onTap;
+ final Function? onTap;
final decoration;
final textStyle;
@@ -21,7 +21,7 @@ class _ResetButtonState extends State {
final captions = Provider.of(context);
return GestureDetector(
- onTap: widget.onTap,
+ onTap: widget.onTap as void Function()?,
onTapDown: (_) {
setState(() {
pressed = true;
@@ -46,7 +46,7 @@ class _ResetButtonState extends State {
Icons.refresh,
color: Colors.white,
),
- Text(captions.getCaption('RESET'), style: widget.textStyle)
+ Text(captions.getCaption('RESET')!, style: widget.textStyle)
],
),
)),
diff --git a/lib/components/round_button.dart b/lib/components/round_button.dart
index 3089538..1471e9c 100644
--- a/lib/components/round_button.dart
+++ b/lib/components/round_button.dart
@@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
import '../constants/constanst.dart';
class RoundButton extends StatefulWidget {
- final Function onTap;
+ final Function? onTap;
final buttonTitle;
final decoration;
final textStyle;
@@ -23,7 +23,7 @@ class _RoundButtonState extends State {
@override
Widget build(BuildContext context) {
return GestureDetector(
- onTap: widget.onTap,
+ onTap: widget.onTap as void Function()?,
onTapDown: (_) {
final currentState = Provider.of(context, listen: false)
.getCurrentState();
diff --git a/lib/components/yellow_border.dart b/lib/components/yellow_border.dart
index 1666cb8..456c989 100644
--- a/lib/components/yellow_border.dart
+++ b/lib/components/yellow_border.dart
@@ -58,7 +58,7 @@ class YellowBorder extends StatelessWidget {
return align;
}
- double getHeight(InputState currentState) {
+ double getHeight(InputState? currentState) {
var height = 0.0;
switch (currentState) {
case InputState.NUMBER:
@@ -98,7 +98,7 @@ class YellowBorder extends StatelessWidget {
return width;
}
- getMargin(InputState currentState) {
+ getMargin(InputState? currentState) {
var lefrMargin = 0.0;
var rightMargin = 0.0;
switch (currentState) {
diff --git a/lib/constants/captions.dart b/lib/constants/captions.dart
index 59ca2da..47c49e0 100644
--- a/lib/constants/captions.dart
+++ b/lib/constants/captions.dart
@@ -12,7 +12,7 @@ class Captions {
'RESET': 'Reset',
};
- Map _captions;
+ late Map _captions;
Captions({customCaptions}) {
_captions = {};
@@ -20,7 +20,7 @@ class Captions {
if (customCaptions != null) _captions.addAll(customCaptions);
}
- String getCaption(String key) {
+ String? getCaption(String key) {
return _captions.containsKey(key) ? _captions[key] : key;
}
}
diff --git a/lib/credit_card_input_form.dart b/lib/credit_card_input_form.dart
index 1e3b4da..ab9d839 100644
--- a/lib/credit_card_input_form.dart
+++ b/lib/credit_card_input_form.dart
@@ -42,12 +42,12 @@ class CreditCardInputForm extends StatelessWidget {
this.prevButtonDecoration = defaultNextPrevButtonDecoration,
this.resetButtonDecoration = defaultResetButtonDecoration});
- final Function onStateChange;
- final double cardHeight;
- final BoxDecoration frontCardDecoration;
- final BoxDecoration backCardDecoration;
+ final Function? onStateChange;
+ final double? cardHeight;
+ final BoxDecoration? frontCardDecoration;
+ final BoxDecoration? backCardDecoration;
final bool showResetButton;
- final Map customCaptions;
+ final Map? customCaptions;
final BoxDecoration nextButtonDecoration;
final BoxDecoration prevButtonDecoration;
final BoxDecoration resetButtonDecoration;
@@ -85,7 +85,8 @@ class CreditCardInputForm extends StatelessWidget {
),
],
child: CreditCardInputImpl(
- onCardModelChanged: onStateChange,
+ onCardModelChanged:
+ onStateChange as void Function(InputState, CardInfo)?,
backDecoration: backCardDecoration,
frontDecoration: frontCardDecoration,
cardHeight: cardHeight,
@@ -104,18 +105,18 @@ class CreditCardInputForm extends StatelessWidget {
}
class CreditCardInputImpl extends StatefulWidget {
- final CardInfoCallback onCardModelChanged;
- final double cardHeight;
- final BoxDecoration frontDecoration;
- final BoxDecoration backDecoration;
- final bool showResetButton;
- final BoxDecoration nextButtonDecoration;
- final BoxDecoration prevButtonDecoration;
- final BoxDecoration resetButtonDecoration;
- final TextStyle nextButtonTextStyle;
- final TextStyle prevButtonTextStyle;
- final TextStyle resetButtonTextStyle;
- final InputState initialCardState;
+ final CardInfoCallback? onCardModelChanged;
+ final double? cardHeight;
+ final BoxDecoration? frontDecoration;
+ final BoxDecoration? backDecoration;
+ final bool? showResetButton;
+ final BoxDecoration? nextButtonDecoration;
+ final BoxDecoration? prevButtonDecoration;
+ final BoxDecoration? resetButtonDecoration;
+ final TextStyle? nextButtonTextStyle;
+ final TextStyle? prevButtonTextStyle;
+ final TextStyle? resetButtonTextStyle;
+ final InputState? initialCardState;
final initialAutoFocus;
CreditCardInputImpl(
@@ -138,7 +139,7 @@ class CreditCardInputImpl extends StatefulWidget {
}
class _CreditCardInputImplState extends State {
- PageController pageController;
+ PageController? pageController;
final GlobalKey cardKey = GlobalKey();
@@ -155,7 +156,7 @@ class _CreditCardInputImplState extends State {
pageController = PageController(
viewportFraction: 0.92,
- initialPage: widget.initialCardState.index,
+ initialPage: widget.initialCardState!.index,
);
}
@@ -177,7 +178,7 @@ class _CreditCardInputImplState extends State {
_currentState = newState;
Future(() {
- widget.onCardModelChanged(
+ widget.onCardModelChanged!(
_currentState,
CardInfo(
name: name, cardNumber: cardNumber, validate: valid, cvv: cvv));
@@ -187,8 +188,8 @@ class _CreditCardInputImplState extends State {
double cardWidth =
MediaQuery.of(context).size.width - (2 * cardHorizontalpadding);
- double cardHeight;
- if (widget.cardHeight != null && widget.cardHeight > 0) {
+ double? cardHeight;
+ if (widget.cardHeight != null && widget.cardHeight! > 0) {
cardHeight = widget.cardHeight;
} else {
cardHeight = cardWidth / cardRatio;
@@ -228,7 +229,7 @@ class _CreditCardInputImplState extends State {
Align(
alignment: Alignment.center,
child: AnimatedOpacity(
- opacity: widget.showResetButton &&
+ opacity: widget.showResetButton! &&
_currentState == InputState.DONE
? 1
: 0,
@@ -239,18 +240,18 @@ class _CreditCardInputImplState extends State {
decoration: widget.resetButtonDecoration,
textStyle: widget.resetButtonTextStyle,
onTap: () {
- if (!widget.showResetButton) {
+ if (!widget.showResetButton!) {
return;
}
Provider.of(context, listen: false)
.moveFirstState();
- pageController.animateToPage(0,
+ pageController!.animateToPage(0,
duration: Duration(milliseconds: 300),
curve: Curves.easeIn);
- if (!cardKey.currentState.isFront) {
- cardKey.currentState.toggleCard();
+ if (!cardKey.currentState!.isFront) {
+ cardKey.currentState!.toggleCard();
}
},
),
@@ -274,13 +275,13 @@ class _CreditCardInputImplState extends State {
}
if (InputState.NUMBER != _currentState) {
- pageController.previousPage(
+ pageController!.previousPage(
duration: Duration(milliseconds: 300),
curve: Curves.easeIn);
}
if (InputState.CVV == _currentState) {
- cardKey.currentState.toggleCard();
+ cardKey.currentState!.toggleCard();
}
Provider.of(context, listen: false)
.movePrevState();
@@ -301,13 +302,13 @@ class _CreditCardInputImplState extends State {
: captions.getCaption('NEXT'),
onTap: () {
if (InputState.CVV != _currentState) {
- pageController.nextPage(
+ pageController!.nextPage(
duration: Duration(milliseconds: 300),
curve: Curves.easeIn);
}
if (InputState.VALIDATE == _currentState) {
- cardKey.currentState.toggleCard();
+ cardKey.currentState!.toggleCard();
}
Provider.of(context, listen: false)
diff --git a/lib/model/card_info.dart b/lib/model/card_info.dart
index 90691f4..2e4e37f 100644
--- a/lib/model/card_info.dart
+++ b/lib/model/card_info.dart
@@ -1,8 +1,8 @@
class CardInfo {
- String cardNumber;
- String name;
- String validate;
- String cvv;
+ String? cardNumber;
+ String? name;
+ String? validate;
+ String? cvv;
CardInfo({this.cardNumber, this.name, this.validate, this.cvv});
diff --git a/lib/provider/state_provider.dart b/lib/provider/state_provider.dart
index c1ecfd9..67b49ab 100644
--- a/lib/provider/state_provider.dart
+++ b/lib/provider/state_provider.dart
@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:credit_card_input_form/constants/constanst.dart';
class StateProvider with ChangeNotifier {
- InputState _currentState;
+ InputState? _currentState;
StateProvider(initValue) {
_currentState = initValue;
@@ -17,8 +17,8 @@ class StateProvider with ChangeNotifier {
];
void moveNextState() {
- if (_currentState.index < _states.length - 1) {
- _currentState = _states[_currentState.index + 1];
+ if (_currentState!.index < _states.length - 1) {
+ _currentState = _states[_currentState!.index + 1];
notifyListeners();
}
}
@@ -29,13 +29,13 @@ class StateProvider with ChangeNotifier {
}
void movePrevState() {
- if (_currentState.index > 0) {
- _currentState = _states[_currentState.index - 1];
+ if (_currentState!.index > 0) {
+ _currentState = _states[_currentState!.index - 1];
notifyListeners();
}
}
- InputState getCurrentState() {
+ InputState? getCurrentState() {
return _currentState;
}
}
diff --git a/pubspec.lock b/pubspec.lock
index 8b95eaa..c3f1fab 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,56 +7,56 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.5.0-nullsafety"
+ version: "2.5.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety"
+ version: "2.1.0"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety.2"
+ version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety"
+ version: "1.2.0"
clock:
dependency: transitive
description:
name: clock
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety"
+ version: "1.1.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
- version: "1.15.0-nullsafety.2"
+ version: "1.15.0"
fake_async:
dependency: transitive
description:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety"
+ version: "1.2.0"
flip_card:
dependency: "direct main"
description:
name: flip_card
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.4"
+ version: "0.5.0"
flutter:
dependency: "direct main"
description: flutter
@@ -73,35 +73,35 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.10-nullsafety"
+ version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.2"
+ version: "1.3.0"
nested:
dependency: transitive
description:
name: nested
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.4"
+ version: "1.0.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety"
+ version: "1.8.0"
provider:
dependency: "direct main"
description:
name: provider
url: "https://pub.dartlang.org"
source: hosted
- version: "4.3.2+2"
+ version: "5.0.0"
sky_engine:
dependency: transitive
description: flutter
@@ -113,56 +113,56 @@ packages:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.0-nullsafety"
+ version: "1.8.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
- version: "1.10.0-nullsafety"
+ version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety"
+ version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0-nullsafety"
+ version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0-nullsafety"
+ version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.19-nullsafety"
+ version: "0.2.19"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.0-nullsafety.2"
+ version: "1.3.0"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0-nullsafety.2"
+ version: "2.1.0"
sdks:
- dart: ">=2.10.0-0.0.dev <2.10.0"
+ dart: ">=2.12.0 <3.0.0"
flutter: ">=1.16.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 0773f14..256183a 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,18 +1,18 @@
name: credit_card_input_form
description: This package provides visually beautiful UX through animation of credit card information input form.
-version: 2.2.0
+version: 2.3.0
homepage: https://github.com/Origogi/Flutter-Credit-Card-Input-Form
environment:
- sdk: ">=2.7.0 <3.0.0"
+ sdk: '>=2.12.0 <3.0.0'
flutter: ">=1.10.0"
dependencies:
flutter:
sdk: flutter
- provider: ^4.3.2+2
- flip_card: ^0.4.4
+ provider: ^5.0.0
+ flip_card: ^0.5.0
dev_dependencies: