components/u_general_widgets library

Classes

UActionTile
Large tappable action: an icon badge, a title and a one-line explanation. Sized for gloved thumbs on a POS.
UAlertBanner
Tinted callout used for pre-entry checks, offline notices and any other inline warning.
UAvatar
Round profile picture with an initials fallback while loading or without a picture. UAvatar(url: user.avatar, name: user.fullName)
UCopyText
Text that copies itself (or copyValue) on tap and says "Copied". UCopyText("IR12 3456 …", copyValue: iban)
UEmptyState
"No data" message with optional icon, second line and action button. UEmptyState(icon: Icons.inbox, title: "No orders yet", action: UButton(title: "Shop", onTap: shop))
UErrorRetry
"Error loading data" text with a Try again button. UErrorRetry(onTap: reload)
UGlassCard
Frosted-glass card (blurs what is behind it). UGlassCard(child: content)
UHeaderCard
Card with an icon, title and subtitle (page intro). UHeaderCard(icon: Icons.info, title: "Hi", subtitle: "Welcome")
UIconBackground
Icon in a tinted rounded square. UIconBackground(Icons.wallet, color: Colors.teal)
UImageBackground
Image/icon asset in a tinted rounded square.
UInfoRow
Label on one side, value on the other. The building block of receipts, bills and detail sheets.
UListTile
Card list row with a tinted icon, title, subtitle and arrow. UListTile(icon: Icons.person, title: "Profile", onTap: open)
UPill
Small tinted label with optional icon (statuses, tags). UPill("Paid", color: Colors.green, icon: Icons.check)
USearchField
Search box that waits until typing stops before calling onSearch, with a clear button. USearchField(onSearch: (q) => controller.search(q))
USelectionCard
Selectable card (plans, options) with pills and a check mark. USelectionCard(title: "Gold", subtitle: "12 months", isSelected: plan == 1, onTap: () => plan = 1)
UStatTile
Compact metric tile — a caption over a large number, optionally with a unit or a secondary total.

Enums

UAlertTone
Color of UAlertBanner: info, success, warning or danger.