botserver/web/desktop/editor/editor.html
Rodrigo Rodriguez (Pragmatismo) 02eaac783f feat(editor, settings): refactor state handling and enhance validation
Refactored editor.page.html to use a Vue-style `data()` function for reactive state, adding a new `content` property and cleaning up redundant inline styles. Updated profile-form.html to replace single `error` handling with field-specific `errors.<field>` bindings, improving form validation clarity and user feedback.
2025-11-15 21:52:53 -03:00

73 lines
2.8 KiB
HTML

<div id="main-content" x-data="editor">
<div class="content-section active">
<!-- Quick Access Toolbar -->
<div class="quick-access">
<button class="quick-access-btn" @click="document.execCommand('undo', false)">
<svg><!-- Undo icon --></svg>
</button>
<button class="quick-access-btn" @click="document.execCommand('redo', false)">
<svg><!-- Redo icon --></svg>
</button>
<div class="title-controls">
<input type="text" class="title-input" x-model="fileName" placeholder="Document name">
<button class="quick-access-btn" @click="saveDocument">
<svg><!-- Save icon --></svg>
</button>
</div>
</div>
<!-- Ribbon -->
<div class="ribbon">
<div class="ribbon-tabs">
<button class="ribbon-tab-button" :class="{ 'active': activeTab === 'home' }"
@click="setActiveTab('home')">Home</button>
<button class="ribbon-tab-button" :class="{ 'active': activeTab === 'insert' }"
@click="setActiveTab('insert')">Insert</button>
<button class="ribbon-tab-button" :class="{ 'active': activeTab === 'view' }"
@click="setActiveTab('view')">View</button>
</div>
<div class="ribbon-content" x-show="activeTab === 'home'">
<div class="ribbon-group">
<div class="ribbon-group-title">Format</div>
<div class="ribbon-group-content">
<button class="ribbon-button" @click="formatBold">B</button>
<button class="ribbon-button" @click="formatItalic">I</button>
<button class="ribbon-button" @click="formatUnderline">U</button>
</div>
</div>
<div class="ribbon-group">
<div class="ribbon-group-title">Alignment</div>
<div class="ribbon-group-content">
<button class="ribbon-button" @click="alignLeft">Left</button>
<button class="ribbon-button" @click="alignCenter">Center</button>
<button class="ribbon-button" @click="alignRight">Right</button>
<button class="ribbon-button" @click="alignJustify">Justify</button>
</div>
</div>
</div>
</div>
<!-- Editor Area -->
<div class="editor-container">
<div class="editor-main">
<div class="pages-container">
<div class="page">
<div class="page-number">Page 1</div>
<div class="page-content" id="editor-content" contenteditable="true" x-html="content"></div>
</div>
</div>
</div>
</div>
<!-- Status Bar -->
<div class="status-bar">
<div>Page <span x-text="pages.length"></span> of <span x-text="pages.length"></span></div>
<div class="zoom-controls">
<button @click="zoomOut">-</button>
<span x-text="zoom + '%'"></span>
<button @click="zoomIn">+</button>
</div>
</div>
</div>
</div>