|
136 | 136 | <main> |
137 | 137 | <div class="hero"> |
138 | 138 | <div class="hero-content"> |
139 | | - <h1 class="hero-title">Supported Providers <a href={DOCS_URL} target="_blank" rel="noopener noreferrer" class="docs-link">(Docs)</a></h1> |
140 | | - <p class="hero-subtitle">Browse all AI providers and their supported endpoints through LiteLLM Gateway</p> |
| 139 | + <h1 class="hero-title">Supported Endpoints & Providers <a href={DOCS_URL} target="_blank" rel="noopener noreferrer" class="docs-link">(Docs)</a></h1> |
| 140 | + <p class="hero-subtitle">Browse all AI providers and their supported endpoints through LiteLLM AI Gateway</p> |
141 | 141 | </div> |
142 | 142 | </div> |
143 | 143 |
|
|
168 | 168 | </button> |
169 | 169 | {#if viewModeOpen} |
170 | 170 | <div class="dropdown-menu" transition:fly={{ y: -10, duration: 150 }}> |
171 | | - <button class="dropdown-option" class:selected={viewMode === "provider"} on:click={() => { viewMode = "provider"; viewModeOpen = false; }} type="button"> |
| 171 | + <button class="dropdown-option" class:selected={viewMode === "provider"} on:click|stopPropagation={() => { viewMode = "provider"; viewModeOpen = false; }} type="button"> |
172 | 172 | View by Provider |
173 | 173 | </button> |
174 | | - <button class="dropdown-option" class:selected={viewMode === "endpoint"} on:click={() => { viewMode = "endpoint"; viewModeOpen = false; }} type="button"> |
| 174 | + <button class="dropdown-option" class:selected={viewMode === "endpoint"} on:click|stopPropagation={() => { viewMode = "endpoint"; viewModeOpen = false; }} type="button"> |
175 | 175 | View by Endpoint |
176 | 176 | </button> |
177 | 177 | </div> |
|
188 | 188 | </button> |
189 | 189 | {#if filterOpen} |
190 | 190 | <div class="dropdown-menu scrollable" transition:fly={{ y: -10, duration: 150 }}> |
191 | | - <button class="dropdown-option" class:selected={!selectedFilter} on:click={() => { selectedFilter = ""; filterOpen = false; }} type="button"> |
| 191 | + <button class="dropdown-option" class:selected={!selectedFilter} on:click|stopPropagation={() => { selectedFilter = ""; filterOpen = false; }} type="button"> |
192 | 192 | All {viewMode === "provider" ? "Providers" : "Endpoints"} |
193 | 193 | </button> |
194 | 194 | {#if viewMode === "provider"} |
195 | 195 | {#each providers as { provider, display_name }} |
196 | | - <button class="dropdown-option" class:selected={selectedFilter === provider} on:click={() => { selectedFilter = provider; filterOpen = false; }} type="button"> |
| 196 | + <button class="dropdown-option" class:selected={selectedFilter === provider} on:click|stopPropagation={() => { selectedFilter = provider; filterOpen = false; }} type="button"> |
197 | 197 | {display_name.replace(/\s*\(.*?\)\s*$/, '')} |
198 | 198 | </button> |
199 | 199 | {/each} |
200 | 200 | {:else} |
201 | 201 | {#each endpointColumns as endpoint} |
202 | | - <button class="dropdown-option" class:selected={selectedFilter === endpoint} on:click={() => { selectedFilter = endpoint; filterOpen = false; }} type="button"> |
| 202 | + <button class="dropdown-option" class:selected={selectedFilter === endpoint} on:click|stopPropagation={() => { selectedFilter = endpoint; filterOpen = false; }} type="button"> |
203 | 203 | {formatEndpointName(endpoint)} |
204 | 204 | </button> |
205 | 205 | {/each} |
|
0 commit comments