Skip to content

Feature: Airtable-style Floating Chatbot (FAB Widget) #1155

Description

@xuyushun441-sys

Summary

Implement a floating chatbot widget (FAB style), inspired by Airtable, for ObjectUI. This feature will enable users to access the chatbot from any page via a floating button (FAB), which expands into a chat panel overlay when clicked.

Background

  • The current chatbot in @object-ui/plugin-chatbot is only available as an inline, embedded component.
  • Modern enterprise UIs like Airtable offer a floating, context-aware chatbot that does not occupy dashboard or main content areas, improving UX and discoverability. ([See reference screenshot below])
Airtable style floating chatbot reference

Requirements

  • Floating action button (FAB) fixed to bottom-right (configurable position)
  • FAB opens a panel with the full chatbot UI (ChatbotEnhanced)
  • Panel supports drag, collapse, close, and fullscreen
  • Configurable: default open/closed, position (bottom-right/left), width/height, trigger icon
  • Panel header supports conversation title, history, fullscreen toggle, close button
  • Integrates with ObjectUI's context (current object/view/data) for prompt injection
  • Demo mode and AI streaming modes must both work
  • Schema-driven: enable via displayMode: 'floating' in schema
  • Fully compatible with component registry (type: 'chatbot')
  • Portal rendering (avoid DOM/Z-index conflicts)

Implementation

  • Extend ChatbotSchema with floating config fields
  • Add FloatingChatbotProvider context for global state and external control
  • New components: FloatingChatbot, FloatingChatbotPanel, FloatingChatbotTrigger, provider/hook
  • Console shell integration for metadata-aware prompts
  • Storybook stories, Vitest tests, full docs

Acceptance Criteria

  • User can toggle chatbot from any page via FAB
  • Panel is accessible, responsive, and theme-compliant
  • All existing chatbot features preserved
  • Easy to configure via schema
  • Tests and documentation updated

See detailed architectural proposal in engineering notes and reference screenshot above.

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions