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
3 changes: 3 additions & 0 deletions .fvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"flutter": "3.47.1"
}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,6 @@ migrate_working_dir/
**/doc/api/
.dart_tool/
build/

# FVM Version Cache
.fvm/
16 changes: 16 additions & 0 deletions packages/pin_code_fields/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
## 10.0.0

### Breaking Changes ⚠️

Migrate to Flutter 3.47's standalone design-system packages.

- **Material / Cupertino imports**: `package:flutter/material.dart` and `package:flutter/cupertino.dart` are replaced with `package:material_ui/material_ui.dart` and `package:cupertino_ui/cupertino_ui.dart`.
- **New dependencies**: `material_ui` and `cupertino_ui` (the Flutter SDK still ships the old libraries in 3.47, but they are scheduled for deprecation).
- **Minimum SDK**: Dart `^3.12.0`, Flutter `>=3.44.0` (tested on Flutter 3.47.1 / Dart 3.13.1).

Apps that still import `package:flutter/material.dart` should either migrate with `dart fix --apply --code=migrate_design_widgets`, or wrap mixed trees with `MaterialUiCompatibilityBridge`. See [migration/10.0.0/MIGRATION_GUIDE.md](migration/10.0.0/MIGRATION_GUIDE.md).

### Features ✨

- **Flutter 3.47 support**: PIN fields now use the pub.dev `material_ui` / `cupertino_ui` 1.0 packages so Material types (`ThemeData`, `ColorScheme`, selection handles, context menus) stay in sync with the decoupled design system.

## 9.4.0

- **FIX**: suppress semantic hint and focused state when disabled (#427).
Expand Down
24 changes: 23 additions & 1 deletion packages/pin_code_fields/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,22 @@ Add to your `pubspec.yaml`:

```yaml
dependencies:
pin_code_fields: ^9.0.0
pin_code_fields: ^10.0.0
material_ui: ^1.0.0
```

Requires **Flutter 3.44+** (tested on **Flutter 3.47**). `pin_code_fields` now depends on the standalone [`material_ui`](https://pub.dev/packages/material_ui) and [`cupertino_ui`](https://pub.dev/packages/cupertino_ui) packages introduced in Flutter 3.47.

If you are still on `package:flutter/material.dart`, run:

```bash
dart fix --apply --code=migrate_design_widgets
```

### Quick Start - Material Design

```dart
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

MaterialPinField(
Expand All @@ -91,6 +101,7 @@ MaterialPinField(
For complete control over the UI, use the headless `PinInput`:

```dart
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

PinInput(
Expand Down Expand Up @@ -413,6 +424,17 @@ PinCellData(
)
```

## Migration from v9.x 🔄

v10.0.0 is a **major** release for Flutter 3.47: Material and Cupertino now live in standalone packages.

1. Upgrade Flutter (`flutter upgrade` to 3.47, or at least 3.44).
2. Bump the dependency to `pin_code_fields: ^10.0.0` and add `material_ui: ^1.0.0`.
3. Replace `package:flutter/material.dart` with `package:material_ui/material_ui.dart` (`dart fix --apply --code=migrate_design_widgets`).
4. If some of your dependencies still use the SDK Material library, wrap the app with `MaterialUiCompatibilityBridge`.

📖 **Full migration guide**: [migration/10.0.0/MIGRATION_GUIDE.md](https://github.com/adar2378/pin_code_fields/blob/main/packages/pin_code_fields/migration/10.0.0/MIGRATION_GUIDE.md)

## Migration from v8.x 🔄

Upgrading from v8.x? Here's a quick reference:
Expand Down
9 changes: 9 additions & 0 deletions packages/pin_code_fields/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
analyzer:
exclude:
- build/**
- android/**
- ios/**
- web/**
- windows/**
- macos/**
- linux/**
include: package:flutter_lints/flutter.yaml

linter:
Expand Down
9 changes: 9 additions & 0 deletions packages/pin_code_fields/example/analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
analyzer:
exclude:
- build/**
- android/**
- ios/**
- web/**
- windows/**
- macos/**
- linux/**
include: package:flutter_lints/flutter.yaml

linter:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Creative Cell Animations - Showcase headless architecture flexibility
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Custom Cursor - Different cursor styles
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Entry Animations - Compare all animation types
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Headless Builder - Completely custom UI
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Hints Demo - Hint characters and widgets
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Obscure Text Demo - Password mode with blink effect
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Separators Demo - Custom separators between cells
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Text Gradient - Apply gradient effects to PIN text
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Autofill Demo - SMS autofill and keyboard suggestions
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:flutter/services.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:flutter/services.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Form Validation - Using PIN fields with Form validation
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Basic Usage - Simplest example
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Controller Usage - Programmatic control
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Demo showing how to use MaterialPinThemeExtension for app-wide theming
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Color Customization - Comprehensive state-based theming
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Shadows Demo - Box shadows and elevation
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Shape Gallery - All 4 shapes side-by-side
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// All States Demo - Visual state machine
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Error State Demo - Error handling and display
Expand Down
2 changes: 1 addition & 1 deletion packages/pin_code_fields/example/lib/home_page.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';

// Use Cases
import 'use_cases/otp_verification_page.dart';
Expand Down
2 changes: 1 addition & 1 deletion packages/pin_code_fields/example/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

import 'home_page.dart';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Comprehensive Playground - Interactively customize all options
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// App Lock Screen - Full-screen PIN lock
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// Invite/Referral Code - Alphanumeric code input
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// OTP Verification - Stunning visual design
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:flutter/services.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// PIN Login - Authenticate with PIN
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:flutter/material.dart';
import 'package:material_ui/material_ui.dart';
import 'package:pin_code_fields/pin_code_fields.dart';

/// PIN Setup Flow - Two-step PIN creation
Expand Down
Loading