hazo_collab_forms 1.9.0 → 1.9.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.
Files changed (195) hide show
  1. package/CHANGE_LOG.md +25 -0
  2. package/README.md +157 -44
  3. package/dist/components/_internal_form_set.d.ts +30 -30
  4. package/dist/components/_internal_form_set.d.ts.map +1 -1
  5. package/dist/components/_internal_form_set.js +31 -12
  6. package/dist/components/_internal_form_set.js.map +1 -1
  7. package/dist/components/collab_form_file_upload.d.ts +40 -74
  8. package/dist/components/collab_form_file_upload.d.ts.map +1 -1
  9. package/dist/components/collab_form_file_upload.js +191 -275
  10. package/dist/components/collab_form_file_upload.js.map +1 -1
  11. package/dist/components/hazo_add_field_dialog/components/pending_field_item.d.ts +1 -1
  12. package/dist/components/hazo_add_field_dialog/components/pending_field_item.js +2 -2
  13. package/dist/components/hazo_add_field_dialog/components/pending_field_item.js.map +1 -1
  14. package/dist/components/hazo_add_field_dialog/components/pending_field_list.d.ts +1 -1
  15. package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.js +7 -7
  16. package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.js.map +1 -1
  17. package/dist/components/hazo_add_field_dialog/types.d.ts +4 -4
  18. package/dist/components/hazo_add_field_dialog/types.d.ts.map +1 -1
  19. package/dist/components/hazo_add_field_dialog/utils/library_to_pending.js +2 -2
  20. package/dist/components/hazo_add_field_dialog/utils/library_to_pending.js.map +1 -1
  21. package/dist/components/hazo_add_group_dialog/hazo_add_group_dialog.js +6 -6
  22. package/dist/components/hazo_add_group_dialog/hazo_add_group_dialog.js.map +1 -1
  23. package/dist/components/hazo_collab_form_base.d.ts +26 -20
  24. package/dist/components/hazo_collab_form_base.d.ts.map +1 -1
  25. package/dist/components/hazo_collab_form_base.js +22 -13
  26. package/dist/components/hazo_collab_form_base.js.map +1 -1
  27. package/dist/components/hazo_collab_form_checkbox.d.ts +1 -24
  28. package/dist/components/hazo_collab_form_checkbox.d.ts.map +1 -1
  29. package/dist/components/hazo_collab_form_checkbox.js +15 -141
  30. package/dist/components/hazo_collab_form_checkbox.js.map +1 -1
  31. package/dist/components/hazo_collab_form_combo.d.ts +0 -44
  32. package/dist/components/hazo_collab_form_combo.d.ts.map +1 -1
  33. package/dist/components/hazo_collab_form_combo.js +24 -199
  34. package/dist/components/hazo_collab_form_combo.js.map +1 -1
  35. package/dist/components/hazo_collab_form_data_table.d.ts.map +1 -1
  36. package/dist/components/hazo_collab_form_data_table.js +2 -1
  37. package/dist/components/hazo_collab_form_data_table.js.map +1 -1
  38. package/dist/components/hazo_collab_form_date.d.ts +1 -59
  39. package/dist/components/hazo_collab_form_date.d.ts.map +1 -1
  40. package/dist/components/hazo_collab_form_date.js +34 -194
  41. package/dist/components/hazo_collab_form_date.js.map +1 -1
  42. package/dist/components/hazo_collab_form_doc.d.ts +8 -11
  43. package/dist/components/hazo_collab_form_doc.d.ts.map +1 -1
  44. package/dist/components/hazo_collab_form_doc.js +15 -12
  45. package/dist/components/hazo_collab_form_doc.js.map +1 -1
  46. package/dist/components/hazo_collab_form_group.d.ts +4 -3
  47. package/dist/components/hazo_collab_form_group.d.ts.map +1 -1
  48. package/dist/components/hazo_collab_form_group.js +5 -5
  49. package/dist/components/hazo_collab_form_group.js.map +1 -1
  50. package/dist/components/hazo_collab_form_inputbox.d.ts +0 -17
  51. package/dist/components/hazo_collab_form_inputbox.d.ts.map +1 -1
  52. package/dist/components/hazo_collab_form_inputbox.js +25 -148
  53. package/dist/components/hazo_collab_form_inputbox.js.map +1 -1
  54. package/dist/components/hazo_collab_form_radio.d.ts +1 -36
  55. package/dist/components/hazo_collab_form_radio.d.ts.map +1 -1
  56. package/dist/components/hazo_collab_form_radio.js +18 -143
  57. package/dist/components/hazo_collab_form_radio.js.map +1 -1
  58. package/dist/components/hazo_collab_form_textarea.d.ts +0 -17
  59. package/dist/components/hazo_collab_form_textarea.d.ts.map +1 -1
  60. package/dist/components/hazo_collab_form_textarea.js +14 -141
  61. package/dist/components/hazo_collab_form_textarea.js.map +1 -1
  62. package/dist/components/hazo_collab_form_view/context.d.ts.map +1 -1
  63. package/dist/components/hazo_collab_form_view/context.js +4 -0
  64. package/dist/components/hazo_collab_form_view/context.js.map +1 -1
  65. package/dist/components/hazo_collab_form_view/hooks/use_view_callbacks.d.ts +36 -0
  66. package/dist/components/hazo_collab_form_view/hooks/use_view_callbacks.d.ts.map +1 -0
  67. package/dist/components/hazo_collab_form_view/hooks/use_view_callbacks.js +82 -0
  68. package/dist/components/hazo_collab_form_view/hooks/use_view_callbacks.js.map +1 -0
  69. package/dist/components/hazo_collab_form_view/index.d.ts +1 -1
  70. package/dist/components/hazo_collab_form_view/index.d.ts.map +1 -1
  71. package/dist/components/hazo_collab_form_view/index.js.map +1 -1
  72. package/dist/components/hazo_collab_form_view/types.d.ts +18 -12
  73. package/dist/components/hazo_collab_form_view/types.d.ts.map +1 -1
  74. package/dist/components/hazo_collab_form_view/views/edit_view.d.ts.map +1 -1
  75. package/dist/components/hazo_collab_form_view/views/edit_view.js +11 -81
  76. package/dist/components/hazo_collab_form_view/views/edit_view.js.map +1 -1
  77. package/dist/components/hazo_collab_form_view/views/summary_view.d.ts.map +1 -1
  78. package/dist/components/hazo_collab_form_view/views/summary_view.js +58 -278
  79. package/dist/components/hazo_collab_form_view/views/summary_view.js.map +1 -1
  80. package/dist/components/hazo_edit_field_dialog/hazo_edit_field_dialog.js +8 -8
  81. package/dist/components/hazo_edit_field_dialog/hazo_edit_field_dialog.js.map +1 -1
  82. package/dist/components/hazo_edit_field_dialog/types.d.ts +4 -4
  83. package/dist/components/hazo_edit_field_dialog/types.d.ts.map +1 -1
  84. package/dist/components/hazo_edit_group_dialog/hazo_edit_group_dialog.js +15 -15
  85. package/dist/components/hazo_edit_group_dialog/hazo_edit_group_dialog.js.map +1 -1
  86. package/dist/components/hazo_edit_group_dialog/types.d.ts +4 -4
  87. package/dist/components/hazo_edit_group_dialog/types.d.ts.map +1 -1
  88. package/dist/components/hazo_field_library/hooks/use_elements.d.ts.map +1 -1
  89. package/dist/components/hazo_field_library/hooks/use_elements.js +2 -1
  90. package/dist/components/hazo_field_library/hooks/use_elements.js.map +1 -1
  91. package/dist/components/hazo_field_selector_dialog/utils.d.ts.map +1 -1
  92. package/dist/components/hazo_field_selector_dialog/utils.js +2 -1
  93. package/dist/components/hazo_field_selector_dialog/utils.js.map +1 -1
  94. package/dist/components/hazo_template_generator/components/section_tree.js +1 -1
  95. package/dist/components/hazo_template_generator/components/section_tree.js.map +1 -1
  96. package/dist/components/hazo_template_generator/components/tabs/basic_tab.d.ts.map +1 -1
  97. package/dist/components/hazo_template_generator/components/tabs/basic_tab.js +6 -3
  98. package/dist/components/hazo_template_generator/components/tabs/basic_tab.js.map +1 -1
  99. package/dist/components/hazo_template_generator/components/tabs/section_tab.d.ts.map +1 -1
  100. package/dist/components/hazo_template_generator/components/tabs/section_tab.js +8 -4
  101. package/dist/components/hazo_template_generator/components/tabs/section_tab.js.map +1 -1
  102. package/dist/components/hazo_template_generator/types.d.ts.map +1 -1
  103. package/dist/components/hazo_template_generator/types.js +6 -3
  104. package/dist/components/hazo_template_generator/types.js.map +1 -1
  105. package/dist/components/hazo_template_generator/utils/validation.js +1 -1
  106. package/dist/components/hazo_template_generator/utils/validation.js.map +1 -1
  107. package/dist/components/index.d.ts +4 -0
  108. package/dist/components/index.d.ts.map +1 -1
  109. package/dist/components/index.js +2 -0
  110. package/dist/components/index.js.map +1 -1
  111. package/dist/components/shared/base_field_layout.d.ts +40 -0
  112. package/dist/components/shared/base_field_layout.d.ts.map +1 -0
  113. package/dist/components/shared/base_field_layout.js +34 -0
  114. package/dist/components/shared/base_field_layout.js.map +1 -0
  115. package/dist/components/shared/file_settings/file_settings_checkboxes.d.ts +13 -13
  116. package/dist/components/shared/file_settings/file_settings_checkboxes.d.ts.map +1 -1
  117. package/dist/components/shared/file_settings/file_settings_checkboxes.js +8 -25
  118. package/dist/components/shared/file_settings/file_settings_checkboxes.js.map +1 -1
  119. package/dist/components/shared/row_color_utils.d.ts +16 -0
  120. package/dist/components/shared/row_color_utils.d.ts.map +1 -0
  121. package/dist/components/shared/row_color_utils.js +21 -0
  122. package/dist/components/shared/row_color_utils.js.map +1 -0
  123. package/dist/components/shared/strip_base_props.d.ts +16 -0
  124. package/dist/components/shared/strip_base_props.d.ts.map +1 -0
  125. package/dist/components/shared/strip_base_props.js +91 -0
  126. package/dist/components/shared/strip_base_props.js.map +1 -0
  127. package/dist/components/shared/summary_files/summary_files.d.ts +10 -5
  128. package/dist/components/shared/summary_files/summary_files.d.ts.map +1 -1
  129. package/dist/components/shared/summary_files/summary_files.js +35 -14
  130. package/dist/components/shared/summary_files/summary_files.js.map +1 -1
  131. package/dist/components/shared/summary_utils/file_helpers.d.ts +16 -0
  132. package/dist/components/shared/summary_utils/file_helpers.d.ts.map +1 -0
  133. package/dist/components/shared/summary_utils/file_helpers.js +26 -0
  134. package/dist/components/shared/summary_utils/file_helpers.js.map +1 -0
  135. package/dist/components/shared/summary_utils/index.d.ts +1 -0
  136. package/dist/components/shared/summary_utils/index.d.ts.map +1 -1
  137. package/dist/components/shared/summary_utils/index.js +1 -0
  138. package/dist/components/shared/summary_utils/index.js.map +1 -1
  139. package/dist/components/shared/unified_field_controls/index.d.ts +1 -0
  140. package/dist/components/shared/unified_field_controls/index.d.ts.map +1 -1
  141. package/dist/components/shared/unified_field_controls/index.js +2 -1
  142. package/dist/components/shared/unified_field_controls/index.js.map +1 -1
  143. package/dist/components/shared/unified_field_controls/use_field_control_props.d.ts +68 -0
  144. package/dist/components/shared/unified_field_controls/use_field_control_props.d.ts.map +1 -0
  145. package/dist/components/shared/unified_field_controls/use_field_control_props.js +105 -0
  146. package/dist/components/shared/unified_field_controls/use_field_control_props.js.map +1 -0
  147. package/dist/components/shared/use_base_form_field.d.ts +193 -0
  148. package/dist/components/shared/use_base_form_field.d.ts.map +1 -0
  149. package/dist/components/shared/use_base_form_field.js +265 -0
  150. package/dist/components/shared/use_base_form_field.js.map +1 -0
  151. package/dist/config/api_endpoints.d.ts +19 -0
  152. package/dist/config/api_endpoints.d.ts.map +1 -0
  153. package/dist/config/api_endpoints.js +19 -0
  154. package/dist/config/api_endpoints.js.map +1 -0
  155. package/dist/config/defaults.d.ts +17 -0
  156. package/dist/config/defaults.d.ts.map +1 -0
  157. package/dist/config/defaults.js +17 -0
  158. package/dist/config/defaults.js.map +1 -0
  159. package/dist/config/index.d.ts +3 -0
  160. package/dist/config/index.d.ts.map +1 -0
  161. package/dist/config/index.js +3 -0
  162. package/dist/config/index.js.map +1 -0
  163. package/dist/types/file_attachment.d.ts +55 -0
  164. package/dist/types/file_attachment.d.ts.map +1 -0
  165. package/dist/types/file_attachment.js +54 -0
  166. package/dist/types/file_attachment.js.map +1 -0
  167. package/dist/types/file_manager.d.ts +60 -0
  168. package/dist/types/file_manager.d.ts.map +1 -0
  169. package/dist/types/file_manager.js +8 -0
  170. package/dist/types/file_manager.js.map +1 -0
  171. package/dist/types/index.d.ts +3 -0
  172. package/dist/types/index.d.ts.map +1 -1
  173. package/dist/types/index.js +1 -0
  174. package/dist/types/index.js.map +1 -1
  175. package/dist/utils/filter_dom_props.d.ts.map +1 -1
  176. package/dist/utils/filter_dom_props.js +2 -1
  177. package/dist/utils/filter_dom_props.js.map +1 -1
  178. package/dist/utils/index.d.ts +2 -0
  179. package/dist/utils/index.d.ts.map +1 -1
  180. package/dist/utils/index.js +1 -0
  181. package/dist/utils/index.js.map +1 -1
  182. package/dist/utils/use_chat_messages_check.d.ts.map +1 -1
  183. package/dist/utils/use_chat_messages_check.js +4 -2
  184. package/dist/utils/use_chat_messages_check.js.map +1 -1
  185. package/dist/utils/use_collab_chat.d.ts.map +1 -1
  186. package/dist/utils/use_collab_chat.js +2 -1
  187. package/dist/utils/use_collab_chat.js.map +1 -1
  188. package/dist/utils/use_field_chat_status.d.ts.map +1 -1
  189. package/dist/utils/use_field_chat_status.js +5 -3
  190. package/dist/utils/use_field_chat_status.js.map +1 -1
  191. package/dist/utils/use_file_status.d.ts +29 -0
  192. package/dist/utils/use_file_status.d.ts.map +1 -0
  193. package/dist/utils/use_file_status.js +68 -0
  194. package/dist/utils/use_file_status.js.map +1 -0
  195. package/package.json +4 -1
package/CHANGE_LOG.md CHANGED
@@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ - **hazo_files Integration**: File upload system now uses FileManagerCallbacks for improved architecture
13
+ - New `FileManagerConfig` type with callback-based architecture
14
+ - `file_manager` prop on HazoCollabFormView for centralized file operations
15
+ - New `FormFileAttachment` type replacing legacy FileData in file operations
16
+ - New `FileStatus` type: 'active', 'orphaned', 'soft_deleted', 'missing'
17
+ - New utilities: `use_file_status` hook for polling file status
18
+ - Helper functions: `get_field_attachments`, `get_field_private_attachments`, `is_form_file_attachment`, `attachment_to_file_data`, `file_data_to_attachment`
19
+ - Types exported: `FileManagerConfig`, `FileManagerCallbacks`, `FileUploadOptions`, `FormFileAttachment`, `FileStatus`
20
+
21
+ ### Changed
22
+
23
+ - **File Upload Architecture**: CollabFormFileUploadSection now requires `file_manager` prop to display file upload UI
24
+ - File upload no longer makes direct API calls
25
+ - Uses `file_manager.callbacks` for upload, remove, get_download_url, get_status, reupload operations
26
+ - Returns empty div when `file_manager` is not provided
27
+
28
+ ### Fixed
29
+
30
+ - **File Manager Prop Flow**: Fixed `file_manager` not being passed through `use_base_form_field` hook to CollabFormFileUploadSection
31
+ - **File Icon Crash**: Fixed `get_file_icon` crashing on undefined `mime_type` with defensive null handling
32
+
8
33
  ## [1.8.14] - 2026-02-02
9
34
 
10
35
  ### Added
package/README.md CHANGED
@@ -75,7 +75,7 @@ npx shadcn@latest add popover command
75
75
  # For HazoCollabFormDate (date picker)
76
76
  npx shadcn@latest add calendar
77
77
 
78
- # For file upload functionality (required when using accept_files prop)
78
+ # For file upload functionality (required when using accept_files_public / accept_files_private props)
79
79
  npx shadcn@latest add accordion
80
80
 
81
81
  # For HazoTemplateGenerator (visual form builder)
@@ -193,63 +193,129 @@ export default function MyForm() {
193
193
  }
194
194
  ```
195
195
 
196
- ### File Upload with Validation
196
+ ### File Upload with hazo_files Integration
197
+
198
+ The file upload system uses `hazo_files` for centralized file management:
197
199
 
198
200
  ```typescript
199
201
  'use client';
200
202
 
201
- import { HazoCollabFormInputbox } from 'hazo_collab_forms';
203
+ import { HazoCollabFormView, FileManagerConfig, FileManagerCallbacks, FileUploadOptions, FormFileAttachment } from 'hazo_collab_forms';
202
204
  import { useState } from 'react';
203
205
 
204
206
  export default function DocumentUpload() {
205
- const [value, setValue] = useState('');
207
+ // Define file management callbacks
208
+ const fileCallbacks: FileManagerCallbacks = {
209
+ upload: async (file: File, options: FileUploadOptions) => {
210
+ const formData = new FormData();
211
+ formData.append('file', file);
212
+ formData.append('field_id', options.field_id);
213
+ formData.append('visibility', options.visibility);
214
+
215
+ const response = await fetch('/api/files/upload', {
216
+ method: 'POST',
217
+ body: formData,
218
+ });
219
+
220
+ const data = await response.json();
221
+ return {
222
+ file_id: data.file_id,
223
+ ref_id: options.field_id,
224
+ file_name: file.name,
225
+ file_size: file.size,
226
+ mime_type: file.type,
227
+ visibility: options.visibility,
228
+ attached_at: new Date(),
229
+ };
230
+ },
231
+
232
+ remove: async (file_id: string, field_id: string) => {
233
+ await fetch(`/api/files/${file_id}`, { method: 'DELETE' });
234
+ },
235
+
236
+ get_download_url: (file_id: string, field_id: string) => {
237
+ return `/api/files/${file_id}/download`;
238
+ },
239
+
240
+ // Optional: File status polling
241
+ get_status: async (file_ids: string[]) => {
242
+ const response = await fetch(`/api/files/status?ids=${file_ids.join(',')}`);
243
+ const data = await response.json();
244
+ return data.statuses; // Record<file_id, FileStatus>
245
+ },
246
+
247
+ // Optional: Reupload functionality
248
+ reupload: async (file_id: string, file: File, options: FileUploadOptions) => {
249
+ // Similar to upload, but replaces existing file
250
+ const formData = new FormData();
251
+ formData.append('file', file);
252
+ formData.append('file_id', file_id);
253
+
254
+ const response = await fetch(`/api/files/${file_id}/reupload`, {
255
+ method: 'PUT',
256
+ body: formData,
257
+ });
258
+
259
+ const data = await response.json();
260
+ return {
261
+ file_id: data.file_id,
262
+ ref_id: options.field_id,
263
+ file_name: file.name,
264
+ file_size: file.size,
265
+ mime_type: file.type,
266
+ visibility: options.visibility,
267
+ attached_at: new Date(),
268
+ };
269
+ },
270
+ };
271
+
272
+ const fileManager: FileManagerConfig = {
273
+ callbacks: fileCallbacks,
274
+ show_file_status: true, // Show status badges (active, orphaned, etc.)
275
+ allow_reupload: true, // Enable reupload button
276
+ status_poll_interval: 10000, // Poll status every 10s
277
+ };
206
278
 
207
279
  return (
208
- <HazoCollabFormInputbox
209
- label="Invoice Upload"
210
- value={value}
211
- onChange={setValue}
212
- accept_files={true}
213
- files_dir="public/uploads"
214
- min_files={1} // Shows red asterisk (mandatory indicator)
215
- max_files={5}
216
- file_accept=".pdf"
217
- file_validator={(file) => {
218
- // Custom validation - filename pattern check
219
- if (!file.name.match(/^INV-\d{4}\.pdf$/i)) {
220
- return 'File name must match pattern: INV-0000.pdf';
221
- }
222
- // Size check (5MB limit)
223
- if (file.size > 5 * 1024 * 1024) {
224
- return 'File size must be under 5MB';
225
- }
226
- return null; // Accept file
227
- }}
280
+ <HazoCollabFormView
281
+ mode="edit"
282
+ sections={sections}
283
+ form_data={formData}
284
+ file_manager={fileManager} // Required for file upload UI to appear
228
285
  />
229
286
  );
230
287
  }
