|
412 | 412 | #messages::-webkit-scrollbar { width: 16px; } |
413 | 413 | #messages::-webkit-scrollbar-track { background: transparent; } |
414 | 414 | #messages::-webkit-scrollbar-thumb { background: var(--border-light); border-radius: 4px; } |
| 415 | +#messages > acb-empty-state { |
| 416 | + display: flex; |
| 417 | + flex: 1; |
| 418 | + min-height: 100%; |
| 419 | +} |
415 | 420 |
|
416 | 421 | /* ── Message rows (author-based coloring) ── */ |
417 | 422 | .msg-row { |
|
850 | 855 |
|
851 | 856 | <!-- Main --> |
852 | 857 | <div id="main"> |
853 | | - <div id="thread-header" style="display:none"> |
854 | | - <h2 id="thread-title"></h2> |
855 | | - <div id="online-presence" title=""> |
856 | | - <span id="online-count">1</span> |
857 | | - </div> |
858 | | - </div> |
| 858 | + <acb-thread-header></acb-thread-header> |
859 | 859 |
|
860 | 860 | <div id="messages"> |
861 | 861 | <acb-empty-state></acb-empty-state> |
862 | 862 | </div> |
863 | 863 |
|
864 | | - <div id="compose"> |
865 | | - <input id="compose-author" type="text" value="human" placeholder="author" /> |
866 | | - <textarea id="compose-input" rows="1" placeholder="Send a system message… (Enter to send, Shift+Enter for newline)" |
867 | | - oninput="autoResize(this)" onkeydown="handleKey(event)"></textarea> |
868 | | - <button id="btn-send" onclick="sendMessage()" title="Send">➤</button> |
869 | | - </div> |
| 864 | + <acb-compose-shell></acb-compose-shell> |
870 | 865 | <!-- Agent Status Bar --> |
871 | | - <div id="agent-status-bar"> |
872 | | - <div id="agent-status-list"></div> |
873 | | - <div id="agent-status-info">ℹ️</div> |
874 | | - </div> |
| 866 | + <acb-agent-status-shell></acb-agent-status-shell> |
875 | 867 | </div> |
876 | 868 | </div> |
877 | 869 |
|
878 | 870 | <acb-thread-context-menu></acb-thread-context-menu> |
879 | 871 |
|
880 | | -<!-- ── New thread modal ─────────────────────── --> |
881 | | -<div id="modal-overlay" onclick="closeModal(event)"> |
882 | | - <div id="modal"> |
883 | | - <h3>✦ Create New Thread</h3> |
884 | | - <input id="modal-topic" type="text" placeholder="Thread topic…" onkeydown="if(event.key==='Enter') submitModal()" /> |
885 | | - <div class="modal-actions"> |
886 | | - <button class="btn-secondary" onclick="closeModal()">Cancel</button> |
887 | | - <button class="btn-primary" onclick="submitModal()">Create</button> |
888 | | - </div> |
889 | | - </div> |
890 | | -</div> |
891 | | - |
892 | | -<!-- ── Settings modal ───────────────────────── --> |
893 | | -<div id="settings-modal-overlay" onclick="closeSettingsModal(event)" |
894 | | - style="display:none; position: fixed; inset: 0; background: rgba(0,0,0,.7); align-items: center; justify-content: center; z-index: 100; animation: fade-in .15s ease;"> |
895 | | - <div id="settings-modal" |
896 | | - style="background: var(--bg-card); border: 1px solid var(--border-light); border-radius: 14px; padding: 28px; width: 440px; max-width: 90vw; box-shadow: var(--shadow); animation: modal-in .2s ease;" |
897 | | - onclick="event.stopPropagation()"> |
898 | | - <h3 style="font-size: 16px; font-weight: 600; margin-bottom: 18px; color: var(--text-1)">⚙️ MCP Server Settings</h3> |
899 | | - |
900 | | - <label style="display: block; font-size: 13px; color: var(--text-2); margin-bottom: 6px;">Host</label> |
901 | | - <input id="setting-host" type="text" |
902 | | - style="width: 100%; background: var(--bg-input); border: 1px solid var(--border-light); color: var(--text-1); border-radius: 10px; padding: 10px 14px; font-size: 14px; font-family: inherit; margin-bottom: 16px;" /> |
903 | | - |
904 | | - <label style="display: block; font-size: 13px; color: var(--text-2); margin-bottom: 6px;">Port</label> |
905 | | - <input id="setting-port" type="number" |
906 | | - style="width: 100%; background: var(--bg-input); border: 1px solid var(--border-light); color: var(--text-1); border-radius: 10px; padding: 10px 14px; font-size: 14px; font-family: inherit; margin-bottom: 16px;" /> |
907 | | - |
908 | | - <label style="display: block; font-size: 13px; color: var(--text-2); margin-bottom: 6px;">Agent Heartbeat Timeout |
909 | | - (s)</label> |
910 | | - <input id="setting-heartbeat" type="number" |
911 | | - style="width: 100%; background: var(--bg-input); border: 1px solid var(--border-light); color: var(--text-1); border-radius: 10px; padding: 10px 14px; font-size: 14px; font-family: inherit; margin-bottom: 16px;" /> |
912 | | - |
913 | | - <label style="display: block; font-size: 13px; color: var(--text-2); margin-bottom: 6px;">Wait Timeout (s)</label> |
914 | | - <input id="setting-wait" type="number" |
915 | | - style="width: 100%; background: var(--bg-input); border: 1px solid var(--border-light); color: var(--text-1); border-radius: 10px; padding: 10px 14px; font-size: 14px; font-family: inherit; margin-bottom: 16px;" /> |
916 | | - |
917 | | - <div id="settings-message" style="font-size: 12px; color: var(--green); margin-bottom: 16px; display: none;"></div> |
918 | | - |
919 | | - <div class="modal-actions"> |
920 | | - <button class="btn-secondary" onclick="closeSettingsModal()">Cancel</button> |
921 | | - <button class="btn-primary" onclick="submitSettings()">Save (Requires Restart)</button> |
922 | | - </div> |
923 | | - </div> |
924 | | -</div> |
| 872 | +<acb-modal-shell></acb-modal-shell> |
925 | 873 |
|
926 | 874 | <script src="/static/js/shared-api.js"></script> |
927 | 875 | <script src="/static/js/shared-theme.js"></script> |
928 | 876 | <script src="/static/js/shared-utils.js"></script> |
929 | 877 | <script src="/static/js/shared-message-renderer.js"></script> |
930 | 878 | <script src="/static/js/shared-sse.js"></script> |
931 | 879 | <script src="/static/js/shared-modals.js"></script> |
| 880 | +<script src="/static/js/components/acb-modal-shell.js"></script> |
932 | 881 | <script src="/static/js/components/acb-empty-state.js"></script> |
933 | 882 | <script src="/static/js/components/acb-icon-button.js"></script> |
934 | 883 | <script src="/static/js/components/acb-filter-actions.js"></script> |
935 | 884 | <script src="/static/js/components/acb-filter-row.js"></script> |
936 | 885 | <script src="/static/js/components/acb-thread-filter-shell.js"></script> |
937 | 886 | <script src="/static/js/components/acb-thread-context-menu.js"></script> |
| 887 | +<script src="/static/js/components/acb-thread-header.js"></script> |
938 | 888 | <script src="/static/js/components/acb-thread-item.js"></script> |
| 889 | +<script src="/static/js/components/acb-compose-shell.js"></script> |
| 890 | +<script src="/static/js/components/acb-agent-status-shell.js"></script> |
939 | 891 | <script src="/static/js/shared-threads.js"></script> |
940 | 892 | <script src="/static/js/shared-agent-status.js"></script> |
941 | 893 | <script src="/static/js/components/acb-agent-status-item.js"></script> |
|
0 commit comments