diff --git a/packages/presentation/src/components/markup/NodeContent.svelte b/packages/presentation/src/components/markup/NodeContent.svelte index fcce7a7d297..d1613fa6959 100644 --- a/packages/presentation/src/components/markup/NodeContent.svelte +++ b/packages/presentation/src/components/markup/NodeContent.svelte @@ -112,7 +112,7 @@ {/if} {:else if node.type === MarkupNodeType.paragraph} -

+

{#if nodes.length > 0} {#each nodes as node} @@ -132,7 +132,7 @@ {:else if node.type === MarkupNodeType.heading} {@const level = toNumber(node.attrs?.level) ?? 1} {@const element = `h${level}`} - + {#if nodes.length > 0} {#each nodes as node} diff --git a/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte b/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte index f89bda14540..a783a2e3909 100644 --- a/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte +++ b/packages/presentation/src/components/markup/lite/LiteNodeContent.svelte @@ -81,7 +81,14 @@ {/each} {/if} {:else if node.type === MarkupNodeType.paragraph} -

+

{:else if node.type === MarkupNodeType.blockquote} diff --git a/packages/theme/styles/prose.scss b/packages/theme/styles/prose.scss index 68126e92c3e..762e57bc3ed 100644 --- a/packages/theme/styles/prose.scss +++ b/packages/theme/styles/prose.scss @@ -84,7 +84,7 @@ table.proseTable { } th { - text-align: left; + text-align: start; background-color: var(--text-editor-table-header-color); } diff --git a/plugins/text-editor-resources/src/kits/editor-kit.ts b/plugins/text-editor-resources/src/kits/editor-kit.ts index 82669655cb0..305033ea522 100644 --- a/plugins/text-editor-resources/src/kits/editor-kit.ts +++ b/plugins/text-editor-resources/src/kits/editor-kit.ts @@ -24,7 +24,9 @@ import { extensionKit, mergeKitOptions, TextColorStylingKit, + Heading, Highlight, + Paragraph, Subscript, Superscript } from '@hcengineering/text' @@ -89,6 +91,11 @@ const StaticEditorKit = extensionKit( ({ ...CommonKitFactory(e), + // Let each text block take its direction from its first strong character, + // so RTL and mixed RTL/LTR text is rendered correctly (client-side only, stored content is unchanged) + paragraph: e(Paragraph, { HTMLAttributes: { dir: 'auto' } }), + heading: e(Heading, { HTMLAttributes: { dir: 'auto' } }), + shortcuts: e(subKits.shortcuts, context), // needs to be loaded as early as possible to override the default behavior // ===========================================================================================