hazo_chat 2.0.14 → 2.0.15

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.
Files changed (155) hide show
  1. package/README.md +41 -5
  2. package/SETUP_CHECKLIST.md +73 -0
  3. package/package.json +1 -1
  4. package/dist/api/index.d.ts +0 -26
  5. package/dist/api/index.d.ts.map +0 -1
  6. package/dist/api/index.js +0 -25
  7. package/dist/api/index.js.map +0 -1
  8. package/dist/api/messages.d.ts +0 -34
  9. package/dist/api/messages.d.ts.map +0 -1
  10. package/dist/api/messages.js +0 -214
  11. package/dist/api/messages.js.map +0 -1
  12. package/dist/api/types.d.ts +0 -69
  13. package/dist/api/types.d.ts.map +0 -1
  14. package/dist/api/types.js +0 -8
  15. package/dist/api/types.js.map +0 -1
  16. package/dist/api/unread_count.d.ts +0 -57
  17. package/dist/api/unread_count.d.ts.map +0 -1
  18. package/dist/api/unread_count.js +0 -86
  19. package/dist/api/unread_count.js.map +0 -1
  20. package/dist/components/hazo_chat/hazo_chat.d.ts +0 -28
  21. package/dist/components/hazo_chat/hazo_chat.d.ts.map +0 -1
  22. package/dist/components/hazo_chat/hazo_chat.js +0 -201
  23. package/dist/components/hazo_chat/hazo_chat.js.map +0 -1
  24. package/dist/components/hazo_chat/hazo_chat_attachment_preview.d.ts +0 -17
  25. package/dist/components/hazo_chat/hazo_chat_attachment_preview.d.ts.map +0 -1
  26. package/dist/components/hazo_chat/hazo_chat_attachment_preview.js +0 -60
  27. package/dist/components/hazo_chat/hazo_chat_attachment_preview.js.map +0 -1
  28. package/dist/components/hazo_chat/hazo_chat_context.d.ts +0 -42
  29. package/dist/components/hazo_chat/hazo_chat_context.d.ts.map +0 -1
  30. package/dist/components/hazo_chat/hazo_chat_context.js +0 -273
  31. package/dist/components/hazo_chat/hazo_chat_context.js.map +0 -1
  32. package/dist/components/hazo_chat/hazo_chat_document_viewer.d.ts +0 -15
  33. package/dist/components/hazo_chat/hazo_chat_document_viewer.d.ts.map +0 -1
  34. package/dist/components/hazo_chat/hazo_chat_document_viewer.js +0 -140
  35. package/dist/components/hazo_chat/hazo_chat_document_viewer.js.map +0 -1
  36. package/dist/components/hazo_chat/hazo_chat_header.d.ts +0 -16
  37. package/dist/components/hazo_chat/hazo_chat_header.d.ts.map +0 -1
  38. package/dist/components/hazo_chat/hazo_chat_header.js +0 -24
  39. package/dist/components/hazo_chat/hazo_chat_header.js.map +0 -1
  40. package/dist/components/hazo_chat/hazo_chat_input.d.ts +0 -16
  41. package/dist/components/hazo_chat/hazo_chat_input.d.ts.map +0 -1
  42. package/dist/components/hazo_chat/hazo_chat_input.js +0 -75
  43. package/dist/components/hazo_chat/hazo_chat_input.js.map +0 -1
  44. package/dist/components/hazo_chat/hazo_chat_messages.d.ts +0 -17
  45. package/dist/components/hazo_chat/hazo_chat_messages.d.ts.map +0 -1
  46. package/dist/components/hazo_chat/hazo_chat_messages.js +0 -109
  47. package/dist/components/hazo_chat/hazo_chat_messages.js.map +0 -1
  48. package/dist/components/hazo_chat/hazo_chat_reference_list.d.ts +0 -16
  49. package/dist/components/hazo_chat/hazo_chat_reference_list.d.ts.map +0 -1
  50. package/dist/components/hazo_chat/hazo_chat_reference_list.js +0 -59
  51. package/dist/components/hazo_chat/hazo_chat_reference_list.js.map +0 -1
  52. package/dist/components/hazo_chat/hazo_chat_sidebar.d.ts +0 -18
  53. package/dist/components/hazo_chat/hazo_chat_sidebar.d.ts.map +0 -1
  54. package/dist/components/hazo_chat/hazo_chat_sidebar.js +0 -72
  55. package/dist/components/hazo_chat/hazo_chat_sidebar.js.map +0 -1
  56. package/dist/components/hazo_chat/index.d.ts +0 -16
  57. package/dist/components/hazo_chat/index.d.ts.map +0 -1
  58. package/dist/components/hazo_chat/index.js +0 -19
  59. package/dist/components/hazo_chat/index.js.map +0 -1
  60. package/dist/components/index.d.ts +0 -9
  61. package/dist/components/index.d.ts.map +0 -1
  62. package/dist/components/index.js +0 -11
  63. package/dist/components/index.js.map +0 -1
  64. package/dist/components/ui/avatar.d.ts +0 -13
  65. package/dist/components/ui/avatar.d.ts.map +0 -1
  66. package/dist/components/ui/avatar.js +0 -28
  67. package/dist/components/ui/avatar.js.map +0 -1
  68. package/dist/components/ui/badge.d.ts +0 -16
  69. package/dist/components/ui/badge.d.ts.map +0 -1
  70. package/dist/components/ui/badge.js +0 -36
  71. package/dist/components/ui/badge.js.map +0 -1
  72. package/dist/components/ui/button.d.ts +0 -18
  73. package/dist/components/ui/button.d.ts.map +0 -1
  74. package/dist/components/ui/button.js +0 -47
  75. package/dist/components/ui/button.js.map +0 -1
  76. package/dist/components/ui/chat_bubble.d.ts +0 -18
  77. package/dist/components/ui/chat_bubble.d.ts.map +0 -1
  78. package/dist/components/ui/chat_bubble.js +0 -107
  79. package/dist/components/ui/chat_bubble.js.map +0 -1
  80. package/dist/components/ui/hover-card.d.ts +0 -13
  81. package/dist/components/ui/hover-card.d.ts.map +0 -1
  82. package/dist/components/ui/hover-card.js +0 -17
  83. package/dist/components/ui/hover-card.js.map +0 -1
  84. package/dist/components/ui/index.d.ts +0 -19
  85. package/dist/components/ui/index.d.ts.map +0 -1
  86. package/dist/components/ui/index.js +0 -21
  87. package/dist/components/ui/index.js.map +0 -1
  88. package/dist/components/ui/input.d.ts +0 -11
  89. package/dist/components/ui/input.d.ts.map +0 -1
  90. package/dist/components/ui/input.js +0 -18
  91. package/dist/components/ui/input.js.map +0 -1
  92. package/dist/components/ui/loading_skeleton.d.ts +0 -19
  93. package/dist/components/ui/loading_skeleton.d.ts.map +0 -1
  94. package/dist/components/ui/loading_skeleton.js +0 -30
  95. package/dist/components/ui/loading_skeleton.js.map +0 -1
  96. package/dist/components/ui/scroll-area.d.ts +0 -12
  97. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  98. package/dist/components/ui/scroll-area.js +0 -25
  99. package/dist/components/ui/scroll-area.js.map +0 -1
  100. package/dist/components/ui/separator.d.ts +0 -11
  101. package/dist/components/ui/separator.d.ts.map +0 -1
  102. package/dist/components/ui/separator.js +0 -18
  103. package/dist/components/ui/separator.js.map +0 -1
  104. package/dist/components/ui/skeleton.d.ts +0 -9
  105. package/dist/components/ui/skeleton.d.ts.map +0 -1
  106. package/dist/components/ui/skeleton.js +0 -16
  107. package/dist/components/ui/skeleton.js.map +0 -1
  108. package/dist/components/ui/textarea.d.ts +0 -11
  109. package/dist/components/ui/textarea.d.ts.map +0 -1
  110. package/dist/components/ui/textarea.js +0 -18
  111. package/dist/components/ui/textarea.js.map +0 -1
  112. package/dist/components/ui/tooltip.d.ts +0 -14
  113. package/dist/components/ui/tooltip.d.ts.map +0 -1
  114. package/dist/components/ui/tooltip.js +0 -30
  115. package/dist/components/ui/tooltip.js.map +0 -1
  116. package/dist/hooks/index.d.ts +0 -10
  117. package/dist/hooks/index.d.ts.map +0 -1
  118. package/dist/hooks/index.js +0 -10
  119. package/dist/hooks/index.js.map +0 -1
  120. package/dist/hooks/use_chat_messages.d.ts +0 -33
  121. package/dist/hooks/use_chat_messages.d.ts.map +0 -1
  122. package/dist/hooks/use_chat_messages.js +0 -466
  123. package/dist/hooks/use_chat_messages.js.map +0 -1
  124. package/dist/hooks/use_chat_references.d.ts +0 -17
  125. package/dist/hooks/use_chat_references.d.ts.map +0 -1
  126. package/dist/hooks/use_chat_references.js +0 -133
  127. package/dist/hooks/use_chat_references.js.map +0 -1
  128. package/dist/hooks/use_file_upload.d.ts +0 -23
  129. package/dist/hooks/use_file_upload.d.ts.map +0 -1
  130. package/dist/hooks/use_file_upload.js +0 -212
  131. package/dist/hooks/use_file_upload.js.map +0 -1
  132. package/dist/index.d.ts +0 -13
  133. package/dist/index.d.ts.map +0 -1
  134. package/dist/index.js +0 -17
  135. package/dist/index.js.map +0 -1
  136. package/dist/lib/config.d.ts +0 -41
  137. package/dist/lib/config.d.ts.map +0 -1
  138. package/dist/lib/config.js +0 -93
  139. package/dist/lib/config.js.map +0 -1
  140. package/dist/lib/constants.d.ts +0 -41
  141. package/dist/lib/constants.d.ts.map +0 -1
  142. package/dist/lib/constants.js +0 -72
  143. package/dist/lib/constants.js.map +0 -1
  144. package/dist/lib/index.d.ts +0 -9
  145. package/dist/lib/index.d.ts.map +0 -1
  146. package/dist/lib/index.js +0 -9
  147. package/dist/lib/index.js.map +0 -1
  148. package/dist/lib/utils.d.ts +0 -17
  149. package/dist/lib/utils.d.ts.map +0 -1
  150. package/dist/lib/utils.js +0 -20
  151. package/dist/lib/utils.js.map +0 -1
  152. package/dist/types/index.d.ts +0 -404
  153. package/dist/types/index.d.ts.map +0 -1
  154. package/dist/types/index.js +0 -11
  155. package/dist/types/index.js.map +0 -1
