blob: c4fe69716129c99e7cc0855858ef180d50bed8fd [file]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for
additional information regarding copyright ownership. The ASF licenses this
file to you under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
-->
<script>
/**
* Inline icon set. Everything is drawn in `currentColor` so icons inherit
* whatever colour the surrounding text uses, in both light and dark themes.
*/
let { name, size = 18, stroke = 1.75, label = null } = $props();
</script>
<svg
class="icon"
width={size}
height={size}
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width={stroke}
stroke-linecap="round"
stroke-linejoin="round"
role={label ? "img" : "presentation"}
aria-label={label}
aria-hidden={label ? undefined : "true"}
>
{#if name === "github"}
<path
fill="currentColor"
stroke="none"
d="M12 .5C5.73.5.99 5.24.99 11.5c0 4.86 3.15 8.98 7.52 10.44.55.1.75-.24.75-.53
0-.26-.01-1.13-.02-2.05-3.06.67-3.71-1.3-3.71-1.3-.5-1.27-1.22-1.61-1.22-1.61-1-.68.08-.67.08-.67
1.1.08 1.68 1.13 1.68 1.13.98 1.68 2.57 1.2 3.2.92.1-.71.38-1.2.7-1.47-2.44-.28-5.01-1.22-5.01-5.43
0-1.2.43-2.18 1.13-2.95-.11-.28-.49-1.4.11-2.91 0 0 .92-.3 3.02 1.13a10.4 10.4 0 0 1 5.5 0c2.1-1.43
3.02-1.13 3.02-1.13.6 1.51.22 2.63.11 2.91.7.77 1.13 1.75 1.13 2.95 0 4.22-2.58 5.15-5.03 5.42.39.34.74 1
.74 2.02 0 1.46-.01 2.63-.01 2.99 0 .29.2.64.76.53A11.02 11.02 0 0 0 23.01 11.5C23.01 5.24 18.27.5 12 .5Z"
/>
{:else if name === "user"}
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" />
<circle cx="12" cy="7" r="4" />
{:else if name === "users"}
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" />
<circle cx="9" cy="7" r="4" />
<path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75" />
{:else if name === "logout"}
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" />
<path d="m16 17 5-5-5-5M21 12H9" />
{:else if name === "shield"}
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z" />
<path d="m9 12 2 2 4-4" />
{:else if name === "lock"}
<rect x="3" y="11" width="18" height="11" rx="2" />
<path d="M7 11V7a5 5 0 0 1 10 0v4" />
{:else if name === "repo-plus"}
<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20" />
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2Z" />
<path d="M12 7v6M9 10h6" />
{:else if name === "branch"}
<line x1="6" y1="3" x2="6" y2="15" />
<circle cx="18" cy="6" r="3" />
<circle cx="6" cy="18" r="3" />
<path d="M18 9a9 9 0 0 1-9 9" />
{:else if name === "search"}
<circle cx="11" cy="11" r="7" />
<path d="m21 21-4.3-4.3" />
{:else if name === "help"}
<circle cx="12" cy="12" r="10" />
<path d="M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3" />
<line x1="12" y1="17" x2="12.01" y2="17" />
{:else if name === "book"}
<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20" />
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2Z" />
{:else if name === "mail"}
<rect x="2" y="4" width="20" height="16" rx="2" />
<path d="m2 7 10 6 10-6" />
{:else if name === "home"}
<path d="m3 10 9-7 9 7v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z" />
<path d="M9 22V12h6v10" />
{:else if name === "chevron-down"}
<path d="m6 9 6 6 6-6" />
{:else if name === "menu"}
<path d="M3 6h18M3 12h18M3 18h18" />
{:else if name === "close"}
<path d="M18 6 6 18M6 6l12 12" />
{:else if name === "check"}
<path d="m20 6-11 11-5-5" />
{:else if name === "external"}
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" />
<path d="M15 3h6v6M10 14 21 3" />
{:else if name === "link"}
<path d="M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7" />
<path d="M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7" />
{:else if name === "unlink"}
<path d="M15 7h2a5 5 0 0 1 3.5 8.5M9 17H7A5 5 0 0 1 3.5 8.5" />
<line x1="8" y1="12" x2="12" y2="12" />
<line x1="2" y1="2" x2="22" y2="22" />
{:else if name === "alert"}
<path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0Z" />
<path d="M12 9v4M12 17h.01" />
{:else if name === "info"}
<circle cx="12" cy="12" r="10" />
<path d="M12 16v-4M12 8h.01" />
{:else if name === "archive"}
<rect x="2" y="3" width="20" height="5" rx="1" />
<path d="M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8M10 12h4" />
{:else if name === "eye-off"}
<path d="M9.9 4.24A9.1 9.1 0 0 1 12 4c7 0 10 8 10 8a18.5 18.5 0 0 1-2.16 3.19" />
<path d="M6.6 6.6A18.5 18.5 0 0 0 2 12s3 8 10 8a9.1 9.1 0 0 0 5.4-1.6" />
<path d="M14.12 14.12a3 3 0 1 1-4.24-4.24" />
<line x1="2" y1="2" x2="22" y2="22" />
{:else if name === "globe"}
<circle cx="12" cy="12" r="10" />
<path d="M2 12h20M12 2a15.3 15.3 0 0 1 0 20 15.3 15.3 0 0 1 0-20" />
{/if}
</svg>
<style>
.icon {
display: block;
flex: none;
/* Icons are decorative: let clicks fall through to the button or link
that wraps them, so an icon never swallows its own control's click. */
pointer-events: none;
}
</style>