No description
Find a file
2026-03-09 09:39:16 +02:00
assets README file updates 2026-03-09 09:39:16 +02:00
example first commit for mih package toolkit 2026-03-06 15:38:41 +02:00
lib first commit for mih package toolkit 2026-03-06 15:38:41 +02:00
test first commit for mih package toolkit 2026-03-06 15:38:41 +02:00
.flutter-plugins-dependencies left overs 2026-03-06 15:46:40 +02:00
.gitignore left overs 2026-03-06 15:46:40 +02:00
analysis_options.yaml flutter package template 2026-03-05 11:51:42 +02:00
CHANGELOG.md flutter package template 2026-03-05 11:51:42 +02:00
LICENSE first commit for mih package toolkit 2026-03-06 15:38:41 +02:00
mih_package_toolkit.iml first commit for mih package toolkit 2026-03-06 15:38:41 +02:00
pubspec.lock first commit for mih package toolkit 2026-03-06 15:38:41 +02:00
pubspec.yaml README file updates 2026-03-09 09:39:16 +02:00
README.md README file updates 2026-03-09 09:39:16 +02:00

mih_package_toolkit

A comprehensive UI toolkit and utility library specifically designed to help developers build MIH Packages for the MIH Project ecosystem.

This toolkit provides a curated set of widgets, forms, and design utilities-ranging from custom buttons and input fields to complex layout components like floating menus and package windows.

Features

This toolkit provides everything you need to maintain visual and functional consistency within the MIH ecosystem:

  • Form Elements: Includes MihButton, MihForm, MihTextFormField, MihDateField, MihTimeField, and MihDropdownField, MihSearchBar, for streamlined data entry.
  • Navigation & Layout: Complex structural components like MihPackage, MihPackageTitle, MihPackageAction, MihPackageTools, MihPackageToolBody, MihPackageWindow, MihSingleChildScroll, and MihFloatingMenu, .
  • Feedback & Progress: Pre-styled MihSnackBar and MihLoadingCircle for user interaction.
  • Design Tokens: Built-in access to MihColors and MihIcons to ensure brand compliance.
  • Specialized Controls: Widgets like MihNumericStepper, MihRadioOptions, and MihToggle.

Demo

MIH Package Demo

Getting started

To use this library, Add the package to your pubspec.yaml:

flutter pub add mih_package_toolkit

and simply add the import to your Dart file:

import 'package:mih_package_toolkit/mih_package_toolkit.dart';

Usage

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

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

  @override
  State<ExamplePackage> createState() => _ExamplePackageState();
}

class _ExamplePackageState extends State<ExamplePackage> {
  int selectedbodyIndex = 0; // Important for state management of the body

  @override
  Widget build(BuildContext context) {
    return MihPackage(
      packageActionButton: actionButton(),
      packageTools: tools(),
      packageToolBodies: toolBodies(),
      packageToolTitles: appToolTitles(),
      selectedBodyIndex: selectedbodyIndex,
      onIndexChange: (newIndex) {
        setState(() {
          selectedbodyIndex = newIndex;
        });
      },
    );
  }

  Widget actionButton() {
    return MihPackageAction(
      icon: Icon(Icons.arrow_back),
      iconSize: 35,
      onTap: () {
        Navigator.pop(context);
      },
    );
  }

  List<String> appToolTitles() {
    List<String> toolTitles = ["Tool 1", "Tool 2"];
    return toolTitles;
  }

  MihPackageTools tools() {
    Map<Widget, void Function()?> temp = {};
    temp[const Icon(Icons.calculate)] = () {
      setState(() {
        selectedbodyIndex = 0;
      });
    };
    temp[const Icon(Icons.money)] = () {
      setState(() {
        selectedbodyIndex = 1;
      });
    };
    return MihPackageTools(tools: temp, selectedIndex: selectedbodyIndex);
  }

  List<Widget> toolBodies() {
    return [
      MihPackageToolBody(
        backgroundColor: MihColors.primary(),
        bodyItem: Center(child: Text("Tool Body One")),
      ),
      MihPackageToolBody(
        backgroundColor: MihColors.secondary(),
        bodyItem: Center(child: Text("Tool Body Two")),
      ),
    ];
  }
}

Additional information

For more details about MIH Package Toolkit, including usage instructions and updates, please visit the MIH Gitea repository.

Contributing

Contributions are welcome! If you'd like to improve the package, please fork the repository, make your changes, and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

Reporting Issues/ Feature Requests

If you encounter any bugs or have feature requests, please log an issue on the MIH Gitea Issues page. Provide as much detail as possible to help us address the problem promptly.

Support and Response

We strive to respond to issues and pull requests in a timely manner. While this package is maintained voluntarily, we appreciate your patience and community involvement.

If you would like to support the MIH development team directly, please feel free to contribute to the MIH Project via DonaHub

Thank you for using the MIH Package Toolkit!