Skip to content

Installation

The Vyuh Property System is a standalone Flutter package with no dependency on vyuh_core. It can be used in any Flutter application that needs type-safe, dynamic property configuration.

Requirements

Authenticate with pub.vyuh.tech first

`vyuh_property_system` is hosted on the private pub.vyuh.tech registry. Before running pub get, register a Bearer token issued by Vyuh Technologies based on your plan.

Run the one-time setup:

dart pub token add https://pub.vyuh.tech

Don't have a token yet? Email ask@vyuh.tech to request one. For full details (CI, Docker, rotation, troubleshooting), see the Pub Token Setup guide.

Add Dependencies

Add vyuh_property_system  to your pubspec.yaml as a hosted dependency:

pubspec.yaml

Then resolve dependencies:

Setup

Import

A single import gives you access to all property types, validators, conditions, collections, and the registry:

dart
import 'package:vyuh_property_system/vyuh_property_system.dart';

Optional: reactive_forms Interop

If you need direct access to reactive_forms types (e.g., ReactiveTextField, FormControl, FormGroup), use the opt-in interop import:

dart
import 'package:vyuh_property_system/reactive_forms_interop.dart';

This exposes extension methods like control.formControl and collection.formGroup for advanced scenarios.

Dependencies

The property system has a minimal dependency footprint:

DependencyPurpose
flutterWidget framework for property editors
reactive_formsForm control abstraction (wrapped internally)

You do not need to import or configure reactive_forms yourself. The property system wraps it behind its own PropertyControl<T> abstraction.

Verify the Setup

Create a simple property to confirm everything works:

dart
import 'package:vyuh_property_system/vyuh_property_system.dart';

void main() {
  final title = StringProperty(
    key: 'title',
    label: 'Title',
    defaultValue: 'Hello',
    required: true,
  );

  print(title.value);      // Hello
  title.value = 'World';
  print(title.value);      // World
  print(title.hasChanged);  // true
  print(title.toJson());   // World
}

Next Steps