multica/packages/ui
Naiyuan Qing 845e503899 feat(ui): redesign QR scanner with state machine and mobile sheet
Rewrite QrScannerView with full state machine (idle/requesting/scanning/
detected/success/error), corner bracket animations snapping to QR
cornerPoints, flash toggle, and haptic feedback.

Add QrScannerSheet as bottom sheet wrapper for mobile. Simplify
ConnectPrompt to use useIsMobile() — mobile shows scan button + sheet,
desktop shows paste-only UI.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 08:22:49 +08:00
..
src feat(ui): redesign QR scanner with state machine and mobile sheet 2026-02-05 08:22:49 +08:00
components.json refactor(ui): reorganize components into ui/ subdirectory and share layout 2026-01-30 11:34:09 +08:00
package.json feat(ui): replace ChatInput textarea with Tiptap editor 2026-02-05 07:56:11 +08:00
postcss.config.mjs feat(ui): create @multica/ui package skeleton 2026-01-30 11:34:05 +08:00
README.md feat(desktop): initialize electron app with routing and cleanup 2026-02-03 14:17:31 +08:00
tsconfig.json feat(ui): create @multica/ui package skeleton 2026-01-30 11:34:05 +08:00

@multica/ui

Shared UI component library. Shadcn + Tailwind CSS v4.

Usage

// UI components — subpath imports, no barrel
import { Button } from '@multica/ui/components/ui/button'
import { Card, CardContent } from '@multica/ui/components/ui/card'

// Feature components
import { ThemeProvider } from '@multica/ui/components/theme-provider'
import { Chat } from '@multica/ui/components/chat'
import { Markdown } from '@multica/ui/components/markdown'

// Hooks
import { useIsMobile } from '@multica/ui/hooks/use-mobile'
import { useAutoScroll } from '@multica/ui/hooks/use-auto-scroll'

// Utilities
import { cn } from '@multica/ui/lib/utils'

// Styles (app entry point)
import '@multica/ui/globals.css'

Adding Components

pnpm --filter @multica/ui dlx shadcn@latest add <component>