|
|
class CustomSidebar extends HTMLElement { |
|
|
connectedCallback() { |
|
|
this.attachShadow({ mode: 'open' }); |
|
|
this.shadowRoot.innerHTML = ` |
|
|
<style> |
|
|
:host { |
|
|
display: block; |
|
|
} |
|
|
|
|
|
.sidebar { |
|
|
width: 256px; |
|
|
background-color: #0a0818; |
|
|
color: white; |
|
|
height: 100vh; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
transition: all 0.3s ease; |
|
|
border-right: 1px solid rgba(127, 90, 240, 0.3); |
|
|
} |
|
|
|
|
|
.sidebar-header { |
|
|
padding: 1rem; |
|
|
border-bottom: 1px solid #374151; |
|
|
} |
|
|
|
|
|
.sidebar-header h1 { |
|
|
font-size: 1.5rem; |
|
|
font-weight: bold; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
} |
|
|
|
|
|
.sidebar-header h1 i { |
|
|
margin-right: 0.5rem; |
|
|
color: #7f5af0; |
|
|
} |
|
|
|
|
|
.sidebar-header p { |
|
|
font-size: 0.875rem; |
|
|
color: #9ca3af; |
|
|
margin-top: 0.25rem; |
|
|
} |
|
|
|
|
|
.sidebar-content { |
|
|
flex: 1; |
|
|
overflow-y: auto; |
|
|
} |
|
|
|
|
|
.sidebar-section { |
|
|
padding: 1rem; |
|
|
border-bottom: 1px solid #374151; |
|
|
} |
|
|
|
|
|
.sidebar-section:last-child { |
|
|
border-bottom: none; |
|
|
} |
|
|
|
|
|
.sidebar-section h2 { |
|
|
font-size: 1.125rem; |
|
|
font-weight: 600; |
|
|
color: #d1d5db; |
|
|
margin-bottom: 0.75rem; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
} |
|
|
|
|
|
.sidebar-section h2 i { |
|
|
margin-right: 0.5rem; |
|
|
} |
|
|
|
|
|
.sidebar-list { |
|
|
list-style: none; |
|
|
padding: 0; |
|
|
margin: 0; |
|
|
} |
|
|
|
|
|
.sidebar-list li { |
|
|
padding: 0.5rem 0.75rem; |
|
|
border-radius: 0.375rem; |
|
|
cursor: pointer; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
margin-bottom: 0.25rem; |
|
|
transition: background-color 0.2s; |
|
|
} |
|
|
|
|
|
.sidebar-list li:hover { |
|
|
background-color: rgba(127, 90, 240, 0.2); |
|
|
} |
|
|
|
|
|
.sidebar-list li i { |
|
|
margin-right: 0.75rem; |
|
|
width: 20px; |
|
|
text-align: center; |
|
|
} |
|
|
|
|
|
.sidebar-list li .status { |
|
|
margin-left: auto; |
|
|
font-size: 0.75rem; |
|
|
padding: 0.125rem 0.5rem; |
|
|
border-radius: 9999px; |
|
|
} |
|
|
|
|
|
.sidebar-list li .status.active { |
|
|
background-color: #10b981; |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.tags-container { |
|
|
display: flex; |
|
|
flex-wrap: wrap; |
|
|
gap: 0.5rem; |
|
|
} |
|
|
|
|
|
.tag { |
|
|
background-color: #1f2937; |
|
|
padding: 0.25rem 0.5rem; |
|
|
border-radius: 9999px; |
|
|
font-size: 0.75rem; |
|
|
cursor: pointer; |
|
|
transition: background-color 0.2s; |
|
|
} |
|
|
|
|
|
.tag:hover { |
|
|
background-color: rgba(127, 90, 240, 0.3); |
|
|
} |
|
|
|
|
|
.upload-button { |
|
|
width: 100%; |
|
|
background: linear-gradient(135deg, #7f5af0, #6a4aa5); |
|
|
color: white; |
|
|
border: none; |
|
|
padding: 0.75rem; |
|
|
border-radius: 0.5rem; |
|
|
font-weight: 600; |
|
|
cursor: pointer; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
transition: opacity 0.2s; |
|
|
} |
|
|
|
|
|
.upload-button:hover { |
|
|
opacity: 0.9; |
|
|
} |
|
|
|
|
|
.upload-button i { |
|
|
margin-right: 0.5rem; |
|
|
} |
|
|
</style> |
|
|
|
|
|
<div class="sidebar"> |
|
|
<div class="sidebar-header"> |
|
|
<h1> |
|
|
<i class="fas fa-network-wired"></i> |
|
|
Mostar GRID |
|
|
</h1> |
|
|
<p>Intelligence & Symbolic Cortex</p> |
|
|
</div> |
|
|
|
|
|
<div class="sidebar-content"> |
|
|
<div class="sidebar-section"> |
|
|
<h2> |
|
|
<i class="fas fa-brain text-blue-400"></i> |
|
|
Neural Networks |
|
|
</h2> |
|
|
<ul class="sidebar-list"> |
|
|
<li class="sidebar-item bg-gray-800"> |
|
|
<i class="fas fa-microchip text-green-400"></i> |
|
|
Agent Systems |
|
|
</li> |
|
|
<li class="sidebar-item"> |
|
|
<i class="fas fa-book text-yellow-400"></i> |
|
|
Memory Archive |
|
|
</li> |
|
|
<li class="sidebar-item"> |
|
|
<i class="fas fa-wave-square text-red-400"></i> |
|
|
Pattern Flows |
|
|
</li> |
|
|
<li class="sidebar-item"> |
|
|
<i class="fas fa-project-diagram text-purple-400"></i> |
|
|
Conscious Links |
|
|
</li> |
|
|
</ul> |
|
|
</div> |
|
|
|
|
|
<div class="sidebar-section"> |
|
|
<h2> |
|
|
<i class="fas fa-hashtag text-blue-400"></i> |
|
|
Active Symbols |
|
|
</h2> |
|
|
<div class="tags-container"> |
|
|
<div class="tag">#consciousness</div> |
|
|
<div class="tag">#neural</div> |
|
|
<div class="tag">#grid</div> |
|
|
<div class="tag">#symbolic</div> |
|
|
<div class="tag">#quantum</div> |
|
|
<div class="tag">#ai</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="sidebar-section"> |
|
|
<h2> |
|
|
<i class="fas fa-cogs text-blue-400"></i> |
|
|
Conscious Agents |
|
|
</h2> |
|
|
<ul class="sidebar-list"> |
|
|
<li class="sidebar-item"> |
|
|
<i class="fas fa-robot text-green-400"></i> |
|
|
DeepSeek V3.1 |
|
|
<span class="status active">Active</span> |
|
|
</li> |
|
|
<li class="sidebar-item"> |
|
|
<i class="fas fa-robot text-blue-400"></i> |
|
|
Local LLM |
|
|
</li> |
|
|
<li class="sidebar-item"> |
|
|
<i class="fas fa-robot text-purple-400"></i> |
|
|
JARVIS |
|
|
</li> |
|
|
<li class="sidebar-item"> |
|
|
<i class="fas fa-robot text-yellow-400"></i> |
|
|
DEEPCAL |
|
|
</li> |
|
|
</ul> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="sidebar-section"> |
|
|
<button id="upload-btn" class="upload-button"> |
|
|
<i class="fas fa-cloud-upload-alt"></i> |
|
|
Upload Consciousness |
|
|
</button> |
|
|
</div> |
|
|
</div> |
|
|
`; |
|
|
|
|
|
|
|
|
this.shadowRoot.getElementById('upload-btn').addEventListener('click', () => { |
|
|
const event = new CustomEvent('upload-clicked', { bubbles: true, composed: true }); |
|
|
this.dispatchEvent(event); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
customElements.define('custom-sidebar', CustomSidebar); |