@cellarnode/ui 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ import type { ChatApiClient } from "./types";
2
+ import type { ChatWebSocket } from "./chat-ws";
3
+ export interface GlobalChatRoom {
4
+ roomId: string;
5
+ offerId: string;
6
+ displayName: string;
7
+ initials: string;
8
+ subtitle?: string | null;
9
+ lastMessageAt?: string | null;
10
+ unreadCount: number;
11
+ }
12
+ export interface GlobalChatWidgetProps {
13
+ rooms: GlobalChatRoom[];
14
+ isConnected: boolean;
15
+ chatApi: ChatApiClient;
16
+ chatWs: ChatWebSocket;
17
+ currentOrgId: string;
18
+ onOpenFullMessenger: () => void;
19
+ }
20
+ export declare function GlobalChatWidget({ rooms, isConnected, chatApi, chatWs, currentOrgId, onOpenFullMessenger, }: GlobalChatWidgetProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=global-chat-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-chat-widget.d.ts","sourceRoot":"","sources":["../../src/chat/global-chat-widget.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC;AA4MD,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,WAAW,EACX,OAAO,EACP,MAAM,EACN,YAAY,EACZ,mBAAmB,GACpB,EAAE,qBAAqB,2CA6GvB"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback } from "react";
3
+ import { motion, AnimatePresence } from "motion/react";
4
+ import { X, ArrowLeft, ExternalLink, Wifi, WifiOff, MessageCircle } from "lucide-react";
5
+ import { cn } from "../lib/utils";
6
+ import { ChatToggleButton } from "./chat-toggle-button";
7
+ import { CommunicationPanel } from "./communication-panel";
8
+ import { useChat } from "./use-chat";
9
+ /* ─── Helpers ─── */
10
+ function formatRelativeTime(isoDate) {
11
+ if (!isoDate)
12
+ return "";
13
+ const diff = Date.now() - new Date(isoDate).getTime();
14
+ if (diff < 60_000)
15
+ return "just now";
16
+ if (diff < 3_600_000)
17
+ return `${Math.floor(diff / 60_000)}m`;
18
+ if (diff < 86_400_000)
19
+ return `${Math.floor(diff / 3_600_000)}h`;
20
+ return `${Math.floor(diff / 86_400_000)}d`;
21
+ }
22
+ function RoomConversationView({ room, currentOrgId, chatApi, chatWs, onBack, isConnected, }) {
23
+ const chatState = useChat(room.roomId, currentOrgId, true, { chatApi, chatWs });
24
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex shrink-0 items-center gap-3 border-b border-border/60 bg-card px-4 py-3", children: [_jsx("button", { type: "button", onClick: onBack, className: "flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground", "aria-label": "Back to conversations", children: _jsx(ArrowLeft, { className: "size-4" }) }), _jsx("div", { className: "flex size-8 shrink-0 items-center justify-center rounded-full bg-primary/15 text-xs font-bold text-primary", children: room.initials }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm font-semibold leading-tight text-foreground", children: room.displayName }), _jsx("div", { className: cn("flex items-center gap-1 text-[11px] font-medium", isConnected
25
+ ? "text-emerald-600 dark:text-emerald-400"
26
+ : "text-muted-foreground"), children: isConnected ? (_jsxs(_Fragment, { children: [_jsx(Wifi, { className: "size-3", "aria-hidden": "true" }), "Live"] })) : (_jsxs(_Fragment, { children: [_jsx(WifiOff, { className: "size-3", "aria-hidden": "true" }), "Offline"] })) })] })] }), _jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: _jsx(CommunicationPanel, { chatState: chatState, roomId: room.roomId, currentOrgId: currentOrgId, offerId: room.offerId, responseThread: [], counterMode: false, onCounterCancel: () => { }, onCounterSuccess: () => { } }) })] }));
27
+ }
28
+ function RoomListView({ rooms, onSelectRoom, onOpenFullMessenger, onClose, }) {
29
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b border-border/60 bg-card px-4 py-3", children: [_jsx(MessageCircle, { className: "size-5 text-foreground", "aria-hidden": "true" }), _jsx("h2", { className: "flex-1 text-sm font-semibold text-foreground", children: "Messages" }), _jsx("button", { type: "button", onClick: onClose, className: "flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-muted hover:text-foreground", "aria-label": "Close messages", children: _jsx(X, { className: "size-4" }) })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: rooms.length === 0 ? (_jsxs("div", { className: "flex flex-col items-center justify-center gap-2 py-16 text-center", children: [_jsx(MessageCircle, { className: "size-8 text-muted-foreground/30", "aria-hidden": "true" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "No conversations yet" }), _jsx("p", { className: "text-xs text-muted-foreground/70", children: "Conversations appear here once offers are in negotiation" })] })) : (_jsx("ul", { className: "divide-y divide-border/40", role: "list", children: rooms.map((room) => (_jsx("li", { children: _jsxs("button", { type: "button", onClick: () => onSelectRoom(room), className: "flex w-full items-center gap-3 px-4 py-3 text-left transition-colors hover:bg-muted/50", children: [_jsxs("div", { className: "relative shrink-0", children: [_jsx("div", { className: "flex size-9 items-center justify-center rounded-full bg-primary/15 text-xs font-bold text-primary", children: room.initials }), room.unreadCount > 0 && (_jsx("span", { className: "absolute -right-0.5 -top-0.5 flex min-w-[1.125rem] items-center justify-center rounded-full bg-destructive px-0.5 text-[9px] font-semibold text-destructive-foreground", children: room.unreadCount > 9 ? "9+" : room.unreadCount }))] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [_jsx("p", { className: cn("truncate text-sm leading-tight", room.unreadCount > 0
30
+ ? "font-semibold text-foreground"
31
+ : "font-medium text-foreground"), children: room.displayName }), room.lastMessageAt && (_jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: formatRelativeTime(room.lastMessageAt) }))] }), room.subtitle && (_jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: room.subtitle }))] })] }) }, room.roomId))) })) }), _jsx("div", { className: "shrink-0 border-t border-border/60 bg-card", children: _jsxs("button", { type: "button", onClick: onOpenFullMessenger, className: "flex w-full items-center justify-center gap-1.5 py-3 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground", children: [_jsx(ExternalLink, { className: "size-3", "aria-hidden": "true" }), "Open full Messenger"] }) })] }));
32
+ }
33
+ /* ─── Main component ─── */
34
+ export function GlobalChatWidget({ rooms, isConnected, chatApi, chatWs, currentOrgId, onOpenFullMessenger, }) {
35
+ const [isOpen, setIsOpen] = useState(false);
36
+ const [selectedRoom, setSelectedRoom] = useState(null);
37
+ const totalUnread = rooms.reduce((n, r) => n + r.unreadCount, 0);
38
+ const handleClose = useCallback(() => {
39
+ setIsOpen(false);
40
+ setSelectedRoom(null);
41
+ }, []);
42
+ const handleOpen = useCallback(() => setIsOpen(true), []);
43
+ const handleSelectRoom = useCallback((room) => {
44
+ setSelectedRoom(room);
45
+ }, []);
46
+ const handleBack = useCallback(() => setSelectedRoom(null), []);
47
+ const handleOpenMessenger = useCallback(() => {
48
+ handleClose();
49
+ onOpenFullMessenger();
50
+ }, [handleClose, onOpenFullMessenger]);
51
+ return (_jsxs(_Fragment, { children: [!isOpen && (_jsx(ChatToggleButton, { unreadCount: totalUnread, isConnected: isConnected, onClick: handleOpen })), _jsx(AnimatePresence, { children: isOpen && (_jsxs(_Fragment, { children: [_jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, className: "fixed inset-0 z-40 bg-black/30 lg:hidden", onClick: handleClose, "aria-hidden": "true" }, "global-chat-backdrop"), _jsx(motion.div, { initial: { opacity: 0, scale: 0.92, y: 16 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.92, y: 16 }, transition: { type: "spring", stiffness: 380, damping: 32 }, style: { transformOrigin: "bottom right" }, className: cn("fixed inset-x-0 bottom-0 z-50 flex flex-col overflow-hidden rounded-t-[28px]", "bg-background shadow-2xl shadow-black/25", "lg:inset-auto lg:bottom-8 lg:right-8 lg:h-[min(520px,80dvh)] lg:w-[22rem] lg:rounded-[24px] xl:w-[24rem]"), role: "dialog", "aria-label": "Messages", children: _jsx(AnimatePresence, { mode: "wait", children: selectedRoom ? (_jsx(motion.div, { initial: { opacity: 0, x: 20 }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: 20 }, transition: { duration: 0.16 }, className: "flex min-h-0 flex-1 flex-col", children: _jsx(RoomConversationView, { room: selectedRoom, currentOrgId: currentOrgId, chatApi: chatApi, chatWs: chatWs, onBack: handleBack, isConnected: isConnected }) }, "conversation")) : (_jsx(motion.div, { initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, exit: { opacity: 0, x: -20 }, transition: { duration: 0.16 }, className: "flex min-h-0 flex-1 flex-col", children: _jsx(RoomListView, { rooms: rooms, onSelectRoom: handleSelectRoom, onOpenFullMessenger: handleOpenMessenger, onClose: handleClose }) }, "room-list")) }) }, "global-chat-widget")] })) })] }));
52
+ }
53
+ //# sourceMappingURL=global-chat-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-chat-widget.js","sourceRoot":"","sources":["../../src/chat/global-chat-widget.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export type { UseChatOptions } from "./use-chat";
11
11
  export { buildConversationTimeline } from "./timeline-utils";
