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
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Shared hook that extracts ALL common setup logic from form field components.
3
+ *
4
+ * Every form component (inputbox, textarea, checkbox, combo, radio, date)
5
+ * duplicates ~200 lines of identical setup: file state, validation,
6
+ * chat hook, visibility check, disabled state, additional entry logic,
7
+ * error merging, data_ok handler, and imperative handle.
8
+ *
9
+ * This hook consolidates all of that into a single reusable hook.
10
+ */
11
+ 'use client';
12
+ import React from 'react';
13
+ import { use_collab_form_field, } from '../hazo_collab_form_base.js';
14
+ import { DEFAULTS } from '../../config/defaults.js';
15
+ /**
16
+ * Hook that consolidates all common form field component setup.
17
+ *
18
+ * @param props - The full component props (extends CollabFormFieldBaseProps)
19
+ * @param ref - The forwarded ref
20
+ * @param element_type_name - Used for display name / typing context only
21
+ */
22
+ export function use_base_form_field(props, ref) {
23
+ // Create internal ref for component reference (for file_processor)
24
+ const component_ref = React.useRef(null);
25
+ const [internal_files, set_internal_files] = React.useState([]);
26
+ const [validation_error, set_validation_error] = React.useState(null);
27
+ // Use controlled files if provided, otherwise use internal state
28
+ const current_files = props.files !== undefined ? props.files : internal_files;
29
+ // Expose get_file_data method and forward ref
30
+ React.useImperativeHandle(ref, () => {
31
+ return {
32
+ ...component_ref.current,
33
+ get_file_data: () => current_files,
34
+ };
35
+ }, [current_files]);
36
+ // Destructure commonly-used props with defaults
37
+ const { label, tooltip, error, field_id, field_data_id, field_name, on_chat_click, chat_status, is_chat_active, chat_background_color = DEFAULTS.chat_background_color, is_data_ok_default, container_class_name, label_class_name, label_actions, error_class_name, field_width_class_name, required, data_ok_checked, on_data_ok_change, data_ok_mode, data_ok_value, on_data_ok_value_change, data_ok_hidden_states, data_ok_editable, disable_data_ok, disable_chat, accept_files_public, accept_files_private, files_dir, max_size, min_files, max_files, file_accept, file_processor, file_validator, file_manager, files: controlled_files_prop, on_files_change, enable_notes, disable_notes, notes, on_notes_change, notes_panel_style, notes_background_color, notes_save_mode, current_user, className, id, disabled,
38
+ // HazoChat props
39
+ hazo_chat_group_id, hazo_chat_reference_id, hazo_chat_reference_type, hazo_chat_api_base_url, hazo_chat_timezone, hazo_chat_title, hazo_chat_subtitle, hazo_chat_realtime_mode, hazo_chat_polling_interval, hazo_chat_messages_per_page, hazo_chat_class_name, hazo_chat_on_close, hazo_chat_is_open, hazo_chat_on_open_change, hazo_chat_show_sidebar_toggle, hazo_chat_show_delete_button, hazo_chat_bubble_radius, hazo_chat_read_only,
40
+ // Reference tag props
41
+ reference_value, reference_label, reference_tag_background_color,
42
+ // Visibility toggle props
43
+ enable_visibility_toggle, disable_visibility_toggle, visibility = 'visible', on_visibility_change, user_role = 'responder',
44
+ // Additional entry props
45
+ additional_entry, max_additional_entries, entry_index, entry_count, on_add_entry, on_delete_entry, is_additional_entry,
46
+ // Delete field props
47
+ enable_delete, disable_delete, on_delete,
48
+ // Lock field props
49
+ enable_lock, disable_lock, locked = false, on_lock_change,
50
+ // Skip/N/A field props
51
+ enable_skip, disable_skip, skipped = false, on_skip_change,
52
+ // Action buttons styling
53
+ action_buttons_borderless,
54
+ // Private file props
55
+ private_files_permission, can_access_private_files, private_files, on_private_files_change,
56
+ // Icons behaviour
57
+ icons_behaviour, active_role, } = props;
58
+ // Chat setup hook
59
+ const { field_id_final, handle_chat_icon_click, handle_chat_close, chat_is_open, is_chat_disabled } = use_collab_form_field({
60
+ label,
61
+ field_id,
62
+ id,
63
+ field_data_id,
64
+ field_name,
65
+ on_chat_click,
66
+ hazo_chat_group_id,
67
+ hazo_chat_on_open_change,
68
+ hazo_chat_is_open,
69
+ hazo_chat_on_close,
70
+ });
71
+ // Visibility check
72
+ const is_hidden = visibility === 'hidden';
73
+ const should_hide = is_hidden && user_role === 'responder';
74
+ // Disabled state
75
+ const is_chat_field_disabled = is_chat_active !== undefined ? is_chat_active : chat_is_open;
76
+ const is_field_disabled = !!disabled || is_chat_field_disabled || locked || skipped;
77
+ const is_chat_effectively_disabled = is_chat_disabled || is_hidden;
78
+ // Additional entry logic
79
+ const show_add_entry = !!(additional_entry && on_add_entry && (entry_count === undefined || entry_index === entry_count - 1) && (entry_count === undefined || entry_count < (max_additional_entries ?? DEFAULTS.max_additional_entries)));
80
+ // Combined error
81
+ const display_error = error || validation_error || undefined;
82
+ // Unified data_ok handler
83
+ const handle_data_ok_unified_change = React.useCallback((value) => {
84
+ if (typeof value === 'boolean') {
85
+ on_data_ok_change?.(value);
86
+ }
87
+ else {
88
+ on_data_ok_value_change?.(value);
89
+ }
90
+ }, [on_data_ok_change, on_data_ok_value_change]);
91
+ // Stable files change handler
92
+ const handle_files_change = React.useCallback((new_files) => {
93
+ if (controlled_files_prop === undefined) {
94
+ set_internal_files(new_files);
95
+ }
96
+ if (on_files_change) {
97
+ on_files_change(new_files);
98
+ }
99
+ }, [controlled_files_prop, on_files_change]);
100
+ // Effective field identifier
101
+ const effective_field_id = field_data_id || field_id_final;
102
+ // === Build sub-component prop groups ===
103
+ const container_props = {
104
+ chat_status,
105
+ is_chat_active,
106
+ chat_background_color,
107
+ is_data_ok_default,
108
+ container_class_name,
109
+ hazo_chat_is_open: chat_is_open,
110
+ hazo_chat_group_id,
111
+ hazo_chat_reference_id,
112
+ hazo_chat_reference_type,
113
+ hazo_chat_api_base_url,
114
+ hazo_chat_timezone,
115
+ hazo_chat_title,
116
+ hazo_chat_subtitle,
117
+ hazo_chat_realtime_mode,
118
+ hazo_chat_polling_interval,
119
+ hazo_chat_messages_per_page,
120
+ hazo_chat_class_name,
121
+ hazo_chat_on_close: handle_chat_close,
122
+ hazo_chat_show_sidebar_toggle,
123
+ hazo_chat_show_delete_button,
124
+ hazo_chat_bubble_radius,
125
+ field_data_id,
126
+ field_name,
127
+ label,
128
+ files: current_files,
129
+ };
130
+ const label_props = {
131
+ field_id_final,
132
+ label,
133
+ tooltip,
134
+ label_class_name,
135
+ required,
136
+ visibility,
137
+ locked,
138
+ label_actions,
139
+ };
140
+ const controls_props = {
141
+ field_id: effective_field_id,
142
+ icons_behaviour,
143
+ active_role,
144
+ metadata: {
145
+ data_ok: data_ok_value ?? data_ok_checked,
146
+ skipped,
147
+ locked,
148
+ deleted: false,
149
+ visibility,
150
+ notes,
151
+ chat_status,
152
+ },
153
+ callbacks: {
154
+ on_data_ok_change: handle_data_ok_unified_change,
155
+ on_skip_change,
156
+ on_notes_change: on_notes_change,
157
+ on_chat_click: handle_chat_icon_click,
158
+ on_visibility_change,
159
+ on_lock_change,
160
+ on_delete: on_delete ? () => on_delete(effective_field_id) : undefined,
161
+ },
162
+ config: {
163
+ data_ok_mode: (data_ok_mode === 'multi_state' ? 'multi_state' : 'checkbox'),
164
+ data_ok_hidden_states,
165
+ chat_group_id: hazo_chat_group_id,
166
+ current_user,
167
+ field_data_id: effective_field_id,
168
+ label,
169
+ chat_api_base_url: hazo_chat_api_base_url,
170
+ chat_timezone: hazo_chat_timezone,
171
+ chat_read_only: hazo_chat_read_only,
172
+ notes_panel_style,
173
+ notes_background_color,
174
+ notes_save_mode,
175
+ },
176
+ fallback_visibility: {
177
+ data_ok: !disable_data_ok,
178
+ skip: !!(enable_skip && !disable_skip),
179
+ notes: !!(enable_notes && !disable_notes),
180
+ chat: !disable_chat && !!hazo_chat_group_id,
181
+ visibility: !!(enable_visibility_toggle && !disable_visibility_toggle),
182
+ lock: !!(enable_lock && !disable_lock),
183
+ delete: !!(enable_delete && !disable_delete),
184
+ },
185
+ fallback_enabled: {
186
+ data_ok: data_ok_editable !== false,
187
+ skip: !disable_skip,
188
+ notes: !disable_notes,
189
+ chat: !is_chat_effectively_disabled,
190
+ visibility: !disable_visibility_toggle,
191
+ lock: !disable_lock,
192
+ delete: !disable_delete,
193
+ },
194
+ };
195
+ const file_upload_props = {
196
+ field_id_final,
197
+ accept_files_public: !!(accept_files_public && !locked),
198
+ accept_files_private: !!(accept_files_private && !locked),
199
+ files_dir,
200
+ max_size,
201
+ min_files,
202
+ max_files,
203
+ file_accept,
204
+ file_processor,
205
+ file_validator,
206
+ file_manager,
207
+ files: current_files,
208
+ on_files_change: handle_files_change,
209
+ component_ref,
210
+ private_files_permission,
211
+ can_access_private_files,
212
+ private_files,
213
+ on_private_files_change,
214
+ };
215
+ const reference_tag_props = {
216
+ reference_value,
217
+ reference_label,
218
+ reference_tag_background_color,
219
+ };
220
+ const error_props = {
221
+ field_id_final,
222
+ error: display_error,
223
+ error_class_name,
224
+ };
225
+ const entry_props = {
226
+ show_add_entry,
227
+ label,
228
+ field_id: effective_field_id,
229
+ on_add_entry,
230
+ is_additional_entry,
231
+ on_delete_entry,
232
+ action_buttons_borderless,
233
+ };
234
+ return {
235
+ component_ref,
236
+ current_files,
237
+ set_internal_files,
238
+ display_error,
239
+ set_validation_error,
240
+ is_field_disabled,
241
+ is_hidden,
242
+ should_hide,
243
+ show_add_entry,
244
+ handle_data_ok_unified_change,
245
+ handle_files_change,
246
+ field_id_final,
247
+ handle_chat_icon_click,
248
+ handle_chat_close,
249
+ chat_is_open,
250
+ is_chat_effectively_disabled,
251
+ container_props,
252
+ label_props,
253
+ controls_props,
254
+ file_upload_props,
255
+ reference_tag_props,
256
+ error_props,
257
+ entry_props,
258
+ user_role,
259
+ field_width_class_name,
260
+ locked,
261
+ skipped,
262
+ className,
263
+ };
264
+ }
265
+ //# sourceMappingURL=use_base_form_field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_base_form_field.js","sourceRoot":"","sources":["../../../src/components/shared/use_base_form_field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Centralized API endpoint URLs for hazo_collab_forms
3
+ * Replaces hardcoded endpoint strings scattered across components
4
+ *
5
+ * These are default fallback URLs. Most consumers accept endpoint overrides via props.
6
+ */
7
+ export declare const API_ENDPOINTS: {
8
+ /** Authentication - get current user */
9
+ readonly auth_me: "/api/hazo_auth/me";
10
+ /** Authentication - get auth token */
11
+ readonly auth_get: "/api/hazo_auth/get_auth";
12
+ /** Chat messages API */
13
+ readonly chat_messages: "/api/hazo_chat/messages";
14
+ /** File upload endpoint */
15
+ readonly file_upload: "/api/collab-forms/upload-file";
16
+ /** hazo_connect SQLite data API */
17
+ readonly library_data: "/api/hazo_connect/sqlite/data";
18
+ };
19
+ //# sourceMappingURL=api_endpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api_endpoints.d.ts","sourceRoot":"","sources":["../../src/config/api_endpoints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,aAAa;IACxB,wCAAwC;;IAExC,sCAAsC;;IAEtC,wBAAwB;;IAExB,2BAA2B;;IAE3B,mCAAmC;;CAE3B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Centralized API endpoint URLs for hazo_collab_forms
3
+ * Replaces hardcoded endpoint strings scattered across components
4
+ *
5
+ * These are default fallback URLs. Most consumers accept endpoint overrides via props.
6
+ */
7
+ export const API_ENDPOINTS = {
8
+ /** Authentication - get current user */
9
+ auth_me: '/api/hazo_auth/me',
10
+ /** Authentication - get auth token */
11
+ auth_get: '/api/hazo_auth/get_auth',
12
+ /** Chat messages API */
13
+ chat_messages: '/api/hazo_chat/messages',
14
+ /** File upload endpoint */
15
+ file_upload: '/api/collab-forms/upload-file',
16
+ /** hazo_connect SQLite data API */
17
+ library_data: '/api/hazo_connect/sqlite/data',
18
+ };
19
+ //# sourceMappingURL=api_endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api_endpoints.js","sourceRoot":"","sources":["../../src/config/api_endpoints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,wCAAwC;IACxC,OAAO,EAAE,mBAAmB;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,yBAAyB;IACnC,wBAAwB;IACxB,aAAa,EAAE,yBAAyB;IACxC,2BAA2B;IAC3B,WAAW,EAAE,+BAA+B;IAC5C,mCAAmC;IACnC,YAAY,EAAE,+BAA+B;CACrC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Centralized default constants for hazo_collab_forms
3
+ * Replaces hardcoded magic numbers scattered across components
4
+ */
5
+ export declare const DEFAULTS: {
6
+ /** Maximum number of additional entries a field can have */
7
+ readonly max_additional_entries: 10;
8
+ /** Maximum number of files per field */
9
+ readonly max_files: 10;
10
+ /** Polling interval for chat status checks (ms) */
11
+ readonly poll_interval_ms: 5000;
12
+ /** Toast notification duration (ms) */
13
+ readonly toast_duration_ms: 5000;
14
+ /** Background color class when chat is active */
15
+ readonly chat_background_color: "bg-muted";
16
+ };
17
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,QAAQ;IACnB,4DAA4D;;IAE5D,wCAAwC;;IAExC,mDAAmD;;IAEnD,uCAAuC;;IAEvC,iDAAiD;;CAEzC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Centralized default constants for hazo_collab_forms
3
+ * Replaces hardcoded magic numbers scattered across components
4
+ */
5
+ export const DEFAULTS = {
6
+ /** Maximum number of additional entries a field can have */
7
+ max_additional_entries: 10,
8
+ /** Maximum number of files per field */
9
+ max_files: 10,
10
+ /** Polling interval for chat status checks (ms) */
11
+ poll_interval_ms: 5000,
12
+ /** Toast notification duration (ms) */
13
+ toast_duration_ms: 5000,
14
+ /** Background color class when chat is active */
15
+ chat_background_color: 'bg-muted',
16
+ };
17
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,4DAA4D;IAC5D,sBAAsB,EAAE,EAAE;IAC1B,wCAAwC;IACxC,SAAS,EAAE,EAAE;IACb,mDAAmD;IACnD,gBAAgB,EAAE,IAAI;IACtB,uCAAuC;IACvC,iBAAiB,EAAE,IAAI;IACvB,iDAAiD;IACjD,qBAAqB,EAAE,UAAU;CACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DEFAULTS } from './defaults.js';
2
+ export { API_ENDPOINTS } from './api_endpoints.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { DEFAULTS } from './defaults.js';
2
+ export { API_ENDPOINTS } from './api_endpoints.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * FormFileAttachment - File attachment type for hazo_files integration.
3
+ *
4
+ * Replaces the legacy FileData interface with a reference-tracking model.
5
+ * Each attachment stores a file_id (the hazo_files record) and a ref_id
6
+ * (the unique reference from an entity to that file), enabling multiple
7
+ * fields to reference the same physical file without duplication.
8
+ */
9
+ import type { FileData } from '../components/hazo_collab_form_base.js';
10
+ /** Status of a tracked file in hazo_files */
11
+ export type FileStatus = 'active' | 'orphaned' | 'soft_deleted' | 'missing';
12
+ /**
13
+ * A file attachment stored in form_data at __files_ / __private_files_ keys.
14
+ *
15
+ * Contains cached display fields (file_name, file_size, mime_type) so the UI
16
+ * can render without additional API calls.
17
+ */
18
+ export interface FormFileAttachment {
19
+ /** hazo_files record ID */
20
+ file_id: string;
21
+ /** Unique reference ID (matches file_refs[].ref_id in hazo_files) */
22
+ ref_id: string;
23
+ /** Cached original filename for display */
24
+ file_name: string;
25
+ /** Cached file size in bytes */
26
+ file_size: number;
27
+ /** Cached MIME type (e.g. 'application/pdf') */
28
+ mime_type: string;
29
+ /** Visibility level */
30
+ visibility: 'public' | 'private';
31
+ /** ISO timestamp when this attachment was created */
32
+ attached_at: string;
33
+ /** User ID who attached the file */
34
+ attached_by?: string;
35
+ /** File status from hazo_files (only populated when show_file_status is true) */
36
+ status?: FileStatus;
37
+ /** Server file path (for download fallback when get_download_url is unavailable) */
38
+ file_path?: string;
39
+ }
40
+ /**
41
+ * Type guard: checks whether an object is a FormFileAttachment (vs legacy FileData).
42
+ * FormFileAttachment has ref_id + mime_type; FileData has file_type + uploaded_at.
43
+ */
44
+ export declare function is_form_file_attachment(item: unknown): item is FormFileAttachment;
45
+ /**
46
+ * Convert a FormFileAttachment back to the legacy FileData shape.
47
+ * Useful for consumers that still depend on FileData during migration.
48
+ */
49
+ export declare function attachment_to_file_data(attachment: FormFileAttachment): FileData;
50
+ /**
51
+ * Convert a legacy FileData to a FormFileAttachment.
52
+ * A ref_id is required; if not provided, one will be generated.
53
+ */
54
+ export declare function file_data_to_attachment(file_data: FileData, ref_id?: string): FormFileAttachment;
55
+ //# sourceMappingURL=file_attachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_attachment.d.ts","sourceRoot":"","sources":["../../src/types/file_attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAIjF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,GAAG,QAAQ,CAUhF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,kBAAkB,CAepB"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * FormFileAttachment - File attachment type for hazo_files integration.
3
+ *
4
+ * Replaces the legacy FileData interface with a reference-tracking model.
5
+ * Each attachment stores a file_id (the hazo_files record) and a ref_id
6
+ * (the unique reference from an entity to that file), enabling multiple
7
+ * fields to reference the same physical file without duplication.
8
+ */
9
+ /**
10
+ * Type guard: checks whether an object is a FormFileAttachment (vs legacy FileData).
11
+ * FormFileAttachment has ref_id + mime_type; FileData has file_type + uploaded_at.
12
+ */
13
+ export function is_form_file_attachment(item) {
14
+ if (!item || typeof item !== 'object')
15
+ return false;
16
+ const obj = item;
17
+ return typeof obj.ref_id === 'string' && typeof obj.mime_type === 'string';
18
+ }
19
+ /**
20
+ * Convert a FormFileAttachment back to the legacy FileData shape.
21
+ * Useful for consumers that still depend on FileData during migration.
22
+ */
23
+ export function attachment_to_file_data(attachment) {
24
+ return {
25
+ file_id: attachment.file_id,
26
+ file_name: attachment.file_name,
27
+ file_size: attachment.file_size,
28
+ file_type: attachment.mime_type,
29
+ file_path: attachment.file_path ?? '',
30
+ uploaded_at: new Date(attachment.attached_at),
31
+ visibility: attachment.visibility,
32
+ };
33
+ }
34
+ /**
35
+ * Convert a legacy FileData to a FormFileAttachment.
36
+ * A ref_id is required; if not provided, one will be generated.
37
+ */
38
+ export function file_data_to_attachment(file_data, ref_id) {
39
+ return {
40
+ file_id: file_data.file_id,
41
+ ref_id: ref_id ?? `migrated_${file_data.file_id}_${Date.now()}`,
42
+ file_name: file_data.file_name,
43
+ file_size: file_data.file_size,
44
+ mime_type: file_data.file_type,
45
+ visibility: file_data.visibility ?? 'public',
46
+ attached_at: file_data.uploaded_at instanceof Date
47
+ ? file_data.uploaded_at.toISOString()
48
+ : typeof file_data.uploaded_at === 'string'
49
+ ? file_data.uploaded_at
50
+ : new Date().toISOString(),
51
+ file_path: file_data.file_path,
52
+ };
53
+ }
54
+ //# sourceMappingURL=file_attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_attachment.js","sourceRoot":"","sources":["../../src/types/file_attachment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoCH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACnD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,OAAO,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA8B;IACpE,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,EAAE;QACrC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC7C,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAmB,EACnB,MAAe;IAEf,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,MAAM,EAAE,MAAM,IAAI,YAAY,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;QAC/D,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,QAAQ;QAC5C,WAAW,EAAE,SAAS,CAAC,WAAW,YAAY,IAAI;YAChD,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE;YACrC,CAAC,CAAC,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ;gBACzC,CAAC,CAAC,SAAS,CAAC,WAAW;gBACvB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * FileManagerCallbacks - Callback interface for hazo_files integration.
3
+ *
4
+ * Consuming apps implement these callbacks (typically via API routes) to
5
+ * bridge client-side React components with server-side hazo_files logic.
6
+ */
7
+ import type { FormFileAttachment, FileStatus } from './file_attachment.js';
8
+ /**
9
+ * Options passed to the upload callback.
10
+ */
11
+ export interface FileUploadOptions {
12
+ /** Entity type for the file reference (default: 'form_field') */
13
+ entity_type?: string;
14
+ /** Entity ID — typically the field_id the file is attached to */
15
+ entity_id: string;
16
+ /** Visibility level for this upload */
17
+ visibility?: 'public' | 'private';
18
+ /** Scope ID for organizational grouping (e.g. workspace, tenant) */
19
+ scope_id?: string;
20
+ /** User ID performing the upload */
21
+ uploaded_by?: string;
22
+ /** Optional label for the file reference */
23
+ label?: string;
24
+ /** Optional metadata to attach to the file reference */
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ /**
28
+ * Callback interface that consuming apps implement to connect
29
+ * hazo_collab_forms file uploads with hazo_files on the server.
30
+ */
31
+ export interface FileManagerCallbacks {
32
+ /** Upload a file and create a tracked reference. Returns the attachment. */
33
+ upload: (file: File, options: FileUploadOptions) => Promise<FormFileAttachment>;
34
+ /** Remove a file reference (not the physical file — that's handled by orphan detection). */
35
+ remove: (file_id: string, ref_id: string) => Promise<void>;
36
+ /** Get a download URL for a file. */
37
+ get_download_url: (file_id: string, visibility?: 'public' | 'private') => string;
38
+ /** Check status of files. Optional — if absent, status checking is disabled. */
39
+ get_status?: (file_ids: string[]) => Promise<Record<string, FileStatus>>;
40
+ /** Re-upload to replace a missing file. Optional — if absent, re-upload is disabled. */
41
+ reupload?: (file: File, original_file_id: string, options: FileUploadOptions) => Promise<FormFileAttachment>;
42
+ }
43
+ /**
44
+ * Configuration object passed to form components to enable hazo_files integration.
45
+ */
46
+ export interface FileManagerConfig {
47
+ /** Callback implementations (required) */
48
+ callbacks: FileManagerCallbacks;
49
+ /** Show missing/deleted/orphaned badges on files (default: false) */
50
+ show_file_status?: boolean;
51
+ /** Allow re-uploading missing files (default: false) */
52
+ allow_reupload?: boolean;
53
+ /** Default entity_type for file references (default: 'form_field') */
54
+ default_entity_type?: string;
55
+ /** Scope ID passed to all upload calls */
56
+ scope_id?: string;
57
+ /** User ID passed to all upload calls */
58
+ uploaded_by?: string;
59
+ }
60
+ //# sourceMappingURL=file_manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_manager.d.ts","sourceRoot":"","sources":["../../src/types/file_manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,4EAA4E;IAC5E,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhF,4FAA4F;IAC5F,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,qCAAqC;IACrC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,KAAK,MAAM,CAAC;IAEjF,gFAAgF;IAChF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzE,wFAAwF;IACxF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC9G;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,SAAS,EAAE,oBAAoB,CAAC;IAChC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * FileManagerCallbacks - Callback interface for hazo_files integration.
3
+ *
4
+ * Consuming apps implement these callbacks (typically via API routes) to
5
+ * bridge client-side React components with server-side hazo_files logic.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=file_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file_manager.js","sourceRoot":"","sources":["../../src/types/file_manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -3,4 +3,7 @@
3
3
  */
4
4
  export type { ControlName, RoleControlBehaviour, RoleBehaviour, IconsBehaviour, GlobalSettings, } from './icons_behaviour.js';
5
5
  export { DEFAULT_ICON_ORDER, DEFAULT_ROLE_CONTROL_BEHAVIOUR, get_default_icons_behaviour, } from './icons_behaviour.js';
6
+ export type { FormFileAttachment, FileStatus, } from './file_attachment.js';
7
+ export { is_form_file_attachment, attachment_to_file_data, file_data_to_attachment, } from './file_attachment.js';
8
+ export type { FileUploadOptions, FileManagerCallbacks, FileManagerConfig, } from './file_manager.js';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACV,kBAAkB,EAClB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
@@ -2,4 +2,5 @@
2
2
  * Type definitions for hazo_collab_forms
3
3
  */
4
4
  export { DEFAULT_ICON_ORDER, DEFAULT_ROLE_CONTROL_BEHAVIOUR, get_default_icons_behaviour, } from './icons_behaviour.js';
5
+ export { is_form_file_attachment, attachment_to_file_data, file_data_to_attachment, } from './file_attachment.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dom_props.d.ts","sourceRoot":"","sources":["../../src/utils/filter_dom_props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyEH;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,KAAK,EAAE,CAAC,GACP;IAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAajF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,KAAK,EAAE,CAAC,GACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
1
+ {"version":3,"file":"filter_dom_props.d.ts","sourceRoot":"","sources":["../../src/utils/filter_dom_props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA0EH;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,KAAK,EAAE,CAAC,GACP;IAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAajF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,KAAK,EAAE,CAAC,GACP,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
@@ -59,7 +59,8 @@ const NON_DOM_PROPS = new Set([
59
59
  'edit_actions_display',
60
60
  'action_buttons_borderless',
61
61
  // File upload internal props
62
- 'enable_file_visibility',
62
+ 'accept_files_public',
63
+ 'accept_files_private',
63
64
  'private_files_permission',
64
65
  'can_access_private_files',
65
66
  'on_private_files_change',
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dom_props.js","sourceRoot":"","sources":["../../src/utils/filter_dom_props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,qBAAqB,GAAG;IAC5B,YAAY;IACZ,aAAa;CACL,CAAC;AAEX;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,6CAA6C;IAC7C,aAAa;IACb,aAAa;IACb,uBAAuB;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,iBAAiB;IACjB,uBAAuB;IACvB,eAAe;IACf,YAAY;IACZ,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wBAAwB;IACxB,0BAA0B;IAC1B,0BAA0B;IAC1B,6BAA6B;IAC7B,wBAAwB;IACxB,iBAAiB;IACjB,aAAa;IACb,uBAAuB;IACvB,oBAAoB;IACpB,0BAA0B;IAC1B,2BAA2B;IAC3B,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,2BAA2B;IAC3B,6BAA6B;IAC7B,wBAAwB;IACxB,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,iBAAiB;IACjB,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC3C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,4BAA4B;IAC5B,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAQ;IAER,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,cAAc,GAA4B,EAAE,CAAC;IAEnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAQ;IAER,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"filter_dom_props.js","sourceRoot":"","sources":["../../src/utils/filter_dom_props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,qBAAqB,GAAG;IAC5B,YAAY;IACZ,aAAa;CACL,CAAC;AAEX;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,6CAA6C;IAC7C,aAAa;IACb,aAAa;IACb,uBAAuB;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,iBAAiB;IACjB,uBAAuB;IACvB,eAAe;IACf,YAAY;IACZ,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,wBAAwB;IACxB,0BAA0B;IAC1B,0BAA0B;IAC1B,6BAA6B;IAC7B,wBAAwB;IACxB,iBAAiB;IACjB,aAAa;IACb,uBAAuB;IACvB,oBAAoB;IACpB,0BAA0B;IAC1B,2BAA2B;IAC3B,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,2BAA2B;IAC3B,6BAA6B;IAC7B,qBAAqB;IACrB,sBAAsB;IACtB,0BAA0B;IAC1B,0BAA0B;IAC1B,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,iBAAiB;IACjB,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC3C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,4BAA4B;IAC5B,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAQ;IAER,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,cAAc,GAA4B,EAAE,CAAC;IAEnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAQ;IAER,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AAC3C,CAAC"}