231
288
  ```
232
289
 
233
- ### Upload Endpoint Configuration
290
+ ### File Manager Configuration
234
291
 
235
- Files are uploaded via POST to `/api/collab-forms/upload-file` by default. You can customize this with the `upload_endpoint` prop.
292
+ File upload now uses a callback-based system via `FileManagerConfig`. You must implement the following callbacks:
236
293
 
237
- **Request Format (multipart/form-data):**
294
+ **Required Callbacks:**
238
295
 
239
- | Field | Type | Description |
240
- |-------|------|-------------|
241
- | `file` | File | The uploaded file binary |
242
- | `field_id` | string | The ID of the form field (for associating files with fields) |
243
- | `files_dir` | string | Server directory path for storage (from `files_dir` prop) |
244
- | `visibility` | string | `'public'` or `'private'` |
245
- | `required_permission` | string | Permission required for private files (optional) |
296
+ | Callback | Description |
297
+ |----------|-------------|
298
+ | `upload` | Upload a file and return FormFileAttachment |
299
+ | `remove` | Delete a file by file_id |
300
+ | `get_download_url` | Generate download URL for a file |
246
301
 
247
- **Expected Response:**
248
- ```json
249
- {
250
- "file_path": "/uploads/document.pdf"
251
- }
252
- ```
302
+ **Optional Callbacks:**
303
+
304
+ | Callback | Description |
305
+ |----------|-------------|
306
+ | `get_status` | Poll file status (active, orphaned, soft_deleted, missing) |
307
+ | `reupload` | Replace an existing file with a new version |
308
+
309
+ **Configuration Options:**
310
+
311
+ | Option | Type | Default | Description |
312
+ |--------|------|---------|-------------|
313
+ | `callbacks` | FileManagerCallbacks | required | File operation callbacks |
314
+ | `show_file_status` | boolean | false | Show status badges on files |
315
+ | `allow_reupload` | boolean | false | Enable reupload button |
316
+ | `status_poll_interval` | number | undefined | Status polling interval (ms) |
317
+
318
+ **Important**: File upload UI will only render when `file_manager` prop is provided to HazoCollabFormView.
253
319
 
254
320
  ### File Persistence (Multi-User Scenarios)
255
321
 
@@ -333,9 +399,24 @@ export default function CollaborativeForm({ formId }: { formId: string }) {
333
399
  }
334
400
  ```
