e.preventDefault()}>
(stylesOpen = !stylesOpen)} aria-expanded={stylesOpen} aria-label={t('notes.format')} title={t('notes.format')}>Aa
{#if stylesOpen}
{#each STYLES as style}
setStyle(style)}> {t(style.label)}
{/each}
setStyle({ key: 'bullet' })}>• {t('notes.styleBullet')}
setStyle({ key: 'numbered' })}>1. {t('notes.styleNumbered')}
{/if}
apply('bold')} title="⌘B" aria-label={t('notes.bold')}>
B
apply('italic')} title="⌘I" aria-label={t('notes.italic')}>
I
apply('underline')} title="⌘U" aria-label={t('notes.underline')}>
U
apply('strikeThrough')} aria-label={t('notes.strike')}>
S
</>
{#if asSource}
onsave?.()} >
{/if}
{ colourCode(); onsave?.(); }} onkeyup={() => { readState(); readSuggestions(); }} onclick={onEditorClick} onmouseup={readState} {onkeydown} {onpaste} {ondragover} {ondrop} ondragleave={() => (dropping = false)} class:dropping >
{#if suggestions.length}
{#each suggestions as item, i (item.kind + item.id)}
{ e.preventDefault(); accept(item); }} > {#if item.kind === 'note'}
[[
{item.label} {:else if item.kind === 'person'}
@{item.label} {:else}
#{item.label} {/if}
{/each}
{/if}
{#each SYNTAX as item}
{item.mark}
{t(item.what)}
{/each}
{#if showing}
e.stopPropagation()}>
{copied ? t('notes.imageCopied') : t('notes.imageCopy')}
{t('notes.imageOpen')}
{t('detail.close')}
{#if copyError}
{copyError}
{/if}
{/if}
{ if (showing && e.key === 'Escape') { e.stopPropagation(); closeImage(); } }} />