Skip to content

feat(autocomplete): add vue components - #7310

Draft
shaejaz wants to merge 6 commits into
masterfrom
feat/vue-autocomplete-full
Draft

shaejaz wants to merge 6 commits into
masterfrom
feat/vue-autocomplete-full

Conversation

@shaejaz

@shaejaz shaejaz commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Result

afrencalg and others added 5 commits October 16, 2026 14:28
…7294)

* feat(compare)!: require a comparison configuration for the hand-off

The compare hand-off always sends the configured comparison's
placeholder now; the prose fallback (getDefaultComparisonMessage,
getComparisonMessage) is gone, so there is only one path and the chat
hides it as a prompt shortcut. The configurationId is set on the widget
that triggers the hand-off (compareBar, <CompareBar>) and shared through
the selection, so per-hit toggles keep calling useCompare() without it.
compare() throws a usage error when no widget set one.

BREAKING CHANGE: compareBar and <CompareBar> require configurationId;
the getComparisonMessage option and getDefaultComparisonMessage are
removed.

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore(examples): use the demo comparison configuration

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Haroen Viaene <hello@haroen.me>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* fix(compare): clear the selection after the hand-off to the chat

The compare bar stayed visible after opening the chat because the
selection was never cleared. compare() now clears it once the message
is submitted, which dismisses the bar.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* comment clean

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…lable (#7295)

* feat(chat): announce replies once and make the history keyboard-scrollable

The message log announced every streamed chunk, and VoiceOver ignores its
aria-busy. Silence it and announce once when a reply starts, once with the
full reply when it completes, and on error through a status region.

Make the scrollable history a focusable, named region so keyboard users
can scroll text-only answers.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(chat): address review on reply announcements

- announce only a trailing assistant message, so a stopped request does not
  repeat the previous answer
- strip only unambiguous Markdown (and none in plain-text mode) so literal
  characters like C# and order_id survive
- move aria-busy to the history so the status region is not in a busy subtree

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* refactor(chat): stop deriving spoken text from Markdown

Announce a plain 'Reply received.' by default and pass the reply to
responseCompleteStatusText, so consumers that know how a reply is rendered
can announce its text.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(chat): announce in-flight requests on mount and clear stale replies

Start the announcement baseline as idle so a request already in flight
when the messages mount is announced, and clear the announced reply when
the history is emptied.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* feat(chat): expose announcement translations in the JS widget

Forward conversationLabelText, respondingStatusText,
responseCompleteStatusText and errorStatusText to the messages
translations.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* fix(chat): keep default translations when an override is undefined

Merge translations through a helper that ignores keys explicitly set to
undefined, so a default is never replaced by a missing label or callback
(responseCompleteStatusText: undefined used to throw when a reply
finished).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Revert "fix(chat): keep default translations when an override is undefined"

This reverts commit 6db8804. Explicitly
undefined translation overrides replace the default in every React and
ui-components widget; fixing that belongs in its own change across all
widgets rather than only in chat.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(chat): stay silent when a request ends without a reply

A resume with no stream to reconnect to goes submitted → ready without
touching the history, and the restored assistant message was announced
as a new reply. Remember the last message while the request is
submitted, and only announce a trailing assistant message that changed
since.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@codacy-production

codacy-production Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Not up to standards ⛔

🔴 Issues 6 critical · 3 high

Alerts:

⚠ 9 issues (≤ 0 issues of at least high severity)

Results:
9 new issues

Category Results
Security 6 critical
3 high

View in Codacy

🟢 Metrics 445 complexity

Metric Results
Complexity 445

View in Codacy

TIP This summary will be updated as you push new changes.

@pkg-pr-new

pkg-pr-new Bot commented Oct 19, 2026

Copy link
Copy Markdown
More templates

algoliasearch-helper

npm i https://pkg.pr.new/algolia/instantsearch/algoliasearch-helper@7310

instantsearch-ui-components

npm i https://pkg.pr.new/algolia/instantsearch/instantsearch-ui-components@7310

instantsearch.css

npm i https://pkg.pr.new/algolia/instantsearch/instantsearch.css@7310

instantsearch.js

npm i https://pkg.pr.new/algolia/instantsearch/instantsearch.js@7310

react-instantsearch

npm i https://pkg.pr.new/algolia/instantsearch/react-instantsearch@7310

react-instantsearch-core

npm i https://pkg.pr.new/algolia/instantsearch/react-instantsearch-core@7310

react-instantsearch-nextjs

npm i https://pkg.pr.new/algolia/instantsearch/react-instantsearch-nextjs@7310

react-instantsearch-router-nextjs

npm i https://pkg.pr.new/algolia/instantsearch/react-instantsearch-router-nextjs@7310

vue-instantsearch

npm i https://pkg.pr.new/algolia/instantsearch/vue-instantsearch@7310

commit: dda4220

@github-actions

Copy link
Copy Markdown

Size Change: +34.7 kB (+3.33%)

Total Size: 1.08 MB

📦 View Changed
Filename Size Change
packages/vue-instantsearch/vue2/cjs/index.js 25.7 kB +5.77 kB (+29.03%) 🚨
packages/vue-instantsearch/vue2/umd/index.js 86.2 kB +11.9 kB (+16.07%) ⚠️
packages/vue-instantsearch/vue3/cjs/index.js 26.2 kB +5.63 kB (+27.34%) 🚨
packages/vue-instantsearch/vue3/umd/index.js 86 kB +11.4 kB (+15.25%) ⚠️
ℹ️ View Unchanged
Filename Size Change
packages/algoliasearch-helper/dist/algoliasearch.helper.js 44.5 kB 0 B
packages/algoliasearch-helper/dist/algoliasearch.helper.min.js 14.1 kB -2 B (-0.01%)
packages/instantsearch.css/components/ai-mode-button.css 1.76 kB 0 B
packages/instantsearch.css/components/autocomplete-min.css 4.33 kB 0 B
packages/instantsearch.css/components/autocomplete.css 4.68 kB 0 B
packages/instantsearch.css/components/button.css 1.98 kB 0 B
packages/instantsearch.css/components/chat-min.css 7.46 kB 0 B
packages/instantsearch.css/components/chat.css 7.97 kB 0 B
packages/instantsearch.css/components/filter-suggestions.css 1.89 kB 0 B
packages/instantsearch.css/themes/algolia-min.css 11.9 kB 0 B
packages/instantsearch.css/themes/algolia.css 12.7 kB 0 B
packages/instantsearch.css/themes/nova-min.css 12 kB 0 B
packages/instantsearch.css/themes/nova.css 12.8 kB 0 B
packages/instantsearch.css/themes/reset-min.css 1.3 kB 0 B
packages/instantsearch.css/themes/reset.css 1.38 kB 0 B
packages/instantsearch.css/themes/satellite-min.css 12.8 kB 0 B
packages/instantsearch.css/themes/satellite.css 13.8 kB 0 B
packages/instantsearch.js/dist/instantsearch.development.js 335 kB 0 B
packages/instantsearch.js/dist/instantsearch.production.min.js 152 kB +1 B (0%)
packages/react-instantsearch-core/dist/umd/ReactInstantSearchCore.min.js 73.8 kB -1 B (0%)
packages/react-instantsearch/dist/umd/ReactInstantSearch.min.js 126 kB +1 B (0%)

compressed-size-action

@Haroenv

Haroenv commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

did you see #7131 too?

@shaejaz

shaejaz commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

did you see #7131 too?

Yes I did, planning to port it's changes over here if possible. From what i can tell, that has support for isolated index and chat which are not a part of these changes since those are for separate tickets. This PR has full parity with the react and js autocomplete tho.

@Haroenv

Haroenv commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

ok cool, how do you implement that without isolated index?

@shaejaz

shaejaz commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

ok cool, how do you implement that without isolated index?

it's using the isolated index logic from the js widget, it passes isolated = true to it. but i think introducing the isolated flag to vue itself is the better approach, i'll port that over

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants