Changelog
Every release of @intentface/chat, newest first.
@intentface/chat
0.5.3
Patch Changes
- ComposerFix
Composer.Rootlosing its state under StrictMode or a hidden<Activity>, which drew the placeholder over a controlledvalue. - A composer embedded in a scrolling page no longer scrolls that page.
Programmatic text changes. clear(), setText() and the ask-user step changes used to nudge the page by a few pixels each time. Keeping the caret in view after a write now scrolls only the composer's own scroll areas, never past Composer.Root. A caret on an empty line, including an empty editor's, is measured by that line's break: on its own it has no box, and its all-zero rect read as "above the view". A trailing empty line in an overflowing composer now scrolls into view too.
Ask-user focus moves. Moving into the options, arrowing between them, and typing to answer move focus without the browser's focus-scroll. An option outside its own list's view is still brought into view within the question.
focus(options). The composer controller's focus now takes HTMLElement.focus()'s options, so a consumer can focus an on-screen composer with { preventScroll: true }. Called with no arguments, it behaves as before.
- Remove the
nanoiddependency; attachment ids are now the file's blob URL. - ComposerFix a hydration mismatch when
Composer.Popoveror an overlayComposer.Panelis server-rendered. - Render-safety and re-render fixes from a React Doctor review.
No ref writes during render. AskUser.Options and AskUser.Option mirror their latest values into refs in an insertion effect instead of during render, which React may discard. It runs before every layout effect, so options still seed the initial highlight from their own. Composer.Command's "this prefix is the one closing" flag is now state that flips only at open and close.
Stable context values. AskUser.Root, AskUser.Options, AskUser.Option, the shared collapsible behind Reasoning and Steps, and the anchored Tabs surface memoize their context values, so memoized consumers no longer redraw on every parent render.
0.5.2
Patch Changes
- Add JSDoc to every part of
Attachments,Chip,Message,ReasoningandSteps, so editors show the same reference as the docs. - Refresh the README to match the rewritten docs.
0.5.1
Patch Changes
- ThreadFix losing the bottom while the container is resized.
0.5.0
Minor Changes
- TabsFix
dismissOnEscapeclosing the panel on an Escape another handler already prevented. - ComposerFix an Escape in one composer stopping generation in another.
- ComposerBreakingEscape stops generation only from inside
Composer.Root. To stop on any Escape, handle it on your chat container, such asThread.Root.
0.4.0
Minor Changes
- NavNew
Nav.Toggle: a caret insideNav.Trigger, so a branch row can also be a page. - NavAdd
aria-current="page"to activeNav.ItemandNav.Triggerrows. - NavFix a disabled
Nav.Triggerrendered as a link still navigating. - NavFix Space not following a link row.
- TabsNew
openOnHover,openDelayandcloseDelayonTabs.Trigger. - TabsAdd
eventDetailstoonValueChangeandonItemsChange, withreasonandcancel(), so a close can be cancelled. - TabsFix Escape from a floating
Tabs.Popupdropping focus instead of returning it to its tab. - Breaking
event.preventBaseUIHandler()is nowevent.preventPrimitiveHandler(), andevent.baseUIHandlerPreventedis nowevent.primitiveHandlerPrevented.
0.3.0
Minor Changes
- ShellNew primitive: a collapsible, resizable sidebar with hover-peek.
- NavNew primitive: a nav tree with roving focus, typeahead and a guide ladder.
- TabsNew primitive: closable tabs whose panel renders in the layout or anchored to its tab.
- ComposerFix a closing
Composer.Panelstaying mounted when there was nothing to animate. - Fix anchored surfaces animating in from before they were placed, and add
--anchor-available-width.
0.2.1
Patch Changes
- ThreadFix visibly scrolling to the bottom while the container animates open.
- ThreadFix losing a few pixels of scroll position when the composer changes height.
0.2.0
Minor Changes
- StepsReasoningFix the panel clipping content that grows after it opens.
- StepsReasoningBreakingThe panel height variable
--collapsible-panel-heightis now--panel-height. - ThreadBreaking
Thread.Rootno longer takesdockSelector. Put the composer inThread.Composerand it is measured automatically.
Patch Changes
- ComposerFix
Composer.Textareagaining phantom newlines during rapid editing. - Fix the npm registry listing
exportspaths the package doesn't ship. Installs were unaffected. - Point
homepageand the README links at https://ui.intentface.com.
0.1.2
Patch Changes
- Fix the package failing to load during server-side rendering.
0.1.1
Patch Changes
- Fix a regex in
parseChipSegmentsthat could hang the browser on long messages. - ComposerFix a regex that could freeze the editor on large pasted text.
0.1.0
Minor Changes
- Initial release: headless chat primitives for React.
Composer,Thread,Message,Steps,Reasoning,Chip,AttachmentsandAskUser, plus the message types and utilities.