atagen

malice

public
Star0
Watch0
df3c0f2b3da49cedd2da20209bd76e39695179bc
2
ssh://brewery@pls.lobotomise.me:33/atagen/malice.git

Blame: web/src/lib/MessageText.svelte

df3c0f2b3da4atagen2026-10-22 13:07 UTC1
<script lang="ts">
df3c0f2b3da4atagen2026-10-22 13:07 UTC2
  import EmojiText from './EmojiText.svelte';
df3c0f2b3da4atagen2026-10-22 13:07 UTC3
  import { hasCode, parseCode } from './code';
df3c0f2b3da4atagen2026-10-22 13:07 UTC4
df3c0f2b3da4atagen2026-10-22 13:07 UTC5
  export let text: string;
df3c0f2b3da4atagen2026-10-22 13:07 UTC6
  export let jumbo = false;
df3c0f2b3da4atagen2026-10-22 13:07 UTC7
df3c0f2b3da4atagen2026-10-22 13:07 UTC8
  $: segments = parseCode(text);
df3c0f2b3da4atagen2026-10-22 13:07 UTC9
  $: plain = !hasCode(segments);
df3c0f2b3da4atagen2026-10-22 13:07 UTC10
</script>
df3c0f2b3da4atagen2026-10-22 13:07 UTC11
df3c0f2b3da4atagen2026-10-22 13:07 UTC12
{#if plain}<EmojiText {text} {jumbo} />{:else}{#each segments as s}{#if s.kind === 'inline'}<code class="inline">{s.text}</code>{:else if s.kind === 'block'}<pre class="block"><code>{s.text}</code></pre>{:else}<EmojiText text={s.text} />{/if}{/each}{/if}
df3c0f2b3da4atagen2026-10-22 13:07 UTC13
df3c0f2b3da4atagen2026-10-22 13:07 UTC14
<style>
df3c0f2b3da4atagen2026-10-22 13:07 UTC15
  code {
df3c0f2b3da4atagen2026-10-22 13:07 UTC16
    font-family: ui-monospace, 'JetBrains Mono', 'Fira Code', Menlo, monospace;
df3c0f2b3da4atagen2026-10-22 13:07 UTC17
    font-size: 0.9em;
df3c0f2b3da4atagen2026-10-22 13:07 UTC18
  }
df3c0f2b3da4atagen2026-10-22 13:07 UTC19
  .inline {
df3c0f2b3da4atagen2026-10-22 13:07 UTC20
    padding: 1px 5px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC21
    border-radius: 4px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC22
    background: var(--bg-soft);
df3c0f2b3da4atagen2026-10-22 13:07 UTC23
    border: 1px solid var(--border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC24
  }
df3c0f2b3da4atagen2026-10-22 13:07 UTC25
  .block {
df3c0f2b3da4atagen2026-10-22 13:07 UTC26
    margin: 4px 0;
df3c0f2b3da4atagen2026-10-22 13:07 UTC27
    padding: 8px 10px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC28
    border-radius: 6px;
df3c0f2b3da4atagen2026-10-22 13:07 UTC29
    background: var(--bg-soft);
df3c0f2b3da4atagen2026-10-22 13:07 UTC30
    border: 1px solid var(--border);
df3c0f2b3da4atagen2026-10-22 13:07 UTC31
    overflow-x: auto;
df3c0f2b3da4atagen2026-10-22 13:07 UTC32
    white-space: pre;
df3c0f2b3da4atagen2026-10-22 13:07 UTC33
    line-height: 1.4;
df3c0f2b3da4atagen2026-10-22 13:07 UTC34
  }
df3c0f2b3da4atagen2026-10-22 13:07 UTC35
</style>