pukaad_ui_lib 1.1.9 copy "pukaad_ui_lib: ^1.1.9" to clipboard
pukaad_ui_lib: ^1.1.9 copied to clipboard

pukaad_ui is a Flutter package providing reusable UI components, custom input fields, and Thai font support.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:pukaad_ui_lib/theme/theme_scheme.dart';
import 'package:pukaad_ui_lib/utility/responsive/responsive_wrapper.dart';
import 'package:pukaad_ui_example/router.dart';
import 'package:shadcn_ui/shadcn_ui.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Lock orientation to portrait mode only
  await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

  try {
    await dotenv.load(fileName: ".env");
  } catch (e) {
    debugPrint("Warning: .env file not found, skipping load.");
  }

  runApp(const ProviderScope(child: MyApp()));
}

class MyApp extends ConsumerWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final router = ref.watch(goRouterProvider);

    return ScreenUtilInit(
      designSize: const Size(375, 812),
      minTextAdapt: true,
      splitScreenMode: true,
      builder: (_, child) {
        return ShadApp.router(
          debugShowCheckedModeBanner: false,
          title: "Pukaad UI Docs",
          theme: lightThemeData,
          darkTheme: darkThemeData,
          themeMode: ThemeMode.light,
          routerConfig: router,
          locale: const Locale('th', 'TH'),
          builder: (context, child) {
            return ResponsiveWrapper(child: child ?? const SizedBox());
          },
        );
      },
    );
  }
}