Skip to content

feat: [combobox] use base ui chips, clear, empty, and status - #954

Open
ravisuhag wants to merge 3 commits into
mainfrom
feat/combobox-base-ui-chips
Open

ravisuhag wants to merge 3 commits into
mainfrom
feat/combobox-base-ui-chips

Conversation

@ravisuhag

Copy link
Copy Markdown
Member

Summary

  • Multi-select Combobox.Input renders chips with Base UI Combobox.Chips, Chip, and ChipRemove. Chips get the toolbar role, arrow keys move between chips, and Backspace removes the last value. The look and the "+N" overflow chip stay the same.

  • Add Combobox.Label (a visible label linked to the input), Combobox.Clear (clear-all button), Combobox.Empty ("No results" live region), and Combobox.Status (hidden live region with the result count). Combobox.Content renders Empty and Status by default. Place either one inside Content to change its text.

  • Why it's like this: Combobox was first built on Ariakit (feat: combobox component #565), which has no chips part, so it reused the chips prop of our Input. The move to Base UI (feat: migrate Select to Base UI #591) kept that setup.

  • Breaking: chips no longer use the Input chips prop. The input-chip-container, input-chip, and input-chip-overflow slots inside a combobox are now combobox-chips, combobox-chip, combobox-chip-remove, and combobox-chip-overflow. The group label part is renamed from Combobox.Label to Combobox.GroupLabel, and its slot from combobox-label to combobox-group-label. Combobox.Label and combobox-label now mean the input label.

  • Docs: new parts in props, demos, anatomy, and the Slots table.

  • I have followed the pull request section of the contributing guide.

@vercel

vercel Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
apsara Error Error Oct 13, 2026 7:09pm UTC

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: dae9403a-bbf3-4d80-9706-7a71464b0a28
📥 Commits

Reviewing files that changed from the base of the PR and between cfbe726 and cfbe726.

📒 Files selected for processing: 9
  • apps/www/src/content/docs/components/combobox/demo.ts
  • apps/www/src/content/docs/components/combobox/index.mdx
  • apps/www/src/content/docs/components/combobox/props.ts
  • packages/react/components/combobox/__tests__/combobox.test.tsx
  • packages/react/components/combobox/combobox-content.tsx
  • packages/react/components/combobox/combobox-input.tsx
  • packages/react/components/combobox/combobox-items.ts
  • packages/react/components/combobox/combobox-root.tsx
  • packages/react/components/combobox/combobox.tsx

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 57dcd094-d557-4058-b8ee-05572db95ddb
📥 Commits

Reviewing files that changed from the base of the PR and between 8c74adf and cfbe726.

📒 Files selected for processing: 13
  • apps/www/src/content/docs/components/combobox/demo.ts
  • apps/www/src/content/docs/components/combobox/index.mdx
  • apps/www/src/content/docs/components/combobox/props.ts
  • packages/react/components/combobox/__tests__/combobox.test.tsx
  • packages/react/components/combobox/__tests__/data-slots.test.tsx
  • packages/react/components/combobox/combobox-content.tsx
  • packages/react/components/combobox/combobox-input.tsx
  • packages/react/components/combobox/combobox-item.tsx
  • packages/react/components/combobox/combobox-misc.tsx
  • packages/react/components/combobox/combobox-root.tsx
  • packages/react/components/combobox/combobox.module.css
  • packages/react/components/combobox/combobox.tsx
  • packages/react/components/input/input.tsx

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The combobox adds input-label, clear, empty-state, and result-status parts. Multiple-selection mode now renders chips with an overflow indicator and supports chip removal. The root tracks input identity and item matches. Documentation, demos, styles, and tests cover the updated parts and interactions.

Sequence Diagram(s)

sequenceDiagram
  actor User
  participant ComboboxChipsInput
  participant ComboboxRoot
  User->>ComboboxChipsInput: presses Backspace with an empty input
  ComboboxChipsInput->>ComboboxRoot: removes the last selected value
  ComboboxRoot-->>ComboboxChipsInput: provides the updated selection
  ComboboxChipsInput-->>User: renders the updated chips
Loading

Priority: ➖ Normal

Merge Risk: ⚪ Minimal · up to cfbe7

No actionable issue was established in the changed combobox behavior; the PR is ready for normal merge checks.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 11 files. (2 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title clearly identifies the main Combobox changes: Base UI chips, clear controls, empty states, and status announcements.
Description check Passed The description accurately covers the Combobox behavior changes, new parts, breaking changes, and documentation updates.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 11 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches: 💡 1
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ravisuhag
ravisuhag added this pull request to stack #947 October 8, 2026 00:47
@pkg-pr-new

pkg-pr-new Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

pnpm add https://pkg.pr.new/@raystack/apsara@954

commit: 81c8020

@rohanchkrabrty
rohanchkrabrty force-pushed the feat/combobox-base-ui-chips branch from 81c8020 to cfbe726 Compare October 13, 2026 19:06
Base automatically changed from feat/combobox-create-items to main October 15, 2026 20:59

This branch had an error being deployed

1 failed deployment
Preview — cfbe7262 Deployed Oct 13, 2026 by vercel[bot]
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.

1 participant