Changelog
Version 0.7.0
Every @aparte/* package ships at this version (they are released in lockstep).
Minor Changes
-
acb1e37: Breaking: the composer’s three positional footer slots become one
toolbar.footerLeft/footerCenter/footerRight(and theirfooter-left/footer-center/footer-rightslot equivalents) are removed. Pass onetoolbarinstead and order your controls yourself:// before<AparteChat footerLeft={<ModePicker />} footerRight={<ModelSelector />} />// after<AparteChat toolbar={<><ModePicker /><ModelSelector style={{ marginInlineStart: 'auto' }} /></>} />Placement inside the row is the DOM order;
margin-inline-start: autopushes a control — and everything after it — to the end. It is a logical property, so a control that used to be in the right-hand slot now follows the reading direction instead of contradicting it in a right-to-left locale.Vue uses
<template #toolbar>, Svelte<svelte:fragment slot="toolbar">(a fragment projects several nodes with no wrapper element), Angularslot="toolbar"on each projected node.New in core:
<aparte-composer-toolbar>, the element the row actually is. It works in plain HTML with no wrapper, which the row never did before — vanilla consumers had to write<div class="aparte-composer-footer">by hand. It hides itself while empty, and it is not part of the default<aparte-chat>shell: nothing is drawn until you put something in it.Also in core:
<aparte-composer>now mirrors the locale’s reading direction onto itself.dirwas applied by the viewport alone, so an RTL locale flipped the transcript and left the composer left-to-right — which also made any logical margin inside it behave like a physical one.@aparte/core,@aparte/angular,@aparte/react,@aparte/svelte,@aparte/vue
Version-only bumps (no changes of their own): @aparte/engine, @aparte/provider-ai-sdk, @aparte/provider-openai-compat, @aparte/provider-transformers, @aparte/plugin-ask-user, @aparte/plugin-marked, @aparte/plugin-model-selector, @aparte/plugin-shiki, @aparte/plugin-streaming-markdown, @aparte/locale-fr.