@@ -1,133 +0,0 @@
1
- /**
2
- * useChatReferences Hook
3
- *
4
- * Manages chat references with:
5
- * - Aggregating references from messages and props
6
- * - Selection state management
7
- * - Finding source message for a reference
8
- */
9
- 'use client';
10
- import { useState, useCallback, useMemo, useEffect } from 'react';
11
- // ============================================================================
12
- // Hook Implementation
13
- // ============================================================================
14
- export function useChatReferences({ messages, initial_references = [], on_selection_change }) {
15
- // -------------------------------------------------------------------------
16
- // State
17
- // -------------------------------------------------------------------------
18
- const [selected_reference, set_selected_reference_state] = useState(null);
19
- // -------------------------------------------------------------------------
20
- // Aggregate all references
21
- // -------------------------------------------------------------------------
22
- const references = useMemo(() => {
23
- const reference_map = new Map();
24
- // Add initial references (from props)
25
- initial_references.forEach((ref) => {
26
- const chat_ref = {
27
- ...ref,
28
- scope: ref.scope || 'field'
29
- };
30
- reference_map.set(ref.id, chat_ref);
31
- });
32
- // Add references from messages
33
- messages.forEach((message) => {
34
- if (message.reference_list && Array.isArray(message.reference_list)) {
35
- message.reference_list.forEach((ref) => {
36
- // Update scope to 'chat' and add message_id
37
- const existing = reference_map.get(ref.id);
38
- if (existing) {
39
- // If reference already exists, it's now in both chat and field
40
- reference_map.set(ref.id, {
41
- ...existing,
42
- message_id: message.id
43
- });
44
- }
45
- else {
46
- reference_map.set(ref.id, {
47
- ...ref,
48
- scope: 'chat',
49
- message_id: message.id
50
- });
51
- }
52
- });
53
- }
54
- });
55
- return Array.from(reference_map.values());
56
- }, [messages, initial_references]);
57
- // -------------------------------------------------------------------------
58
- // Message lookup for references
59
- // -------------------------------------------------------------------------
60
- const reference_to_message_map = useMemo(() => {
61
- const map = new Map();
62
- messages.forEach((message) => {
63
- if (message.reference_list && Array.isArray(message.reference_list)) {
64
- message.reference_list.forEach((ref) => {
65
- // Store the first message that contains this reference
66
- if (!map.has(ref.id)) {
67
- map.set(ref.id, message.id);
68
- }
69
- });
70
- }
71
- });
72
- return map;
73
- }, [messages]);
74
- // -------------------------------------------------------------------------
75
- // Select reference
76
- // -------------------------------------------------------------------------
77
- const select_reference = useCallback((reference) => {
78
- // If same reference, toggle off
79
- if (selected_reference?.id === reference.id) {
80
- set_selected_reference_state(null);
81
- on_selection_change?.(null);
82
- return;
83
- }
84
- // Ensure message_id is set if available
85
- const ref_with_message = {
86
- ...reference,
87
- message_id: reference.message_id || reference_to_message_map.get(reference.id)
88
- };
89
- set_selected_reference_state(ref_with_message);
90
- on_selection_change?.(ref_with_message);
91
- }, [selected_reference, reference_to_message_map, on_selection_change]);
92
- // -------------------------------------------------------------------------
93
- // Clear selection
94
- // -------------------------------------------------------------------------
95
- const clear_selection = useCallback(() => {
96
- set_selected_reference_state(null);
97
- on_selection_change?.(null);
98
- }, [on_selection_change]);
99
- // -------------------------------------------------------------------------
100
- // Add new reference
101
- // -------------------------------------------------------------------------
102
- const add_reference = useCallback((reference) => {
103
- // This is typically handled by the context or parent component
104
- // Here we just select the newly added reference
105
- select_reference(reference);
106
- }, [select_reference]);
107
- // -------------------------------------------------------------------------
108
- // Get message ID for reference
109
- // -------------------------------------------------------------------------
110
- const get_message_for_reference = useCallback((reference_id) => {
111
- return reference_to_message_map.get(reference_id) || null;
112
- }, [reference_to_message_map]);
113
- // -------------------------------------------------------------------------
114
- // Clear selection if selected reference is removed
115
- // -------------------------------------------------------------------------
116
- useEffect(() => {
117
- if (selected_reference && !references.some((r) => r.id === selected_reference.id)) {
118
- set_selected_reference_state(null);
119
- }
120
- }, [references, selected_reference]);
121
- // -------------------------------------------------------------------------
122
- // Return
123
- // -------------------------------------------------------------------------
124
- return {
125
- references,
126
- selected_reference,
127
- select_reference,
128
- clear_selection,
129
- add_reference,
130
- get_message_for_reference
131
- };
132
- }
133
- //# sourceMappingURL=use_chat_references.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use_chat_references.js","sourceRoot":"","sources":["../../src/hooks/use_chat_references.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * useFileUpload Hook
3
- *
4
- * Manages file uploads with:
5
- * - File validation (size, type)
6
- * - Preview generation for images
7
- * - Upload progress tracking
8
- * - Batch upload support
9
- */
10
- import type { UploadedFile, UseFileUploadReturn } from '../types/index.js';
11
- interface UseFileUploadParams {
12
- /** Path/bucket for uploaded files */
13
- upload_location: string;
14
- /** Maximum file size in MB */
15
- max_file_size_mb?: number;
16
- /** Allowed file extensions */
17
- allowed_types?: string[];
18
- /** Upload function to call for each file */
19
- upload_function?: (file: File, location: string) => Promise<UploadedFile>;
20
- }
21
- export declare function useFileUpload({ upload_location, max_file_size_mb, allowed_types, upload_function }: UseFileUploadParams): UseFileUploadReturn;
22
- export {};
23
- //# sourceMappingURL=use_file_upload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use_file_upload.d.ts","sourceRoot":"","sources":["../../src/hooks/use_file_upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAEV,YAAY,EAEZ,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAW3B,UAAU,mBAAmB;IAC3B,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3E;AA4DD,wBAAgB,aAAa,CAAC,EAC5B,eAAe,EACf,gBAA2C,EAC3C,aAAqC,EACrC,eAAyC,EAC1C,EAAE,mBAAmB,GAAG,mBAAmB,CA+M3C"}
@@ -1,212 +0,0 @@
1
- /**
2
- * useFileUpload Hook
3
- *
4
- * Manages file uploads with:
5
- * - File validation (size, type)
6
- * - Preview generation for images
7
- * - Upload progress tracking
8
- * - Batch upload support
9
- */
10
- 'use client';
11
- import { useState, useCallback, useRef } from 'react';
12
- import { DEFAULT_MAX_FILE_SIZE_MB, DEFAULT_ALLOWED_TYPES } from '../lib/constants.js';
13
- // ============================================================================
14
- // Helper Functions
15
- // ============================================================================
16
- /**
17
- * Get file extension from filename
18
- */
19
- function get_file_extension(filename) {
20
- const parts = filename.split('.');
21
- return parts.length > 1 ? parts.pop()?.toLowerCase() || '' : '';
22
- }
23
- /**
24
- * Generate unique ID for attachment
25
- */
26
- function generate_attachment_id() {
27
- return `attachment-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
28
- }
29
- /**
30
- * Create preview URL for image files
31
- */
32
- function create_preview_url(file) {
33
- if (file.type.startsWith('image/')) {
34
- return URL.createObjectURL(file);
35
- }
36
- return undefined;
37
- }
38
- /**
39
- * Default upload function (placeholder - should be overridden)
40
- */
41
- async function default_upload_function(file, location) {
42
- // This is a placeholder implementation
43
- // In real usage, this would upload to cloud storage (e.g., Supabase Storage)
44
- console.warn('[useFileUpload] Using default upload function. Override with upload_function prop.');
45
- // Simulate upload delay
46
- await new Promise((resolve) => setTimeout(resolve, 1000));
47
- return {
48
- id: generate_attachment_id(),
49
- name: file.name,
50
- url: `${location}/${file.name}`,
51
- mime_type: file.type,
52
- file_size: file.size
53
- };
54
- }
55
- // ============================================================================
56
- // Hook Implementation
57
- // ============================================================================
58
- export function useFileUpload({ upload_location, max_file_size_mb = DEFAULT_MAX_FILE_SIZE_MB, allowed_types = DEFAULT_ALLOWED_TYPES, upload_function = default_upload_function }) {
59
- // -------------------------------------------------------------------------
60
- // State
61
- // -------------------------------------------------------------------------
62
- const [pending_attachments, set_pending_attachments] = useState([]);
63
- const [is_uploading, set_is_uploading] = useState(false);
64
- const [validation_errors, set_validation_errors] = useState([]);
65
- // -------------------------------------------------------------------------
66
- // Refs
67
- // -------------------------------------------------------------------------
68
- const is_mounted_ref = useRef(true);
69
- // -------------------------------------------------------------------------
70
- // Validation
71
- // -------------------------------------------------------------------------
72
- const validate_file = useCallback((file) => {
73
- // Check file size
74
- const max_size_bytes = max_file_size_mb * 1024 * 1024;
75
- if (file.size > max_size_bytes) {
76
- return {
77
- valid: false,
78
- error: `File "${file.name}" exceeds maximum size of ${max_file_size_mb}MB`
79
- };
80
- }
81
- // Check file type
82
- const extension = get_file_extension(file.name);
83
- if (!allowed_types.includes(extension)) {
84
- return {
85
- valid: false,
86
- error: `File type "${extension}" is not allowed. Allowed types: ${allowed_types.join(', ')}`
87
- };
88
- }
89
- return { valid: true };
90
- }, [max_file_size_mb, allowed_types]);
91
- // -------------------------------------------------------------------------
92
- // Add files
93
- // -------------------------------------------------------------------------
94
- const add_files = useCallback((files) => {
95
- const new_errors = [];
96
- const valid_attachments = [];
97
- files.forEach((file) => {
98
- const validation = validate_file(file);
99
- if (!validation.valid && validation.error) {
100
- new_errors.push(validation.error);
101
- return;
102
- }
103
- const attachment = {
104
- id: generate_attachment_id(),
105
- file,
106
- preview_url: create_preview_url(file),
107
- upload_status: 'pending'
108
- };
109
- valid_attachments.push(attachment);
110
- });
111
- if (new_errors.length > 0) {
112
- set_validation_errors((prev) => [...prev, ...new_errors]);
113
- }
114
- if (valid_attachments.length > 0) {
115
- set_pending_attachments((prev) => [...prev, ...valid_attachments]);
116
- }
117
- }, [validate_file]);
118
- // -------------------------------------------------------------------------
119
- // Remove file
120
- // -------------------------------------------------------------------------
121
- const remove_file = useCallback((attachment_id) => {
122
- set_pending_attachments((prev) => {
123
- const attachment = prev.find((a) => a.id === attachment_id);
124
- // Revoke object URL to prevent memory leaks
125
- if (attachment?.preview_url) {
126
- URL.revokeObjectURL(attachment.preview_url);
127
- }
128
- return prev.filter((a) => a.id !== attachment_id);
129
- });
130
- }, []);
131
- // -------------------------------------------------------------------------
132
- // Upload single file
133
- // -------------------------------------------------------------------------
134
- const upload_single_file = useCallback(async (attachment) => {
135
- // Update status to uploading
136
- set_pending_attachments((prev) => prev.map((a) => a.id === attachment.id
137
- ? { ...a, upload_status: 'uploading' }
138
- : a));
139
- try {
140
- const result = await upload_function(attachment.file, upload_location);
141
- // Update status to uploaded
142
- if (is_mounted_ref.current) {
143
- set_pending_attachments((prev) => prev.map((a) => a.id === attachment.id
144
- ? { ...a, upload_status: 'uploaded' }
145
- : a));
146
- }
147
- return result;
148
- }
149
- catch (error) {
150
- console.error('[useFileUpload] Upload error:', error);
151
- // Update status to failed
152
- if (is_mounted_ref.current) {
153
- set_pending_attachments((prev) => prev.map((a) => a.id === attachment.id
154
- ? {
155
- ...a,
156
- upload_status: 'failed',
157
- error_message: error instanceof Error ? error.message : 'Upload failed'
158
- }
159
- : a));
160
- }
161
- return null;
162
- }
163
- }, [upload_function, upload_location]);
164
- // -------------------------------------------------------------------------
165
- // Upload all pending files
166
- // -------------------------------------------------------------------------
167
- const upload_all = useCallback(async () => {
168
- const pending = pending_attachments.filter((a) => a.upload_status === 'pending' || a.upload_status === 'failed');
169
- if (pending.length === 0) {
170
- return [];
171
- }
172
- set_is_uploading(true);
173
- set_validation_errors([]);
174
- try {
175
- const results = await Promise.all(pending.map((attachment) => upload_single_file(attachment)));
176
- // Filter out failed uploads
177
- const successful = results.filter((result) => result !== null);
178
- return successful;
179
- }
180
- finally {
181
- if (is_mounted_ref.current) {
182
- set_is_uploading(false);
183
- }
184
- }
185
- }, [pending_attachments, upload_single_file]);
186
- // -------------------------------------------------------------------------
187
- // Clear all
188
- // -------------------------------------------------------------------------
189
- const clear_all = useCallback(() => {
190
- // Revoke all object URLs
191
- pending_attachments.forEach((attachment) => {
192
- if (attachment.preview_url) {
193
- URL.revokeObjectURL(attachment.preview_url);
194
- }
195
- });
196
- set_pending_attachments([]);
197
- set_validation_errors([]);
198
- }, [pending_attachments]);
199
- // -------------------------------------------------------------------------
200
- // Return
201
- // -------------------------------------------------------------------------
202
- return {
203
- pending_attachments,
204
- add_files,
205
- remove_file,
206
- upload_all,
207
- clear_all,
208
- is_uploading,
209
- validation_errors
210
- };
211
- }
212
- //# sourceMappingURL=use_file_upload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use_file_upload.js","sourceRoot":"","sources":["../../src/hooks/use_file_upload.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,13 +0,0 @@
1
- /**
2
- * hazo_chat - Main package entry point
3
- *
4
- * This is the main entry file for the hazo_chat npm package.
5
- * It exports all components, hooks, utilities, and types.
6
- *
7
- * IMPORTANT: All export paths must use explicit .js extensions for ES module compatibility.
8
- */
9
- export * from './components/index.js';
10
- export * from './hooks/index.js';
11
- export * from './lib/index.js';
12
- export * from './types/index.js';
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,uBAAuB,CAAC;AAGtC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,kBAAkB,CAAC"}
package/dist/index.js DELETED
@@ -1,17 +0,0 @@
1
- /**
2
- * hazo_chat - Main package entry point
3
- *
4
- * This is the main entry file for the hazo_chat npm package.
5
- * It exports all components, hooks, utilities, and types.
6
- *
7
- * IMPORTANT: All export paths must use explicit .js extensions for ES module compatibility.
8
- */
9
- // Components
10
- export * from './components/index.js';
11
- // Hooks
12
- export * from './hooks/index.js';
13
- // Library utilities
14
- export * from './lib/index.js';
15
- // Types
16
- export * from './types/index.js';
17
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,QAAQ;AACR,cAAc,kBAAkB,CAAC;AAEjC,oBAAoB;AACpB,cAAc,gBAAgB,CAAC;AAE/B,QAAQ;AACR,cAAc,kBAAkB,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Configuration utilities for the hazo_chat package
3
- *
4
- * Browser-compatible configuration management.
5
- * Configuration can be set via environment variables or passed directly.
6
- */
7
- /**
8
- * Get chat-specific configuration
9
- *
10
- * Returns the chat configuration with defaults.
11
- * Values can be overridden via environment variables:
12
- * - NEXT_PUBLIC_CHAT_MAX_MESSAGE_LENGTH
13
- * - NEXT_PUBLIC_CHAT_ENABLE_TIMESTAMPS
14
- * - NEXT_PUBLIC_CHAT_ENABLE_AVATARS
15
- * - NEXT_PUBLIC_CHAT_DATE_FORMAT
16
- *
17
- * @returns Chat configuration object
18
- */
19
- export declare function get_chat_config(): ChatConfig;
20
- /**
21
- * Set chat configuration programmatically
22
- *
23
- * Allows overriding configuration values directly in code.
24
- *
25
- * @param config - Partial configuration to merge with defaults
26
- */
27
- export declare function set_chat_config(config: Partial<ChatConfig>): void;
28
- /**
29
- * Reset configuration to defaults
30
- */
31
- export declare function reset_chat_config(): void;
32
- /**
33
- * Chat configuration interface
34
- */
35
- export interface ChatConfig {
36
- max_message_length: number;
37
- enable_timestamps: boolean;
38
- enable_avatars: boolean;
39
- date_format: string;
40
- }
41
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,UAAU,CAU5C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAKjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1,93 +0,0 @@
1
- /**
2
- * Configuration utilities for the hazo_chat package
3
- *
4
- * Browser-compatible configuration management.
5
- * Configuration can be set via environment variables or passed directly.
6
- */
7
- // Default configuration values
8
- const DEFAULT_CONFIG = {
9
- max_message_length: 1000,
10
- enable_timestamps: true,
11
- enable_avatars: true,
12
- date_format: 'short'
13
- };
14
- // Cached configuration
15
- let cached_config = null;
16
- /**
17
- * Get chat-specific configuration
18
- *
19
- * Returns the chat configuration with defaults.
20
- * Values can be overridden via environment variables:
21
- * - NEXT_PUBLIC_CHAT_MAX_MESSAGE_LENGTH
22
- * - NEXT_PUBLIC_CHAT_ENABLE_TIMESTAMPS
23
- * - NEXT_PUBLIC_CHAT_ENABLE_AVATARS
24
- * - NEXT_PUBLIC_CHAT_DATE_FORMAT
25
- *
26
- * @returns Chat configuration object
27
- */
28
- export function get_chat_config() {
29
- if (!cached_config) {
30
- cached_config = {
31
- max_message_length: get_env_number('NEXT_PUBLIC_CHAT_MAX_MESSAGE_LENGTH', DEFAULT_CONFIG.max_message_length),
32
- enable_timestamps: get_env_boolean('NEXT_PUBLIC_CHAT_ENABLE_TIMESTAMPS', DEFAULT_CONFIG.enable_timestamps),
33
- enable_avatars: get_env_boolean('NEXT_PUBLIC_CHAT_ENABLE_AVATARS', DEFAULT_CONFIG.enable_avatars),
34
- date_format: get_env_string('NEXT_PUBLIC_CHAT_DATE_FORMAT', DEFAULT_CONFIG.date_format)
35
- };
36
- }
37
- return cached_config;
38
- }
39
- /**
40
- * Set chat configuration programmatically
41
- *
42
- * Allows overriding configuration values directly in code.
43
- *
44
- * @param config - Partial configuration to merge with defaults
45
- */
46
- export function set_chat_config(config) {
47
- cached_config = {
48
- ...get_chat_config(),
49
- ...config
50
- };
51
- }
52
- /**
53
- * Reset configuration to defaults
54
- */
55
- export function reset_chat_config() {
56
- cached_config = null;
57
- }
58
- // ============================================================================
59
- // Helper Functions
60
- // ============================================================================
61
- /**
62
- * Get environment variable as string with fallback
63
- */
64
- function get_env_string(key, fallback) {
65
- if (typeof process !== 'undefined' && process.env && process.env[key]) {
66
- return process.env[key];
67
- }
68
- return fallback;
69
- }
70
- /**
71
- * Get environment variable as number with fallback
72
- */
73
- function get_env_number(key, fallback) {
74
- const value = get_env_string(key, '');
75
- if (value) {
76
- const parsed = parseInt(value, 10);
77
- if (!isNaN(parsed)) {
78
- return parsed;
79
- }
80
- }
81
- return fallback;
82
- }
83
- /**
84
- * Get environment variable as boolean with fallback
85
- */
86
- function get_env_boolean(key, fallback) {
87
- const value = get_env_string(key, '');
88
- if (value) {
89
- return value.toLowerCase() === 'true';
90
- }
91
- return fallback;
92
- }
93
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+BAA+B;AAC/B,MAAM,cAAc,GAAe;IACjC,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,OAAO;CACrB,CAAC;AAEF,uBAAuB;AACvB,IAAI,aAAa,GAAsB,IAAI,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG;YACd,kBAAkB,EAAE,cAAc,CAAC,qCAAqC,EAAE,cAAc,CAAC,kBAAkB,CAAC;YAC5G,iBAAiB,EAAE,eAAe,CAAC,oCAAoC,EAAE,cAAc,CAAC,iBAAiB,CAAC;YAC1G,cAAc,EAAE,eAAe,CAAC,iCAAiC,EAAE,cAAc,CAAC,cAAc,CAAC;YACjG,WAAW,EAAE,cAAc,CAAC,8BAA8B,EAAE,cAAc,CAAC,WAAW,CAAC;SACxF,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAA2B;IACzD,aAAa,GAAG;QACd,GAAG,eAAe,EAAE;QACpB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAYD,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,QAAgB;IACnD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC;IACpC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,QAAgB;IACnD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,QAAiB;IACrD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Default constants and configuration values for hazo_chat
3
- *
4
- * These values are used as fallbacks when config file is not available
5
- * or specific values are not set.
6
- */
7
- /** Default real-time update mode: 'polling' or 'manual' */
8
- export declare const DEFAULT_REALTIME_MODE: "polling";
9
- /** Default polling interval in milliseconds */
10
- export declare const DEFAULT_POLLING_INTERVAL = 5000;
11
- /** Default number of messages to load per page */
12
- export declare const DEFAULT_MESSAGES_PER_PAGE = 20;
13
- /** Default maximum file size in MB */
14
- export declare const DEFAULT_MAX_FILE_SIZE_MB = 10;
15
- /** Default allowed file types for upload */
16
- export declare const DEFAULT_ALLOWED_TYPES: string[];
17
- /** Default timezone */
18
- export declare const DEFAULT_TIMEZONE = "GMT+10";
19
- /** Map file extensions to MIME types */
20
- export declare const MIME_TYPE_MAP: Record<string, string>;
21
- /** File types that can be previewed in the document viewer */
22
- export declare const PREVIEWABLE_TYPES: {
23
- pdf: string[];
24
- image: string[];
25
- text: string[];
26
- };
27
- /** Breakpoint for mobile/desktop layout switch */
28
- export declare const MOBILE_BREAKPOINT = 768;
29
- /** Maximum retry attempts for failed operations */
30
- export declare const MAX_RETRY_ATTEMPTS = 3;
31
- /** Base delay for exponential backoff (ms) */
32
- export declare const RETRY_BASE_DELAY = 1000;
33
- /** Animation duration for UI transitions (ms) */
34
- export declare const ANIMATION_DURATION = 200;
35
- /** Placeholder text for deleted messages */
36
- export declare const DELETED_MESSAGE_PLACEHOLDER = "This message has been deleted";
37
- /** Text shown when no messages exist */
38
- export declare const EMPTY_CHAT_MESSAGE = "No messages yet. Start the conversation!";
39
- /** Text shown when loading messages */
40
- export declare const LOADING_MESSAGES_TEXT = "Loading messages...";
41
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,EAAG,SAAkB,CAAC;AAExD,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,kDAAkD;AAClD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,sCAAsC;AACtC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,UASjC,CAAC;AAEF,uBAAuB;AACvB,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAMzC,wCAAwC;AACxC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUhD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAC;AAMF,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,mDAAmD;AACnD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAMtC,4CAA4C;AAC5C,eAAO,MAAM,2BAA2B,kCAAkC,CAAC;AAE3E,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,6CAA6C,CAAC;AAE7E,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,wBAAwB,CAAC"}