waveui 1.0.0 copy "waveui: ^1.0.0" to clipboard
waveui: ^1.0.0 copied to clipboard

retracted

An enterprise-class package of Flutter components for all devices.

example/lib/main.dart

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

import 'package:waveui/waveui.dart';

import 'package:waveui_example/sandbox.dart';
import 'package:wakelock_plus/wakelock_plus.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  WakelockPlus.enable();

  runApp(const Application());
}

const List<Widget> _pages = [
  Text('Home'),
  Text('Categories'),
  Text('Search'),
  Text('Settings'),
  Sandbox(),
];

class Application extends StatefulWidget {
  const Application({super.key});

  @override
  State<Application> createState() => _ApplicationState();
}

class _ApplicationState extends State<Application> with SingleTickerProviderStateMixin {
  int index = 4;
  WaveRadioSelectGroupController<String> selectGroupController = WaveRadioSelectGroupController();
  late WavePopoverController controller;

  @override
  void initState() {
    super.initState();
    controller = WavePopoverController(vsync: this);
  }

  @override
  Widget build(BuildContext context) => MaterialApp(
        localizationsDelegates: WaveLocalizations.localizationsDelegates,
        supportedLocales: WaveLocalizations.supportedLocales,
        builder: (context, child) {
          SystemChrome.setSystemUIOverlayStyle(
            const SystemUiOverlayStyle(
              statusBarColor: Colors.white,
              statusBarIconBrightness: Brightness.dark,
              systemNavigationBarColor: Colors.white,
              systemNavigationBarIconBrightness: Brightness.dark,
            ),
          );
          return WaveTheme(
            data: WaveThemes.red.light,
            child: child!,
          );
        },
        debugShowCheckedModeBanner: false,
        home: WaveScaffold(
          header: WaveHeader(
            title: const Text('Example'),
            actions: [
              WaveHeaderAction(
                autofocus: true,
                icon: const WaveIcon.data(FluentIcons.add_24_regular),
                onPress: controller.toggle,
              ),
            ],
          ),
          content: _pages[index],
          footer: WaveBottomNavigationBar(
            index: index,
            onChange: (index) => setState(() => this.index = index),
            children: const [
              WaveBottomNavigationBarItem(
                icon: WaveIcon.data(FluentIcons.home_24_regular),
                label: Text('Home'),
              ),
              WaveBottomNavigationBarItem(
                icon: WaveIcon.data(FluentIcons.grid_24_regular),
                label: Text('Categories'),
              ),
              WaveBottomNavigationBarItem(
                icon: WaveIcon.data(FluentIcons.search_24_regular),
                label: Text('Search'),
              ),
              WaveBottomNavigationBarItem(
                icon: WaveIcon.data(FluentIcons.settings_24_regular),
                label: Text('Settings'),
              ),
              WaveBottomNavigationBarItem(
                icon: WaveIcon.data(FluentIcons.box_24_regular),
                label: Text('Sandbox'),
              ),
            ],
          ),
        ),
      );
}