335
401
 
336
- **FileData Interface:**
402
+ **File Attachment Interfaces:**
337
403
 
338
404
  ```typescript
405
+ // New callback-based attachment format
406
+ interface FormFileAttachment {
407
+ file_id: string; // Unique identifier
408
+ ref_id: string; // Field ID reference
409
+ file_name: string; // Display name
410
+ file_size: number; // Size in bytes
411
+ mime_type: string; // MIME type (e.g., 'application/pdf')
412
+ visibility: 'public' | 'private';
413
+ attached_at: Date; // Attachment timestamp
414
+ }
415
+
416
+ // File status for status badges
417
+ type FileStatus = 'active' | 'orphaned' | 'soft_deleted' | 'missing';
418
+
419
+ // Legacy format (still supported for backward compatibility)
339
420
  interface FileData {
340
421
  file_path: string; // Server path for download
341
422
  file_name: string; // Display name
@@ -347,6 +428,27 @@ interface FileData {
347
428
  }
348
429
  ```
349
430
 
431
+ **Conversion Utilities:**
432
+
433
+ ```typescript
434
+ import {
435
+ attachment_to_file_data,
436
+ file_data_to_attachment,
437
+ is_form_file_attachment
438
+ } from 'hazo_collab_forms';
439
+
440
+ // Convert new format to legacy
441
+ const legacy = attachment_to_file_data(attachment);
442
+
443
+ // Convert legacy to new format
444
+ const attachment = file_data_to_attachment(fileData, 'field_id');
445
+
446
+ // Type guard
447
+ if (is_form_file_attachment(item)) {
448
+ // item is FormFileAttachment
449
+ }
450
+ ```
451
+
350
452
  **Backend API Example (Next.js):**
351
453
 
352
454
  ```typescript
@@ -1446,7 +1548,7 @@ Private file access is controlled via the `control_private_files` control in the
1446
1548
  }
1447
1549
  ```
1448
1550
 
1449
- When `control_private_files.visible` is `true`, users with that role will see private file upload sections on fields that have `enable_file_visibility: true`. This is automatically resolved from the `active_role` prop.
1551
+ When `control_private_files.visible` is `true`, users with that role will see private file upload sections on fields that have `accept_files_private: true`. This is automatically resolved from the `active_role` prop.
1450
1552
 
1451
1553
  **Benefits:**
1452
1554
  - Single configuration for entire form
@@ -1547,6 +1649,13 @@ import {
1547
1649
  // Field metadata normalization
1548
1650
  normalize_field_metadata,
1549
1651
  normalize_field_metadata_input,
1652
+
1653
+ // File management
1654
+ get_field_attachments,
1655
+ get_field_private_attachments,
1656
+ is_form_file_attachment,
1657
+ attachment_to_file_data,
1658
+ file_data_to_attachment,
1550
1659
  } from 'hazo_collab_forms';
1551
1660
 
1552
1661
  // Traverse all fields in sections
