kname 0.1.0 copy "kname: ^0.1.0" to clipboard
kname: ^0.1.0 copied to clipboard

A comprehensive Khmer name generation package for Dart and Flutter. Generate culturally rich Khmer names with support for gender filtering, romanization, origin, meaning, category, and more.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:kname/kname.dart';

void main() async {
  // Ensure Flutter binding is initialized before loading assets
  WidgetsFlutterBinding.ensureInitialized();

  // Load the generator from local JSON asset or fallback to default names
  final generator = await KnamGenerator.fromAsset();

  // Generate a random name
  final randomName = generator.generate();

  // Generate a popular female name
  final femaleName = generator.generate(
    gender: Gender.female,
    onlyPopular: true,
  );

  // Generate multiple modern male names
  final modernMaleNames = generator.generateMultiple(
    3,
    gender: Gender.male,
    allowedCategories: ['modern'],
  );

  // Get dataset statistics
  final stats = generator.getStatistics();

  // Output the results
  runApp(KnameExampleApp(
    randomName: randomName,
    femaleName: femaleName,
    modernMaleNames: modernMaleNames,
    statistics: stats,
  ));
}

/// A simple Flutter app demonstrating usage of the `kname` package.
class KnameExampleApp extends StatelessWidget {
  final KhmerName randomName;
  final KhmerName femaleName;
  final List<KhmerName> modernMaleNames;
  final KnamStatistics statistics;

  const KnameExampleApp({
    super.key,
    required this.randomName,
    required this.femaleName,
    required this.modernMaleNames,
    required this.statistics,
  });

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Kname Example',
      home: Scaffold(
        appBar: AppBar(title: const Text('Kname Generator Example')),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: ListView(
            children: [
              _sectionTitle('🎲 Random Name'),
              _nameCard(randomName),
              _sectionTitle('👧 Popular Female Name'),
              _nameCard(femaleName),
              _sectionTitle('👦 Modern Male Names'),
              ...modernMaleNames.map(_nameCard).toList(),
              _sectionTitle('📊 Statistics'),
              _statsCard(statistics),
            ],
          ),
        ),
      ),
    );
  }

  Widget _sectionTitle(String title) {
    return Padding(
      padding: const EdgeInsets.symmetric(vertical: 12.0),
      child: Text(title,
          style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
    );
  }

  Widget _nameCard(KhmerName name) {
    return Card(
      child: ListTile(
        title: Text(name.fullName, style: const TextStyle(fontSize: 18)),
        subtitle: Text(
          '${name.romanizedName} (${name.gender.name})\n'
          'Meaning: ${name.meaning}\n'
          'Origin: ${name.origin}, Category: ${name.category}',
        ),
        isThreeLine: true,
      ),
    );
  }

  Widget _statsCard(KnamStatistics stats) {
    return Card(
      child: Padding(
        padding: const EdgeInsets.all(12.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Text('Total names: ${stats.totalNames}'),
            Text('Male names: ${stats.maleNames}'),
            Text('Female names: ${stats.femaleNames}'),
            Text('Unisex names: ${stats.unisexNames}'),
            Text('Popular names: ${stats.popularNames}'),
            const SizedBox(height: 8),
            const Text('Categories:'),
            ...stats.categories.entries.map(
              (e) => Text('- ${e.key}: ${e.value}'),
            ),
          ],
        ),
      ),
    );
  }
}
3
likes
150
points
16
downloads

Publisher

verified publishersovanken.space

Weekly Downloads

A comprehensive Khmer name generation package for Dart and Flutter. Generate culturally rich Khmer names with support for gender filtering, romanization, origin, meaning, category, and more.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

cupertino_icons, flutter

More

Packages that depend on kname