templates property

Map<String, TemplateDefinition> templates
final

Complete map of registered templates indexed by ID

Implementation

static final Map<String, TemplateDefinition> templates = {
  'login': TemplateDefinition(
    id: 'login',
    category: 'auth',
    description: 'Standard Login Page with BLoC integration',
    requiredWidgets: ['text_input_widget', 'text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getLoginUiTemplate(
            className: className,
            isLoading: isLoading,
            addApiCalling: addApiCalling,
            fields: signupFields,
            isCurved: isCurved,
            buttonColor: buttonColor,
            textColor: textColor),
  ),
  'signup': TemplateDefinition(
    id: 'signup',
    category: 'auth',
    description: 'Standard Signup Page with BLoC integration',
    requiredWidgets: ['text_input_widget', 'text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getSignupUiTemplate(
            className: className,
            isLoading: isLoading,
            addApiCalling: addApiCalling,
            fields: signupFields,
            isCurved: isCurved,
            buttonColor: buttonColor,
            textColor: textColor),
  ),
  'otp': TemplateDefinition(
    id: 'otp',
    category: 'auth',
    description: 'OTP Verification Page',
    requiredWidgets: ['text_input_widget', 'text_widget', 'custom_body'],
    requiredPackages: ['pinput'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getOtpUiTemplate(
            className: className,
            isLoading: isLoading,
            addApiCalling: addApiCalling,
            isCurved: isCurved),
  ),
  'forgot-password': TemplateDefinition(
    id: 'forgot-password',
    category: 'auth',
    description: 'Forgot Password Recovery Page',
    requiredWidgets: ['text_input_widget', 'text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getForgotPasswordUiTemplate(
            className: className,
            isLoading: isLoading,
            addApiCalling: addApiCalling,
            isCurved: isCurved,
            buttonColor: buttonColor,
            textColor: textColor),
  ),
  'list': TemplateDefinition(
    id: 'list',
    category: 'common',
    description: 'Standard List View with API support',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getListUiTemplate(
            className: className,
            isLoading: isLoading,
            addApiCalling: addApiCalling),
  ),
  'grid': TemplateDefinition(
    id: 'grid',
    category: 'common',
    description: 'Standard Grid View Layout',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getGridUiTemplate(className: className, isLoading: isLoading),
  ),
  'chat': TemplateDefinition(
    id: 'chat',
    category: 'social',
    description: 'Single Chat Interface',
    requiredWidgets: ['text_input_widget', 'text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getChatUiTemplate(className: className, isLoading: isLoading),
  ),
  'faq': TemplateDefinition(
    id: 'faq',
    category: 'common',
    description: 'Frequently Asked Questions with Expandable Items',
    requiredWidgets: ['text_widget', 'custom_body', 'common_expand_collaspe'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getFaqUiTemplate(
            className: className,
            isLoading: isLoading,
            projectName: projectName ?? ''),
  ),
  // Additional templates from existing files
  'all-chat': TemplateDefinition(
    id: 'all-chat',
    category: 'social',
    description: 'List of all chat conversations',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getAllChatUiTemplate(className: className, isLoading: isLoading),
  ),
  'friend-list': TemplateDefinition(
    id: 'friend-list',
    category: 'social',
    description: 'Simple friend list with avatars',
    requiredWidgets: [
      'text_widget',
      'custom_body',
      'friend_card',
      'custom_list_widget'
    ],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getFriendListUiTemplate(className: className, isLoading: isLoading),
  ),
  'friend-swipe': TemplateDefinition(
    id: 'friend-swipe',
    category: 'social',
    description: 'Swipe-based discovery interface',
    requiredWidgets: ['custom_body', 'friend_card'],
    requiredPackages: ['flutter_card_swiper'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getFriendSwipeUiTemplate(className: className, isLoading: isLoading),
  ),
  'product-details': TemplateDefinition(
    id: 'product-details',
    category: 'ecommerce',
    description: 'High-fidelity product details page',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getProductDetailsUiTemplate(
            className: className, isLoading: isLoading),
  ),
  'shopping-cart': TemplateDefinition(
    id: 'shopping-cart',
    category: 'ecommerce',
    description: 'Shopping cart with item list and breakdown',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getShoppingCartUiTemplate(className: className, isLoading: isLoading),
  ),
  'checkout': TemplateDefinition(
    id: 'checkout',
    category: 'ecommerce',
    description: 'Checkout flow with address and payment',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getCheckoutUiTemplate(className: className, isLoading: isLoading),
  ),
  'order-tracking': TemplateDefinition(
    id: 'order-tracking',
    category: 'ecommerce',
    description: 'Real-time order tracking timeline',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getOrderTrackingUiTemplate(
            className: className, isLoading: isLoading),
  ),
  'my-orders': TemplateDefinition(
    id: 'my-orders',
    category: 'ecommerce',
    description: 'Order history with status markers',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getMyOrdersUiTemplate(className: className, isLoading: isLoading),
  ),
  'address-book': TemplateDefinition(
    id: 'address-book',
    category: 'ecommerce',
    description: 'Saved shipping addresses management',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getAddressBookUiTemplate(className: className, isLoading: isLoading),
  ),
  'wishlist': TemplateDefinition(
    id: 'wishlist',
    category: 'ecommerce',
    description: 'Favorite items list with quick add to cart',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getWishlistUiTemplate(className: className, isLoading: isLoading),
  ),
  'payment-methods': TemplateDefinition(
    id: 'payment-methods',
    category: 'ecommerce',
    description: 'Managed saved payment methods',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getPaymentMethodsUiTemplate(
            className: className, isLoading: isLoading),
  ),
  'ecommerce-home': TemplateDefinition(
    id: 'ecommerce-home',
    category: 'ecommerce',
    description: 'Modern E-commerce home with category filters',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getEcommerceHomeUiTemplate(
            className: className, isLoading: isLoading),
  ),
  'order-success': TemplateDefinition(
    id: 'order-success',
    category: 'ecommerce',
    description: 'Professional order confirmation screen',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getOrderSuccessUiTemplate(className: className, isLoading: isLoading),
  ),
  'blank': TemplateDefinition(
    id: 'blank',
    category: 'common',
    description: 'Simple blank page with CustomBody',
    requiredWidgets: ['text_widget', 'custom_body'],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getBlankUiTemplate(
            className: className,
            isLoading: isLoading,
            projectName: projectName),
  ),
  'dashboard': TemplateDefinition(
    id: 'dashboard',
    category: 'dashboard',
    description: 'Main Dashboard Host with optional Bottom Bar and Drawer',
    requiredWidgets: [
      'text_widget',
      'custom_body',
      'custom_side_drawer',
      'custom_bottom_bar'
    ],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getDashboardHostTemplate(
          projectName: projectName ?? '',
          className: className,
          isLoading: isLoading,
          hasBottomBar: hasBottomBar,
          hasDrawer: hasDrawer,
          tabNames: tabNames,
          drawerNames: drawerNames,
        ),
  ),
  'profile-setup': TemplateDefinition(
    id: 'profile-setup',
    category: 'auth',
    description: 'High-fidelity Profile Setup Page with Image Picker',
    requiredWidgets: [
      'text_input_widget',
      'text_widget',
      'custom_body',
      'custom_dropdown',
      'gender_radio_group',
      'common_image_picker'
    ],
    builder: (
            {required className,
            required isLoading,
            addApiCalling = false,
            projectName,
            hasBottomBar = false,
            hasDrawer = false,
            tabNames = const [],
            drawerNames = const [],
            signupFields = const [],
            isCurved = true,
            buttonColor,
            textColor}) =>
        getProfileSetupUiTemplate(
            className: className,
            isLoading: isLoading,
            addApiCalling: addApiCalling),
  ),
};