2024-04-29 17:03:23 +02:00
|
|
|
<script lang="ts">
|
2025-02-02 11:17:22 +01:00
|
|
|
import { isMac, isSafari } from '$lib/utils';
|
|
|
|
|
import { onMount } from 'svelte';
|
2025-06-21 21:07:36 +02:00
|
|
|
import { i18n } from '$lib/i18n.svelte';
|
2025-10-18 18:51:11 +02:00
|
|
|
import * as Kbd from '$lib/components/ui/kbd/index.js';
|
2024-04-29 17:03:23 +02:00
|
|
|
|
2025-10-18 18:51:11 +02:00
|
|
|
let {
|
|
|
|
|
key = undefined,
|
|
|
|
|
shift = false,
|
|
|
|
|
ctrl = false,
|
|
|
|
|
click = false,
|
|
|
|
|
class: className = '',
|
|
|
|
|
}: {
|
|
|
|
|
key?: string;
|
|
|
|
|
shift?: boolean;
|
|
|
|
|
ctrl?: boolean;
|
|
|
|
|
click?: boolean;
|
|
|
|
|
class?: string;
|
|
|
|
|
} = $props();
|
2024-04-29 17:03:23 +02:00
|
|
|
|
2025-10-18 18:51:11 +02:00
|
|
|
let mac = $state(false);
|
|
|
|
|
let safari = $state(false);
|
2024-04-29 17:03:23 +02:00
|
|
|
|
2025-02-02 11:17:22 +01:00
|
|
|
onMount(() => {
|
|
|
|
|
mac = isMac();
|
|
|
|
|
safari = isSafari();
|
|
|
|
|
});
|
2024-04-29 17:03:23 +02:00
|
|
|
</script>
|
|
|
|
|
|
2025-10-18 18:51:11 +02:00
|
|
|
<Kbd.Root class="ml-auto {className}">
|
2025-02-02 11:17:22 +01:00
|
|
|
{#if shift}
|
2025-10-18 18:51:11 +02:00
|
|
|
⇧
|
2025-02-02 11:17:22 +01:00
|
|
|
{/if}
|
|
|
|
|
{#if ctrl}
|
2025-10-18 18:51:11 +02:00
|
|
|
{mac && !safari ? '⌘' : i18n._('menu.ctrl')}
|
2025-02-02 11:17:22 +01:00
|
|
|
{/if}
|
|
|
|
|
{#if key}
|
2025-10-18 18:51:11 +02:00
|
|
|
{key}
|
2025-02-02 11:17:22 +01:00
|
|
|
{/if}
|
|
|
|
|
{#if click}
|
2025-10-18 18:51:11 +02:00
|
|
|
{i18n._('menu.click')}
|
2025-02-02 11:17:22 +01:00
|
|
|
{/if}
|
2025-10-18 18:51:11 +02:00
|
|
|
</Kbd.Root>
|