# MyUIbrix Vylepšení - Říjen 2025 ## Přehled změn Kompletní přepracování MyUIbrix editoru s novými funkcemi, opravami chyb a českým překladem. --- ## 🎯 Nové Funkce ### 1. **Interaktivní Ovládání na Stránce** - **Tlačítka na hover**: Při najetí myší se zobrazí akční tlačítka: - ⚙️ **Upravit styl** - Otevře panel se styly - ⬆️ **Přesunout nahoru** - Posune element výš - ⬇️ **Přesunout dolů** - Posune element níž - 🗑️ **Odstranit** - Smaže element (s potvrzením) ### 2. **Drag & Drop na Stránce** - Přetáhněte element přímo na stránce pro změnu pozice - Vizuální indikátory při přetahování (žlutý okraj) - Automatické přeuspořádání v DOM ### 3. **Responzivní Viewport Switcher** - **Nyní funkční!** Přepínání mezi zařízeními: - 🖥️ Počítač (100% šířka) - 📱 Tablet (768px) - 📱 Telefon (375px) - Šedé pozadí kolem viewportu pro lepší viditelnost - Modrý okraj pro non-desktop zobrazení - Indikátor aktuální šířky pod tlačítky ### 4. **Český Překlad** Všechna uživatelská rozhraní nyní v češtině: - Tlačítka a popisky - Nápověda a instrukce - Chybové zprávy - Tooltips --- ## 🐛 Opravené Chyby ### 1. **Přesouvání Elementů** **Problém**: Elementy se přesouvaly na divné pozice **Řešení**: - Opravena funkce `applyVisualReorder()` pro správnou detekci kontejneru - Nyní funguje s viewport wrapperem - Používá `container.contains()` místo přímé kontroly parent ### 2. **Změna Stylů** **Problém**: Pouze jeden styl fungoval, elementy mizely **Řešení**: - Aktualizace `configs` state při změně varianty - Vynucení re-renderu elementu pomocí `data-variant` atributu - Dispatch `variant-change` eventu pro posluchače - Timeout 50ms pro zajištění správného pořadí operací ### 3. **Responzivní Viewport** **Problém**: Viewport switcher neměnil šířku stránky **Řešení**: - Implementace `.myuibrix-viewport-wrapper` kontejneru - Dynamické aplikování šířky při změně viewport - Zachování fixed/absolute elementů mimo wrapper - Vizuální feedback (border, shadow) --- ## 🎨 Vylepšené UX ### Hover Efekty ```typescript - Modrý tečkovaný okraj při najetí - Průhledné modré pozadí - Badge s názvem elementu - Akční tlačítka (opacity 0 → 1) ``` ### Drag & Drop Indikátory ```typescript - Kurzor: move - Při dragování: opacity 0.5 - Drop target: žlutý okraj (3px solid) - Smooth transitions ``` ### Viewport Visual Feedback ```typescript Desktop: šedé pozadí, žádný okraj Tablet: šedé pozadí, modrý okraj 3px Mobile: šedé pozadí, modrý okraj 3px ``` --- ## 📝 Technické Detaily ### Viewport Wrapper ```typescript // Vytvoření při aktivaci edit mode const wrapper = document.createElement('div'); wrapper.className = 'myuibrix-viewport-wrapper'; wrapper.style.cssText = ` margin: 0 auto; transition: all 0.3s ease; background: white; box-shadow: 0 0 0 9999px rgba(0,0,0,0.15); min-height: calc(100vh - 60px); `; ``` ### Variant Change Handler ```typescript // Nyní správně aktualizuje configs a vynutí re-render setConfigs(prevConfigs => { const updated = [...prevConfigs]; updated[configIndex] = { ...updated[configIndex], variant }; return updated; }); // Force element update element.setAttribute('data-variant', variant); element.dispatchEvent(new CustomEvent('variant-change', { detail: { variant } })); ``` ### Visual Reorder Fix ```typescript // Detekce správného kontejneru const viewport = document.querySelector('.myuibrix-viewport-wrapper'); const container = viewport || document.querySelector('.container'); // Bezpečná kontrola if (element && container.contains(element)) { container.appendChild(element); } ``` --- ## 🎓 Klávesové Zkratky | Zkratka | Akce | |---------|------| | `ESC` | Zavřít panel / Ukončit edit mode | | `Ctrl+S` / `⌘+S` | Uložit změny | | `L` | Toggle vrstvy panelu | | `A` | Přidat element | | `↑` | Přesunout vybraný element nahoru | | `↓` | Přesunout vybraný element dolů | | `Del` / `Backspace` | Odstranit vybraný element | --- ## 🚀 Použití ### Aktivace Edit Mode 1. Klikněte na plovoucí tlačítko vlevo dole 2. Nebo přidejte `?myuibrix=edit` do URL ### Úprava Elementu 1. Najeďte myší na element (zobrazí se akční tlačítka) 2. Klikněte na ⚙️ pro změnu stylu 3. Vyberte styl z panelu 4. Změny se zobrazí okamžitě (preview) ### Přesunutí Elementu **Možnost 1**: Tlačítka - Klikněte ⬆️ nebo ⬇️ **Možnost 2**: Drag & Drop - Přetáhněte element na novou pozici - Pustě na cílové místo **Možnost 3**: Layers Panel - Otevřete panel vrstev (L) - Přetáhněte v seznamu ### Odstranění Elementu - Klikněte 🗑️ (potvrdí se dialogem) - Nebo `Del` na vybraném elementu ### Uložení Změn 1. Klikněte "Publikovat" v top baru 2. Nebo stiskněte `Ctrl+S` 3. Stránka se obnoví s uloženými změnami --- ## 🔍 Testování ### Checklist - [✅] Změna stylu elementu - [✅] Přesun elementu nahoru/dolů - [✅] Drag & Drop přesunutí - [✅] Odstranění elementu - [✅] Přidání nového elementu - [✅] Viewport switcher (desktop/tablet/mobile) - [✅] Uložení a reload - [✅] Klávesové zkratky - [✅] Layers panel - [✅] Hover efekty --- ## 📦 Soubory **Upravené soubory:** ``` frontend/src/components/editor/MyUIbrixEditor.tsx ``` **Nové funkce:** - Interaktivní tlačítka na hover - Drag & Drop na stránce - Viewport wrapper implementace - Lepší detekce kontejnerů - Force re-render při změně varianty --- ## 🎯 Budoucí Vylepšení - [ ] Undo/Redo funkce - [ ] Copy/Paste elementů - [ ] Keyboard navigation mezi elementy - [ ] Custom breakpoints pro responsive - [ ] Export/Import konfigurace - [ ] Element templates - [ ] Pokročilé CSS úpravy (padding, margin, colors) - [ ] Live CSS editor - [ ] Mobile touch gestures pro přesunutí --- ## 📚 Dokumentace Pro více informací viz: - `DOCS/MYUIBRIX_QUICK_START.md` - `DOCS/MYUIBRIX_ELEMENTOR_FEATURES.md` - `DOCS/MYUIBRIX_PREVIEW_MODE.md` --- **Datum:** 18. října 2025 **Verze:** 2.0 **Status:** ✅ Kompletní a otestováno