hazo_collab_forms 1.9.5 → 2.0.0

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 (394) hide show
  1. package/CHANGE_LOG.md +49 -0
  2. package/README.md +416 -0
  3. package/dist/components/_internal_form_set.d.ts +41 -0
  4. package/dist/components/_internal_form_set.d.ts.map +1 -1
  5. package/dist/components/_internal_form_set.js +81 -3
  6. package/dist/components/_internal_form_set.js.map +1 -1
  7. package/dist/components/clarification/clarification_badge.d.ts +16 -0
  8. package/dist/components/clarification/clarification_badge.d.ts.map +1 -0
  9. package/dist/components/clarification/clarification_badge.js +15 -0
  10. package/dist/components/clarification/clarification_badge.js.map +1 -0
  11. package/dist/components/clarification/clarification_card.d.ts +48 -0
  12. package/dist/components/clarification/clarification_card.d.ts.map +1 -0
  13. package/dist/components/clarification/clarification_card.js +46 -0
  14. package/dist/components/clarification/clarification_card.js.map +1 -0
  15. package/dist/components/clarification/clarification_dialog.d.ts +32 -0
  16. package/dist/components/clarification/clarification_dialog.d.ts.map +1 -0
  17. package/dist/components/clarification/clarification_dialog.js +63 -0
  18. package/dist/components/clarification/clarification_dialog.js.map +1 -0
  19. package/dist/components/clarification/clarification_doc_reference.d.ts +18 -0
  20. package/dist/components/clarification/clarification_doc_reference.d.ts.map +1 -0
  21. package/dist/components/clarification/clarification_doc_reference.js +22 -0
  22. package/dist/components/clarification/clarification_doc_reference.js.map +1 -0
  23. package/dist/components/clarification/clarification_response_form.d.ts +32 -0
  24. package/dist/components/clarification/clarification_response_form.d.ts.map +1 -0
  25. package/dist/components/clarification/clarification_response_form.js +38 -0
  26. package/dist/components/clarification/clarification_response_form.js.map +1 -0
  27. package/dist/components/clarification/clarification_section.d.ts +26 -0
  28. package/dist/components/clarification/clarification_section.d.ts.map +1 -0
  29. package/dist/components/clarification/clarification_section.js +46 -0
  30. package/dist/components/clarification/clarification_section.js.map +1 -0
  31. package/dist/components/clarification/index.d.ts +18 -0
  32. package/dist/components/clarification/index.d.ts.map +1 -0
  33. package/dist/components/clarification/index.js +13 -0
  34. package/dist/components/clarification/index.js.map +1 -0
  35. package/dist/components/clarification/use_clarifications.d.ts +49 -0
  36. package/dist/components/clarification/use_clarifications.d.ts.map +1 -0
  37. package/dist/components/clarification/use_clarifications.js +160 -0
  38. package/dist/components/clarification/use_clarifications.js.map +1 -0
  39. package/dist/components/collab_form_file_upload.d.ts +16 -1
  40. package/dist/components/collab_form_file_upload.d.ts.map +1 -1
  41. package/dist/components/collab_form_file_upload.js +44 -10
  42. package/dist/components/collab_form_file_upload.js.map +1 -1
  43. package/dist/components/hazo_add_field_dialog/types.d.ts.map +1 -1
  44. package/dist/components/hazo_add_field_dialog/types.js +28 -0
  45. package/dist/components/hazo_add_field_dialog/types.js.map +1 -1
  46. package/dist/components/hazo_collab_form_base.d.ts +32 -2
  47. package/dist/components/hazo_collab_form_base.d.ts.map +1 -1
  48. package/dist/components/hazo_collab_form_base.js +11 -5
  49. package/dist/components/hazo_collab_form_base.js.map +1 -1
  50. package/dist/components/hazo_collab_form_computed.d.ts +33 -0
  51. package/dist/components/hazo_collab_form_computed.d.ts.map +1 -0
  52. package/dist/components/hazo_collab_form_computed.js +42 -0
  53. package/dist/components/hazo_collab_form_computed.js.map +1 -0
  54. package/dist/components/hazo_collab_form_currency.d.ts +29 -0
  55. package/dist/components/hazo_collab_form_currency.d.ts.map +1 -0
  56. package/dist/components/hazo_collab_form_currency.js +42 -0
  57. package/dist/components/hazo_collab_form_currency.js.map +1 -0
  58. package/dist/components/hazo_collab_form_data_table.d.ts +1 -1
  59. package/dist/components/hazo_collab_form_data_table.d.ts.map +1 -1
  60. package/dist/components/hazo_collab_form_data_table.js +7 -3
  61. package/dist/components/hazo_collab_form_data_table.js.map +1 -1
  62. package/dist/components/hazo_collab_form_group.d.ts +12 -0
  63. package/dist/components/hazo_collab_form_group.d.ts.map +1 -1
  64. package/dist/components/hazo_collab_form_group.js +27 -4
  65. package/dist/components/hazo_collab_form_group.js.map +1 -1
  66. package/dist/components/hazo_collab_form_masked.d.ts +32 -0
  67. package/dist/components/hazo_collab_form_masked.d.ts.map +1 -0
  68. package/dist/components/hazo_collab_form_masked.js +55 -0
  69. package/dist/components/hazo_collab_form_masked.js.map +1 -0
  70. package/dist/components/hazo_collab_form_percentage.d.ts +27 -0
  71. package/dist/components/hazo_collab_form_percentage.d.ts.map +1 -0
  72. package/dist/components/hazo_collab_form_percentage.js +41 -0
  73. package/dist/components/hazo_collab_form_percentage.js.map +1 -0
  74. package/dist/components/hazo_collab_form_static_text.d.ts +26 -0
  75. package/dist/components/hazo_collab_form_static_text.d.ts.map +1 -0
  76. package/dist/components/hazo_collab_form_static_text.js +24 -0
  77. package/dist/components/hazo_collab_form_static_text.js.map +1 -0
  78. package/dist/components/hazo_collab_form_summary_row.d.ts +41 -0
  79. package/dist/components/hazo_collab_form_summary_row.d.ts.map +1 -0
  80. package/dist/components/hazo_collab_form_summary_row.js +35 -0
  81. package/dist/components/hazo_collab_form_summary_row.js.map +1 -0
  82. package/dist/components/hazo_collab_form_view/context.d.ts.map +1 -1
  83. package/dist/components/hazo_collab_form_view/context.js +25 -1
  84. package/dist/components/hazo_collab_form_view/context.js.map +1 -1
  85. package/dist/components/hazo_collab_form_view/index.d.ts +1 -1
  86. package/dist/components/hazo_collab_form_view/index.d.ts.map +1 -1
  87. package/dist/components/hazo_collab_form_view/index.js +8 -0
  88. package/dist/components/hazo_collab_form_view/index.js.map +1 -1
  89. package/dist/components/hazo_collab_form_view/types.d.ts +167 -2
  90. package/dist/components/hazo_collab_form_view/types.d.ts.map +1 -1
  91. package/dist/components/hazo_collab_form_view/views/edit_view.d.ts.map +1 -1
  92. package/dist/components/hazo_collab_form_view/views/edit_view.js +76 -8
  93. package/dist/components/hazo_collab_form_view/views/edit_view.js.map +1 -1
  94. package/dist/components/hazo_collab_form_view/views/summary_view.d.ts.map +1 -1
  95. package/dist/components/hazo_collab_form_view/views/summary_view.js +237 -14
  96. package/dist/components/hazo_collab_form_view/views/summary_view.js.map +1 -1
  97. package/dist/components/hazo_data_form/field_renderers/boolean_field.d.ts +6 -0
  98. package/dist/components/hazo_data_form/field_renderers/boolean_field.d.ts.map +1 -0
  99. package/dist/components/hazo_data_form/field_renderers/boolean_field.js +9 -0
  100. package/dist/components/hazo_data_form/field_renderers/boolean_field.js.map +1 -0
  101. package/dist/components/hazo_data_form/field_renderers/computed_field.d.ts +7 -0
  102. package/dist/components/hazo_data_form/field_renderers/computed_field.d.ts.map +1 -0
  103. package/dist/components/hazo_data_form/field_renderers/computed_field.js +34 -0
  104. package/dist/components/hazo_data_form/field_renderers/computed_field.js.map +1 -0
  105. package/dist/components/hazo_data_form/field_renderers/currency_field.d.ts +7 -0
  106. package/dist/components/hazo_data_form/field_renderers/currency_field.d.ts.map +1 -0
  107. package/dist/components/hazo_data_form/field_renderers/currency_field.js +30 -0
  108. package/dist/components/hazo_data_form/field_renderers/currency_field.js.map +1 -0
  109. package/dist/components/hazo_data_form/field_renderers/date_field.d.ts +7 -0
  110. package/dist/components/hazo_data_form/field_renderers/date_field.d.ts.map +1 -0
  111. package/dist/components/hazo_data_form/field_renderers/date_field.js +17 -0
  112. package/dist/components/hazo_data_form/field_renderers/date_field.js.map +1 -0
  113. package/dist/components/hazo_data_form/field_renderers/email_field.d.ts +6 -0
  114. package/dist/components/hazo_data_form/field_renderers/email_field.d.ts.map +1 -0
  115. package/dist/components/hazo_data_form/field_renderers/email_field.js +12 -0
  116. package/dist/components/hazo_data_form/field_renderers/email_field.js.map +1 -0
  117. package/dist/components/hazo_data_form/field_renderers/index.d.ts +50 -0
  118. package/dist/components/hazo_data_form/field_renderers/index.d.ts.map +1 -0
  119. package/dist/components/hazo_data_form/field_renderers/index.js +95 -0
  120. package/dist/components/hazo_data_form/field_renderers/index.js.map +1 -0
  121. package/dist/components/hazo_data_form/field_renderers/masked_field.d.ts +7 -0
  122. package/dist/components/hazo_data_form/field_renderers/masked_field.d.ts.map +1 -0
  123. package/dist/components/hazo_data_form/field_renderers/masked_field.js +56 -0
  124. package/dist/components/hazo_data_form/field_renderers/masked_field.js.map +1 -0
  125. package/dist/components/hazo_data_form/field_renderers/number_field.d.ts +6 -0
  126. package/dist/components/hazo_data_form/field_renderers/number_field.d.ts.map +1 -0
  127. package/dist/components/hazo_data_form/field_renderers/number_field.js +15 -0
  128. package/dist/components/hazo_data_form/field_renderers/number_field.js.map +1 -0
  129. package/dist/components/hazo_data_form/field_renderers/option_field.d.ts +6 -0
  130. package/dist/components/hazo_data_form/field_renderers/option_field.d.ts.map +1 -0
  131. package/dist/components/hazo_data_form/field_renderers/option_field.js +15 -0
  132. package/dist/components/hazo_data_form/field_renderers/option_field.js.map +1 -0
  133. package/dist/components/hazo_data_form/field_renderers/percentage_field.d.ts +7 -0
  134. package/dist/components/hazo_data_form/field_renderers/percentage_field.d.ts.map +1 -0
  135. package/dist/components/hazo_data_form/field_renderers/percentage_field.js +22 -0
  136. package/dist/components/hazo_data_form/field_renderers/percentage_field.js.map +1 -0
  137. package/dist/components/hazo_data_form/field_renderers/static_text_field.d.ts +7 -0
  138. package/dist/components/hazo_data_form/field_renderers/static_text_field.d.ts.map +1 -0
  139. package/dist/components/hazo_data_form/field_renderers/static_text_field.js +11 -0
  140. package/dist/components/hazo_data_form/field_renderers/static_text_field.js.map +1 -0
  141. package/dist/components/hazo_data_form/field_renderers/summary_row_field.d.ts +7 -0
  142. package/dist/components/hazo_data_form/field_renderers/summary_row_field.d.ts.map +1 -0
  143. package/dist/components/hazo_data_form/field_renderers/summary_row_field.js +20 -0
  144. package/dist/components/hazo_data_form/field_renderers/summary_row_field.js.map +1 -0
  145. package/dist/components/hazo_data_form/field_renderers/table_field.d.ts +7 -0
  146. package/dist/components/hazo_data_form/field_renderers/table_field.d.ts.map +1 -0
  147. package/dist/components/hazo_data_form/field_renderers/table_field.js +179 -0
  148. package/dist/components/hazo_data_form/field_renderers/table_field.js.map +1 -0
  149. package/dist/components/hazo_data_form/field_renderers/tel_field.d.ts +6 -0
  150. package/dist/components/hazo_data_form/field_renderers/tel_field.d.ts.map +1 -0
  151. package/dist/components/hazo_data_form/field_renderers/tel_field.js +12 -0
  152. package/dist/components/hazo_data_form/field_renderers/tel_field.js.map +1 -0
  153. package/dist/components/hazo_data_form/field_renderers/text_field.d.ts +6 -0
  154. package/dist/components/hazo_data_form/field_renderers/text_field.d.ts.map +1 -0
  155. package/dist/components/hazo_data_form/field_renderers/text_field.js +12 -0
  156. package/dist/components/hazo_data_form/field_renderers/text_field.js.map +1 -0
  157. package/dist/components/hazo_data_form/field_renderers/textarea_field.d.ts +6 -0
  158. package/dist/components/hazo_data_form/field_renderers/textarea_field.d.ts.map +1 -0
  159. package/dist/components/hazo_data_form/field_renderers/textarea_field.js +12 -0
  160. package/dist/components/hazo_data_form/field_renderers/textarea_field.js.map +1 -0
  161. package/dist/components/hazo_data_form/file_manager_button.d.ts +12 -0
  162. package/dist/components/hazo_data_form/file_manager_button.d.ts.map +1 -0
  163. package/dist/components/hazo_data_form/file_manager_button.js +9 -0
  164. package/dist/components/hazo_data_form/file_manager_button.js.map +1 -0
  165. package/dist/components/hazo_data_form/group_renderer.d.ts +20 -0
  166. package/dist/components/hazo_data_form/group_renderer.d.ts.map +1 -0
  167. package/dist/components/hazo_data_form/group_renderer.js +74 -0
  168. package/dist/components/hazo_data_form/group_renderer.js.map +1 -0
  169. package/dist/components/hazo_data_form/hazo_data_form.d.ts +10 -0
  170. package/dist/components/hazo_data_form/hazo_data_form.d.ts.map +1 -0
  171. package/dist/components/hazo_data_form/hazo_data_form.js +100 -0
  172. package/dist/components/hazo_data_form/hazo_data_form.js.map +1 -0
  173. package/dist/components/hazo_data_form/index.d.ts +15 -0
  174. package/dist/components/hazo_data_form/index.d.ts.map +1 -0
  175. package/dist/components/hazo_data_form/index.js +14 -0
  176. package/dist/components/hazo_data_form/index.js.map +1 -0
  177. package/dist/components/hazo_data_form/section_renderer.d.ts +24 -0
  178. package/dist/components/hazo_data_form/section_renderer.d.ts.map +1 -0
  179. package/dist/components/hazo_data_form/section_renderer.js +34 -0
  180. package/dist/components/hazo_data_form/section_renderer.js.map +1 -0
  181. package/dist/components/hazo_data_form/shared/data_form_badge.d.ts +13 -0
  182. package/dist/components/hazo_data_form/shared/data_form_badge.d.ts.map +1 -0
  183. package/dist/components/hazo_data_form/shared/data_form_badge.js +13 -0
  184. package/dist/components/hazo_data_form/shared/data_form_badge.js.map +1 -0
  185. package/dist/components/hazo_data_form/shared/data_form_field_layout.d.ts +17 -0
  186. package/dist/components/hazo_data_form/shared/data_form_field_layout.d.ts.map +1 -0
  187. package/dist/components/hazo_data_form/shared/data_form_field_layout.js +31 -0
  188. package/dist/components/hazo_data_form/shared/data_form_field_layout.js.map +1 -0
  189. package/dist/components/hazo_data_form/shared/data_form_file_column.d.ts +17 -0
  190. package/dist/components/hazo_data_form/shared/data_form_file_column.d.ts.map +1 -0
  191. package/dist/components/hazo_data_form/shared/data_form_file_column.js +46 -0
  192. package/dist/components/hazo_data_form/shared/data_form_file_column.js.map +1 -0
  193. package/dist/components/hazo_data_form/shared/data_form_help_tooltip.d.ts +15 -0
  194. package/dist/components/hazo_data_form/shared/data_form_help_tooltip.d.ts.map +1 -0
  195. package/dist/components/hazo_data_form/shared/data_form_help_tooltip.js +25 -0
  196. package/dist/components/hazo_data_form/shared/data_form_help_tooltip.js.map +1 -0
  197. package/dist/components/hazo_data_form/shared/data_form_label.d.ts +12 -0
  198. package/dist/components/hazo_data_form/shared/data_form_label.d.ts.map +1 -0
  199. package/dist/components/hazo_data_form/shared/data_form_label.js +18 -0
  200. package/dist/components/hazo_data_form/shared/data_form_label.js.map +1 -0
  201. package/dist/components/hazo_data_form/shared/data_form_reference_value.d.ts +10 -0
  202. package/dist/components/hazo_data_form/shared/data_form_reference_value.d.ts.map +1 -0
  203. package/dist/components/hazo_data_form/shared/data_form_reference_value.js +10 -0
  204. package/dist/components/hazo_data_form/shared/data_form_reference_value.js.map +1 -0
  205. package/dist/components/hazo_data_form/shared/index.d.ts +16 -0
  206. package/dist/components/hazo_data_form/shared/index.d.ts.map +1 -0
  207. package/dist/components/hazo_data_form/shared/index.js +10 -0
  208. package/dist/components/hazo_data_form/shared/index.js.map +1 -0
  209. package/dist/components/hazo_data_form/shared/types.d.ts +6 -0
  210. package/dist/components/hazo_data_form/shared/types.d.ts.map +1 -0
  211. package/dist/components/hazo_data_form/shared/types.js +5 -0
  212. package/dist/components/hazo_data_form/shared/types.js.map +1 -0
  213. package/dist/components/hazo_data_form/types.d.ts +110 -0
  214. package/dist/components/hazo_data_form/types.d.ts.map +1 -0
  215. package/dist/components/hazo_data_form/types.js +6 -0
  216. package/dist/components/hazo_data_form/types.js.map +1 -0
  217. package/dist/components/hazo_template_generator/components/type_editors/data_table_editor.d.ts.map +1 -1
  218. package/dist/components/hazo_template_generator/components/type_editors/data_table_editor.js +2 -0
  219. package/dist/components/hazo_template_generator/components/type_editors/data_table_editor.js.map +1 -1
  220. package/dist/components/hazo_template_generator/types.d.ts +2 -2
  221. package/dist/components/hazo_template_generator/types.d.ts.map +1 -1
  222. package/dist/components/hazo_template_generator/types.js +62 -0
  223. package/dist/components/hazo_template_generator/types.js.map +1 -1
  224. package/dist/components/hazo_validation_rule_editor/components/clarification_settings.d.ts +10 -0
  225. package/dist/components/hazo_validation_rule_editor/components/clarification_settings.d.ts.map +1 -0
  226. package/dist/components/hazo_validation_rule_editor/components/clarification_settings.js +57 -0
  227. package/dist/components/hazo_validation_rule_editor/components/clarification_settings.js.map +1 -0
  228. package/dist/components/hazo_validation_rule_editor/components/prompt_editor.d.ts +11 -0
  229. package/dist/components/hazo_validation_rule_editor/components/prompt_editor.d.ts.map +1 -0
  230. package/dist/components/hazo_validation_rule_editor/components/prompt_editor.js +145 -0
  231. package/dist/components/hazo_validation_rule_editor/components/prompt_editor.js.map +1 -0
  232. package/dist/components/hazo_validation_rule_editor/components/rule_editor.d.ts +6 -0
  233. package/dist/components/hazo_validation_rule_editor/components/rule_editor.d.ts.map +1 -0
  234. package/dist/components/hazo_validation_rule_editor/components/rule_editor.js +149 -0
  235. package/dist/components/hazo_validation_rule_editor/components/rule_editor.js.map +1 -0
  236. package/dist/components/hazo_validation_rule_editor/components/rule_list.d.ts +6 -0
  237. package/dist/components/hazo_validation_rule_editor/components/rule_list.d.ts.map +1 -0
  238. package/dist/components/hazo_validation_rule_editor/components/rule_list.js +57 -0
  239. package/dist/components/hazo_validation_rule_editor/components/rule_list.js.map +1 -0
  240. package/dist/components/hazo_validation_rule_editor/context.d.ts +19 -0
  241. package/dist/components/hazo_validation_rule_editor/context.d.ts.map +1 -0
  242. package/dist/components/hazo_validation_rule_editor/context.js +95 -0
  243. package/dist/components/hazo_validation_rule_editor/context.js.map +1 -0
  244. package/dist/components/hazo_validation_rule_editor/hooks/use_file_validation.d.ts +20 -0
  245. package/dist/components/hazo_validation_rule_editor/hooks/use_file_validation.d.ts.map +1 -0
  246. package/dist/components/hazo_validation_rule_editor/hooks/use_file_validation.js +127 -0
  247. package/dist/components/hazo_validation_rule_editor/hooks/use_file_validation.js.map +1 -0
  248. package/dist/components/hazo_validation_rule_editor/hooks/use_validation_rules.d.ts +30 -0
  249. package/dist/components/hazo_validation_rule_editor/hooks/use_validation_rules.d.ts.map +1 -0
  250. package/dist/components/hazo_validation_rule_editor/hooks/use_validation_rules.js +216 -0
  251. package/dist/components/hazo_validation_rule_editor/hooks/use_validation_rules.js.map +1 -0
  252. package/dist/components/hazo_validation_rule_editor/index.d.ts +14 -0
  253. package/dist/components/hazo_validation_rule_editor/index.d.ts.map +1 -0
  254. package/dist/components/hazo_validation_rule_editor/index.js +12 -0
  255. package/dist/components/hazo_validation_rule_editor/index.js.map +1 -0
  256. package/dist/components/hazo_validation_rule_editor/types.d.ts +53 -0
  257. package/dist/components/hazo_validation_rule_editor/types.d.ts.map +1 -0
  258. package/dist/components/hazo_validation_rule_editor/types.js +5 -0
  259. package/dist/components/hazo_validation_rule_editor/types.js.map +1 -0
  260. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts +3 -0
  261. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts.map +1 -0
  262. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js +14 -0
  263. package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js.map +1 -0
  264. package/dist/components/index.d.ts +30 -2
  265. package/dist/components/index.d.ts.map +1 -1
  266. package/dist/components/index.js +22 -1
  267. package/dist/components/index.js.map +1 -1
  268. package/dist/components/shared/field_state/normalize.d.ts.map +1 -1
  269. package/dist/components/shared/field_state/normalize.js +1 -0
  270. package/dist/components/shared/field_state/normalize.js.map +1 -1
  271. package/dist/components/shared/field_state/types.d.ts +6 -0
  272. package/dist/components/shared/field_state/types.d.ts.map +1 -1
  273. package/dist/components/shared/field_utils/types.d.ts +1 -1
  274. package/dist/components/shared/field_utils/types.d.ts.map +1 -1
  275. package/dist/components/shared/strip_base_props.d.ts.map +1 -1
  276. package/dist/components/shared/strip_base_props.js +2 -0
  277. package/dist/components/shared/strip_base_props.js.map +1 -1
  278. package/dist/components/shared/summary_files/summary_files.d.ts +9 -1
  279. package/dist/components/shared/summary_files/summary_files.d.ts.map +1 -1
  280. package/dist/components/shared/summary_files/summary_files.js +11 -5
  281. package/dist/components/shared/summary_files/summary_files.js.map +1 -1
  282. package/dist/components/shared/unified_field_controls/types.d.ts +8 -0
  283. package/dist/components/shared/unified_field_controls/types.d.ts.map +1 -1
  284. package/dist/components/shared/unified_field_controls/unified_field_controls.d.ts +1 -1
  285. package/dist/components/shared/unified_field_controls/unified_field_controls.d.ts.map +1 -1
  286. package/dist/components/shared/unified_field_controls/unified_field_controls.js +3 -2
  287. package/dist/components/shared/unified_field_controls/unified_field_controls.js.map +1 -1
  288. package/dist/components/shared/use_base_form_field.d.ts +14 -0
  289. package/dist/components/shared/use_base_form_field.d.ts.map +1 -1
  290. package/dist/components/shared/use_base_form_field.js +41 -2
  291. package/dist/components/shared/use_base_form_field.js.map +1 -1
  292. package/dist/components/status_badges.d.ts +33 -0
  293. package/dist/components/status_badges.d.ts.map +1 -1
  294. package/dist/components/status_badges.js +27 -2
  295. package/dist/components/status_badges.js.map +1 -1
  296. package/dist/config/clarification_templates.d.ts +24 -0
  297. package/dist/config/clarification_templates.d.ts.map +1 -0
  298. package/dist/config/clarification_templates.js +66 -0
  299. package/dist/config/clarification_templates.js.map +1 -0
  300. package/dist/config/defaults.d.ts +4 -0
  301. package/dist/config/defaults.d.ts.map +1 -1
  302. package/dist/config/defaults.js +4 -0
  303. package/dist/config/defaults.js.map +1 -1
  304. package/dist/config/index.d.ts +3 -1
  305. package/dist/config/index.d.ts.map +1 -1
  306. package/dist/config/index.js +3 -1
  307. package/dist/config/index.js.map +1 -1
  308. package/dist/config/validation_rule_commands.d.ts +12 -0
  309. package/dist/config/validation_rule_commands.d.ts.map +1 -0
  310. package/dist/config/validation_rule_commands.js +106 -0
  311. package/dist/config/validation_rule_commands.js.map +1 -0
  312. package/dist/index.client.d.ts +1 -0
  313. package/dist/index.client.d.ts.map +1 -1
  314. package/dist/index.client.js +1 -0
  315. package/dist/index.client.js.map +1 -1
  316. package/dist/lib/autofill_handler.d.ts +34 -0
  317. package/dist/lib/autofill_handler.d.ts.map +1 -0
  318. package/dist/lib/autofill_handler.js +330 -0
  319. package/dist/lib/autofill_handler.js.map +1 -0
  320. package/dist/lib/index.d.ts +9 -0
  321. package/dist/lib/index.d.ts.map +1 -1
  322. package/dist/lib/index.js +5 -0
  323. package/dist/lib/index.js.map +1 -1
  324. package/dist/lib/validation_handler.d.ts +27 -0
  325. package/dist/lib/validation_handler.d.ts.map +1 -0
  326. package/dist/lib/validation_handler.js +341 -0
  327. package/dist/lib/validation_handler.js.map +1 -0
  328. package/dist/types/clarification.d.ts +126 -0
  329. package/dist/types/clarification.d.ts.map +1 -0
  330. package/dist/types/clarification.js +8 -0
  331. package/dist/types/clarification.js.map +1 -0
  332. package/dist/types/doc_link.d.ts +42 -0
  333. package/dist/types/doc_link.d.ts.map +1 -0
  334. package/dist/types/doc_link.js +5 -0
  335. package/dist/types/doc_link.js.map +1 -0
  336. package/dist/types/field_type_definition.d.ts +67 -0
  337. package/dist/types/field_type_definition.d.ts.map +1 -0
  338. package/dist/types/field_type_definition.js +41 -0
  339. package/dist/types/field_type_definition.js.map +1 -0
  340. package/dist/types/file_attachment.d.ts +2 -0
  341. package/dist/types/file_attachment.d.ts.map +1 -1
  342. package/dist/types/file_attachment.js.map +1 -1
  343. package/dist/types/file_manager.d.ts +36 -0
  344. package/dist/types/file_manager.d.ts.map +1 -1
  345. package/dist/types/index.d.ts +8 -1
  346. package/dist/types/index.d.ts.map +1 -1
  347. package/dist/types/index.js +2 -0
  348. package/dist/types/index.js.map +1 -1
  349. package/dist/types/style_variant.d.ts +93 -0
  350. package/dist/types/style_variant.d.ts.map +1 -0
  351. package/dist/types/style_variant.js +248 -0
  352. package/dist/types/style_variant.js.map +1 -0
  353. package/dist/types/validation.d.ts +192 -0
  354. package/dist/types/validation.d.ts.map +1 -0
  355. package/dist/types/validation.js +9 -0
  356. package/dist/types/validation.js.map +1 -0
  357. package/dist/utils/build_rule_field_map.d.ts +31 -0
  358. package/dist/utils/build_rule_field_map.d.ts.map +1 -0
  359. package/dist/utils/build_rule_field_map.js +53 -0
  360. package/dist/utils/build_rule_field_map.js.map +1 -0
  361. package/dist/utils/data_form_uploads.d.ts +25 -0
  362. package/dist/utils/data_form_uploads.d.ts.map +1 -0
  363. package/dist/utils/data_form_uploads.js +36 -0
  364. package/dist/utils/data_form_uploads.js.map +1 -0
  365. package/dist/utils/financial_format.d.ts +12 -0
  366. package/dist/utils/financial_format.d.ts.map +1 -0
  367. package/dist/utils/financial_format.js +19 -0
  368. package/dist/utils/financial_format.js.map +1 -0
  369. package/dist/utils/formula.d.ts +13 -0
  370. package/dist/utils/formula.d.ts.map +1 -0
  371. package/dist/utils/formula.js +104 -0
  372. package/dist/utils/formula.js.map +1 -0
  373. package/dist/utils/index.d.ts +11 -0
  374. package/dist/utils/index.d.ts.map +1 -1
  375. package/dist/utils/index.js +16 -0
  376. package/dist/utils/index.js.map +1 -1
  377. package/dist/utils/mask_format.d.ts +20 -0
  378. package/dist/utils/mask_format.d.ts.map +1 -0
  379. package/dist/utils/mask_format.js +41 -0
  380. package/dist/utils/mask_format.js.map +1 -0
  381. package/dist/utils/slugify.d.ts +10 -0
  382. package/dist/utils/slugify.d.ts.map +1 -0
  383. package/dist/utils/slugify.js +17 -0
  384. package/dist/utils/slugify.js.map +1 -0
  385. package/dist/utils/style_resolver.d.ts +36 -0
  386. package/dist/utils/style_resolver.d.ts.map +1 -0
  387. package/dist/utils/style_resolver.js +160 -0
  388. package/dist/utils/style_resolver.js.map +1 -0
  389. package/dist/utils/use_computed_fields.d.ts +14 -0
  390. package/dist/utils/use_computed_fields.d.ts.map +1 -0
  391. package/dist/utils/use_computed_fields.js +24 -0
  392. package/dist/utils/use_computed_fields.js.map +1 -0
  393. package/package.json +15 -3
  394. package/templates/config/hazo_collab_forms_config.ini +7 -0
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../utils/cn.js';
3
+ import { get_field_uploads } from '../../utils/data_form_uploads.js';
4
+ import { DataFormFieldRenderer } from './field_renderers/index.js';
5
+ import { DataFormLabel } from './shared/data_form_label.js';
6
+ import { DataFormBadge } from './shared/data_form_badge.js';
7
+ import { format_currency } from '../../utils/financial_format.js';
8
+ /**
9
+ * Format a ReferenceValueData into a display annotation string
10
+ */
11
+ function format_reference_annotation(ref) {
12
+ let formatted;
13
+ if (typeof ref.value === 'boolean') {
14
+ formatted = ref.value ? 'Yes' : 'No';
15
+ }
16
+ else if (typeof ref.value === 'number') {
17
+ formatted = format_currency(ref.value, '$', 2);
18
+ }
19
+ else {
20
+ formatted = String(ref.value);
21
+ }
22
+ return ref.label ? `${ref.label}: ${formatted}` : `Ref: ${formatted}`;
23
+ }
24
+ export function GroupRenderer({ group, mode, form_data, config, on_field_change, on_doc_link_click, file_uploads, on_upload_click, upload_enabled, reference_data, }) {
25
+ const fields = group.fields || [];
26
+ const orientation = group.orientation || 'vertical';
27
+ const is_horizontal = orientation === 'horizontal';
28
+ const has_header = Boolean(group.label);
29
+ // Style for group header
30
+ const variant_style = group.style_variant && config.style_resolver.has_style(group.style_variant)
31
+ ? config.style_resolver.to_style(group.style_variant)
32
+ : undefined;
33
+ // Column headers for paired layouts
34
+ const column_headers = group.column_headers;
35
+ return (_jsxs("div", { className: cn('cls_data_form_group', 'mb-2'), children: [has_header && (_jsxs("div", { className: cn('cls_data_form_group_header', 'flex items-center gap-2 py-1.5 px-2 mb-1'), style: {
36
+ ...variant_style,
37
+ ...(!variant_style && !group.item_code ? { borderBottom: '1px solid #e5e7eb' } : {}),
38
+ }, children: [group.item_code && (_jsx(DataFormLabel, { field: group, config: config })), !group.item_code && (_jsx("span", { className: "font-semibold text-sm text-gray-900", children: group.label })), (group.badge || group.formula_label) && (_jsx(DataFormBadge, { badge: group.badge, formula_label: group.formula_label, config: config }))] })), column_headers && column_headers.length > 0 && (_jsxs("div", { className: "cls_data_form_column_headers flex items-center gap-2 px-2 py-1 border-b border-gray-200 mb-1", children: [_jsx("div", { className: "flex-1" }), group.badge_column_width && (_jsx("div", { style: { width: group.badge_column_width }, className: "shrink-0" })), column_headers.map((header, idx) => (_jsx("div", { className: "shrink-0 text-xs font-medium text-gray-500 text-center", style: { width: header.width || group.value_column_width || '200px' }, children: header.label }, idx)))] })), _jsx("div", { className: cn('cls_data_form_group_fields', is_horizontal ? 'flex flex-wrap gap-4' : 'flex flex-col'), children: fields.map((field) => {
39
+ // Skip hidden fields
40
+ if (field.visibility === 'hidden')
41
+ return null;
42
+ // Handle nested groups (recursive)
43
+ if (field.field_type === 'group') {
44
+ const group_el = (_jsx(GroupRenderer, { group: field, mode: mode, form_data: form_data, config: config, on_field_change: on_field_change, on_doc_link_click: on_doc_link_click, file_uploads: file_uploads, on_upload_click: on_upload_click, upload_enabled: upload_enabled, reference_data: reference_data }, field.id));
45
+ // Wrap nested groups in flex:1 for even distribution in horizontal layout
46
+ if (is_horizontal) {
47
+ return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: group_el }, field.id));
48
+ }
49
+ return group_el;
50
+ }
51
+ const field_value = form_data[field.id];
52
+ const paired_value = field.paired_field ? form_data[field.paired_field.id] : undefined;
53
+ // Resolve accept_files: field-level overrides form-level default
54
+ const field_accepts_files = field.accept_files ?? config.default_accept_files;
55
+ const is_upload_enabled = field_accepts_files && upload_enabled;
56
+ // Get field uploads from explicit prop or from form_data convention
57
+ const resolved_uploads = file_uploads?.[field.id] ?? get_field_uploads(form_data, field.id);
58
+ // Resolve reference annotation
59
+ const ref = reference_data?.[field.id];
60
+ const ref_annotation = ref ? format_reference_annotation(ref) : undefined;
61
+ const ref_bg_color = ref?.background_color;
62
+ const field_el = (_jsx(DataFormFieldRenderer, { field: field, mode: mode, value: field_value, config: config, on_change: (val) => on_field_change(field.id, val), on_doc_link_click: on_doc_link_click && field.doc_links?.length
63
+ ? () => on_doc_link_click({ field_id: field.id, doc_links: field.doc_links })
64
+ : undefined, badge_column_width: group.badge_column_width, value_column_width: group.value_column_width, paired_value: paired_value, paired_on_change: field.paired_field
65
+ ? (val) => on_field_change(field.paired_field.id, val)
66
+ : undefined, field_uploads: resolved_uploads, on_upload_click: on_upload_click ? () => on_upload_click(field.id) : undefined, upload_enabled: is_upload_enabled, reserve_file_column: upload_enabled, force_layout: is_horizontal ? 'stacked' : undefined, reference_annotation: ref_annotation, reference_background_color: ref_bg_color, form_data: field.field_type === 'table' ? form_data : undefined, on_field_change: field.field_type === 'table' ? on_field_change : undefined }, field.id));
67
+ // Wrap fields in flex:1 for even distribution in horizontal layout
68
+ if (is_horizontal) {
69
+ return (_jsx("div", { style: { flex: 1, minWidth: 0 }, children: field_el }, field.id));
70
+ }
71
+ return field_el;
72
+ }) })] }));
73
+ }
74
+ //# sourceMappingURL=group_renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group_renderer.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/group_renderer.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE;;GAEG;AACH,SAAS,2BAA2B,CAAC,GAAuB;IAC1D,IAAI,SAAiB,CAAC;IACtB,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzC,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,CAAC;AACxE,CAAC;AAeD,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,SAAS,EACT,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,GACK;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,UAAU,CAAC;IACpD,MAAM,aAAa,GAAG,WAAW,KAAK,YAAY,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAExC,yBAAyB;IACzB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;QAC/F,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IAEd,oCAAoC;IACpC,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAE5C,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,aAE9C,UAAU,IAAI,CACb,eACE,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,0CAA0C,CAC3C,EACD,KAAK,EAAE;oBACL,GAAG,aAAa;oBAChB,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACrF,aAEA,KAAK,CAAC,SAAS,IAAI,CAClB,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CAChD,EACA,CAAC,KAAK,CAAC,SAAS,IAAI,CACnB,eAAM,SAAS,EAAC,qCAAqC,YAAE,KAAK,CAAC,KAAK,GAAQ,CAC3E,EACA,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CACvC,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,MAAM,EAAE,MAAM,GACd,CACH,IACG,CACP,EAGA,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9C,eAAK,SAAS,EAAC,8FAA8F,aAC3G,cAAK,SAAS,EAAC,QAAQ,GAAG,EACzB,KAAK,CAAC,kBAAkB,IAAI,CAC3B,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAC,UAAU,GAAG,CACzE,EACA,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CACnC,cAEE,SAAS,EAAC,wDAAwD,EAClE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,kBAAkB,IAAI,OAAO,EAAE,YAEpE,MAAM,CAAC,KAAK,IAJR,GAAG,CAKJ,CACP,CAAC,IACE,CACP,EAGD,cACE,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CACzD,YAEA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACpB,qBAAqB;oBACrB,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAC;oBAE/C,mCAAmC;oBACnC,IAAI,KAAK,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;wBACjC,MAAM,QAAQ,GAAG,CACf,KAAC,aAAa,IAEZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,IAVzB,KAAK,CAAC,EAAE,CAWb,CACH,CAAC;wBACF,0EAA0E;wBAC1E,IAAI,aAAa,EAAE,CAAC;4BAClB,OAAO,CACL,cAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAChD,QAAQ,IADD,KAAK,CAAC,EAAE,CAEZ,CACP,CAAC;wBACJ,CAAC;wBACD,OAAO,QAAQ,CAAC;oBAClB,CAAC;oBAED,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACxC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAEvF,iEAAiE;oBACjE,MAAM,mBAAmB,GAAG,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,oBAAoB,CAAC;oBAC9E,MAAM,iBAAiB,GAAG,mBAAmB,IAAI,cAAc,CAAC;oBAEhE,oEAAoE;oBACpE,MAAM,gBAAgB,GAAG,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;oBAE5F,+BAA+B;oBAC/B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACvC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC1E,MAAM,YAAY,GAAG,GAAG,EAAE,gBAAgB,CAAC;oBAE3C,MAAM,QAAQ,GAAG,CACf,KAAC,qBAAqB,IAEpB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAClD,iBAAiB,EACf,iBAAiB,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM;4BAC1C,CAAC,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAU,EAAE,CAAC;4BAC9E,CAAC,CAAC,SAAS,EAEf,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EACd,KAAK,CAAC,YAAY;4BAChB,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,YAAa,CAAC,EAAE,EAAE,GAAG,CAAC;4BACvD,CAAC,CAAC,SAAS,EAEf,aAAa,EAAE,gBAAgB,EAC/B,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAC9E,cAAc,EAAE,iBAAiB,EACjC,mBAAmB,EAAE,cAAc,EACnC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACnD,oBAAoB,EAAE,cAAc,EACpC,0BAA0B,EAAE,YAAY,EACxC,SAAS,EAAE,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC/D,eAAe,EAAE,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,IA3BtE,KAAK,CAAC,EAAE,CA4Bb,CACH,CAAC;oBAEF,mEAAmE;oBACnE,IAAI,aAAa,EAAE,CAAC;wBAClB,OAAO,CACL,cAAoB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAChD,QAAQ,IADD,KAAK,CAAC,EAAE,CAEZ,CACP,CAAC;oBACJ,CAAC;oBAED,OAAO,QAAQ,CAAC;gBAClB,CAAC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * HazoDataForm - Data entry form for working papers
3
+ *
4
+ * Renders form sections/groups/fields using ViewSection/ViewFieldConfig types.
5
+ * Uses form_data + on_field_change pattern (no react-hook-form).
6
+ * Supports computed fields, financial formatting, masked inputs, and tables.
7
+ */
8
+ import type { HazoDataFormProps } from './types.js';
9
+ export declare function HazoDataForm({ sections, mode, form_data, on_field_change, on_form_data_change, styles_config, field_types_config, default_currency_symbol, default_decimal_places, percentage_suffix, on_doc_link_click, enable_file_upload, default_accept_files, on_upload_click, file_uploads, show_section_headers, collapsible_sections, collapsed_sections, on_section_toggle, reference_data, on_submit, class_name, }: HazoDataFormProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=hazo_data_form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hazo_data_form.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/hazo_data_form.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,iBAAiB,EAAmC,MAAM,YAAY,CAAC;AAkCrF,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAa,EACb,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,uBAA6B,EAC7B,sBAA0B,EAC1B,iBAAuB,EACvB,iBAAiB,EACjB,kBAA0B,EAC1B,oBAA4B,EAC5B,eAAe,EACf,YAAY,EACZ,oBAA2B,EAC3B,oBAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,UAAU,GACX,EAAE,iBAAiB,2CAwGnB"}
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * HazoDataForm - Data entry form for working papers
4
+ *
5
+ * Renders form sections/groups/fields using ViewSection/ViewFieldConfig types.
6
+ * Uses form_data + on_field_change pattern (no react-hook-form).
7
+ * Supports computed fields, financial formatting, masked inputs, and tables.
8
+ */
9
+ import { useMemo, useCallback, useRef } from 'react';
10
+ import { cn } from '../../utils/cn.js';
11
+ import { create_style_resolver } from '../../utils/style_resolver.js';
12
+ import { use_computed_fields } from '../../utils/use_computed_fields.js';
13
+ import { DEFAULT_STYLES_CONFIG } from '../../types/style_variant.js';
14
+ import { DEFAULT_FIELD_TYPES_CONFIG } from '../../types/field_type_definition.js';
15
+ import { SectionRenderer } from './section_renderer.js';
16
+ /**
17
+ * Collect computed field definitions from all sections
18
+ */
19
+ function collect_computed_fields(sections) {
20
+ const result = [];
21
+ function walk_fields(fields) {
22
+ if (!fields)
23
+ return;
24
+ for (const field of fields) {
25
+ if (field.computed_formula) {
26
+ result.push({
27
+ field_id: field.id,
28
+ formula: field.computed_formula,
29
+ dependencies: field.computed_dependencies,
30
+ });
31
+ }
32
+ if (field.fields) {
33
+ walk_fields(field.fields);
34
+ }
35
+ }
36
+ }
37
+ for (const section of sections) {
38
+ if (section.groups) {
39
+ walk_fields(section.groups);
40
+ }
41
+ }
42
+ return result;
43
+ }
44
+ export function HazoDataForm({ sections, mode = 'edit', form_data, on_field_change, on_form_data_change, styles_config, field_types_config, default_currency_symbol = '$', default_decimal_places = 2, percentage_suffix = '%', on_doc_link_click, enable_file_upload = false, default_accept_files = false, on_upload_click, file_uploads, show_section_headers = true, collapsible_sections = false, collapsed_sections, on_section_toggle, reference_data, on_submit, class_name, }) {
45
+ const form_data_ref = useRef(form_data);
46
+ form_data_ref.current = form_data;
47
+ // Create style resolver (memoized)
48
+ const resolved_styles_config = styles_config || DEFAULT_STYLES_CONFIG;
49
+ const resolved_field_types_config = field_types_config || DEFAULT_FIELD_TYPES_CONFIG;
50
+ const style_resolver = useMemo(() => create_style_resolver(resolved_styles_config), [resolved_styles_config]);
51
+ // Build config object
52
+ const config = useMemo(() => ({
53
+ styles_config: resolved_styles_config,
54
+ field_types_config: resolved_field_types_config,
55
+ default_currency_symbol,
56
+ default_decimal_places,
57
+ percentage_suffix,
58
+ style_resolver,
59
+ default_accept_files,
60
+ }), [resolved_styles_config, resolved_field_types_config, default_currency_symbol, default_decimal_places, percentage_suffix, style_resolver, default_accept_files]);
61
+ // Collect computed fields
62
+ const computed_fields = useMemo(() => collect_computed_fields(sections), [sections]);
63
+ // Handle field change
64
+ const handle_field_change = useCallback((field_id, value) => {
65
+ on_field_change?.(field_id, value);
66
+ if (on_form_data_change) {
67
+ const updated = { ...form_data_ref.current, [field_id]: value };
68
+ on_form_data_change(updated);
69
+ }
70
+ }, [on_field_change, on_form_data_change]);
71
+ // Handle computed field value changes
72
+ const handle_computed_change = useCallback((field_id, value) => {
73
+ if (value !== null) {
74
+ handle_field_change(field_id, value);
75
+ }
76
+ }, [handle_field_change]);
77
+ // Use computed fields hook
78
+ use_computed_fields({
79
+ form_data,
80
+ computed_fields,
81
+ on_computed_value_change: handle_computed_change,
82
+ enabled: computed_fields.length > 0,
83
+ });
84
+ // Handle form submit
85
+ const handle_submit = useCallback((e) => {
86
+ e.preventDefault();
87
+ on_submit?.(form_data_ref.current);
88
+ }, [on_submit]);
89
+ const collapsed_set = useMemo(() => new Set(collapsed_sections || []), [collapsed_sections]);
90
+ const content = (_jsx("div", { className: cn('cls_data_form', 'w-full', class_name), children: sections.map((section, index) => {
91
+ const section_name = section.section_name || `section_${index}`;
92
+ return (_jsx(SectionRenderer, { section: section, section_index: index, mode: mode, form_data: form_data, config: config, on_field_change: handle_field_change, on_doc_link_click: on_doc_link_click, file_uploads: file_uploads, on_upload_click: on_upload_click, upload_enabled: enable_file_upload, reference_data: reference_data, show_header: show_section_headers, collapsible: collapsible_sections, initial_collapsed: collapsed_set.has(section_name), on_collapse_toggle: on_section_toggle }, section_name));
93
+ }) }));
94
+ // Wrap in form tag if on_submit is provided
95
+ if (on_submit) {
96
+ return (_jsx("form", { onSubmit: handle_submit, className: "cls_data_form_wrapper", children: content }));
97
+ }
98
+ return content;
99
+ }
100
+ //# sourceMappingURL=hazo_data_form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hazo_data_form.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/hazo_data_form.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;GAEG;AACH,SAAS,uBAAuB,CAAC,QAAuC;IACtE,MAAM,MAAM,GAAuB,EAAE,CAAC;IAEtC,SAAS,WAAW,CAAC,MAA0B;QAC7C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAClB,OAAO,EAAE,KAAK,CAAC,gBAAgB;oBAC/B,YAAY,EAAE,KAAK,CAAC,qBAAqB;iBAC1C,CAAC,CAAC;YACL,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,IAAI,GAAG,MAAM,EACb,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,GAAG,GAAG,EAC7B,sBAAsB,GAAG,CAAC,EAC1B,iBAAiB,GAAG,GAAG,EACvB,iBAAiB,EACjB,kBAAkB,GAAG,KAAK,EAC1B,oBAAoB,GAAG,KAAK,EAC5B,eAAe,EACf,YAAY,EACZ,oBAAoB,GAAG,IAAI,EAC3B,oBAAoB,GAAG,KAAK,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,UAAU,GACQ;IAClB,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,aAAa,CAAC,OAAO,GAAG,SAAS,CAAC;IAElC,mCAAmC;IACnC,MAAM,sBAAsB,GAAG,aAAa,IAAI,qBAAqB,CAAC;IACtE,MAAM,2BAA2B,GAAG,kBAAkB,IAAI,0BAA0B,CAAC;IAErF,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,EACnD,CAAC,sBAAsB,CAAC,CACzB,CAAC;IAEF,sBAAsB;IACtB,MAAM,MAAM,GAAmB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,aAAa,EAAE,sBAAsB;QACrC,kBAAkB,EAAE,2BAA2B;QAC/C,uBAAuB;QACvB,sBAAsB;QACtB,iBAAiB;QACjB,cAAc;QACd,oBAAoB;KACrB,CAAC,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAErK,0BAA0B;IAC1B,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EACvC,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,sBAAsB;IACtB,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,QAAgB,EAAE,KAAc,EAAE,EAAE;QAC3E,eAAe,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEnC,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;YAChE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE3C,sCAAsC;IACtC,MAAM,sBAAsB,GAAG,WAAW,CAAC,CAAC,QAAgB,EAAE,KAAoB,EAAE,EAAE;QACpF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,2BAA2B;IAC3B,mBAAmB,CAAC;QAClB,SAAS;QACT,eAAe;QACf,wBAAwB,EAAE,sBAAsB;QAChD,OAAO,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC;KACpC,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAkB,EAAE,EAAE;QACvD,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,SAAS,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,EACvC,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,cAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,YACtD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,WAAW,KAAK,EAAE,CAAC;YAChE,OAAO,CACL,KAAC,eAAe,IAEd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,KAAK,EACpB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,mBAAmB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,kBAAkB,EAClC,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,oBAAoB,EACjC,WAAW,EAAE,oBAAoB,EACjC,iBAAiB,EAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAClD,kBAAkB,EAAE,iBAAiB,IAfhC,YAAY,CAgBjB,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;IAEF,4CAA4C;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,eAAM,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAC,uBAAuB,YAC7D,OAAO,GACH,CACR,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * HazoDataForm - Data entry form for working papers
3
+ */
4
+ export { HazoDataForm } from './hazo_data_form.js';
5
+ export type { HazoDataFormProps, DataFormConfig, DataFormFieldRendererProps } from './types.js';
6
+ export { DataFormFieldLayout } from './shared/index.js';
7
+ export type { DataFormFieldLayoutProps } from './shared/index.js';
8
+ export { SectionRenderer } from './section_renderer.js';
9
+ export type { SectionRendererProps } from './section_renderer.js';
10
+ export { GroupRenderer } from './group_renderer.js';
11
+ export type { GroupRendererProps } from './group_renderer.js';
12
+ export { DataFormFieldRenderer, resolve_field_renderer } from './field_renderers/index.js';
13
+ export { FileManagerButton } from './file_manager_button.js';
14
+ export type { FileManagerButtonProps } from './file_manager_button.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAGhG,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * HazoDataForm - Data entry form for working papers
3
+ */
4
+ export { HazoDataForm } from './hazo_data_form.js';
5
+ // Shared layout components
6
+ export { DataFormFieldLayout } from './shared/index.js';
7
+ // Section and group renderers
8
+ export { SectionRenderer } from './section_renderer.js';
9
+ export { GroupRenderer } from './group_renderer.js';
10
+ // Field renderers
11
+ export { DataFormFieldRenderer, resolve_field_renderer } from './field_renderers/index.js';
12
+ // File manager button
13
+ export { FileManagerButton } from './file_manager_button.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,2BAA2B;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,kBAAkB;AAClB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAE3F,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Section renderer for HazoDataForm
3
+ * Renders ViewSection: header with style_variant, collapsibility, and groups
4
+ */
5
+ import type { ViewSection, DataFormConfig, DocLinkClickEvent, UploadedFile, ReferenceData } from './types.js';
6
+ export interface SectionRendererProps {
7
+ section: ViewSection;
8
+ section_index: number;
9
+ mode: 'edit' | 'view';
10
+ form_data: Record<string, unknown>;
11
+ config: DataFormConfig;
12
+ on_field_change: (field_id: string, value: unknown) => void;
13
+ on_doc_link_click?: (event: DocLinkClickEvent) => void;
14
+ file_uploads?: Record<string, UploadedFile[]>;
15
+ on_upload_click?: (field_id: string) => void;
16
+ upload_enabled?: boolean;
17
+ reference_data?: ReferenceData;
18
+ show_header?: boolean;
19
+ collapsible?: boolean;
20
+ initial_collapsed?: boolean;
21
+ on_collapse_toggle?: (section_name: string, collapsed: boolean) => void;
22
+ }
23
+ export declare function SectionRenderer({ section, mode, form_data, config, on_field_change, on_doc_link_click, file_uploads, on_upload_click, upload_enabled, reference_data, show_header, collapsible, initial_collapsed, on_collapse_toggle, }: SectionRendererProps): import("react/jsx-runtime").JSX.Element;
24
+ //# sourceMappingURL=section_renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section_renderer.d.ts","sourceRoot":"","sources":["../../../src/components/hazo_data_form/section_renderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG9G,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,IAAI,EACJ,SAAS,EACT,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAkB,EAClB,WAAmB,EACnB,iBAAyB,EACzB,kBAAkB,GACnB,EAAE,oBAAoB,2CAoFtB"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Section renderer for HazoDataForm
4
+ * Renders ViewSection: header with style_variant, collapsibility, and groups
5
+ */
6
+ import { useState, useCallback } from 'react';
7
+ import { cn } from '../../utils/cn.js';
8
+ import { GroupRenderer } from './group_renderer.js';
9
+ export function SectionRenderer({ section, mode, form_data, config, on_field_change, on_doc_link_click, file_uploads, on_upload_click, upload_enabled, reference_data, show_header = true, collapsible = false, initial_collapsed = false, on_collapse_toggle, }) {
10
+ const [is_collapsed, set_is_collapsed] = useState(initial_collapsed);
11
+ const groups = section.groups || [];
12
+ const section_name = section.section_name || '';
13
+ // Style for section header
14
+ const variant_style = section.style_variant && config.style_resolver.has_style(section.style_variant)
15
+ ? config.style_resolver.to_style(section.style_variant)
16
+ : undefined;
17
+ const handle_toggle = useCallback(() => {
18
+ const new_state = !is_collapsed;
19
+ set_is_collapsed(new_state);
20
+ on_collapse_toggle?.(section_name, new_state);
21
+ }, [is_collapsed, section_name, on_collapse_toggle]);
22
+ return (_jsxs("div", { className: cn('cls_data_form_section', 'mb-4'), children: [show_header && section_name && (_jsxs("div", { className: cn('cls_data_form_section_header', 'flex items-center gap-2 py-2 px-3 rounded-t', collapsible && 'cursor-pointer select-none', !variant_style && 'bg-gray-100 border-b border-gray-200'), style: variant_style, onClick: collapsible ? handle_toggle : undefined, role: collapsible ? 'button' : undefined, tabIndex: collapsible ? 0 : undefined, onKeyDown: collapsible ? (e) => {
23
+ if (e.key === 'Enter' || e.key === ' ') {
24
+ e.preventDefault();
25
+ handle_toggle();
26
+ }
27
+ } : undefined, children: [collapsible && (_jsx("svg", { className: cn('w-4 h-4 shrink-0 transition-transform', is_collapsed && '-rotate-90'), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) })), _jsx("span", { className: "font-semibold text-sm", children: section_name })] })), !is_collapsed && (_jsxs("div", { className: cn('cls_data_form_section_content', 'px-1 pt-1'), children: [groups.map((group) => {
28
+ // Skip hidden groups
29
+ if (group.visibility === 'hidden')
30
+ return null;
31
+ return (_jsx(GroupRenderer, { group: group, mode: mode, form_data: form_data, config: config, on_field_change: on_field_change, on_doc_link_click: on_doc_link_click, file_uploads: file_uploads, on_upload_click: on_upload_click, upload_enabled: upload_enabled, reference_data: reference_data }, group.id));
32
+ }), groups.length === 0 && (_jsx("div", { className: "text-sm text-gray-400 py-4 text-center italic", children: "No fields in this section" }))] }))] }));
33
+ }
34
+ //# sourceMappingURL=section_renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section_renderer.js","sourceRoot":"","sources":["../../../src/components/hazo_data_form/section_renderer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Badge component for data form fields
3
+ * Renders: badge pill + formula_label text
4
+ */
5
+ import type { DataFormConfig } from './types.js';
6
+ export interface DataFormBadgeProps {
7
+ badge?: string;
8
+ formula_label?: string;
9
+ config: DataFormConfig;
10
+ column_width?: string;
11
+ }
12
+ export declare function DataFormBadge({ badge, formula_label, config, column_width }: DataFormBadgeProps): import("react/jsx-runtime").JSX.Element | null;
13
+ //# sourceMappingURL=data_form_badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_badge.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_badge.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,kBAAkB,kDA4B/F"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../../utils/cn.js';
3
+ import { to_inline_style } from '../../../utils/style_resolver.js';
4
+ export function DataFormBadge({ badge, formula_label, config, column_width }) {
5
+ if (!badge && !formula_label)
6
+ return null;
7
+ const { style_resolver } = config;
8
+ const badge_style = style_resolver.has_style('badge')
9
+ ? to_inline_style(style_resolver.resolve('badge'))
10
+ : undefined;
11
+ return (_jsxs("div", { className: cn('cls_data_form_badge', 'flex items-center gap-1.5 shrink-0'), style: column_width ? { width: column_width } : undefined, children: [badge && (_jsx("span", { className: "cls_data_form_badge_pill inline-flex items-center justify-center", style: badge_style, children: badge })), formula_label && (_jsx("span", { className: "cls_data_form_formula_label text-xs text-gray-500 whitespace-nowrap", children: formula_label }))] }));
12
+ }
13
+ //# sourceMappingURL=data_form_badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_badge.js","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_badge.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAUnE,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAsB;IAC9F,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAE1C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAClC,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC;QACnD,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,oCAAoC,CAAC,EAC1E,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,aAExD,KAAK,IAAI,CACR,eACE,SAAS,EAAC,kEAAkE,EAC5E,KAAK,EAAE,WAAW,YAEjB,KAAK,GACD,CACR,EACA,aAAa,IAAI,CAChB,eAAM,SAAS,EAAC,qEAAqE,YAClF,aAAa,GACT,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Field layout wrapper for data form fields
3
+ * Handles inline vs stacked layout, error display, reference value, and file column
4
+ */
5
+ import React from 'react';
6
+ import type { DataFormFieldRendererProps } from './types.js';
7
+ export interface DataFormFieldLayoutProps extends DataFormFieldRendererProps {
8
+ children: React.ReactNode;
9
+ computed_formula?: string;
10
+ reference_annotation?: string;
11
+ /** Override label_position for this field */
12
+ force_layout?: 'inline' | 'stacked';
13
+ /** Hide label (e.g., for summary rows) */
14
+ hide_label?: boolean;
15
+ }
16
+ export declare function DataFormFieldLayout({ field, mode, error, config, on_doc_link_click, badge_column_width, value_column_width, field_uploads, on_upload_click, upload_enabled, reserve_file_column, children, computed_formula, reference_annotation, reference_background_color, force_layout, hide_label, }: DataFormFieldLayoutProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=data_form_field_layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_field_layout.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_field_layout.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAM7D,MAAM,WAAW,wBAAyB,SAAQ,0BAA0B;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACpC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,GACX,EAAE,wBAAwB,2CAsI1B"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../../utils/cn.js';
3
+ import { DataFormLabel } from './data_form_label.js';
4
+ import { DataFormBadge } from './data_form_badge.js';
5
+ import { DataFormReferenceValue } from './data_form_reference_value.js';
6
+ import { DataFormFileColumn } from './data_form_file_column.js';
7
+ export function DataFormFieldLayout({ field, mode, error, config, on_doc_link_click, badge_column_width, value_column_width, field_uploads, on_upload_click, upload_enabled, reserve_file_column, children, computed_formula, reference_annotation, reference_background_color, force_layout, hide_label, }) {
8
+ const layout = force_layout || field.label_position || 'inline';
9
+ const is_inline = layout === 'inline';
10
+ const has_badge = Boolean(field.badge || field.formula_label);
11
+ const has_error = Boolean(error);
12
+ const has_files = Boolean((field.doc_links && field.doc_links.length > 0) ||
13
+ (field_uploads && field_uploads.length > 0) ||
14
+ upload_enabled);
15
+ // Show file column area (active or spacer) to keep fields aligned
16
+ const show_file_area = has_files || reserve_file_column;
17
+ const error_style = config.style_resolver.has_style('error_message')
18
+ ? config.style_resolver.to_style('error_message')
19
+ : undefined;
20
+ const row_style = field.row_variant === 'highlight' && config.style_resolver.has_style('highlight_row')
21
+ ? config.style_resolver.to_style('highlight_row')
22
+ : undefined;
23
+ if (is_inline) {
24
+ return (_jsxs("div", { className: cn('cls_data_form_field_row', 'flex items-center gap-2 py-1', has_error && 'items-start'), style: row_style, children: [!hide_label && (_jsx("div", { className: "cls_data_form_label_col flex-1 min-w-0", children: _jsx(DataFormLabel, { field: field, config: config, computed_formula: computed_formula }) })), has_badge && (_jsx(DataFormBadge, { badge: field.badge, formula_label: field.formula_label, config: config, column_width: badge_column_width })), _jsxs("div", { className: "cls_data_form_value_col shrink-0", style: {
25
+ width: field.value_width || value_column_width || '200px',
26
+ }, children: [children, has_error && (_jsx("div", { className: "cls_data_form_error", style: error_style, children: error })), reference_annotation && (_jsx(DataFormReferenceValue, { value: reference_annotation, background_color: reference_background_color }))] }), show_file_area && (has_files ? (_jsx(DataFormFileColumn, { doc_links: field.doc_links, field_uploads: field_uploads, on_doc_link_click: on_doc_link_click, on_upload_click: on_upload_click, upload_enabled: upload_enabled, mode: mode, config: config })) : (_jsx("div", { className: "cls_data_form_file_col_spacer shrink-0 ml-1", style: { width: 26 } })))] }));
27
+ }
28
+ // Stacked layout
29
+ return (_jsxs("div", { className: cn('cls_data_form_field_stacked', 'flex flex-col gap-1 py-1'), style: row_style, children: [!hide_label && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(DataFormLabel, { field: field, config: config, computed_formula: computed_formula }), has_badge && (_jsx(DataFormBadge, { badge: field.badge, formula_label: field.formula_label, config: config }))] })), _jsxs("div", { className: "flex items-start gap-1", children: [_jsxs("div", { className: "flex-1 min-w-0", children: [children, has_error && (_jsx("div", { className: "cls_data_form_error", style: error_style, children: error })), reference_annotation && (_jsx(DataFormReferenceValue, { value: reference_annotation, background_color: reference_background_color }))] }), show_file_area && (has_files ? (_jsx(DataFormFileColumn, { doc_links: field.doc_links, field_uploads: field_uploads, on_doc_link_click: on_doc_link_click, on_upload_click: on_upload_click, upload_enabled: upload_enabled, mode: mode, config: config })) : (_jsx("div", { className: "cls_data_form_file_col_spacer shrink-0 ml-1", style: { width: 26 } })))] })] }));
30
+ }
31
+ //# sourceMappingURL=data_form_field_layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_field_layout.js","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_field_layout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * File column component for data form fields
3
+ * Shows a unified file icon: grey FaFileUpload when no files, blue FaFileAlt + count badge when files exist.
4
+ * Matches the hazo_data_forms FileManagerButton visual pattern.
5
+ */
6
+ import type { DocLink, UploadedFile, DataFormConfig } from './types.js';
7
+ export interface DataFormFileColumnProps {
8
+ doc_links?: DocLink[];
9
+ field_uploads?: UploadedFile[];
10
+ on_doc_link_click?: () => void;
11
+ on_upload_click?: () => void;
12
+ upload_enabled?: boolean;
13
+ mode: 'edit' | 'view';
14
+ config: DataFormConfig;
15
+ }
16
+ export declare function DataFormFileColumn({ doc_links, field_uploads, on_doc_link_click, on_upload_click, upload_enabled, mode, }: DataFormFileColumnProps): import("react/jsx-runtime").JSX.Element | null;
17
+ //# sourceMappingURL=data_form_file_column.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_file_column.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_file_column.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;CACxB;AASD,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,IAAI,GACL,EAAE,uBAAuB,kDAiEzB"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * File column component for data form fields
4
+ * Shows a unified file icon: grey FaFileUpload when no files, blue FaFileAlt + count badge when files exist.
5
+ * Matches the hazo_data_forms FileManagerButton visual pattern.
6
+ */
7
+ import { useState } from 'react';
8
+ import { FaFileUpload, FaFileAlt } from 'react-icons/fa';
9
+ import { cn } from '../../../utils/cn.js';
10
+ const ICON_SIZE = 18;
11
+ const ICON_COLOR_DEFAULT = '#9ca3af'; // grey-400
12
+ const ICON_COLOR_WITH_FILES = '#2563eb'; // blue-600
13
+ const ICON_COLOR_HOVER = '#1d4ed8'; // blue-700
14
+ const BADGE_BG = '#2563eb'; // blue-600
15
+ const BADGE_TEXT = '#ffffff';
16
+ export function DataFormFileColumn({ doc_links, field_uploads, on_doc_link_click, on_upload_click, upload_enabled, mode, }) {
17
+ const [is_hovered, set_is_hovered] = useState(false);
18
+ const doc_count = doc_links?.length ?? 0;
19
+ const upload_count = field_uploads?.length ?? 0;
20
+ const total_count = doc_count + upload_count;
21
+ const has_files = total_count > 0;
22
+ if (!has_files && !upload_enabled)
23
+ return null;
24
+ // Determine click handler: use doc_link handler if available, otherwise upload handler
25
+ const handle_click = has_files
26
+ ? (on_doc_link_click || on_upload_click)
27
+ : on_upload_click;
28
+ // Icon logic: FaFileAlt (blue) when files exist, FaFileUpload (grey) when empty
29
+ const IconComponent = has_files ? FaFileAlt : FaFileUpload;
30
+ const icon_color = is_hovered
31
+ ? ICON_COLOR_HOVER
32
+ : has_files
33
+ ? ICON_COLOR_WITH_FILES
34
+ : ICON_COLOR_DEFAULT;
35
+ const tooltip = has_files
36
+ ? `${total_count} file${total_count !== 1 ? 's' : ''} attached`
37
+ : 'Upload file';
38
+ // In view mode with no files, show nothing
39
+ if (mode === 'view' && !has_files)
40
+ return null;
41
+ return (_jsx("div", { className: cn('cls_data_form_file_col', 'flex items-center shrink-0 ml-1'), children: _jsxs("button", { type: "button", onClick: handle_click, onMouseEnter: () => set_is_hovered(true), onMouseLeave: () => set_is_hovered(false), disabled: !handle_click, className: cn('cls_file_manager_btn relative p-1 rounded transition-colors', handle_click ? 'cursor-pointer' : 'opacity-50 cursor-not-allowed'), style: is_hovered && handle_click ? { backgroundColor: 'rgba(0,0,0,0.06)' } : undefined, "aria-label": tooltip, title: tooltip, children: [_jsx(IconComponent, { size: ICON_SIZE, color: icon_color, className: "transition-colors" }), total_count > 0 && (_jsx("span", { className: "cls_file_count_badge absolute -top-1 -right-1 min-w-[16px] h-[16px] flex items-center justify-center rounded-full text-[10px] font-bold", style: {
42
+ backgroundColor: BADGE_BG,
43
+ color: BADGE_TEXT,
44
+ }, children: total_count > 9 ? '9+' : total_count }))] }) }));
45
+ }
46
+ //# sourceMappingURL=data_form_file_column.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_file_column.js","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_file_column.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Help tooltip for data form fields
3
+ * Lightweight implementation using title attribute and hover div
4
+ */
5
+ export interface DataFormHelpTooltipProps {
6
+ help_tooltip: {
7
+ text?: string;
8
+ link?: string;
9
+ show_formula?: boolean;
10
+ formula_display?: string;
11
+ };
12
+ computed_formula?: string;
13
+ }
14
+ export declare function DataFormHelpTooltip({ help_tooltip, computed_formula }: DataFormHelpTooltipProps): import("react/jsx-runtime").JSX.Element | null;
15
+ //# sourceMappingURL=data_form_help_tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_help_tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_help_tooltip.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,wBAAwB,kDAiE/F"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Help tooltip for data form fields
4
+ * Lightweight implementation using title attribute and hover div
5
+ */
6
+ import { useState, useRef } from 'react';
7
+ import { cn } from '../../../utils/cn.js';
8
+ export function DataFormHelpTooltip({ help_tooltip, computed_formula }) {
9
+ const [is_visible, set_is_visible] = useState(false);
10
+ const timeout_ref = useRef(null);
11
+ const show_formula = help_tooltip.show_formula && (help_tooltip.formula_display || computed_formula);
12
+ const has_content = help_tooltip.text || show_formula || help_tooltip.link;
13
+ if (!has_content)
14
+ return null;
15
+ const handle_mouse_enter = () => {
16
+ if (timeout_ref.current)
17
+ clearTimeout(timeout_ref.current);
18
+ set_is_visible(true);
19
+ };
20
+ const handle_mouse_leave = () => {
21
+ timeout_ref.current = setTimeout(() => set_is_visible(false), 150);
22
+ };
23
+ return (_jsxs("div", { className: "cls_data_form_help_tooltip relative inline-flex", onMouseEnter: handle_mouse_enter, onMouseLeave: handle_mouse_leave, children: [_jsx("button", { type: "button", className: cn('inline-flex items-center justify-center w-4 h-4 rounded-full', 'text-[10px] font-bold text-gray-400 border border-gray-300', 'hover:text-gray-600 hover:border-gray-400 cursor-help'), tabIndex: -1, "aria-label": "Help", children: "?" }), is_visible && (_jsxs("div", { className: cn('absolute z-50 bottom-full left-1/2 -translate-x-1/2 mb-1', 'bg-gray-800 text-white text-xs rounded px-2.5 py-1.5', 'shadow-lg max-w-[250px] whitespace-normal'), children: [help_tooltip.text && _jsx("p", { children: help_tooltip.text }), show_formula && (_jsx("p", { className: "mt-1 font-mono text-[10px] text-gray-300", children: help_tooltip.formula_display || computed_formula })), help_tooltip.link && (_jsx("a", { href: help_tooltip.link, target: "_blank", rel: "noopener noreferrer", className: "mt-1 block text-blue-300 underline text-[10px]", children: "Learn more" })), _jsx("div", { className: "absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent border-t-gray-800" })] }))] }));
24
+ }
25
+ //# sourceMappingURL=data_form_help_tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_help_tooltip.js","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_help_tooltip.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AAEH,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAO1C,MAAM,UAAU,mBAAmB,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAA4B;IAC9F,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC;IACrG,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC;IAE3E,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,IAAI,WAAW,CAAC,OAAO;YAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3D,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,OAAO,CACL,eACE,SAAS,EAAC,iDAAiD,EAC3D,YAAY,EAAE,kBAAkB,EAChC,YAAY,EAAE,kBAAkB,aAEhC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACX,8DAA8D,EAC9D,4DAA4D,EAC5D,uDAAuD,CACxD,EACD,QAAQ,EAAE,CAAC,CAAC,gBACD,MAAM,kBAGV,EACR,UAAU,IAAI,CACb,eACE,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,sDAAsD,EACtD,2CAA2C,CAC5C,aAEA,YAAY,CAAC,IAAI,IAAI,sBAAI,YAAY,CAAC,IAAI,GAAK,EAC/C,YAAY,IAAI,CACf,YAAG,SAAS,EAAC,0CAA0C,YACpD,YAAY,CAAC,eAAe,IAAI,gBAAgB,GAC/C,CACL,EACA,YAAY,CAAC,IAAI,IAAI,CACpB,YACE,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,gDAAgD,2BAGxD,CACL,EACD,cAAK,SAAS,EAAC,2FAA2F,GAAG,IACzG,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Label component for data form fields
3
+ * Renders: item_code box + label + required asterisk + help tooltip icon
4
+ */
5
+ import type { DataFormConfig, ViewFieldConfig } from './types.js';
6
+ export interface DataFormLabelProps {
7
+ field: ViewFieldConfig;
8
+ config: DataFormConfig;
9
+ computed_formula?: string;
10
+ }
11
+ export declare function DataFormLabel({ field, config, computed_formula }: DataFormLabelProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=data_form_label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_form_label.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_data_form/shared/data_form_label.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,2CAwCpF"}