feat: new blocking progress bar, fixes #18

feat: change cloud icon to history, fixes #15
fix: action search items overlap, fixes #16
feat: show tooltips immediately
This commit is contained in:
2023-11-14 20:19:01 +01:00
parent e19a57efac
commit ebf7d73d20
27 changed files with 790 additions and 268 deletions

View File

@@ -0,0 +1,39 @@
<script lang="ts">
import {KEYMAP_CODES} from "$lib/serial/keymap-codes"
import type {KeyInfo} from "$lib/serial/keymap-codes"
export let action: number | KeyInfo
export let display: "inline-keys" | "keys" = "inline-keys"
$: info = typeof action === "number" ? KEYMAP_CODES[action] ?? {code: action} : action
</script>
{#if display === "keys"}
<kbd class:icon={!!info.icon}>
{info.icon ?? info.id ?? `0x${info.code.toString(16)}`}
</kbd>
{:else if display === "inline-keys"}
{#if !info.icon && info.id?.length === 1}
<span>{info.id}</span>
{:else}
<kbd class="inline-kbd" class:icon={!!info.icon}
>{info.icon ?? info.id ?? `0x${info.code.toString(16)}`}</kbd
>
{/if}
{/if}
<style lang="scss">
kbd:not(.inline-kbd) {
height: 24px;
padding-block: auto;
transition: color 250ms ease;
}
.inline-kbd {
margin-inline-end: 2px;
}
:global(span) + .inline-kbd {
margin-inline-start: 2px;
}
</style>

View File

@@ -35,6 +35,7 @@
align-items: center;
width: 100%;
height: auto;
margin: 0;
padding: 8px;
@@ -61,4 +62,8 @@
text-align: start;
}
kbd {
height: 24px;
}
</style>

View File

@@ -0,0 +1,11 @@
<script lang="ts">
import Action from "$lib/components/Action.svelte"
import type {KeyInfo} from "$lib/serial/keymap-codes"
export let actions: Array<number | KeyInfo>
export let display: "keys" | "inline-keys" = "inline-keys"
</script>
{#each actions as action, i (`${typeof action === "number" ? action : action.code}:${i}`)}
<Action {action} {display} />
{/each}

View File

@@ -1,8 +0,0 @@
import {Extension, Node} from "@tiptap/core"
const CharaAction = Node.create({
name: "Action",
renderHTML({HTMLAttributes}) {
return ["kbd", HTMLAttributes, 0]
},
})