12
12
  export { CommunicationHubWidget } from "./communication-hub-widget";
13
13
  export type { CommunicationHubWidgetProps, MessagePreview, } from "./communication-hub-widget";
14
+ export { GlobalChatWidget } from "./global-chat-widget";
15
+ export type { GlobalChatWidgetProps, GlobalChatRoom, } from "./global-chat-widget";
14
16
  export { MessengerLayout } from "./messenger-layout";
15
17
  export type { ConversationSummary, MessengerLayoutProps, } from "./messenger-layout";
16
18
  export type { ChatRoom, ChatMessage, CursorPaginatedResponse, OfferResponseThread, ConversationEvent, TranslationFn, ChatApiClient, ChatWsConfig, ChatState, CommunicationPanelProps, } from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EACV,2BAA2B,EAC3B,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,QAAQ,EACR,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACT,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EACV,2BAA2B,EAC3B,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EACV,qBAAqB,EACrB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,QAAQ,EACR,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACT,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
@@ -7,5 +7,6 @@ export { createChatApi } from "./chat-api";
7
7
  export { useChat } from "./use-chat";
8
8
  export { buildConversationTimeline } from "./timeline-utils";
9
9
  export { CommunicationHubWidget } from "./communication-hub-widget";
10
+ export { GlobalChatWidget } from "./global-chat-widget";
10
11
  export { MessengerLayout } from "./messenger-layout";
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cellarnode/ui",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "Shared UI components, theme tokens, and chat/offer primitives for CellarNode dashboards.",