| class TestSidebar extends HTMLElement { | |
| connectedCallback() { | |
| this.attachShadow({ mode: 'open' }); | |
| this.shadowRoot.innerHTML = ` | |
| <style> | |
| :host { | |
| display: block; | |
| } | |
| .sidebar { | |
| background-color: white; | |
| border-radius: 0.75rem; | |
| padding: 1.5rem; | |
| box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); | |
| height: fit-content; | |
| } | |
| .sidebar-title { | |
| font-size: 1.125rem; | |
| font-weight: 600; | |
| color: #1e293b; | |
| margin-bottom: 1.5rem; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .sidebar-title i { | |
| margin-right: 0.5rem; | |
| } | |
| .sidebar-menu { | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| .sidebar-item { | |
| margin-bottom: 0.5rem; | |
| } | |
| .sidebar-link { | |
| display: flex; | |
| align-items: center; | |
| padding: 0.5rem 1rem; | |
| border-radius: 0.375rem; | |
| color: #64748b; | |
| text-decoration: none; | |
| transition: all 0.2s; | |
| } | |
| .sidebar-link:hover { | |
| background-color: #f1f5f9; | |
| color: #3b82f6; | |
| } | |
| .sidebar-link.active { | |
| background-color: #eff6ff; | |
| color: #3b82f6; | |
| font-weight: 500; | |
| } | |
| .sidebar-link i { | |
| margin-right: 0.75rem; | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .sidebar-divider { | |
| border-top: 1px solid #e2e8f0; | |
| margin: 1rem 0; | |
| } | |
| .sidebar-subtitle { | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| color: #64748b; | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| margin: 1.5rem 0 0.5rem 1rem; | |
| } | |
| @media (max-width: 1024px) { | |
| :host { | |
| display: none; | |
| } | |
| } | |
| </style> | |
| <div class="sidebar"> | |
| <h3 class="sidebar-title"> | |
| <i data-feather="grid"></i> | |
| Projects | |
| </h3> | |
| <ul class="sidebar-menu"> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link active"> | |
| <i data-feather="home"></i> | |
| Dashboard | |
| </a> | |
| </li> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link"> | |
| <i data-feather="list"></i> | |
| All Test Cases | |
| </a> | |
| </li> | |
| </ul> | |
| <p class="sidebar-subtitle">Test Types</p> | |
| <ul class="sidebar-menu"> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link"> | |
| <i data-feather="monitor"></i> | |
| UI Automation | |
| </a> | |
| </li> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link"> | |
| <i data-feather="code"></i> | |
| API Automation | |
| </a> | |
| </li> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link"> | |
| <i data-feather="user"></i> | |
| Manual Tests | |
| </a> | |
| </li> | |
| </ul> | |
| <div class="sidebar-divider"></div> | |
| <p class="sidebar-subtitle">Test Phases</p> | |
| <ul class="sidebar-menu"> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link"> | |
| <i data-feather="layers"></i> | |
| SIT | |
| </a> | |
| </li> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link"> | |
| <i data-feather="users"></i> | |
| UAT | |
| </a> | |
| </li> | |
| <li class="sidebar-item"> | |
| <a href="#" class="sidebar-link"> | |
| <i data-feather="refresh-cw"></i> | |
| Regression | |
| </a> | |
| </li> | |
| </ul> | |
| </div> | |
| `; | |
| } | |
| } | |
| customElements.define('test-sidebar', TestSidebar); |