@@ -1563,6 +1672,10 @@ const shouldRender = should_render_field(field, formData, {
1563
1672
  // Parse and check field dependencies
1564
1673
  const dependency = parse_dependency(field.depends_on);
1565
1674
  const isActive = check_dependency(dependency, formData);
1675
+
1676
+ // Get file attachments for a field
1677
+ const publicFiles = get_field_attachments(formData, 'document_field');
1678
+ const privateFiles = get_field_private_attachments(formData, 'sensitive_field');
1566
1679
  ```
1567
1680
 
1568
1681
  ## Components
@@ -1603,7 +1716,7 @@ const isActive = check_dependency(dependency, formData);
1603
1716
 
1604
1717
  | Feature | Required shadcn |
1605
1718
  |---------|-----------------|
1606
- | File Upload (`accept_files` prop) | + **accordion** (required) |
1719
+ | File Upload (`accept_files_public` / `accept_files_private` props) | + **accordion** (required) |
1607
1720
  | Field Tooltips (`tooltip` prop) | + **hover-card** (optional) |
1608
1721
 
1609
1722
  ## Import Paths
@@ -1642,7 +1755,7 @@ If you see errors about missing components, install the specific shadcn componen
1642
1755
  npx shadcn@latest add [component-name]
1643
1756
  ```
1644
1757
 
1645
- **Important**: If you're using file upload functionality (`accept_files` prop on any form field), you **must** install the accordion component:
1758
+ **Important**: If you're using file upload functionality (`accept_files_public` or `accept_files_private` props on any form field), you **must** install the accordion component:
1646
1759
 
1647
1760
  ```bash
1648
1761
  npx shadcn@latest add accordion
@@ -5,7 +5,9 @@
5
5
  */
6
6
  import React from 'react';
7
7
  import { type DataTableConfig, type TooltipConfig } from './hazo_collab_form_data_table.js';
8
- import type { NoteEntry, FieldValidatorValue, ChatStatusColorsConfig, FileData } from './hazo_collab_form_base.js';
8
+ import type { NoteEntry, FieldValidatorValue, ChatStatusColorsConfig } from './hazo_collab_form_base.js';
9
+ import type { FormFileAttachment } from '../types/file_attachment.js';
10
+ import type { FileManagerConfig } from '../types/file_manager.js';
9
11
  import { type NewFieldDefinition, type DialogComponents, type ComboboxComponents } from './hazo_add_field_dialog/index.js';
10
12
  import type { IconsBehaviour } from '../types/icons_behaviour.js';
11
13
  /**
@@ -94,9 +96,16 @@ export interface FieldConfig {
94
96
  */
95
97
  input_type?: 'mixed' | 'numeric' | 'email' | 'alpha';
96
98
  /**
97
- * Whether to accept files
99
+ * Whether to accept public file uploads
100
+ * When true, displays a public files upload section
98
101
  */
99
- accept_files?: boolean;
102
+ accept_files_public?: boolean;
103
+ /**
104
+ * Whether to accept private file uploads
105
+ * When true and user has permission, displays a private files upload section
106
+ * Gated by `control_private_files.visible` in `icons_behaviour` roles
107
+ */
108
+ accept_files_private?: boolean;
100
109
  /**
101
110
  * Server directory path where files should be saved
102
111
  */
@@ -125,18 +134,10 @@ export interface FieldConfig {
125
134
  * Note: For JSON configs, this must be passed via a callback prop
126
135
  */
127
136
  file_validator?: (file: File) => string | null;
128
- /**
129
- * Enable private/public file visibility controls
130
- * When true and private_files_permission is set, displays two file sections:
131
- * - Public Files: visible to all users
132
- * - Private Files: visible only to users with the required permission
133
- * Default: false (all files are public, existing behavior)
134
- */
135
- enable_file_visibility?: boolean;
136
137
  /**
137
138
  * Permission string required to view/upload private files
138
139
  * Uses hazo_auth permission checking
139
- * If not provided, private file functionality is disabled even if enable_file_visibility is true
140
+ * Required when accept_files_private is true
140
141
  */
141
142
  private_files_permission?: string;
142
143
  /**
@@ -486,9 +487,13 @@ export interface Section {
486
487
  */
487
488
  section_name?: string;
488
489
  /**
489
- * Whether to accept files at the section level
490
+ * Whether to accept public file uploads at the section level
490
491
  */
491
- accept_files?: boolean;
492
+ accept_files_public?: boolean;
493
+ /**
494
+ * Whether to accept private file uploads at the section level
495
+ */
496
+ accept_files_private?: boolean;
492
497
  /**
493
498
  * Array of groups in the section
494
499
  * Each group is a FieldConfig with field_type='group' and contains fields
@@ -956,7 +961,7 @@ export interface HazoCollabFormSetProps {
956
961
  library_scope_id?: string | null;
957
962
  /**
958
963
  * Whether the current user/role can access private files
959
- * When true, private file sections are visible for fields with enable_file_visibility.
964
+ * When true, private file sections are visible for fields with accept_files_private.
960
965
  * This is typically resolved from the active_role's can_access_private_files setting
961
966
  * in icons_behaviour/global_settings and passed down from HazoCollabFormView.
962
967
  *
@@ -966,33 +971,28 @@ export interface HazoCollabFormSetProps {
966
971
  * 3. hazo_auth API permission check (using private_files_permission)
967
972
  */
968
973
  can_access_private_files?: boolean;
974
+ /**
975
+ * File manager configuration for hazo_files integration.
976
+ * When provided, file upload/remove operations use the callback interface
977
+ * instead of the legacy upload_endpoint pattern.
978
+ */
979
+ file_manager?: FileManagerConfig;
969
980
  /**
970
981
  * Callback when files change for any field.
971
982
  * Called with field_id and the updated files array.
972
- * Use this to persist files to your backend or parent state.
973
983
  *
974
984
  * Files are automatically stored in form_data using key pattern `__files_${field_id}`
975
985
  * and will be included in get_form_data() and on_form_data_change callbacks.
976
- * This callback provides a dedicated handler for file changes specifically.
977
- *
978
- * @example
979
- * ```typescript
980
- * on_field_files_change={(field_id, files) => {
981
- * console.log(`Files changed for ${field_id}:`, files);
982
- * // Persist to backend or update parent state
983
- * }}
984
- * ```
985
986
  */
986
- on_field_files_change?: (field_id: string, files: FileData[]) => void;
987
+ on_field_files_change?: (field_id: string, files: FormFileAttachment[]) => void;
987
988
  /**
988
989
  * Callback when private files change for any field.
989
990
  * Called with field_id and the updated private files array.
990
- * Only relevant when enable_file_visibility is true on fields.
991
991
  *
992
992
  * Private files are automatically stored in form_data using key pattern `__private_files_${field_id}`
993
993
  * and will be included in get_form_data() and on_form_data_change callbacks.
994
994
  */
995
- on_field_private_files_change?: (field_id: string, files: FileData[]) => void;
995
+ on_field_private_files_change?: (field_id: string, files: FormFileAttachment[]) => void;
996
996
  /**
997
997
  * Function to get row background color for a field based on its data_ok state
998
998
  * Returns a Tailwind CSS class for the field's background color
@@ -1038,13 +1038,13 @@ export interface HazoCollabFormSetRef {
1038
1038
  * Returns a map of field_id -> files array
1039
1039
  * Extracts files from form_data entries with __files_ prefix
1040
1040
  */
1041
- get_files_data: () => Record<string, FileData[]>;
1041
+ get_files_data: () => Record<string, FormFileAttachment[]>;
1042
1042
  /**
1043
1043
  * Get all private files data
1044
1044
  * Returns a map of field_id -> files array
1045
1045
  * Extracts files from form_data entries with __private_files_ prefix
1046
1046
  */
1047
- get_private_files_data: () => Record<string, FileData[]>;
1047
+ get_private_files_data: () => Record<string, FormFileAttachment[]>;
1048
1048
  }
1049
1049
  /**
1050
1050
  * Collaboration form set component
@@ -1 +1 @@
1
- {"version":3,"file":"_internal_form_set.d.ts","sourceRoot":"","sources":["../../src/components/_internal_form_set.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_internal_form_set.d.ts","sourceRoot":"","sources":["../../src/components/_internal_form_set.tsx"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
8
8
  import React from 'react';
9
9
  import { IoTrash } from 'react-icons/io5';
10
10
  import { use_logger } from '../logger/context.js';
11
+ import { DEFAULTS } from '../config/defaults.js';
12
+ import { API_ENDPOINTS } from '../config/api_endpoints.js';
11
13
  // Import directly from each component file to avoid circular dependencies
12
14
  // (index.js exports HazoCollabFormSet which imports from these files)
13
15
  import { HazoCollabFormInputbox } from './hazo_collab_form_inputbox.js';
@@ -171,6 +173,8 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
171
173
  enable_library, library_api_base_url, library_table_name, library_scope_id,
172
174
  // Private file access control
173
175
  can_access_private_files: can_access_private_files_prop,
176
+ // File manager
177
+ file_manager,
174
178
  // File persistence callbacks
175
179
  on_field_files_change, on_field_private_files_change,
176
180
  // Row color function
@@ -181,7 +185,8 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
181
185
  // Resolve groups and section_name from section config
182
186
  const resolved_groups = React.useMemo(() => get_section_groups(section), [section]);
183
187
  const resolved_section_name = React.useMemo(() => get_section_name(section), [section]);
184
- const resolved_accept_files = section.accept_files ?? false;
188
+ const resolved_accept_files_public = section.accept_files_public ?? false;
189
+ const resolved_accept_files_private = section.accept_files_private ?? false;
185
190
  // Extract icons_behaviour - prop takes precedence over section config
186
191
  const resolved_icons_behaviour = icons_behaviour_prop ?? section.icons_behaviour;
187
192
  // Debug logging for icons_behaviour
@@ -203,7 +208,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
203
208
  const fetch_default_chat_group_id = async () => {
204
209
  try {
205
210
  // First, get the current user from hazo_auth
206
- const auth_response = await fetch('/api/hazo_auth/me');
211
+ const auth_response = await fetch(API_ENDPOINTS.auth_me);
207
212
  if (!auth_response.ok) {
208
213
  logger.debug('[HazoCollabFormSet] Auth API not available or user not authenticated');
209
214
  return; // User not authenticated or API route doesn't exist
@@ -685,7 +690,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
685
690
  set_additional_entries((prev) => {
686
691
  const current = prev[base_field_id] || [0];
687
692
  // Find the max entry to determine the next number
688
- const max_entries = 10; // TODO: Get from field config
693
+ const max_entries = DEFAULTS.max_additional_entries;
689
694
  if (current.length >= max_entries) {
690
695
  return prev;
691
696
  }
@@ -879,7 +884,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
879
884
  reference_id: field_id,
880
885
  });
881
886
  logger.debug('[HazoCollabFormSet] Checking field', { field_id, params: params.toString() });
882
- const response = await fetch(`/api/hazo_chat/messages?${params.toString()}`);
887
+ const response = await fetch(`${API_ENDPOINTS.chat_messages}?${params.toString()}`);
883
888
  if (response.ok) {
884
889
  const data = await response.json();
885
890
  const messages = data.messages || [];
@@ -1167,24 +1172,33 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1167
1172
  hazo_chat_container_element: chat_container_element,
1168
1173
  hazo_chat_log_polling: chat_log_polling,
1169
1174
  // File upload props
1170
- accept_files: field.accept_files ?? resolved_accept_files,
1175
+ accept_files_public: field.accept_files_public ?? resolved_accept_files_public,
1176
+ accept_files_private: field.accept_files_private ?? resolved_accept_files_private,
1171
1177
  files_dir: field.files_dir,
1172
1178
  max_size: field.max_size,
1173
1179
  min_files: field.min_files,
1174
1180
  max_files: field.max_files,
1175
1181
  file_accept: field.file_accept,
1176
1182
  file_validator: field.file_validator,
1183
+ // File manager callbacks
1184
+ ...(file_manager ? { file_manager: file_manager.callbacks } : {}),
1177
1185
  // File persistence - read from form_data using __files_ prefix
1178
1186
  files: form_data[`__files_${field_data_id}`] || [],
1179
1187
  on_files_change: (new_files) => handle_files_change(field_data_id, new_files),
1180
- // File visibility props
1181
- enable_file_visibility: field.enable_file_visibility,
1188
+ // Private file props
1182
1189
  private_files_permission: field.private_files_permission,
1183
1190
  // Form-level can_access_private_files takes precedence over field-level
1184
1191
  can_access_private_files: can_access_private_files_prop ?? field.can_access_private_files,
1185
1192
  // Private file persistence - read from form_data using __private_files_ prefix
1186
1193
  private_files: form_data[`__private_files_${field_data_id}`] || [],
1187
1194
  on_private_files_change: (new_files) => handle_private_files_change(field_data_id, new_files),
1195
+ // File status props
1196
+ ...(file_manager ? {
1197
+ show_file_status: file_manager.show_file_status,
1198
+ allow_reupload: file_manager.allow_reupload,
1199
+ scope_id: file_manager.scope_id,
1200
+ uploaded_by: file_manager.uploaded_by,
1201
+ } : {}),
1188
1202
  // Field validation
1189
1203
  field_validator: field.field_validator,
1190
1204
  field_width_class_name,
@@ -1237,7 +1251,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1237
1251
  user_role,
1238
1252
  // Additional entry props
1239
1253
  additional_entry: field.additional_entry,
1240
- max_additional_entries: field.max_additional_entries ?? 10,
1254
+ max_additional_entries: field.max_additional_entries ?? DEFAULTS.max_additional_entries,
1241
1255
  entry_index,
1242
1256
  entry_count,
1243
1257
  is_additional_entry,
@@ -1364,15 +1378,20 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1364
1378
  const delete_field_enabled = role_controls?.control_delete_field?.enabled;
1365
1379
  // Enabled state for controls (clickable/editable)
1366
1380
  const data_ok_is_enabled = group_show_icons && role_controls?.control_data_ok?.enabled;
1367
- return (_jsx(HazoCollabFormGroup, { label: field.label, tooltip: field.tooltip, field_data_id: field.id, field_name: field.label, accept_files: field.accept_files ?? resolved_accept_files, files_dir: field.files_dir, max_size: field.max_size, min_files: field.min_files, max_files: field.max_files, file_accept: field.file_accept, file_validator: field.file_validator, field_validator: field.field_validator,
1381
+ return (_jsx(HazoCollabFormGroup, { label: field.label, tooltip: field.tooltip, field_data_id: field.id, field_name: field.label, accept_files_public: field.accept_files_public ?? resolved_accept_files_public, accept_files_private: field.accept_files_private ?? resolved_accept_files_private, files_dir: field.files_dir, max_size: field.max_size, min_files: field.min_files, max_files: field.max_files, file_accept: field.file_accept, file_validator: field.file_validator, field_validator: field.field_validator, ...(file_manager ? { file_manager: file_manager.callbacks } : {}),
1368
1382
  // File persistence - read from form_data using __files_ prefix
1369
1383
  files: form_data[`__files_${field.id}`] || [], on_files_change: (new_files) => handle_files_change(field.id, new_files),
1370
- // File visibility props
1371
- enable_file_visibility: field.enable_file_visibility, private_files_permission: field.private_files_permission,
1384
+ // Private file props
1385
+ private_files_permission: field.private_files_permission,
1372
1386
  // Form-level can_access_private_files takes precedence over field-level
1373
1387
  can_access_private_files: can_access_private_files_prop ?? field.can_access_private_files,
1374
1388
  // Private file persistence - read from form_data using __private_files_ prefix
1375
- private_files: form_data[`__private_files_${field.id}`] || [], on_private_files_change: (new_files) => handle_private_files_change(field.id, new_files), hazo_chat_group_id: chat_group_id, hazo_chat_read_only: field.chat_read_only ?? chat_read_only_prop, hazo_chat_realtime_mode: chat_realtime_mode, chat_status: field_chat_status[field.id] || 'none',
1389
+ private_files: form_data[`__private_files_${field.id}`] || [], on_private_files_change: (new_files) => handle_private_files_change(field.id, new_files), ...(file_manager ? {
1390
+ show_file_status: file_manager.show_file_status,
1391
+ allow_reupload: file_manager.allow_reupload,
1392
+ scope_id: file_manager.scope_id,
1393
+ uploaded_by: file_manager.uploaded_by,
1394
+ } : {}), hazo_chat_group_id: chat_group_id, hazo_chat_read_only: field.chat_read_only ?? chat_read_only_prop, hazo_chat_realtime_mode: chat_realtime_mode, chat_status: field_chat_status[field.id] || 'none',
1376
1395
  // Notes control - determined by icons_behaviour when show_icons=true
1377
1396
  enable_notes: show_notes, ...(notes_mode === 'controlled' ? {
1378
1397
  notes: field_notes[field.id] || [],