{#if editor}
{#if fontOpen}
{#if recentFonts.length > 0} {#each recentFonts as font} {/each} {/if} {#each WEB_SAFE_FONTS as font} {/each} {#if extraFontsList.length > 0} {#each extraFontsList as font} {/each} {/if} {#if localFontAccessSupported && !allInstalledFonts} {/if}
{/if}
{#if sizeOpen}
{#each FONT_SIZES as size} {/each}
{/if}
onColorPickerOpen('font')} onApply={(c, r) => editor?.chain().focus().setTextSelection(r).setColor(c).run()} onClear={(r) => editor?.chain().focus().setTextSelection(r).unsetColor().run()} > {#snippet icon()} {/snippet} onColorPickerOpen('highlight')} onApply={(c, r) => editor?.chain().focus().setTextSelection(r).setHighlight({ color: c }).run()} onClear={(r) => editor?.chain().focus().setTextSelection(r).unsetHighlight().run()} > {#snippet icon()} {/snippet}
{#if lineHeightOpen}
{#each LINE_HEIGHTS as lh} {/each}
onSpaceFocus('before', e)} onkeydown={(e) => onSpaceKeydown('before', e)} onblur={() => onSpaceBlur('before')} placeholder="Default" inputmode="decimal" title="Space before paragraph (pt)" />
{#if spaceBeforeOpen}
{#each SPACING_PRESETS as v} {/each}
{/if}
onSpaceFocus('after', e)} onkeydown={(e) => onSpaceKeydown('after', e)} onblur={() => onSpaceBlur('after')} placeholder="Default" inputmode="decimal" title="Space after paragraph (pt)" />
{#if spaceAfterOpen}
{#each SPACING_PRESETS as v} {/each}
{/if}
{/if}
{#if layoutOpen}
{#each MARGIN_FIELDS as f}
{f.label}
onMarginKeydown(f.axis, e)} onblur={() => commitMarginInput(f.axis)} inputmode="decimal" title="{f.label} margin (cm)" />
{/each}
{#each HF_DIST_FIELDS as f}
{f.label}
onHfDistKeydown(f.axis, e)} onblur={() => commitHfDistInput(f.axis)} inputmode="decimal" title="{f.label} (cm)" />
{/each}
{/if}
{#if import.meta.env.DEV && onDebugDump}
{/if} {/if}