Component Audit - Widget vs Module Classification

Comprehensive audit of all existing components categorized as widgets or modules

Component Audit - Widget vs Module Classification

Status: In Progress
Last Updated: January 15, 2025

This document provides a comprehensive audit of all existing components, categorizing them as either Widgets (simple UI components) or Modules (complex building blocks).


Widgets (Simple UI Components)

✅ Confirmed Widgets - Stay as Widgets

libs/libs-ui/ux-ui-core/ - Core Widgets

Component Status Reason
Button ✅ Widget Pure presentation, no lifecycle
Input ✅ Widget Simple form input, no routes
Card ✅ Widget Display component, no behavior
Badge ✅ Widget Display component, no lifecycle
Chip ✅ Widget Display component, no routes
Chip List ✅ Widget Display component, no behavior
Breadcrumb ✅ Widget Navigation display, no routes defined
Icon ✅ Widget Pure presentation
Icons ✅ Widget Icon collection
Tabs ✅ Widget UI component, no lifecycle
Simple Tabs ✅ Widget Simplified tabs
Context Menu ✅ Widget UI component, no routes
Editable Slug ✅ Widget Input component
Clipboard ✅ Widget Utility component

libs/libs-ui/ux-ui-extended/ - Extended Widgets

Component Status Reason
Enhanced Panel ✅ Widget Display component
Expansion Panel ✅ Widget UI component, no lifecycle
Page Transition ✅ Widget Animation component
Progress Circle ✅ Widget Display component
Three State Sidenav ⚠️ Evaluate Could become module if needs routes
UX Card ✅ Widget Display component
UX Menu Select ✅ Widget Form component
UX Menu Theme ✅ Widget Theme component
UX Menu Wrapper ✅ Widget Wrapper component
UX Search Widget ✅ Widget Search component
UX Side Nav ⚠️ Evaluate Similar to sidebar-nav, check if should be module

libs/libs-ui/ux-ui-forms/ - Form Widgets

Component Status Reason
Checkbox ✅ Widget Form input
Color Picker ✅ Widget Form input
Form Field ✅ Widget Form wrapper
Multi Select ✅ Widget Form input
Toggle ✅ Widget Form input
UX Option ✅ Widget Form option
UX Select ✅ Widget Form select

libs/libs-ui/ux-ui-feedback/ - Feedback Widgets

Component Status Reason
Toast ✅ Widget Notification component
Dialog ✅ Widget Modal component
Toast Service ✅ Service Supporting service for widget

Modules (Complex Building Blocks)

✅ Confirmed Modules - Already Modules

modules/structural/ - Structural Modules

Module Status Exposes Widget Notes
sidebar-nav ✅ Module SidebarNavComponent Correctly implemented
top-nav ✅ Module TopNavComponent Correctly implemented
footer ✅ Module FooterComponent Correctly implemented

modules/new-user-management/ - Feature Modules

Module Status Exposes Widget Notes
User Management ✅ Module UserListWidgetComponent Full lifecycle, routes, permissions

modules/space-management/ - Admin Modules

Module Status Exposes Widget Notes
Space Management ✅ Module DataStatsWidget Admin panel module

⚠️ Components Requiring Evaluation

Potential Widget → Module Conversions

Component Current Proposed Reason
ux-side-nav Widget ⚠️ Evaluate Similar to sidebar-nav module, check if needs routes/permissions
three-state-sidenav Widget ⚠️ Evaluate Complex behavior, might need lifecycle
ux-menu Widget ⚠️ Evaluate If needs routes/permissions, convert to module
ux-panel Widget ⚠️ Evaluate If needs lifecycle/configuration, convert to module

Decision Criteria for Conversion

Convert Widget → Module if:

  1. ✅ Needs platform-agnostic support (Flutter)
  2. ✅ Needs routes or navigation
  3. ✅ Needs permissions or access control
  4. ✅ Needs public actions (API)
  5. ✅ Needs complex lifecycle management
  6. ✅ Needs runtime configuration

Action Required: Evaluate each flagged component and decide conversion.


📊 Summary Statistics

Widgets

Modules

Evaluation Needed


Next Steps

  1. ✅ Documentation Complete: Widget vs Module architecture documented
  2. ⏳ Audit Complete: All components categorized
  3. ⏳ Evaluation: Review flagged components
  4. ⏳ Migration: Convert widgets to modules if needed
  5. ⏳ Template: Create migration template for future conversions

Last Updated: January 15, 2025
Status: Audit Complete, Evaluation Pending