Releases: codenameakshay/beui
Release list
v1.2.0 — Chat/agent UX-audit remediation
UX-audit remediation across the chat/agent family — 154 audited findings resolved. Almost all API is additive; the deliberate default changes are listed under Changed defaults.
Trust & failure states
BeuiToolApproval: details open by default whenever parameters exist; aseveritytier (normal/elevated/destructive) that re-weights the actions for irreversible commands;expired/timedOutstatuses;grantrecords once-vs-always and anonRevokeaffordance; the action row can no longer double-fire during its exit.BeuiStreamingResponse:erroris now visibly failed (destructive notice + retry) instead of pixel-identical tocomplete; newstoppedstatus with a Continue affordance.BeuiAgentActivity:failed/cancelledstatuses — a crashed run no longer summarizes as success.BeuiImageGeneration: determinateprogresshairline andonCancel.
Keyboard & screen readers
- Full keyboard contracts (focus, Enter/Space, Esc, visible focus ring) for tool-approval actions, the composer's
+menu and model picker,BeuiFileUpload, the feedback widget, and sidebar rows. - Esc now dismisses
BeuiOverlaysurfaces even withtrapFocus: false. - The transcript announces streamed text through one debounced live region. Terminal outcomes (Failed, Denied, Copied, Sent) are announced.
- Focus rings paint outside layout via the new
focusRingcolor role (≥3:1 in all 22 theme×brightness combos). - 44px minimum hit areas across the family.
Contrast
- Placeholders, tool slugs, metadata, line-number gutters, citation domains, and light-mode status badges move to AA-passing values.
Composer & uploads
BeuiPromptInput: attachment chip rail, keyboard-driven model picker, viewport-aware menu placement, Enter-while-streaming feedback.- Upload components: real
progress, cancel-in-flight,maxFileSize+ inline rejection, seekable audio scrubber. BeuiInput: left-aligned announced errors, label association, shake replay viaerrorNonce.BeuiFeedbackWidget: drafts survive dismissal, submit validates inline, optional sentiment row.
Reading long/streamed content
- Jump-to-latest pills with unread counts. Streaming viewports stop yanking the reader once they scroll away.
BeuiFileDiff: wrap or horizontal scroll, hunk-gap markers, change navigation.BeuiMessageScroller.builder— lazy sliver path for long transcripts.BeuiPreviewRailworks on touch.BeuiChatAppis responsive.
Changed defaults (deliberate, audit-driven)
BeuiMessage/BeuiMessageBubbleanimateInnow default to true (mount-only).BeuiToolApproval.defaultOpenresolves byparameters.isNotEmpty.BeuiPreviewRail.highlightActivedefaults to true.BeuiFileUploaddrag wording is opt-in (dragAndDrop).BeuiToolApproval/BeuiToolResulttool/title/description/metanarrowed fromObjectto typedString?+Widget?pairs (deprecated*Nodeparams still accepted).
Localization & theming
BeuiAgentStringscovers the full agent family.- New
BeuiColors.focusRingrole (WCAG 2.2 SC 1.4.11). - New
BeuiAgentTheme.statusLight/statusDark.
Fixes
LucideIcons.historyremoved in flutter_lucide 1.31.0 — replaced withrotate_ccw_clock.BeuiPullToRefreshindicator now follows the finger during the pull.- Reduced-motion arrival fixes so reveals reach their target state instead of freezing mid-transition.
Package: https://pub.dev/packages/beui/versions/1.2.0
Gallery: https://codenameakshay.github.io/beui/
v1.1.0 — Agent theming and expandable approval cards
Semantic theming for the AI-agent family, plus compact-to-expanded approval cards. Default visuals and motion are unchanged: omit BeuiAgentTheme and every agent widget still resolves to the 1.0.0 source-fidelity look.
Agent theming
- New
BeuiAgentThemeThemeExtension— typography roles, bubble/card radii, conversation spacing, density, borders, optional glass cards, and semantic icon slots. Install it next toBeuiColors;ThemeData.fontFamilystill owns the typeface. - AI-agent widgets read those tokens instead of hard-coded source sizes, padding, and Lucide defaults. Constructor overrides remain.
- Gallery route Agent Theme shows a custom warm-green palette, inherited font, radii, density, icons, and an expandable approval card using the real widgets.
Approval card
- Additive compact-to-expanded API:
expanded/defaultExpanded/onExpandedChanged,compactChild/expandedChild,headerAction. Existing call sites are unchanged. Height usesbeuiSpringLayoutand is interruptible; reduced motion snaps.
Compatibility
- Minor release. No required migrations.
BeuiChatApp.borderRadiusandBeuiMessageBubbleContent.maxWidthFactorare now nullable so the theme can supply the default; omitted arguments still resolve to 16 and 0.82.
v1.0.0 — Initial release
Initial release — a one-to-one Flutter port of beUI v2, built on the
motor motion engine so the source's exact spring physics
carry over. All 72 beui.dev catalog entries across three groups.
📦 pub.dev/packages/beui · 🎨 Live gallery
dependencies:
beui: ^1.0.0A beui.dev page is not always one component: several pages ship multiple
independently-installable widgets, and all of them are covered here.
Components (motion primitives)
Tilt Card, Button (+ Stateful + Magnetic), Animated CTA Buttons (expanding /
hold / slide), Marquee, Tabs, Switch, Input, Select (+ Morph), Checkbox,
Radio Group, Bottom Sheet, Pull to Refresh, Shared Layout Background,
Bounce Sidebar, Animated Sidebar (sidebar / floating / inset), Preview Rail,
Dock (+ separator-grouped actions), Tooltip, Context Menu, Popover (+ Morph),
Morphing Modal, Center Morph Modal, Text Animation (reveal / shimmer /
cascade / chromatic), Number Animation (count-up + ticker), Animated Badge,
Action Swap (blur / roll / cascade), Animated Toast Stack, Theme Toggle
(rectangle / circle / circle-blur / blinds), Bouncy Accordion, Drawer,
Scroll Animation (smooth scroll / progress / reveal / scroll-to / parallax),
Range Slider (ticked / fluid / wave / bubble / ruler), Wheel Picker, Table,
Shader Background (21 GPU variants), Cylinder Carousel, Loader (17 variants).
Blocks (composed patterns)
Infinite Masonry, Notification Stack, Fixtures (knockout bracket with
third-place playoff + knockout wheel), Availability Scheduler,
Multi-chain Swap, Dynamic Island, Command Palette, Expandable Action Bar,
Overflow Actions, Expandable Tabs, Swipeable List, File Upload (upload queue
- attachment workspace), Prediction Market, Wallet Card, OTP Input,
Bloom Menu, Feedback Widget, 404 / Not Found (5 variants).
AI Agents (conversational interfaces)
Message Bubble, Message, Message Scroller, Prompt Input, Todo List,
Code Block, Approval Card, File Diff, Tool Result, Streaming Response,
Image Generation, Tool Approval, Citations, Agent Activity, Agent Loading
States (thinking shimmer / agent progress / reasoning text), AI Sidebar,
Chat App.
Foundation
- Spring and easing motion tokens mirroring the source
ease.ts, resolved
through a singlemotor-backed facade. BeuiColorsThemeExtensionwith light/dark and 11 color themes.- Shared
BeuiOverlayfoundation for every floating surface (tooltip, drawer,
sheet, modal, command palette). - Reduced-motion resolver (
motionFor) that drops movement while preserving
opacity/color feedback. - Default
flutter_lucideicon set re-exported through the barrel.
Deliberate departures from the source
- No dual-thumb range slider — beui.dev ships five single-value sliders and no
range variant. - File pickers are the consumer's:
BeuiFileUploadandBeuiAttachmentUpload
carry file metadata and exposeonBrowse, so the package takes no
file-picker dependency. - Compound React components (
Tabs/TabsList/TabsTrigger,Select/
SelectTrigger/…, theAnimatedSidebar*family) collapse into single
widgets taking item models, per the Flutter conventions in
docs/PORTING_SPEC.md§6.