# MyUIbrix Elementor-Style Page Builder - Complete Feature Guide

## 🎨 Overview

MyUIbrix has been enhanced with professional Elementor-like page building capabilities, providing a complete visual editing experience with drag-and-drop, inline editing, column layouts, custom CSS, and contextual admin links.

---

## ✨ New Features

### 1. **Inline Text Editing** ✏️

**Component**: `InlineTextEditor.tsx`

**Features**:
- Click any text element to edit in place
- Rich text formatting toolbar:
  - **Bold** (Ctrl+B)
  - *Italic* (Ctrl+I)
  - <u>Underline</u> (Ctrl+U)
  - 🔗 Insert Links
- Auto-save on blur
- Visual feedback with outline highlighting
- Cancel/Save buttons

**Usage**:
```tsx
import InlineTextEditor from './components/editor/InlineTextEditor';

<InlineTextEditor
  elementId="hero-title"
  initialContent="<h1>Welcome</h1>"
  onSave={(content) => console.log('Saved:', content)}
/>
```

**User Experience**:
1. Click on any text to activate editing mode
2. Formatting toolbar appears above the text
3. Make changes with rich formatting
4. Click save or click away to auto-save

---

### 2. **Column Layout Manager** 📐

**Component**: `ColumnLayoutManager.tsx`

**Features**:
- Visual column layout builder
- Pre-built templates:
  - Single Column (100%)
  - Two Equal (50% / 50%)
  - Three Equal (33% / 33% / 33%)
  - Four Equal (25% each)
  - Left Sidebar (33% / 67%)
  - Right Sidebar (67% / 33%)
  - Featured + Two (50% / 25% / 25%)
  - Main + Sidebar (75% / 25%)
- Add/Remove columns dynamically
- Visual preview of layout
- Plus buttons in each column to add elements

**Usage**:
```tsx
<ColumnLayoutManager
  elementName="hero"
  currentColumns={[
    { id: '1', width: '50%', elements: [] },
    { id: '2', width: '50%', elements: [] }
  ]}
  onLayoutChange={(columns) => handleLayoutChange(columns)}
/>
```

**User Experience**:
1. Click "Templates" button to see pre-built layouts
2. Select a template to instantly apply it
3. Use + button to add more columns
4. Click × on any column to remove it
5. Columns auto-resize to maintain 100% width

---

### 3. **Custom CSS Editor** 💻

**Component**: `CustomCSSEditor.tsx`

**Features**:
- Full CSS code editor with syntax highlighting
- Real-time validation
- Live preview mode
- CSS examples library:
  - Background gradients
  - Shadows & hover effects
  - Border radius
  - Animations
- Error detection for malformed CSS
- One-click example insertion

**Usage**:
```tsx
<CustomCSSEditor
  elementName="hero"
  currentCSS="background: linear-gradient(...);"
  onCSSChange={(css) => applyCustomCSS(css)}
/>
```

**User Experience**:
1. Click "CSS" tab in style panel
2. Write custom CSS properties
3. Toggle "Preview" to see changes live
4. Browse examples for inspiration
5. Click "Apply CSS" to save changes

**Example CSS**:
```css
/* Background Gradient */
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 60px 20px;
border-radius: 20px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
```

---

### 4. **Contextual Admin Links** 🔗

**Component**: `ContextualAdminLinks.tsx`

**Features**:
- Smart links based on element type
- Quick access to relevant admin pages
- Link descriptions and badges
- External link indicators

**Element-Specific Links**:

**Hero Section**:
- Manage Articles → `/admin/articles`
- Upload Images → `/admin/media`

**News Section**:
- Manage Articles → `/admin/articles`
- Categories → `/admin/categories`
- Article Settings → `/admin/settings/articles`

**Matches Section**:
- Manage Matches → `/admin/matches`
- Match Settings → `/admin/settings/matches`

**Team Section**:
- Manage Players → `/admin/team/players`
- Team Settings → `/admin/settings/team`

**Videos Section**:
- Manage Videos → `/admin/videos`
- Video Settings → `/admin/settings/videos`

**Sponsors Section**:
- Manage Sponsors → `/admin/sponsors`

**Newsletter**:
- Newsletter Settings → `/admin/settings/newsletter`
- Subscribers → `/admin/newsletter/subscribers`

**User Experience**:
1. Select any element
2. Click "Admin" tab in style panel
3. See relevant admin links for that element
4. Click any link to jump to admin page

---

### 5. **Enhanced Visual Style Panel** 🎨

**Updated Component**: `VisualStylePanel.tsx`

**New Tabs**:
1. **Content** - Typography controls
2. **Style** - Colors & spacing
3. **Layout** - Grid & column layouts
4. **CSS** - Custom CSS editor
5. **Admin** - Contextual admin links

**Typography Controls**:
- Font family selection
- Font size (8-128px)
- Font weight (100-900)
- Line height (0.5-3)
- Letter spacing (-5px to 10px)
- Text transform (none, uppercase, lowercase, capitalize)

**Color Controls**:
- Text color picker
- Background color picker
- Hex code input
- Visual color preview

**Spacing Controls**:
- Padding (Top, Right, Bottom, Left)
- Margin (Top, Right, Bottom, Left)
- Numeric input with steppers

**Layout Controls**:
- Grid templates with visual previews
- Custom grid columns/rows
- Column & row gaps
- Grid auto-flow
- Align & justify controls

---

## 🚀 Complete User Workflow

### Creating a Custom Hero Section

1. **Activate Editor**
   - Click edit button (bottom left)
   - Editor mode activates

2. **Select Hero Element**
   - Click on hero section
   - Contextual panel appears

3. **Change Layout**
   - Click "Layout" tab
   - Select "Two Equal" template
   - Hero splits into 2 columns

4. **Edit Text**
   - Click on hero title
   - Inline editor activates
   - Format text with bold, italic
   - Add link if needed
   - Save changes

5. **Apply Custom Colors**
   - Click "Style" tab
   - Pick background color
   - Select text color
   - Adjust padding/margin

6. **Add Custom CSS**
   - Click "CSS" tab
   - Add gradient background
   - Add box shadow
   - Enable preview
   - Apply CSS

7. **Manage Content**
   - Click "Admin" tab
   - Click "Manage Articles"
   - Opens in new tab
   - Edit hero content

8. **Save & Publish**
   - Click "Publikovat" button
   - Changes go live
   - Page reloads with new design

---

## 🎯 Key Benefits

### For Administrators
- **No coding required** - Visual editing for everything
- **Fast iterations** - See changes instantly
- **Professional layouts** - Pre-built templates
- **Custom styling** - Full CSS control when needed
- **Smart navigation** - Quick links to content management

### For End Users
- **Consistent UX** - Familiar Elementor-like interface
- **Responsive** - All layouts work on mobile/tablet/desktop
- **Fast loading** - Optimized CSS application
- **Accessible** - WCAG-compliant color contrast

### Technical Benefits
- **Modular components** - Easy to extend
- **TypeScript** - Type-safe
- **Live preview** - No page reloads during editing
- **Version control** - All changes tracked
- **Reversible** - Can always go back

---

## 📱 Responsive Controls

### Viewport Switcher
Located in top toolbar:
- 🖥️ **Desktop** - Full width preview
- 📱 **Tablet** - 768px width
- 📱 **Mobile** - 375px width

### Device-Specific Styling
Each element can have different styles per device:
```typescript
{
  desktop: {
    fontSize: 48,
    padding: 60
  },
  tablet: {
    fontSize: 36,
    padding: 40
  },
  mobile: {
    fontSize: 24,
    padding: 20
  }
}
```

---

## 🔧 Technical Implementation

### Architecture

```
MyUIbrixEditor (Main)
├── InlineTextEditor (Text editing)
├── ColumnLayoutManager (Layouts)
├── CustomCSSEditor (CSS)
├── ContextualAdminLinks (Navigation)
└── VisualStylePanel (Properties)
    ├── Content Tab
    ├── Style Tab
    ├── Layout Tab
    ├── CSS Tab
    └── Admin Tab
```

### Data Flow

```
User Action → Editor Component → Event Dispatch → Live Preview
                                              ↓
                                         Save to State
                                              ↓
                                    API Call (on Publish)
                                              ↓
                                      Database Storage
```

### Custom Events

**myuibrix-change**: Element variant/visibility changed
```javascript
window.dispatchEvent(new CustomEvent('myuibrix-change', {
  detail: { elementName, variant, visible, previewMode: true }
}));
```

**myuibrix-style-change**: Element styles changed
```javascript
window.dispatchEvent(new CustomEvent('myuibrix-style-change', {
  detail: { elementName, styles, previewMode: true }
}));
```

