hazo_chat 2.0.14 → 2.0.16
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
CHANGED
|
@@ -316,11 +316,47 @@ This section defines the visual design standards and component behavior specific
|
|
|
316
316
|
|
|
317
317
|
**Important:** When wrapping HazoChat in containers (e.g., Card components):
|
|
318
318
|
|
|
319
|
-
1. **
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
319
|
+
1. **Container Height Requirement:**
|
|
320
|
+
- The `HazoChat` component uses `h-full` which requires its parent container to have a **defined height**.
|
|
321
|
+
- **Required:** Parent container must have a fixed height (e.g., `h-[600px]`, `h-screen`, `min-h-[500px]`).
|
|
322
|
+
- **Example:**
|
|
323
|
+
```tsx
|
|
324
|
+
<div className="h-[600px]"> {/* Required: parent must have height */}
|
|
325
|
+
<HazoChat receiver_user_id={...} />
|
|
326
|
+
</div>
|
|
327
|
+
```
|
|
328
|
+
- **Without a defined height**, the component may not render correctly and the chat message area may collapse.
|
|
329
|
+
|
|
330
|
+
2. **Container Width Requirements:**
|
|
331
|
+
- **Recommended minimum width:** 500px for optimal two-column layout (document viewer + chat messages).
|
|
332
|
+
- **For narrow containers (< 500px):** Document references will automatically open in a new tab when clicked instead of showing in the preview panel.
|
|
333
|
+
- **Document viewer defaults to collapsed** to maximize chat space. Users can expand it using the toggle button.
|
|
334
|
+
- **Example:**
|
|
335
|
+
```tsx
|
|
336
|
+
{/* Recommended: at least 500px width */}
|
|
337
|
+
<div className="w-[600px] h-[600px]">
|
|
338
|
+
<HazoChat receiver_user_id={...} />
|
|
339
|
+
</div>
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
3. **Avoid nested `overflow-hidden`**: Nested overflow-hidden containers can clip rounded corners. Use overflow-hidden only on the HazoChat component itself.
|
|
343
|
+
|
|
344
|
+
4. **Padding**: If wrapping in a Card, ensure proper padding is maintained. Avoid `p-0` on CardContent as it may affect internal spacing.
|
|
345
|
+
|
|
346
|
+
5. **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.
|
|
347
|
+
|
|
348
|
+
**Complete Container Example:**
|
|
349
|
+
```tsx
|
|
350
|
+
<div className="w-[600px] h-[600px] flex-shrink-0">
|
|
351
|
+
<div className="rounded-xl border shadow-lg p-0 h-full">
|
|
352
|
+
<HazoChat
|
|
353
|
+
receiver_user_id="user-123"
|
|
354
|
+
title="Chat"
|
|
355
|
+
className="h-full"
|
|
356
|
+
/>
|
|
357
|
+
</div>
|
|
358
|
+
</div>
|
|
359
|
+
```
|
|
324
360
|
|
|
325
361
|
#### Typography
|
|
326
362
|
|
package/SETUP_CHECKLIST.md
CHANGED
|
@@ -397,6 +397,79 @@ export default function ChatPage() {
|
|
|
397
397
|
}
|
|
398
398
|
```
|
|
399
399
|
|
|
400
|
+
### Step 5.3: Container Requirements
|
|
401
|
+
|
|
402
|
+
**Critical:** The `HazoChat` component requires specific container dimensions to render correctly.
|
|
403
|
+
|
|
404
|
+
#### Container Height Requirement
|
|
405
|
+
|
|
406
|
+
The component uses `h-full`, which requires its parent container to have a **defined height**. Without this, the chat message area may collapse.
|
|
407
|
+
|
|
408
|
+
**Required:** Parent container must have a fixed height:
|
|
409
|
+
|
|
410
|
+
```typescript
|
|
411
|
+
<div className="h-[600px]"> {/* ✅ Required: parent must have height */}
|
|
412
|
+
<HazoChat receiver_user_id={...} />
|
|
413
|
+
</div>
|
|
414
|
+
|
|
415
|
+
// OR
|
|
416
|
+
|
|
417
|
+
<div className="h-screen"> {/* ✅ Full screen height */}
|
|
418
|
+
<HazoChat receiver_user_id={...} />
|
|
419
|
+
</div>
|
|
420
|
+
|
|
421
|
+
// ❌ WRONG - will cause layout issues
|
|
422
|
+
<div> {/* No height defined */}
|
|
423
|
+
<HazoChat receiver_user_id={...} />
|
|
424
|
+
</div>
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
#### Container Width Requirements
|
|
428
|
+
|
|
429
|
+
- **Recommended minimum width:** 500px for optimal two-column layout (document viewer + chat messages).
|
|
430
|
+
- **For narrow containers (< 500px):** Document references will automatically open in a new tab when clicked instead of showing in the preview panel.
|
|
431
|
+
- **Document viewer defaults to collapsed** to maximize chat space. Users can expand it using the toggle button.
|
|
432
|
+
|
|
433
|
+
```typescript
|
|
434
|
+
// ✅ Recommended: at least 500px width
|
|
435
|
+
<div className="w-[600px] h-[600px]">
|
|
436
|
+
<HazoChat receiver_user_id={...} />
|
|
437
|
+
</div>
|
|
438
|
+
|
|
439
|
+
// ✅ Narrow container: documents will open in new tab
|
|
440
|
+
<div className="w-[400px] h-[600px]">
|
|
441
|
+
<HazoChat receiver_user_id={...} />
|
|
442
|
+
</div>
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
#### Complete Container Example
|
|
446
|
+
|
|
447
|
+
```typescript
|
|
448
|
+
'use client';
|
|
449
|
+
|
|
450
|
+
import { HazoChat } from 'hazo_chat';
|
|
451
|
+
|
|
452
|
+
export default function ChatPage() {
|
|
453
|
+
return (
|
|
454
|
+
<div className="w-[600px] h-[600px] flex-shrink-0">
|
|
455
|
+
<div className="rounded-xl border shadow-lg p-0 h-full">
|
|
456
|
+
<HazoChat
|
|
457
|
+
receiver_user_id="user-123"
|
|
458
|
+
title="Chat"
|
|
459
|
+
className="h-full"
|
|
460
|
+
/>
|
|
461
|
+
</div>
|
|
462
|
+
</div>
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
**Verification:**
|
|
468
|
+
- [ ] Parent container has defined height (e.g., `h-[600px]`, `h-screen`)
|
|
469
|
+
- [ ] Container width is at least 500px for optimal layout (or accept narrow width behavior)
|
|
470
|
+
- [ ] Component renders with proper chat message area visible
|
|
471
|
+
- [ ] Document viewer toggle button is accessible
|
|
472
|
+
|
|
400
473
|
---
|
|
401
474
|
|
|
402
475
|
## 6. UI Components and Styling Setup
|
|
@@ -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;AAkb9B;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAyD5C;yBAzDe,QAAQ"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
'use client';
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
import { useCallback, useMemo, useState, useEffect } from 'react';
|
|
14
|
+
import { useCallback, useMemo, useState, useEffect, useRef } from 'react';
|
|
15
15
|
import { IoChevronDown, IoChevronUp, IoChevronBack, IoChevronForward } from 'react-icons/io5';
|
|
16
16
|
import { cn } from '../../lib/utils.js';
|
|
17
17
|
import { DEFAULT_TIMEZONE, DEFAULT_REALTIME_MODE, DEFAULT_POLLING_INTERVAL, DEFAULT_MESSAGES_PER_PAGE } from '../../lib/constants.js';
|
|
@@ -78,7 +78,12 @@ function HazoChatInner({ receiver_user_id, reference_id = '', reference_type = '
|
|
|
78
78
|
// -------------------------------------------------------------------------
|
|
79
79
|
// Document viewer collapse state
|
|
80
80
|
// -------------------------------------------------------------------------
|
|
81
|
-
const [is_document_viewer_expanded, set_is_document_viewer_expanded] = useState(
|
|
81
|
+
const [is_document_viewer_expanded, set_is_document_viewer_expanded] = useState(false);
|
|
82
|
+
// -------------------------------------------------------------------------
|
|
83
|
+
// Container width detection for narrow width handling
|
|
84
|
+
// -------------------------------------------------------------------------
|
|
85
|
+
const main_content_ref = useRef(null);
|
|
86
|
+
const NARROW_WIDTH_THRESHOLD = 500; // px - below this, open documents in new tab
|
|
82
87
|
// -------------------------------------------------------------------------
|
|
83
88
|
// File upload hook
|
|
84
89
|
// -------------------------------------------------------------------------
|
|
@@ -149,12 +154,26 @@ function HazoChatInner({ receiver_user_id, reference_id = '', reference_type = '
|
|
|
149
154
|
// Handle reference selection
|
|
150
155
|
// -------------------------------------------------------------------------
|
|
151
156
|
const handle_reference_select = useCallback((reference) => {
|
|
157
|
+
// Check container width - if narrow, open in new tab instead of showing preview
|
|
158
|
+
if (main_content_ref.current) {
|
|
159
|
+
const container_width = main_content_ref.current.offsetWidth;
|
|
160
|
+
if (container_width < NARROW_WIDTH_THRESHOLD) {
|
|
161
|
+
// Open in new tab for narrow containers
|
|
162
|
+
window.open(reference.url, '_blank');
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Normal behavior: select reference and show in preview
|
|
152
167
|
select_reference(reference);
|
|
153
|
-
|
|
168
|
+
// Expand document viewer when selecting a reference in wide containers
|
|
169
|
+
if (!is_document_viewer_expanded) {
|
|
170
|
+
set_is_document_viewer_expanded(true);
|
|
171
|
+
}
|
|
172
|
+
}, [select_reference, is_document_viewer_expanded]);
|
|
154
173
|
// -------------------------------------------------------------------------
|
|
155
174
|
// Render
|
|
156
175
|
// -------------------------------------------------------------------------
|
|
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, on_toggle_sidebar: toggle_sidebar, is_sidebar_open: is_sidebar_open, show_sidebar_toggle: show_sidebar_toggle }), _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-[
|
|
176
|
+
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, on_toggle_sidebar: toggle_sidebar, is_sidebar_open: is_sidebar_open, show_sidebar_toggle: show_sidebar_toggle }), _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", { ref: main_content_ref, 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',
|
|
158
177
|
// Mobile: hidden by default, shown when sidebar is open
|
|
159
178
|
is_sidebar_open ? 'flex' : 'hidden md:flex',
|
|
160
179
|
// Collapse/expand based on state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hazo_chat.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,CAAC;;AAEb,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"hazo_chat.js","sourceRoot":"","sources":["../../../src/components/hazo_chat/hazo_chat.tsx"],"names":[],"mappings":"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"}
|