hazo_chat 2.0.9 → 2.0.10
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.
- package/README.md +172 -5
- package/SETUP_CHECKLIST.md +1 -1
- package/dist/components/hazo_chat/hazo_chat.d.ts.map +1 -1
- package/dist/components/hazo_chat/hazo_chat.js +4 -2
- package/dist/components/hazo_chat/hazo_chat.js.map +1 -1
- package/dist/components/ui/chat_bubble.d.ts.map +1 -1
- package/dist/components/ui/chat_bubble.js +8 -4
- package/dist/components/ui/chat_bubble.js.map +1 -1
- package/package.json +2 -3
- package/UI_DESIGN_STANDARDS.md +0 -315
package/README.md
CHANGED
|
@@ -119,7 +119,178 @@ See `test-app/src/app/globals.css` for complete variable definitions with exampl
|
|
|
119
119
|
|
|
120
120
|
### UI Design Standards
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
This section defines the visual design standards and component behavior specifications for hazo_chat. All consuming projects should follow these standards to ensure consistent UI appearance and behavior.
|
|
123
|
+
|
|
124
|
+
#### Visual Design Elements
|
|
125
|
+
|
|
126
|
+
**Document Preview Icon:**
|
|
127
|
+
- Location: Empty state in document viewer (`HazoChatDocumentViewer`)
|
|
128
|
+
- Icon: `IoDocumentOutline` (from `react-icons/io5`)
|
|
129
|
+
- Size: `w-12 h-12` (48px × 48px)
|
|
130
|
+
- Opacity: `opacity-50`
|
|
131
|
+
- Text: "Select a document to preview" in `text-sm`
|
|
132
|
+
|
|
133
|
+
**REFERENCES Section Font:**
|
|
134
|
+
- Location: References section header
|
|
135
|
+
- Font size: `text-[9px]` (9px)
|
|
136
|
+
- Font weight: `font-medium`
|
|
137
|
+
- Text transform: `uppercase`
|
|
138
|
+
- Letter spacing: `tracking-wider`
|
|
139
|
+
- Color: `text-muted-foreground`
|
|
140
|
+
|
|
141
|
+
**Input Area Padding:**
|
|
142
|
+
- Location: Chat input container (`HazoChatInput`)
|
|
143
|
+
- Padding: `p-4` (16px on all sides)
|
|
144
|
+
- Border: `border-t` (top border only)
|
|
145
|
+
- Background: `bg-background`
|
|
146
|
+
|
|
147
|
+
**Message Timestamp Display:**
|
|
148
|
+
- Location: Chat bubble footer (`ChatBubble`)
|
|
149
|
+
- Only timestamp is displayed (no status icons for sent/unread messages)
|
|
150
|
+
- Font size: `text-xs`
|
|
151
|
+
- Color: `text-muted-foreground`
|
|
152
|
+
- Format: 24-hour format (e.g., "10:37 AM", "15:51")
|
|
153
|
+
- Timezone: Respects `timezone` prop (default: "GMT+10")
|
|
154
|
+
|
|
155
|
+
**Read Receipt Indicator:**
|
|
156
|
+
- Location: Chat bubble footer, after timestamp
|
|
157
|
+
- Icon: `IoCheckmarkDoneSharp` (from `react-icons/io5`)
|
|
158
|
+
- Size: `h-4 w-4` (16px × 16px)
|
|
159
|
+
- Color: `text-green-500`
|
|
160
|
+
- Display condition: Only shown when `read_at` is not null AND message is from sender
|
|
161
|
+
- Position: After timestamp with `gap-1` spacing
|
|
162
|
+
|
|
163
|
+
#### Component Behavior
|
|
164
|
+
|
|
165
|
+
**Close Button:**
|
|
166
|
+
- Visibility: Always visible when `on_close` prop is provided to `HazoChat` component
|
|
167
|
+
- Icon: `IoClose` (from `react-icons/io5`)
|
|
168
|
+
- Size: `h-8 w-8` (32px × 32px)
|
|
169
|
+
- Variant: `ghost`
|
|
170
|
+
- Hover state: `hover:bg-destructive/10 hover:text-destructive`
|
|
171
|
+
- Position: Top-right of header, after refresh button
|
|
172
|
+
|
|
173
|
+
**Hamburger Menu Button:**
|
|
174
|
+
- Desktop behavior: Hidden (`md:hidden` class)
|
|
175
|
+
- Mobile behavior: Visible on screens < 768px
|
|
176
|
+
- Purpose: Toggle document viewer sidebar on mobile
|
|
177
|
+
- Icon: `IoMenuOutline` (from `react-icons/io5`)
|
|
178
|
+
- Size: `h-8 w-8` (32px × 32px)
|
|
179
|
+
- Position: Top-left of header, before title
|
|
180
|
+
|
|
181
|
+
**Important:** If hamburger button appears on desktop, check Tailwind CSS configuration and ensure `md:` breakpoint utilities are working correctly.
|
|
182
|
+
|
|
183
|
+
**Document Viewer Toggle Button:**
|
|
184
|
+
- Icon: Chevron (`IoChevronBack` when expanded, `IoChevronForward` when collapsed)
|
|
185
|
+
- Size: `h-8 w-6` (32px height × 24px width)
|
|
186
|
+
- Position: Absolute, vertically centered between columns
|
|
187
|
+
- Variant: `outline`
|
|
188
|
+
- Border: `rounded-r-md rounded-l-none border-l-0`
|
|
189
|
+
- Behavior: Smooth transitions with `transition-all duration-300`
|
|
190
|
+
- Desktop: Visible when document viewer column is present
|
|
191
|
+
- Mobile: Hidden when sidebar is closed
|
|
192
|
+
|
|
193
|
+
**References Section Collapse/Expand:**
|
|
194
|
+
- Collapsed height: `max-h-8`
|
|
195
|
+
- Expanded height: `max-h-96`
|
|
196
|
+
- Transition: `transition-all duration-300 ease-in-out`
|
|
197
|
+
- Indicator: Chevron icon (`IoChevronDown` when collapsed, `IoChevronUp` when expanded)
|
|
198
|
+
- Default state: Collapsed when no references, expanded when references exist
|
|
199
|
+
|
|
200
|
+
#### Layout Standards
|
|
201
|
+
|
|
202
|
+
**Chat Input Area:**
|
|
203
|
+
- Layout: Flex container with `flex items-center gap-2`
|
|
204
|
+
- Components: Single `Input` field and Send button (`Button` with `IoSend` icon)
|
|
205
|
+
- No attachment buttons: Attachment/image buttons removed for simplified design
|
|
206
|
+
- Input padding: `p-4` on container
|
|
207
|
+
- Button alignment: Aligned with input height using flex
|
|
208
|
+
|
|
209
|
+
**Button Alignment and Sizing:**
|
|
210
|
+
- Send button: Standard button size, aligned with input
|
|
211
|
+
- All interactive buttons: Consistent sizing for visual harmony
|
|
212
|
+
- Icon sizes within buttons: `w-4 h-4` (16px × 16px)
|
|
213
|
+
|
|
214
|
+
**Responsive Breakpoints:**
|
|
215
|
+
- Mobile: < 768px (default)
|
|
216
|
+
- Desktop: >= 768px (`md:` prefix)
|
|
217
|
+
- Standard Tailwind breakpoints used throughout
|
|
218
|
+
|
|
219
|
+
#### Container Requirements
|
|
220
|
+
|
|
221
|
+
**Important:** When wrapping HazoChat in containers (e.g., Card components):
|
|
222
|
+
|
|
223
|
+
1. **Avoid nested `overflow-hidden`**: Nested overflow-hidden containers can clip rounded corners. Use overflow-hidden only on the HazoChat component itself.
|
|
224
|
+
|
|
225
|
+
2. **Padding**: If wrapping in a Card, ensure proper padding is maintained. Avoid `p-0` on CardContent as it may affect internal spacing.
|
|
226
|
+
|
|
227
|
+
3. **Tailwind Configuration**: Ensure `./node_modules/hazo_chat/dist/**/*.{js,ts,jsx,tsx}` is included in your Tailwind `content` array so all utility classes (including `rounded-*` classes) are compiled.
|
|
228
|
+
|
|
229
|
+
#### Typography
|
|
230
|
+
|
|
231
|
+
**Font Families:**
|
|
232
|
+
- Primary: System font stack or custom font via `--font-sans` CSS variable
|
|
233
|
+
- Monospace: System monospace or custom font via `--font-mono` CSS variable
|
|
234
|
+
|
|
235
|
+
**Font Sizes:**
|
|
236
|
+
- Header title: `text-sm` (14px)
|
|
237
|
+
- Header subtitle: `text-xs` (12px)
|
|
238
|
+
- Message text: `text-sm` (14px)
|
|
239
|
+
- Timestamp: `text-xs` (12px)
|
|
240
|
+
- References header: `text-[9px]` (9px)
|
|
241
|
+
- Empty state text: `text-sm` (14px)
|
|
242
|
+
|
|
243
|
+
#### Spacing and Padding
|
|
244
|
+
|
|
245
|
+
**Standard Padding Values:**
|
|
246
|
+
- Container padding: `p-4` (16px)
|
|
247
|
+
- Header padding: `px-4` (16px horizontal)
|
|
248
|
+
- Message bubble padding: `px-4 py-2` (16px horizontal, 8px vertical)
|
|
249
|
+
- Gap between elements: `gap-2` (8px) or `gap-1` (4px) for tight spacing
|
|
250
|
+
|
|
251
|
+
#### Animation and Transitions
|
|
252
|
+
|
|
253
|
+
**Standard Transitions:**
|
|
254
|
+
- Component state changes: `transition-all duration-300`
|
|
255
|
+
- Hover states: `transition-colors`
|
|
256
|
+
- Smooth animations for expand/collapse: `ease-in-out`
|
|
257
|
+
|
|
258
|
+
**Loading States:**
|
|
259
|
+
- Skeleton loaders for initial message load
|
|
260
|
+
- Spinner animation for refresh button when loading
|
|
261
|
+
|
|
262
|
+
#### Accessibility
|
|
263
|
+
|
|
264
|
+
**ARIA Labels:**
|
|
265
|
+
All interactive elements must have appropriate ARIA labels:
|
|
266
|
+
- Input fields: `aria-label="Message input"`
|
|
267
|
+
- Buttons: `aria-label` describing action (e.g., "Send message", "Refresh chat history")
|
|
268
|
+
- Close button: `aria-label="Close chat"`
|
|
269
|
+
- Toggle buttons: `aria-label` and `aria-expanded` attributes
|
|
270
|
+
|
|
271
|
+
**Keyboard Navigation:**
|
|
272
|
+
- Send message: Enter key
|
|
273
|
+
- Close dialogs: Escape key (handled by Alert Dialog component)
|
|
274
|
+
|
|
275
|
+
#### Component Dependencies
|
|
276
|
+
|
|
277
|
+
**Required External Components:**
|
|
278
|
+
The following components must be available in consuming projects:
|
|
279
|
+
1. **AlertDialog** (shadcn/ui style) - Used for user acknowledgment dialogs, not included in hazo_chat package
|
|
280
|
+
2. **Toaster** (from `sonner` package) - Used for toast notifications, must be added to root layout with `position="top-right"` and `richColors` prop
|
|
281
|
+
|
|
282
|
+
**Included Components:**
|
|
283
|
+
The following UI components are included in hazo_chat package:
|
|
284
|
+
- Button, Input, Textarea, Avatar, ScrollArea, Tooltip, Separator, Badge
|
|
285
|
+
- ChatBubble (chat-specific), LoadingSkeleton (chat-specific)
|
|
286
|
+
|
|
287
|
+
**Example References:**
|
|
288
|
+
For complete implementation examples, see:
|
|
289
|
+
- `test-app/src/app/page.tsx` - Usage example
|
|
290
|
+
- `test-app/src/app/layout.tsx` - Toaster setup
|
|
291
|
+
- `test-app/src/components/ui/alert-dialog.tsx` - Alert Dialog implementation
|
|
292
|
+
- `test-app/src/app/globals.css` - CSS variables example
|
|
293
|
+
- `test-app/tailwind.config.ts` - Tailwind configuration example
|
|
123
294
|
|
|
124
295
|
## Quick Start
|
|
125
296
|
|
|
@@ -593,7 +764,3 @@ MIT © Pubs Abayasiri
|
|
|
593
764
|
---
|
|
594
765
|
|
|
595
766
|
For detailed setup instructions, see [SETUP_CHECKLIST.md](./SETUP_CHECKLIST.md).
|
|
596
|
-
|
|
597
|
-
For UI design standards and visual specifications, see [UI_DESIGN_STANDARDS.md](./UI_DESIGN_STANDARDS.md).
|
|
598
|
-
|
|
599
|
-
For UI design standards and specifications, see [UI_DESIGN_STANDARDS.md](./UI_DESIGN_STANDARDS.md).
|
package/SETUP_CHECKLIST.md
CHANGED
|
@@ -704,7 +704,7 @@ module.exports = nextConfig;
|
|
|
704
704
|
- [ ] Smooth expand/collapse transitions
|
|
705
705
|
- [ ] Button position adjusts correctly
|
|
706
706
|
|
|
707
|
-
For detailed specifications, see [
|
|
707
|
+
For detailed specifications, see the [UI Design Standards](#ui-design-standards) section in README.md.
|
|
708
708
|
|
|
709
709
|
---
|
|
710
710
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EACV,aAAa,EAId,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"hazo_chat.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EACV,aAAa,EAId,MAAM,sBAAsB,CAAC;AA6Y9B;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAmD5C;yBAnDe,QAAQ"}
|
|
@@ -157,13 +157,15 @@ function HazoChatInner({ receiver_user_id, reference_id = '', reference_type = '
|
|
|
157
157
|
return (_jsxs("div", { className: cn('cls_hazo_chat', 'flex flex-col h-full w-full', 'bg-background rounded-lg border overflow-hidden', className), children: [_jsx(HazoChatHeader, { title: title, subtitle: subtitle, on_close: on_close, on_refresh: refresh_messages, is_refreshing: is_loading_messages,
|
|
158
158
|
// Only show hamburger button on mobile for sidebar toggle
|
|
159
159
|
// On desktop, document viewer is always visible, so no toggle needed
|
|
160
|
-
on_toggle_sidebar: toggle_sidebar, is_sidebar_open: is_sidebar_open }), _jsx("div", { className: cn('cls_references_row border-b bg-muted/30 transition-all duration-300 ease-in-out overflow-hidden', is_references_expanded ? 'max-h-96' : 'max-h-8'), children: _jsxs("div", { className: "cls_references_container px-3 py-2", children: [_jsxs("button", { onClick: () => set_is_references_expanded(!is_references_expanded), className: "cls_references_header flex items-center justify-between w-full gap-2 mb-1.5 hover:bg-muted/50 rounded px-1 -mx-1 transition-colors", "aria-label": is_references_expanded ? 'Collapse references' : 'Expand references', "aria-expanded": is_references_expanded, children: [_jsx("h3", { className: "text-[9px] font-medium text-muted-foreground uppercase tracking-wider", children: "References" }), is_references_expanded ? (_jsx(IoChevronUp, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" })) : (_jsx(IoChevronDown, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" }))] }), is_references_expanded && (_jsx("div", { className: "cls_references_content", children: _jsx(HazoChatReferenceList, { references: references, selected_reference_id: selected_reference?.id, on_select: handle_reference_select, className: "flex-wrap" }) }))] }) }), _jsxs("div", { className: "cls_main_content flex flex-1 overflow-hidden relative", children: [_jsx("div", { className: cn('cls_doc_preview_column', 'border-r bg-muted/20', 'flex-shrink-0 flex flex-col', 'transition-all duration-300 ease-in-out overflow-hidden',
|
|
160
|
+
on_toggle_sidebar: toggle_sidebar, is_sidebar_open: is_sidebar_open }), _jsx("div", { className: cn('cls_references_row border-b bg-muted/30 transition-all duration-300 ease-in-out overflow-hidden', is_references_expanded ? 'max-h-96' : 'max-h-8'), children: _jsxs("div", { className: "cls_references_container px-3 py-2", children: [_jsxs("button", { onClick: () => set_is_references_expanded(!is_references_expanded), className: "cls_references_header flex items-center justify-between w-full gap-2 mb-1.5 hover:bg-muted/50 rounded px-1 -mx-1 transition-colors", "aria-label": is_references_expanded ? 'Collapse references' : 'Expand references', "aria-expanded": is_references_expanded, children: [_jsx("h3", { className: "text-[9px] font-medium text-muted-foreground uppercase tracking-wider", children: "References" }), is_references_expanded ? (_jsx(IoChevronUp, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" })) : (_jsx(IoChevronDown, { className: "w-3 h-3 text-muted-foreground flex-shrink-0" }))] }), is_references_expanded && (_jsx("div", { className: "cls_references_content", children: _jsx(HazoChatReferenceList, { references: references, selected_reference_id: selected_reference?.id, on_select: handle_reference_select, className: "flex-wrap" }) }))] }) }), _jsxs("div", { className: "cls_main_content flex flex-1 overflow-hidden relative h-full min-h-0", children: [_jsx("div", { className: cn('cls_doc_preview_column', 'border-r bg-muted/20', 'flex-shrink-0 flex flex-col', 'transition-all duration-300 ease-in-out overflow-hidden',
|
|
161
161
|
// Mobile: hidden by default, shown when sidebar is open
|
|
162
162
|
is_sidebar_open ? 'flex' : 'hidden md:flex',
|
|
163
163
|
// Collapse/expand based on state
|
|
164
164
|
is_document_viewer_expanded
|
|
165
165
|
? 'w-[280px] md:w-[320px] lg:w-[380px]'
|
|
166
|
-
: 'w-0 border-r-0'), children: is_document_viewer_expanded && (_jsx(HazoChatDocumentViewer, { reference: selected_reference || undefined })) }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => set_is_document_viewer_expanded(!is_document_viewer_expanded), className: cn('cls_doc_viewer_toggle', 'absolute
|
|
166
|
+
: 'w-0 border-r-0'), children: is_document_viewer_expanded && (_jsx(HazoChatDocumentViewer, { reference: selected_reference || undefined })) }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => set_is_document_viewer_expanded(!is_document_viewer_expanded), className: cn('cls_doc_viewer_toggle', 'absolute z-10', 'h-8 w-6 rounded-r-md rounded-l-none border-l-0', 'bg-background hover:bg-accent', 'transition-all duration-300',
|
|
167
|
+
// Center vertically using flex on parent or fixed positioning
|
|
168
|
+
'top-[50%] -translate-y-1/2',
|
|
167
169
|
// Hide on mobile when sidebar is closed
|
|
168
170
|
(!is_sidebar_open ? 'hidden md:flex' : 'flex'), is_document_viewer_expanded
|
|
169
171
|
? 'left-[280px] md:left-[320px] lg:left-[380px]'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hazo_chat.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_bubble.d.ts","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AA4C/E,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,cAAsB,EACtB,SAAS,EACV,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"chat_bubble.d.ts","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,sBAAsB,CAAC;AA4C/E,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,cAAsB,EACtB,SAAS,EACV,EAAE,eAAe,2CAgKjB;yBAzKe,UAAU"}
|
|
@@ -74,11 +74,15 @@ export function ChatBubble({ message, is_sender, sender_profile, timezone, on_de
|
|
|
74
74
|
const handle_reference_click = useCallback((reference) => {
|
|
75
75
|
on_reference_click?.(reference);
|
|
76
76
|
}, [on_reference_click]);
|
|
77
|
-
return (_jsxs("div", { className: cn('cls_chat_bubble_wrapper', 'flex w-full mb-4 group', is_sender ? 'justify-end' : 'justify-start', is_highlighted && 'animate-pulse bg-primary/5 -mx-2 px-2 py-1 rounded-lg', className), id: `message-${message.id}`, children: [!is_sender && (_jsxs(Avatar, { className: "cls_bubble_avatar h-8 w-8 mr-2 flex-shrink-0", children: [_jsx(AvatarImage, { src: sender_profile?.avatar_url, alt: `${sender_profile?.name || 'User'} avatar` }), _jsx(AvatarFallback, { className: "text-xs", children: get_initials(sender_profile?.name) })] })), _jsxs("div", { className: "cls_bubble_content flex flex-col max-w-[70%]", children: [!is_sender && sender_profile?.name && (_jsx("span", { className: "cls_bubble_sender text-xs text-muted-foreground mb-1 ml-1", children: sender_profile.name })), _jsxs("div", { className: cn('cls_bubble', 'px-4 py-2
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
return (_jsxs("div", { className: cn('cls_chat_bubble_wrapper', 'flex w-full mb-4 group', is_sender ? 'justify-end' : 'justify-start', is_highlighted && 'animate-pulse bg-primary/5 -mx-2 px-2 py-1 rounded-lg', className), id: `message-${message.id}`, children: [!is_sender && (_jsxs(Avatar, { className: "cls_bubble_avatar h-8 w-8 mr-2 flex-shrink-0", children: [_jsx(AvatarImage, { src: sender_profile?.avatar_url, alt: `${sender_profile?.name || 'User'} avatar` }), _jsx(AvatarFallback, { className: "text-xs", children: get_initials(sender_profile?.name) })] })), _jsxs("div", { className: "cls_bubble_content flex flex-col max-w-[70%]", children: [!is_sender && sender_profile?.name && (_jsx("span", { className: "cls_bubble_sender text-xs text-muted-foreground mb-1 ml-1", children: sender_profile.name })), _jsxs("div", { className: cn('cls_bubble', 'px-4 py-2 relative',
|
|
78
|
+
// Explicit rounded corners using Tailwind's arbitrary value syntax for better compatibility
|
|
79
|
+
// Top-left, Top-right, Bottom-right, Bottom-left
|
|
80
|
+
is_sender
|
|
81
|
+
? 'bg-primary text-primary-foreground rounded-[16px_16px_6px_16px]'
|
|
82
|
+
: 'bg-muted text-foreground rounded-[16px_16px_16px_6px]', is_deleted && 'opacity-60 italic'), children: [_jsx("p", { className: "cls_bubble_text text-sm whitespace-pre-wrap break-words", children: display_text }), has_references && !is_deleted && (_jsx("div", { className: "cls_bubble_references flex flex-wrap gap-1 mt-2 pt-2 border-t border-current/10", children: message.reference_list?.map((ref) => (_jsxs(Button, { variant: "ghost", size: "sm", onClick: () => handle_reference_click(ref), className: cn('cls_bubble_reference_btn', 'h-6 px-2 text-xs', is_sender
|
|
80
83
|
? 'hover:bg-primary-foreground/20'
|
|
81
|
-
: 'hover:bg-background/50'), children: [_jsx(IoDocumentAttachSharp, { className: "w-3 h-3 mr-1" }), _jsx("span", { className: "truncate max-w-[100px]", children: ref.name })] }, ref.id))) })), is_sender && !is_deleted && on_delete && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: show_delete_confirm ? 'destructive' : 'ghost', size: "icon", onClick: handle_delete_click, className: cn('cls_bubble_delete_btn', 'absolute -left-8 top-1/2 -translate-y-1/2', 'w-6 h-6', 'opacity-0 group-hover:opacity-100 transition-opacity'), children: _jsx(IoTrashOutline, { className: "w-3.5 h-3.5" }) }) }), _jsx(TooltipContent, { children: show_delete_confirm ? 'Click again to confirm' : 'Delete message' })] }))] }), _jsxs("div", { className: cn('cls_bubble_meta', 'flex items-center gap-1 mt-1',
|
|
84
|
+
: 'hover:bg-background/50'), children: [_jsx(IoDocumentAttachSharp, { className: "w-3 h-3 mr-1" }), _jsx("span", { className: "truncate max-w-[100px]", children: ref.name })] }, ref.id))) })), is_sender && !is_deleted && on_delete && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Button, { variant: show_delete_confirm ? 'destructive' : 'ghost', size: "icon", onClick: handle_delete_click, className: cn('cls_bubble_delete_btn', 'absolute -left-8 top-1/2 -translate-y-1/2', 'w-6 h-6', 'opacity-0 group-hover:opacity-100 transition-opacity'), children: _jsx(IoTrashOutline, { className: "w-3.5 h-3.5" }) }) }), _jsx(TooltipContent, { children: show_delete_confirm ? 'Click again to confirm' : 'Delete message' })] }))] }), _jsxs("div", { className: cn('cls_bubble_meta', 'flex flex-row items-center gap-1 mt-1', // Explicitly set flex-row to prevent any reversal
|
|
85
|
+
is_sender ? 'justify-end mr-1' : 'ml-1'), children: [_jsx("span", { className: "cls_bubble_time text-xs text-muted-foreground order-1", children: format_timestamp(message.created_at, timezone) }), is_sender && message.read_at && (_jsx(IoCheckmarkDoneSharp, { className: "h-4 w-4 text-green-500 flex-shrink-0 order-2" }))] })] }), is_sender && (_jsxs(Avatar, { className: "cls_bubble_avatar h-8 w-8 ml-2 flex-shrink-0", children: [_jsx(AvatarImage, { src: sender_profile?.avatar_url, alt: "Your avatar" }), _jsx(AvatarFallback, { className: "text-xs bg-primary/20 text-primary", children: get_initials(sender_profile?.name) })] }))] }));
|
|
82
86
|
}
|
|
83
87
|
ChatBubble.displayName = 'ChatBubble';
|
|
84
88
|
//# sourceMappingURL=chat_bubble.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat_bubble.js","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chat_bubble.js","sourceRoot":"","sources":["../../../src/components/ui/chat_bubble.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_chat",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.10",
|
|
4
4
|
"description": "Chat interface for 1-1 communication with API-first architecture",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -31,8 +31,7 @@
|
|
|
31
31
|
"files": [
|
|
32
32
|
"dist",
|
|
33
33
|
"README.md",
|
|
34
|
-
"SETUP_CHECKLIST.md"
|
|
35
|
-
"UI_DESIGN_STANDARDS.md"
|
|
34
|
+
"SETUP_CHECKLIST.md"
|
|
36
35
|
],
|
|
37
36
|
"workspaces": [
|
|
38
37
|
"test-app"
|
package/UI_DESIGN_STANDARDS.md
DELETED
|
@@ -1,315 +0,0 @@
|
|
|
1
|
-
# UI Design Standards for hazo_chat
|
|
2
|
-
|
|
3
|
-
This document defines the visual design standards and component behavior specifications for the hazo_chat component library. All consuming projects should follow these standards to ensure consistent UI appearance and behavior.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Visual Design Elements
|
|
8
|
-
|
|
9
|
-
### Document Preview Icon
|
|
10
|
-
|
|
11
|
-
**Location:** Empty state in document viewer (`HazoChatDocumentViewer`)
|
|
12
|
-
|
|
13
|
-
**Specification:**
|
|
14
|
-
- Icon: `IoDocumentOutline` (from `react-icons/io5`)
|
|
15
|
-
- Size: `w-12 h-12` (48px × 48px)
|
|
16
|
-
- Opacity: `opacity-50`
|
|
17
|
-
- Text: "Select a document to preview" in `text-sm`
|
|
18
|
-
|
|
19
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat_document_viewer.tsx` (EmptyState component)
|
|
20
|
-
|
|
21
|
-
### REFERENCES Section Font
|
|
22
|
-
|
|
23
|
-
**Location:** References section header (`hazo_chat.tsx`)
|
|
24
|
-
|
|
25
|
-
**Specification:**
|
|
26
|
-
- Font size: `text-[9px]` (9px)
|
|
27
|
-
- Font weight: `font-medium`
|
|
28
|
-
- Text transform: `uppercase`
|
|
29
|
-
- Letter spacing: `tracking-wider`
|
|
30
|
-
- Color: `text-muted-foreground`
|
|
31
|
-
|
|
32
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat.tsx` (line ~299)
|
|
33
|
-
|
|
34
|
-
### Input Area Padding
|
|
35
|
-
|
|
36
|
-
**Location:** Chat input container (`HazoChatInput`)
|
|
37
|
-
|
|
38
|
-
**Specification:**
|
|
39
|
-
- Padding: `p-4` (16px on all sides)
|
|
40
|
-
- Border: `border-t` (top border only)
|
|
41
|
-
- Background: `bg-background`
|
|
42
|
-
|
|
43
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat_input.tsx` (line ~107)
|
|
44
|
-
|
|
45
|
-
### Message Timestamp Display
|
|
46
|
-
|
|
47
|
-
**Location:** Chat bubble footer (`ChatBubble`)
|
|
48
|
-
|
|
49
|
-
**Specification:**
|
|
50
|
-
- Only timestamp is displayed (no status icons for sent/unread messages)
|
|
51
|
-
- Font size: `text-xs`
|
|
52
|
-
- Color: `text-muted-foreground`
|
|
53
|
-
- Format: 24-hour format (e.g., "10:37 AM", "15:51")
|
|
54
|
-
- Timezone: Respects `timezone` prop (default: "GMT+10")
|
|
55
|
-
|
|
56
|
-
**File Reference:** `src/components/ui/chat_bubble.tsx` (line ~264)
|
|
57
|
-
|
|
58
|
-
### Read Receipt Indicator
|
|
59
|
-
|
|
60
|
-
**Location:** Chat bubble footer, after timestamp (`ChatBubble`)
|
|
61
|
-
|
|
62
|
-
**Specification:**
|
|
63
|
-
- Icon: `IoCheckmarkDoneSharp` (from `react-icons/io5`)
|
|
64
|
-
- Size: `h-4 w-4` (16px × 16px)
|
|
65
|
-
- Color: `text-green-500`
|
|
66
|
-
- Display condition: Only shown when `read_at` is not null AND message is from sender
|
|
67
|
-
- Position: After timestamp with `gap-1` spacing
|
|
68
|
-
|
|
69
|
-
**File Reference:** `src/components/ui/chat_bubble.tsx` (line ~267)
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Component Behavior
|
|
74
|
-
|
|
75
|
-
### Close Button
|
|
76
|
-
|
|
77
|
-
**Location:** Chat header (`HazoChatHeader`)
|
|
78
|
-
|
|
79
|
-
**Specification:**
|
|
80
|
-
- Visibility: Always visible when `on_close` prop is provided to `HazoChat` component
|
|
81
|
-
- Icon: `IoClose` (from `react-icons/io5`)
|
|
82
|
-
- Size: `h-8 w-8` (32px × 32px)
|
|
83
|
-
- Variant: `ghost`
|
|
84
|
-
- Hover state: `hover:bg-destructive/10 hover:text-destructive`
|
|
85
|
-
- Position: Top-right of header, after refresh button
|
|
86
|
-
|
|
87
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat_header.tsx` (line ~124-147)
|
|
88
|
-
|
|
89
|
-
### Hamburger Menu Button
|
|
90
|
-
|
|
91
|
-
**Location:** Chat header (`HazoChatHeader`)
|
|
92
|
-
|
|
93
|
-
**Specification:**
|
|
94
|
-
- Desktop behavior: Hidden (`md:hidden` class)
|
|
95
|
-
- Mobile behavior: Visible on screens < 768px
|
|
96
|
-
- Purpose: Toggle document viewer sidebar on mobile
|
|
97
|
-
- Icon: `IoMenuOutline` (from `react-icons/io5`)
|
|
98
|
-
- Size: `h-8 w-8` (32px × 32px)
|
|
99
|
-
- Position: Top-left of header, before title
|
|
100
|
-
|
|
101
|
-
**Important:** If hamburger button appears on desktop, check Tailwind CSS configuration and ensure `md:` breakpoint utilities are working correctly.
|
|
102
|
-
|
|
103
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat_header.tsx` (line ~54-77)
|
|
104
|
-
|
|
105
|
-
### Document Viewer Toggle Button
|
|
106
|
-
|
|
107
|
-
**Location:** Between document viewer and chat area (`hazo_chat.tsx`)
|
|
108
|
-
|
|
109
|
-
**Specification:**
|
|
110
|
-
- Icon: Chevron (`IoChevronBack` when expanded, `IoChevronForward` when collapsed)
|
|
111
|
-
- Size: `h-8 w-6` (32px height × 24px width)
|
|
112
|
-
- Position: Absolute, vertically centered between columns
|
|
113
|
-
- Variant: `outline`
|
|
114
|
-
- Border: `rounded-r-md rounded-l-none border-l-0`
|
|
115
|
-
- Behavior: Smooth transitions with `transition-all duration-300`
|
|
116
|
-
- Desktop: Visible when document viewer column is present
|
|
117
|
-
- Mobile: Hidden when sidebar is closed
|
|
118
|
-
|
|
119
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat.tsx` (line ~344-367)
|
|
120
|
-
|
|
121
|
-
### References Section Collapse/Expand
|
|
122
|
-
|
|
123
|
-
**Location:** References row (`hazo_chat.tsx`)
|
|
124
|
-
|
|
125
|
-
**Specification:**
|
|
126
|
-
- Collapsed height: `max-h-8`
|
|
127
|
-
- Expanded height: `max-h-96`
|
|
128
|
-
- Transition: `transition-all duration-300 ease-in-out`
|
|
129
|
-
- Indicator: Chevron icon (`IoChevronDown` when collapsed, `IoChevronUp` when expanded)
|
|
130
|
-
- Default state: Collapsed when no references, expanded when references exist
|
|
131
|
-
- Auto-expand: Automatically expands when references are added
|
|
132
|
-
|
|
133
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat.tsx` (line ~288-318)
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Layout Standards
|
|
138
|
-
|
|
139
|
-
### Chat Input Area
|
|
140
|
-
|
|
141
|
-
**Location:** Bottom of chat component (`HazoChatInput`)
|
|
142
|
-
|
|
143
|
-
**Specification:**
|
|
144
|
-
- Layout: Flex container with `flex items-center gap-2`
|
|
145
|
-
- Components:
|
|
146
|
-
- Single `Input` field (replaces previous Textarea)
|
|
147
|
-
- Send button (`Button` with `IoSend` icon)
|
|
148
|
-
- No attachment buttons: Attachment/image buttons removed for simplified design
|
|
149
|
-
- Input padding: `p-4` on container
|
|
150
|
-
- Button alignment: Aligned with input height using flex
|
|
151
|
-
|
|
152
|
-
**File Reference:** `src/components/hazo_chat/hazo_chat_input.tsx` (line ~119-144)
|
|
153
|
-
|
|
154
|
-
### Button Alignment and Sizing
|
|
155
|
-
|
|
156
|
-
**Specification:**
|
|
157
|
-
- Send button: Standard button size, aligned with input
|
|
158
|
-
- All interactive buttons: Consistent sizing for visual harmony
|
|
159
|
-
- Icon sizes within buttons: `w-4 h-4` (16px × 16px)
|
|
160
|
-
|
|
161
|
-
### Responsive Breakpoints
|
|
162
|
-
|
|
163
|
-
**Specification:**
|
|
164
|
-
- Mobile: < 768px (default)
|
|
165
|
-
- Desktop: >= 768px (`md:` prefix)
|
|
166
|
-
- Standard Tailwind breakpoints used throughout
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## Color and Theming
|
|
171
|
-
|
|
172
|
-
### Required CSS Variables
|
|
173
|
-
|
|
174
|
-
The following CSS variables must be defined in the consuming project's global CSS file:
|
|
175
|
-
|
|
176
|
-
**Core Colors:**
|
|
177
|
-
- `--background`
|
|
178
|
-
- `--foreground`
|
|
179
|
-
- `--primary` / `--primary-foreground`
|
|
180
|
-
- `--secondary` / `--secondary-foreground`
|
|
181
|
-
- `--muted` / `--muted-foreground`
|
|
182
|
-
- `--accent` / `--accent-foreground`
|
|
183
|
-
- `--destructive` / `--destructive-foreground`
|
|
184
|
-
|
|
185
|
-
**Border and Input:**
|
|
186
|
-
- `--border`
|
|
187
|
-
- `--input`
|
|
188
|
-
- `--ring`
|
|
189
|
-
|
|
190
|
-
**Card:**
|
|
191
|
-
- `--card` / `--card-foreground`
|
|
192
|
-
|
|
193
|
-
**Reference:** See `test-app/src/app/globals.css` for complete variable definitions.
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## Typography
|
|
198
|
-
|
|
199
|
-
### Font Families
|
|
200
|
-
|
|
201
|
-
**Primary:** System font stack or custom font via `--font-sans` CSS variable
|
|
202
|
-
|
|
203
|
-
**Monospace:** System monospace or custom font via `--font-mono` CSS variable
|
|
204
|
-
|
|
205
|
-
### Font Sizes
|
|
206
|
-
|
|
207
|
-
- Header title: `text-sm` (14px)
|
|
208
|
-
- Header subtitle: `text-xs` (12px)
|
|
209
|
-
- Message text: `text-sm` (14px)
|
|
210
|
-
- Timestamp: `text-xs` (12px)
|
|
211
|
-
- References header: `text-[9px]` (9px)
|
|
212
|
-
- Empty state text: `text-sm` (14px)
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## Spacing and Padding
|
|
217
|
-
|
|
218
|
-
### Standard Padding Values
|
|
219
|
-
|
|
220
|
-
- Container padding: `p-4` (16px)
|
|
221
|
-
- Header padding: `px-4` (16px horizontal)
|
|
222
|
-
- Message bubble padding: `px-4 py-2` (16px horizontal, 8px vertical)
|
|
223
|
-
- Gap between elements: `gap-2` (8px) or `gap-1` (4px) for tight spacing
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## Animation and Transitions
|
|
228
|
-
|
|
229
|
-
### Standard Transitions
|
|
230
|
-
|
|
231
|
-
- Component state changes: `transition-all duration-300`
|
|
232
|
-
- Hover states: `transition-colors`
|
|
233
|
-
- Smooth animations for expand/collapse: `ease-in-out`
|
|
234
|
-
|
|
235
|
-
### Loading States
|
|
236
|
-
|
|
237
|
-
- Skeleton loaders for initial message load
|
|
238
|
-
- Spinner animation for refresh button when loading
|
|
239
|
-
- Pulse animation removed from status indicators
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## Accessibility
|
|
244
|
-
|
|
245
|
-
### ARIA Labels
|
|
246
|
-
|
|
247
|
-
All interactive elements must have appropriate ARIA labels:
|
|
248
|
-
|
|
249
|
-
- Input fields: `aria-label="Message input"`
|
|
250
|
-
- Buttons: `aria-label` describing action (e.g., "Send message", "Refresh chat history")
|
|
251
|
-
- Close button: `aria-label="Close chat"`
|
|
252
|
-
- Toggle buttons: `aria-label` and `aria-expanded` attributes
|
|
253
|
-
|
|
254
|
-
### Keyboard Navigation
|
|
255
|
-
|
|
256
|
-
- Send message: Enter key
|
|
257
|
-
- Close dialogs: Escape key (handled by Alert Dialog component)
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
## Component Dependencies
|
|
262
|
-
|
|
263
|
-
### Required External Components
|
|
264
|
-
|
|
265
|
-
The following components must be available in consuming projects:
|
|
266
|
-
|
|
267
|
-
1. **AlertDialog** (shadcn/ui style)
|
|
268
|
-
- Used for user acknowledgment dialogs
|
|
269
|
-
- Not included in hazo_chat package
|
|
270
|
-
- Must be created by consuming project
|
|
271
|
-
|
|
272
|
-
2. **Toaster** (from `sonner` package)
|
|
273
|
-
- Used for toast notifications (FYI messages)
|
|
274
|
-
- Must be added to root layout
|
|
275
|
-
- Position: `top-right`
|
|
276
|
-
- Configuration: `richColors` prop enabled
|
|
277
|
-
|
|
278
|
-
### Included Components
|
|
279
|
-
|
|
280
|
-
The following UI components are included in hazo_chat package:
|
|
281
|
-
|
|
282
|
-
- Button
|
|
283
|
-
- Input
|
|
284
|
-
- Textarea
|
|
285
|
-
- Avatar
|
|
286
|
-
- ScrollArea
|
|
287
|
-
- Tooltip
|
|
288
|
-
- Separator
|
|
289
|
-
- Badge
|
|
290
|
-
- ChatBubble (chat-specific)
|
|
291
|
-
- LoadingSkeleton (chat-specific)
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
## Example Reference
|
|
296
|
-
|
|
297
|
-
For complete implementation examples, see:
|
|
298
|
-
- `test-app/src/app/page.tsx` - Usage example
|
|
299
|
-
- `test-app/src/app/layout.tsx` - Toaster setup
|
|
300
|
-
- `test-app/src/components/ui/alert-dialog.tsx` - Alert Dialog implementation
|
|
301
|
-
- `test-app/src/app/globals.css` - CSS variables example
|
|
302
|
-
- `test-app/tailwind.config.ts` - Tailwind configuration example
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
## Version Information
|
|
307
|
-
|
|
308
|
-
**Document Version:** 1.0
|
|
309
|
-
**Last Updated:** 2024
|
|
310
|
-
**Applies to hazo_chat version:** 2.0.8+
|
|
311
|
-
|
|
312
|
-
---
|
|
313
|
-
|
|
314
|
-
For setup instructions, see [SETUP_CHECKLIST.md](./SETUP_CHECKLIST.md) and [README.md](./README.md).
|
|
315
|
-
|