botui/ui/suite/docs/docs.html

611 lines
No EOL
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<link rel="stylesheet" href="docs/docs.css" />
<div class="docs-app" id="docs-app">
<div class="docs-toolbar">
<div class="toolbar-left">
<input type="text" class="doc-name-input" id="docName" value="Untitled Document" spellcheck="false" />
</div>
<div class="toolbar-center">
<div class="toolbar-group">
<button class="btn-icon" id="printPreviewBtn" title="Print Preview">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="6 9 6 2 18 2 18 9"></polyline>
<path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path>
<rect x="6" y="14" width="12" height="8"></rect>
</svg>
</button>
<button class="btn-icon" id="findReplaceBtn" title="Find & Replace (Ctrl+H)">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</button>
</div>
<span class="toolbar-divider"></span>
<div class="toolbar-group">
<button class="btn-icon" id="undoBtn" title="Undo (Ctrl+Z)">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M3 7v6h6"></path>
<path d="M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13"></path>
</svg>
</button>
<button class="btn-icon" id="redoBtn" title="Redo (Ctrl+Y)">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 7v6h-6"></path>
<path d="M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3L21 13"></path>
</svg>
</button>
</div>
<span class="toolbar-divider"></span>
<div class="toolbar-group">
<select class="toolbar-select heading-select" id="headingSelect">
<option value="p">Normal</option>
<option value="h1">Heading 1</option>
<option value="h2">Heading 2</option>
<option value="h3">Heading 3</option>
</select>
<select class="toolbar-select font-family" id="fontFamily">
<option value="Arial">Arial</option>
<option value="Georgia">Georgia</option>
<option value="Times New Roman">Times</option>
<option value="Courier New">Courier</option>
<option value="Verdana">Verdana</option>
</select>
<select class="toolbar-select font-size" id="fontSize">
<option value="1">8</option>
<option value="2">10</option>
<option value="3" selected>12</option>
<option value="4">14</option>
<option value="5">18</option>
<option value="6">24</option>
<option value="7">36</option>
</select>
</div>
<span class="toolbar-divider"></span>
<div class="toolbar-group format-group">
<button class="btn-icon" id="boldBtn" title="Bold (Ctrl+B)">
<strong>B</strong>
</button>
<button class="btn-icon" id="italicBtn" title="Italic (Ctrl+I)">
<em>I</em>
</button>
<button class="btn-icon" id="underlineBtn" title="Underline (Ctrl+U)">
<u>U</u>
</button>
<button class="btn-icon" id="strikeBtn" title="Strikethrough">
<s>S</s>
</button>
</div>
<span class="toolbar-divider"></span>
<div class="toolbar-group">
<button class="btn-icon color-btn" id="textColorBtn" title="Text Color">
<span class="color-letter">A</span>
<span class="color-indicator" id="textColorIndicator"></span>
<input type="color" class="color-input" id="textColorInput" value="#000000" />
</button>
<button class="btn-icon color-btn" id="highlightBtn" title="Highlight">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
<path
d="M15.243 4.515l-6.738 6.737-.707 2.121-1.04 1.041 2.828 2.828 1.04-1.04 2.122-.707 6.737-6.738-4.242-4.242zm6.364 3.536a1 1 0 0 1 0 1.414l-7.778 7.778-2.122.707-1.414 1.414a1 1 0 0 1-1.414 0l-4.243-4.243a1 1 0 0 1 0-1.414l1.414-1.414.707-2.121 7.778-7.778a1 1 0 0 1 1.414 0l5.657 5.657z" />
</svg>
<span class="color-indicator bg-indicator" id="highlightIndicator"></span>
<input type="color" class="color-input" id="highlightInput" value="#ffff00" />
</button>
</div>
<span class="toolbar-divider"></span>
<div class="toolbar-group">
<button class="btn-icon" id="alignLeftBtn" title="Align Left">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="12" x2="15" y2="12"></line>
<line x1="3" y1="18" x2="18" y2="18"></line>
</svg>
</button>
<button class="btn-icon" id="alignCenterBtn" title="Align Center">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="6" y1="12" x2="18" y2="12"></line>
<line x1="4" y1="18" x2="20" y2="18"></line>
</svg>
</button>
<button class="btn-icon" id="alignRightBtn" title="Align Right">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="9" y1="12" x2="21" y2="12"></line>
<line x1="6" y1="18" x2="21" y2="18"></line>
</svg>
</button>
<button class="btn-icon" id="justifyBtn" title="Justify">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</button>
</div>
<span class="toolbar-divider"></span>
<div class="toolbar-group">
<button class="btn-icon" id="bulletListBtn" title="Bullet List">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="9" y1="6" x2="21" y2="6"></line>
<line x1="9" y1="12" x2="21" y2="12"></line>
<line x1="9" y1="18" x2="21" y2="18"></line>
<circle cx="4" cy="6" r="2" fill="currentColor"></circle>
<circle cx="4" cy="12" r="2" fill="currentColor"></circle>
<circle cx="4" cy="18" r="2" fill="currentColor"></circle>
</svg>
</button>
<button class="btn-icon" id="numberListBtn" title="Numbered List">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="10" y1="6" x2="21" y2="6"></line>
<line x1="10" y1="12" x2="21" y2="12"></line>
<line x1="10" y1="18" x2="21" y2="18"></line>
<text x="2" y="8" font-size="8" fill="currentColor" stroke="none">
1
</text>
<text x="2" y="14" font-size="8" fill="currentColor" stroke="none">
2
</text>
<text x="2" y="20" font-size="8" fill="currentColor" stroke="none">
3
</text>
</svg>
</button>
<button class="btn-icon" id="indentBtn" title="Increase Indent">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="9" y1="12" x2="21" y2="12"></line>
<line x1="9" y1="18" x2="21" y2="18"></line>
<polyline points="3 10 6 12 3 14"></polyline>
</svg>
</button>
<button class="btn-icon" id="outdentBtn" title="Decrease Indent">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="9" y1="12" x2="21" y2="12"></line>
<line x1="9" y1="18" x2="21" y2="18"></line>
<polyline points="6 10 3 12 6 14"></polyline>
</svg>
</button>
</div>
<span class="toolbar-divider"></span>
<div class="toolbar-group">
<button class="btn-icon" id="headerFooterBtn" title="Edit Header & Footer">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect x="3" y="3" width="18" height="18" rx="2"></rect>
<line x1="3" y1="7" x2="21" y2="7"></line>
<line x1="3" y1="17" x2="21" y2="17"></line>
</svg>
</button>
<button class="btn-icon" id="pageBreakBtn" title="Insert Page Break">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M3 12h4l3-9 4 18 3-9h4"></path>
</svg>
</button>
<button class="btn-icon" id="linkBtn" title="Insert Link">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path>
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
</svg>
</button>
<button class="btn-icon" id="imageBtn" title="Insert Image">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
<circle cx="8.5" cy="8.5" r="1.5"></circle>
<polyline points="21 15 16 10 5 21"></polyline>
</svg>
</button>
<button class="btn-icon" id="tableBtn" title="Insert Table">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect x="3" y="3" width="18" height="18" rx="2"></rect>
<line x1="3" y1="9" x2="21" y2="9"></line>
<line x1="3" y1="15" x2="21" y2="15"></line>
<line x1="9" y1="3" x2="9" y2="21"></line>
<line x1="15" y1="3" x2="15" y2="21"></line>
</svg>
</button>
</div>
</div>
<div class="toolbar-right">
<div class="collaborators" id="collaborators"></div>
<button class="btn-primary" id="shareBtn">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="18" cy="5" r="3"></circle>
<circle cx="6" cy="12" r="3"></circle>
<circle cx="18" cy="19" r="3"></circle>
<line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line>
<line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line>
</svg>
<span>Share</span>
</button>
</div>
</div>
<div class="docs-main">
<div class="docs-canvas">
<div class="editor-page" id="editorPage">
<div class="editor-content" id="editorContent" contenteditable="true" spellcheck="true"
data-placeholder="Start typing..."></div>
</div>
</div>
</div>
<div class="docs-status-bar">
<div class="status-left">
<span id="pageInfo">Page 1 of 1</span>
</div>
<div class="status-center">
<span id="wordCount">0 words</span>
<span class="status-divider">|</span>
<span id="charCount">0 characters</span>
</div>
<div class="status-right">
<span id="saveStatus">Saved</span>
<div class="zoom-control">
<button class="btn-zoom" id="zoomOutBtn"></button>
<span id="zoomLevel">100%</span>
<button class="btn-zoom" id="zoomInBtn">+</button>
</div>
</div>
</div>
</div>
<div class="modal hidden" id="shareModal">
<div class="modal-content">
<div class="modal-header">
<h3>Share Document</h3>
<button class="btn-close" id="closeShareModal">×</button>
</div>
<div class="modal-body">
<div class="share-input-group">
<input type="email" placeholder="Enter email address" id="shareEmail" />
<select id="sharePermission">
<option value="view">Can view</option>
<option value="comment">Can comment</option>
<option value="edit">Can edit</option>
</select>
<button class="btn-primary" id="sendShareBtn">Share</button>
</div>
<div class="share-link-section">
<h4>Or share with link</h4>
<div class="share-link-group">
<input type="text" readonly id="shareLink" />
<button class="btn-icon" id="copyLinkBtn" title="Copy link">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2">
<rect x="9" y="9" width="13" height="13" rx="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button>
</div>
</div>
</div>
</div>
</div>
<div class="modal hidden" id="linkModal">
<div class="modal-content modal-small">
<div class="modal-header">
<h3>Insert Link</h3>
<button class="btn-close" id="closeLinkModal">×</button>
</div>
<div class="modal-body">
<div class="form-group">
<label>URL</label>
<input type="url" id="linkUrl" placeholder="https://example.com" />
</div>
<div class="form-group">
<label>Text (optional)</label>
<input type="text" id="linkText" placeholder="Link text" />
</div>
<div class="modal-actions">
<button class="btn-secondary" id="cancelLinkBtn">Cancel</button>
<button class="btn-primary" id="insertLinkBtn">Insert</button>
</div>
</div>
</div>
</div>
<div class="modal hidden" id="imageModal">
<div class="modal-content modal-small">
<div class="modal-header">
<h3>Insert Image</h3>
<button class="btn-close" id="closeImageModal">×</button>
</div>
<div class="modal-body">
<div class="form-group">
<label>Image URL</label>
<input type="url" id="imageUrl" placeholder="https://example.com/image.jpg" />
</div>
<div class="form-group">
<label>Alt text</label>
<input type="text" id="imageAlt" placeholder="Image description" />
</div>
<div class="modal-actions">
<button class="btn-secondary" id="cancelImageBtn">
Cancel
</button>
<button class="btn-primary" id="insertImageBtn">Insert</button>
</div>
</div>
</div>
</div>
<div class="modal hidden" id="tableModal">
<div class="modal-content modal-small">
<div class="modal-header">
<h3>Insert Table</h3>
<button class="btn-close" id="closeTableModal">×</button>
</div>
<div class="modal-body">
<div class="table-size-selector">
<div class="form-row">
<div class="form-group">
<label>Rows</label>
<input type="number" id="tableRows" value="3" min="1" max="20" />
</div>
<div class="form-group">
<label>Columns</label>
<input type="number" id="tableCols" value="3" min="1" max="10" />
</div>
</div>
</div>
<div class="modal-actions">
<button class="btn-secondary" id="cancelTableBtn">
Cancel
</button>
<button class="btn-primary" id="insertTableBtn">Insert</button>
</div>
</div>
</div>
</div>
<div class="modal hidden" id="exportModal">
<div class="modal-content">
<div class="modal-header">
<h3>Export Document</h3>
<button class="btn-close" id="closeExportModal">×</button>
</div>
<div class="modal-body">
<div class="export-options">
<button class="export-option" data-format="pdf">
<div class="export-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
<polyline points="14 2 14 8 20 8" />
<path d="M9 15v-2h1.5a1.5 1.5 0 0 1 0 3H9" />
<path d="M13 13h1.5a1.5 1.5 0 0 1 0 3H13v-3z" />
</svg>
</div>
<div class="export-label">PDF</div>
</button>
<button class="export-option" data-format="docx">
<div class="export-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
<polyline points="14 2 14 8 20 8" />
<line x1="8" y1="13" x2="16" y2="13" />
<line x1="8" y1="17" x2="14" y2="17" />
</svg>
</div>
<div class="export-label">Word</div>
</button>
<button class="export-option" data-format="html">
<div class="export-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10" />
<line x1="2" y1="12" x2="22" y2="12" />
<path
d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" />
</svg>
</div>
<div class="export-label">HTML</div>
</button>
<button class="export-option" data-format="txt">
<div class="export-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
<polyline points="14 2 14 8 20 8" />
</svg>
</div>
<div class="export-label">Text</div>
</button>
<button class="export-option" data-format="md">
<div class="export-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
<polyline points="14 2 14 8 20 8" />
<path d="M7 15l2-2 2 2" />
<line x1="9" y1="13" x2="9" y2="17" />
<path d="M13 13h2v4" />
<path d="M13 15h2" />
</svg>
</div>
<div class="export-label">Markdown</div>
</button>
</div>
</div>
</div>
</div>
<div class="modal hidden" id="findReplaceModal">
<div class="modal-content">
<div class="modal-header">
<h3>Find & Replace</h3>
<button class="btn-close" id="closeFindReplaceModal">×</button>
</div>
<div class="modal-body">
<div class="find-replace-group">
<label>Find:</label>
<input type="text" id="findInput" placeholder="Search text..." autofocus />
</div>
<div class="find-replace-group">
<label>Replace:</label>
<input type="text" id="replaceInput" placeholder="Replace with..." />
</div>
<div class="find-replace-options">
<label class="checkbox-label">
<input type="checkbox" id="findMatchCase" />
Match case
</label>
<label class="checkbox-label">
<input type="checkbox" id="findWholeWord" />
Whole words only
</label>
</div>
<div class="find-results" id="findResults">
<span>0 matches found</span>
</div>
<div class="modal-actions">
<button class="btn-secondary" id="findPrevBtn">Previous</button>
<button class="btn-secondary" id="findNextBtn">Next</button>
<button class="btn-primary" id="replaceBtn">Replace</button>
<button class="btn-primary" id="replaceAllBtn">
Replace All
</button>
</div>
</div>
</div>
</div>
<div class="modal hidden" id="printPreviewModal">
<div class="modal-content modal-fullscreen">
<div class="modal-header">
<h3>Print Preview</h3>
<div class="print-toolbar">
<select id="printOrientation">
<option value="portrait">Portrait</option>
<option value="landscape">Landscape</option>
</select>
<select id="printPaperSize">
<option value="letter">Letter (8.5" x 11")</option>
<option value="a4">A4 (210mm x 297mm)</option>
<option value="legal">Legal (8.5" x 14")</option>
</select>
<label class="checkbox-label">
<input type="checkbox" id="printHeaders" />
Headers & Footers
</label>
</div>
<button class="btn-close" id="closePrintPreviewModal">×</button>
</div>
<div class="modal-body print-preview-body">
<div class="print-preview-container" id="printPreviewContainer">
<div class="print-page" id="printPage">
<div class="print-header" id="printHeader"></div>
<div class="print-content" id="printContent"></div>
<div class="print-footer" id="printFooter"></div>
</div>
</div>
</div>
<div class="modal-actions">
<button class="btn-secondary" id="cancelPrintBtn">Cancel</button>
<button class="btn-primary" id="printBtn">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="6 9 6 2 18 2 18 9"></polyline>
<path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path>
<rect x="6" y="14" width="12" height="8"></rect>
</svg>
Print
</button>
</div>
</div>
</div>
<div class="modal hidden" id="headerFooterModal">
<div class="modal-content">
<div class="modal-header">
<h3>Header & Footer</h3>
<button class="btn-close" id="closeHeaderFooterModal">×</button>
</div>
<div class="modal-body">
<div class="hf-tabs">
<button class="hf-tab active" data-tab="header">Header</button>
<button class="hf-tab" data-tab="footer">Footer</button>
</div>
<div class="hf-tab-content active" id="hfHeaderTab">
<div class="form-group">
<label>Header Content:</label>
<div class="hf-editor" id="headerEditor" contenteditable="true"
data-placeholder="Enter header text..."></div>
</div>
<div class="hf-options">
<label class="checkbox-label">
<input type="checkbox" id="showHeaderFirstPage" />
Different first page
</label>
<label class="checkbox-label">
<input type="checkbox" id="showHeaderOddEven" />
Different odd & even pages
</label>
</div>
<div class="hf-insert-options">
<label>Insert:</label>
<div class="hf-insert-btns">
<button class="btn-secondary btn-sm" id="insertPageNum">
Page Number
</button>
<button class="btn-secondary btn-sm" id="insertDate">
Date
</button>
<button class="btn-secondary btn-sm" id="insertDocTitle">
Document Title
</button>
</div>
</div>
</div>
<div class="hf-tab-content" id="hfFooterTab">
<div class="form-group">
<label>Footer Content:</label>
<div class="hf-editor" id="footerEditor" contenteditable="true"
data-placeholder="Enter footer text..."></div>
</div>
<div class="hf-options">
<label class="checkbox-label">
<input type="checkbox" id="showFooterFirstPage" />
Different first page
</label>
<label class="checkbox-label">
<input type="checkbox" id="showFooterOddEven" />
Different odd & even pages
</label>
</div>
<div class="hf-insert-options">
<label>Insert:</label>
<div class="hf-insert-btns">
<button class="btn-secondary btn-sm" id="insertFooterPageNum">
Page Number
</button>
<button class="btn-secondary btn-sm" id="insertFooterDate">
Date
</button>
<button class="btn-secondary btn-sm" id="insertFooterDocTitle">
Document Title
</button>
</div>
</div>
</div>
<div class="modal-actions">
<button class="btn-secondary" id="removeHeaderFooterBtn">
Remove All
</button>
<button class="btn-secondary" id="cancelHeaderFooterBtn">
Cancel
</button>
<button class="btn-primary" id="applyHeaderFooterBtn">
Apply
</button>
</div>
</div>
</div>
</div>
<script src="docs/docs.js"></script>