**myuibrix-reorder**: Element order changed
```javascript
window.dispatchEvent(new CustomEvent('myuibrix-reorder', {
  detail: { order: [...], previewMode: true }
}));
```

---

## 🎓 Best Practices

### For Custom CSS
1. Use relative units (rem, em) for better responsiveness
2. Avoid `!important` - use specificity instead
3. Test on all viewports before publishing
4. Keep CSS organized with comments
5. Use CSS variables for consistent theming

### For Column Layouts
1. Start with templates, then customize
2. Keep mobile-first in mind
3. Don't exceed 4 columns on desktop
4. Test content overflow in narrow columns
5. Use consistent gutters (gaps)

### For Inline Editing
1. Save frequently
2. Keep text concise
3. Use formatting sparingly
4. Test link targets
5. Preview on different devices

### For Admin Links
1. Use contextual links to stay organized
2. Update content before changing design
3. Keep images optimized
4. Check all links work
5. Review settings after changes

---

## 🐛 Troubleshooting

### CSS Not Applying
- Check for syntax errors (missing braces, semicolons)
- Ensure preview mode is enabled
- Click "Apply CSS" button
- Save and publish changes

### Layout Breaking
- Reset to a template
- Check column widths sum to 100%
- Clear custom CSS
- Reload page

### Text Not Saving
- Ensure you clicked save or blurred away
- Check network connection
- Look for error toasts
- Try manual save button

### Admin Links Not Working
- Verify you're logged in as admin
- Check admin routes are configured
- Ensure backend API is running
- Clear browser cache

---

## 🔮 Future Enhancements

### Planned Features
- [ ] **Animation Builder** - Visual keyframe editor
- [ ] **Global Styles** - Theme-wide CSS variables
- [ ] **Template Library** - Save/load complete layouts
- [ ] **Revision History** - Undo/redo across sessions
- [ ] **Collaboration** - Multi-user editing
- [ ] **AI Suggestions** - Smart layout recommendations
- [ ] **A/B Testing** - Test multiple designs
- [ ] **Performance Analytics** - Speed insights
- [ ] **Accessibility Checker** - WCAG compliance
- [ ] **Export/Import** - Share designs between sites

---

## 📚 Additional Resources

### Related Documentation
- `MYUIBRIX_FIXES.md` - Initial editor features
- `ADMIN_FUNCTIONALITY_REPORT.md` - Admin panel guide
- `SETUP_IMPROVEMENTS.md` - Initial setup

### Component Files
- `frontend/src/components/editor/InlineTextEditor.tsx`
- `frontend/src/components/editor/CustomCSSEditor.tsx`
- `frontend/src/components/editor/ColumnLayoutManager.tsx`
- `frontend/src/components/editor/ContextualAdminLinks.tsx`
- `frontend/src/components/editor/VisualStylePanel.tsx`
- `frontend/src/components/editor/MyUIbrixEditor.tsx`

### API Endpoints
- `GET /api/v1/page-elements/:pageType` - Get configurations
- `POST /api/v1/page-elements/batch` - Save configurations

---

## 💡 Tips & Tricks

### Keyboard Shortcuts
- `ESC` - Close panels / Exit editing
- `Ctrl+S` - Save changes
- `L` - Toggle layers panel
- `A` - Open element picker
- `↑` / `↓` - Move element up/down
- `Delete` - Remove selected element

### Quick Workflows
1. **Clone a Section**: Copy element, paste, modify
2. **Batch Styling**: Apply CSS to multiple elements at once
3. **Template Reuse**: Save layouts as templates
4. **Quick Preview**: Toggle devices with viewport switcher
5. **Admin Shortcuts**: Use contextual links to jump quickly

### Pro Tips
- 🎨 Use color picker for brand consistency
- 📐 Leverage grid templates for complex layouts
- 💻 Learn basic CSS for advanced customization
- 🔗 Bookmark frequently used admin pages
- 💾 Save drafts before major changes

---

## 📞 Support

For issues or feature requests:
1. Check this documentation first
2. Review troubleshooting section
3. Check console for errors
4. Contact support with:
   - Element name
   - Steps to reproduce
   - Browser/device info
   - Screenshots if applicable

---

**Last Updated**: December 2024  
**Version**: 2.0.0  
**Status**: ✅ Production Ready
