your personal website on atproto - mirror blento.app
at qr-codes 30 lines 1.3 kB view raw
1<script lang="ts"> 2 import type { Item } from '$lib/types'; 3 import type { Editor } from '@tiptap/core'; 4 import { textAlignClasses, textSizeClasses, verticalAlignClasses } from '.'; 5 import type { ContentComponentProps } from '../types'; 6 import MarkdownTextEditor from '../utils/MarkdownTextEditor.svelte'; 7 import { cn } from '@foxui/core'; 8 9 let { item = $bindable<Item>() }: ContentComponentProps = $props(); 10 11 let editor: Editor | null = $state(null); 12</script> 13 14<!-- svelte-ignore a11y_no_static_element_interactions --> 15<!-- svelte-ignore a11y_click_events_have_key_events --> 16<div 17 class={cn( 18 'prose dark:prose-invert prose-neutral prose-sm prose-a:no-underline prose-a:text-accent-600 dark:prose-a:text-accent-400 accent:prose-a:text-accent-950 accent:prose-a:underline accent:prose-p:text-base-900 hover:bg-base-700/5 accent:hover:bg-accent-300/20 prose-p:first:mt-0 prose-p:last:mb-0 inline-flex h-full w-full max-w-none cursor-text overflow-y-scroll rounded-md p-2 text-lg transition-colors duration-150', 19 textAlignClasses[item.cardData.textAlign as string], 20 verticalAlignClasses[item.cardData.verticalAlign as string], 21 textSizeClasses[(item.cardData.textSize ?? 0) as number] 22 )} 23 onclick={() => { 24 if (editor?.isFocused) return; 25 26 editor?.commands.focus('end'); 27 }} 28> 29 <MarkdownTextEditor bind:item bind:editor /> 30</div>