botui/ui/suite/docs/docs.html

735 lines
28 KiB
HTML
Raw Normal View History

<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="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="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>
<button
class="btn-icon chat-toggle"
id="chatToggle"
title="Toggle AI Chat"
>
<svg
width="20"
height="20"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
>
<path
d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"
></path>
</svg>
</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>
<aside class="chat-panel" id="chatPanel">
<div class="chat-header">
<div class="chat-title">
<div class="chat-avatar">
<svg
width="20"
height="20"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
>
<path
d="M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zm0 18a8 8 0 1 1 8-8 8 8 0 0 1-8 8z"
/>
<circle cx="12" cy="10" r="3" />
<path
d="M12 15c-3 0-5 1.5-5 3v1h10v-1c0-1.5-2-3-5-3z"
/>
</svg>
</div>
<div>
<h3>AI Assistant</h3>
<span class="chat-status">Ready to help</span>
</div>
</div>
<button class="chat-close" id="chatClose" title="Close">
<svg
width="18"
height="18"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
>
<line x1="18" y1="6" x2="6" y2="18"></line>
<line x1="6" y1="6" x2="18" y2="18"></line>
</svg>
</button>
</div>
<div class="chat-messages" id="chatMessages">
<div class="chat-message assistant">
<div class="message-bubble">
<p>
Hi! I can help you edit your document. Try asking me
to:
</p>
<ul>
<li>Make text shorter or longer</li>
<li>Fix grammar and spelling</li>
<li>Translate to another language</li>
<li>Change the tone (formal/casual)</li>
<li>Add a summary</li>
</ul>
</div>
</div>
</div>
<div class="chat-suggestions" id="chatSuggestions">
<button class="suggestion-btn" data-action="shorter">
Make shorter
</button>
<button class="suggestion-btn" data-action="grammar">
Fix grammar
</button>
<button class="suggestion-btn" data-action="formal">
Make formal
</button>
<button class="suggestion-btn" data-action="summarize">
Summarize
</button>
</div>
<form class="chat-input-container" id="chatForm">
<input
type="text"
class="chat-input"
id="chatInput"
placeholder="Ask me to edit your document..."
autocomplete="off"
/>
<button
type="submit"
class="chat-send"
id="chatSend"
title="Send"
>
<svg
width="18"
height="18"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
>
<line x1="22" y1="2" x2="11" y2="13"></line>
<polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
</svg>
</button>
</form>
</aside>
</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">📄</div>
<div class="export-label">PDF</div>
</button>
<button class="export-option" data-format="docx">
<div class="export-icon">📝</div>
<div class="export-label">Word</div>
</button>
<button class="export-option" data-format="html">
<div class="export-icon">🌐</div>
<div class="export-label">HTML</div>
</button>
<button class="export-option" data-format="txt">
<div class="export-icon">📃</div>
<div class="export-label">Text</div>
</button>
<button class="export-option" data-format="md">
<div class="export-icon">✏️</div>
<div class="export-label">Markdown</div>
</button>
</div>
</div>
</div>
</div>
<script src="docs/docs.js"></script>