hazo_collab_forms 1.7.0 → 1.8.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 (346) hide show
  1. package/README.md +276 -3
  2. package/dist/components/hazo_add_field_dialog/components/field_type_combobox.d.ts +34 -0
  3. package/dist/components/hazo_add_field_dialog/components/field_type_combobox.d.ts.map +1 -0
  4. package/dist/components/hazo_add_field_dialog/components/field_type_combobox.js +51 -0
  5. package/dist/components/hazo_add_field_dialog/components/field_type_combobox.js.map +1 -0
  6. package/dist/components/hazo_add_field_dialog/components/index.d.ts +8 -0
  7. package/dist/components/hazo_add_field_dialog/components/index.d.ts.map +1 -0
  8. package/dist/components/hazo_add_field_dialog/components/index.js +8 -0
  9. package/dist/components/hazo_add_field_dialog/components/index.js.map +1 -0
  10. package/dist/components/hazo_add_field_dialog/components/pending_field_item.d.ts +56 -0
  11. package/dist/components/hazo_add_field_dialog/components/pending_field_item.d.ts.map +1 -0
  12. package/dist/components/hazo_add_field_dialog/components/pending_field_item.js +44 -0
  13. package/dist/components/hazo_add_field_dialog/components/pending_field_item.js.map +1 -0
  14. package/dist/components/hazo_add_field_dialog/components/pending_field_list.d.ts +60 -0
  15. package/dist/components/hazo_add_field_dialog/components/pending_field_list.d.ts.map +1 -0
  16. package/dist/components/hazo_add_field_dialog/components/pending_field_list.js +30 -0
  17. package/dist/components/hazo_add_field_dialog/components/pending_field_list.js.map +1 -0
  18. package/dist/components/hazo_add_field_dialog/components/question_input.d.ts +43 -0
  19. package/dist/components/hazo_add_field_dialog/components/question_input.d.ts.map +1 -0
  20. package/dist/components/hazo_add_field_dialog/components/question_input.js +35 -0
  21. package/dist/components/hazo_add_field_dialog/components/question_input.js.map +1 -0
  22. package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.d.ts +19 -0
  23. package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.d.ts.map +1 -0
  24. package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.js +177 -0
  25. package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.js.map +1 -0
  26. package/dist/components/hazo_add_field_dialog/index.d.ts +11 -0
  27. package/dist/components/hazo_add_field_dialog/index.d.ts.map +1 -0
  28. package/dist/components/hazo_add_field_dialog/index.js +9 -0
  29. package/dist/components/hazo_add_field_dialog/index.js.map +1 -0
  30. package/dist/components/hazo_add_field_dialog/options/checkbox_options.d.ts +18 -0
  31. package/dist/components/hazo_add_field_dialog/options/checkbox_options.d.ts.map +1 -0
  32. package/dist/components/hazo_add_field_dialog/options/checkbox_options.js +16 -0
  33. package/dist/components/hazo_add_field_dialog/options/checkbox_options.js.map +1 -0
  34. package/dist/components/hazo_add_field_dialog/options/date_options.d.ts +18 -0
  35. package/dist/components/hazo_add_field_dialog/options/date_options.d.ts.map +1 -0
  36. package/dist/components/hazo_add_field_dialog/options/date_options.js +11 -0
  37. package/dist/components/hazo_add_field_dialog/options/date_options.js.map +1 -0
  38. package/dist/components/hazo_add_field_dialog/options/index.d.ts +7 -0
  39. package/dist/components/hazo_add_field_dialog/options/index.d.ts.map +1 -0
  40. package/dist/components/hazo_add_field_dialog/options/index.js +7 -0
  41. package/dist/components/hazo_add_field_dialog/options/index.js.map +1 -0
  42. package/dist/components/hazo_add_field_dialog/options/options_list_editor.d.ts +39 -0
  43. package/dist/components/hazo_add_field_dialog/options/options_list_editor.d.ts.map +1 -0
  44. package/dist/components/hazo_add_field_dialog/options/options_list_editor.js +68 -0
  45. package/dist/components/hazo_add_field_dialog/options/options_list_editor.js.map +1 -0
  46. package/dist/components/hazo_add_field_dialog/types.d.ts +245 -0
  47. package/dist/components/hazo_add_field_dialog/types.d.ts.map +1 -0
  48. package/dist/components/hazo_add_field_dialog/types.js +88 -0
  49. package/dist/components/hazo_add_field_dialog/types.js.map +1 -0
  50. package/dist/components/hazo_add_group_dialog/hazo_add_group_dialog.d.ts +18 -0
  51. package/dist/components/hazo_add_group_dialog/hazo_add_group_dialog.d.ts.map +1 -0
  52. package/dist/components/hazo_add_group_dialog/hazo_add_group_dialog.js +193 -0
  53. package/dist/components/hazo_add_group_dialog/hazo_add_group_dialog.js.map +1 -0
  54. package/dist/components/hazo_add_group_dialog/index.d.ts +6 -0
  55. package/dist/components/hazo_add_group_dialog/index.d.ts.map +1 -0
  56. package/dist/components/hazo_add_group_dialog/index.js +5 -0
  57. package/dist/components/hazo_add_group_dialog/index.js.map +1 -0
  58. package/dist/components/hazo_add_group_dialog/types.d.ts +67 -0
  59. package/dist/components/hazo_add_group_dialog/types.d.ts.map +1 -0
  60. package/dist/components/hazo_add_group_dialog/types.js +5 -0
  61. package/dist/components/hazo_add_group_dialog/types.js.map +1 -0
  62. package/dist/components/hazo_collab_form_base.d.ts +101 -0
  63. package/dist/components/hazo_collab_form_base.d.ts.map +1 -1
  64. package/dist/components/hazo_collab_form_base.js +75 -1
  65. package/dist/components/hazo_collab_form_base.js.map +1 -1
  66. package/dist/components/hazo_collab_form_checkbox.d.ts.map +1 -1
  67. package/dist/components/hazo_collab_form_checkbox.js +8 -2
  68. package/dist/components/hazo_collab_form_checkbox.js.map +1 -1
  69. package/dist/components/hazo_collab_form_combo.d.ts.map +1 -1
  70. package/dist/components/hazo_collab_form_combo.js +8 -2
  71. package/dist/components/hazo_collab_form_combo.js.map +1 -1
  72. package/dist/components/hazo_collab_form_date.d.ts.map +1 -1
  73. package/dist/components/hazo_collab_form_date.js +8 -2
  74. package/dist/components/hazo_collab_form_date.js.map +1 -1
  75. package/dist/components/hazo_collab_form_doc.d.ts +95 -0
  76. package/dist/components/hazo_collab_form_doc.d.ts.map +1 -0
  77. package/dist/components/hazo_collab_form_doc.js +597 -0
  78. package/dist/components/hazo_collab_form_doc.js.map +1 -0
  79. package/dist/components/hazo_collab_form_group.d.ts.map +1 -1
  80. package/dist/components/hazo_collab_form_group.js +11 -1
  81. package/dist/components/hazo_collab_form_group.js.map +1 -1
  82. package/dist/components/hazo_collab_form_inputbox.d.ts.map +1 -1
  83. package/dist/components/hazo_collab_form_inputbox.js +9 -3
  84. package/dist/components/hazo_collab_form_inputbox.js.map +1 -1
  85. package/dist/components/hazo_collab_form_radio.d.ts.map +1 -1
  86. package/dist/components/hazo_collab_form_radio.js +8 -2
  87. package/dist/components/hazo_collab_form_radio.js.map +1 -1
  88. package/dist/components/hazo_collab_form_set.d.ts +124 -1
  89. package/dist/components/hazo_collab_form_set.d.ts.map +1 -1
  90. package/dist/components/hazo_collab_form_set.js +229 -17
  91. package/dist/components/hazo_collab_form_set.js.map +1 -1
  92. package/dist/components/hazo_collab_form_summary/field_controls_inline.d.ts.map +1 -1
  93. package/dist/components/hazo_collab_form_summary/field_controls_inline.js +4 -0
  94. package/dist/components/hazo_collab_form_summary/field_controls_inline.js.map +1 -1
  95. package/dist/components/hazo_collab_form_summary/field_controls_popover.d.ts.map +1 -1
  96. package/dist/components/hazo_collab_form_summary/field_controls_popover.js +4 -0
  97. package/dist/components/hazo_collab_form_summary/field_controls_popover.js.map +1 -1
  98. package/dist/components/hazo_collab_form_summary/index.d.ts.map +1 -1
  99. package/dist/components/hazo_collab_form_summary/index.js +60 -9
  100. package/dist/components/hazo_collab_form_summary/index.js.map +1 -1
  101. package/dist/components/hazo_collab_form_summary/role_utils.d.ts +5 -0
  102. package/dist/components/hazo_collab_form_summary/role_utils.d.ts.map +1 -1
  103. package/dist/components/hazo_collab_form_summary/role_utils.js +20 -1
  104. package/dist/components/hazo_collab_form_summary/role_utils.js.map +1 -1
  105. package/dist/components/hazo_collab_form_summary/summary_field.d.ts.map +1 -1
  106. package/dist/components/hazo_collab_form_summary/summary_field.js +19 -7
  107. package/dist/components/hazo_collab_form_summary/summary_field.js.map +1 -1
  108. package/dist/components/hazo_collab_form_summary/summary_group.d.ts.map +1 -1
  109. package/dist/components/hazo_collab_form_summary/summary_group.js +24 -17
  110. package/dist/components/hazo_collab_form_summary/summary_group.js.map +1 -1
  111. package/dist/components/hazo_collab_form_summary/types.d.ts +57 -1
  112. package/dist/components/hazo_collab_form_summary/types.d.ts.map +1 -1
  113. package/dist/components/hazo_collab_form_summary/types.js.map +1 -1
  114. package/dist/components/hazo_collab_form_summary/utils.d.ts +3 -13
  115. package/dist/components/hazo_collab_form_summary/utils.d.ts.map +1 -1
  116. package/dist/components/hazo_collab_form_summary/utils.js +17 -29
  117. package/dist/components/hazo_collab_form_summary/utils.js.map +1 -1
  118. package/dist/components/hazo_collab_form_textarea.d.ts.map +1 -1
  119. package/dist/components/hazo_collab_form_textarea.js +8 -2
  120. package/dist/components/hazo_collab_form_textarea.js.map +1 -1
  121. package/dist/components/hazo_collab_form_view/context.d.ts +35 -0
  122. package/dist/components/hazo_collab_form_view/context.d.ts.map +1 -0
  123. package/dist/components/hazo_collab_form_view/context.js +297 -0
  124. package/dist/components/hazo_collab_form_view/context.js.map +1 -0
  125. package/dist/components/hazo_collab_form_view/index.d.ts +66 -0
  126. package/dist/components/hazo_collab_form_view/index.d.ts.map +1 -0
  127. package/dist/components/hazo_collab_form_view/index.js +143 -0
  128. package/dist/components/hazo_collab_form_view/index.js.map +1 -0
  129. package/dist/components/hazo_collab_form_view/types.d.ts +391 -0
  130. package/dist/components/hazo_collab_form_view/types.d.ts.map +1 -0
  131. package/dist/components/hazo_collab_form_view/types.js +11 -0
  132. package/dist/components/hazo_collab_form_view/types.js.map +1 -0
  133. package/dist/components/hazo_collab_form_view/use_form_view.d.ts +98 -0
  134. package/dist/components/hazo_collab_form_view/use_form_view.d.ts.map +1 -0
  135. package/dist/components/hazo_collab_form_view/use_form_view.js +226 -0
  136. package/dist/components/hazo_collab_form_view/use_form_view.js.map +1 -0
  137. package/dist/components/hazo_collab_form_view/views/approval_view.d.ts +32 -0
  138. package/dist/components/hazo_collab_form_view/views/approval_view.d.ts.map +1 -0
  139. package/dist/components/hazo_collab_form_view/views/approval_view.js +166 -0
  140. package/dist/components/hazo_collab_form_view/views/approval_view.js.map +1 -0
  141. package/dist/components/hazo_collab_form_view/views/edit_view.d.ts +14 -0
  142. package/dist/components/hazo_collab_form_view/views/edit_view.d.ts.map +1 -0
  143. package/dist/components/hazo_collab_form_view/views/edit_view.js +113 -0
  144. package/dist/components/hazo_collab_form_view/views/edit_view.js.map +1 -0
  145. package/dist/components/hazo_collab_form_view/views/print_view.d.ts +37 -0
  146. package/dist/components/hazo_collab_form_view/views/print_view.d.ts.map +1 -0
  147. package/dist/components/hazo_collab_form_view/views/print_view.js +109 -0
  148. package/dist/components/hazo_collab_form_view/views/print_view.js.map +1 -0
  149. package/dist/components/hazo_collab_form_view/views/summary_view.d.ts +11 -0
  150. package/dist/components/hazo_collab_form_view/views/summary_view.d.ts.map +1 -0
  151. package/dist/components/hazo_collab_form_view/views/summary_view.js +316 -0
  152. package/dist/components/hazo_collab_form_view/views/summary_view.js.map +1 -0
  153. package/dist/components/hazo_edit_field_dialog/hazo_edit_field_dialog.d.ts +17 -0
  154. package/dist/components/hazo_edit_field_dialog/hazo_edit_field_dialog.d.ts.map +1 -0
  155. package/dist/components/hazo_edit_field_dialog/hazo_edit_field_dialog.js +106 -0
  156. package/dist/components/hazo_edit_field_dialog/hazo_edit_field_dialog.js.map +1 -0
  157. package/dist/components/hazo_edit_field_dialog/index.d.ts +6 -0
  158. package/dist/components/hazo_edit_field_dialog/index.d.ts.map +1 -0
  159. package/dist/components/hazo_edit_field_dialog/index.js +5 -0
  160. package/dist/components/hazo_edit_field_dialog/index.js.map +1 -0
  161. package/dist/components/hazo_edit_field_dialog/types.d.ts +92 -0
  162. package/dist/components/hazo_edit_field_dialog/types.d.ts.map +1 -0
  163. package/dist/components/hazo_edit_field_dialog/types.js +5 -0
  164. package/dist/components/hazo_edit_field_dialog/types.js.map +1 -0
  165. package/dist/components/hazo_field_selector_dialog/components/field_autocomplete.d.ts +9 -0
  166. package/dist/components/hazo_field_selector_dialog/components/field_autocomplete.d.ts.map +1 -0
  167. package/dist/components/hazo_field_selector_dialog/components/field_autocomplete.js +133 -0
  168. package/dist/components/hazo_field_selector_dialog/components/field_autocomplete.js.map +1 -0
  169. package/dist/components/hazo_field_selector_dialog/components/section_sidebar.d.ts +9 -0
  170. package/dist/components/hazo_field_selector_dialog/components/section_sidebar.d.ts.map +1 -0
  171. package/dist/components/hazo_field_selector_dialog/components/section_sidebar.js +26 -0
  172. package/dist/components/hazo_field_selector_dialog/components/section_sidebar.js.map +1 -0
  173. package/dist/components/hazo_field_selector_dialog/components/selected_fields_panel.d.ts +9 -0
  174. package/dist/components/hazo_field_selector_dialog/components/selected_fields_panel.d.ts.map +1 -0
  175. package/dist/components/hazo_field_selector_dialog/components/selected_fields_panel.js +45 -0
  176. package/dist/components/hazo_field_selector_dialog/components/selected_fields_panel.js.map +1 -0
  177. package/dist/components/hazo_field_selector_dialog/components/sortable_field_item.d.ts +9 -0
  178. package/dist/components/hazo_field_selector_dialog/components/sortable_field_item.d.ts.map +1 -0
  179. package/dist/components/hazo_field_selector_dialog/components/sortable_field_item.js +64 -0
  180. package/dist/components/hazo_field_selector_dialog/components/sortable_field_item.js.map +1 -0
  181. package/dist/components/hazo_field_selector_dialog/components/sortable_field_list.d.ts +9 -0
  182. package/dist/components/hazo_field_selector_dialog/components/sortable_field_list.d.ts.map +1 -0
  183. package/dist/components/hazo_field_selector_dialog/components/sortable_field_list.js +43 -0
  184. package/dist/components/hazo_field_selector_dialog/components/sortable_field_list.js.map +1 -0
  185. package/dist/components/hazo_field_selector_dialog/hazo_field_selector_dialog.d.ts +15 -0
  186. package/dist/components/hazo_field_selector_dialog/hazo_field_selector_dialog.d.ts.map +1 -0
  187. package/dist/components/hazo_field_selector_dialog/hazo_field_selector_dialog.js +146 -0
  188. package/dist/components/hazo_field_selector_dialog/hazo_field_selector_dialog.js.map +1 -0
  189. package/dist/components/hazo_field_selector_dialog/index.d.ts +12 -0
  190. package/dist/components/hazo_field_selector_dialog/index.d.ts.map +1 -0
  191. package/dist/components/hazo_field_selector_dialog/index.js +14 -0
  192. package/dist/components/hazo_field_selector_dialog/index.js.map +1 -0
  193. package/dist/components/hazo_field_selector_dialog/types.d.ts +182 -0
  194. package/dist/components/hazo_field_selector_dialog/types.d.ts.map +1 -0
  195. package/dist/components/hazo_field_selector_dialog/types.js +5 -0
  196. package/dist/components/hazo_field_selector_dialog/types.js.map +1 -0
  197. package/dist/components/hazo_field_selector_dialog/utils.d.ts +45 -0
  198. package/dist/components/hazo_field_selector_dialog/utils.d.ts.map +1 -0
  199. package/dist/components/hazo_field_selector_dialog/utils.js +271 -0
  200. package/dist/components/hazo_field_selector_dialog/utils.js.map +1 -0
  201. package/dist/components/hazo_template_generator/components/field_editor.d.ts.map +1 -1
  202. package/dist/components/hazo_template_generator/components/field_editor.js +46 -17
  203. package/dist/components/hazo_template_generator/components/field_editor.js.map +1 -1
  204. package/dist/components/hazo_template_generator/components/preview_dialog.d.ts.map +1 -1
  205. package/dist/components/hazo_template_generator/components/preview_dialog.js +16 -16
  206. package/dist/components/hazo_template_generator/components/preview_dialog.js.map +1 -1
  207. package/dist/components/hazo_template_generator/components/preview_panel.d.ts.map +1 -1
  208. package/dist/components/hazo_template_generator/components/preview_panel.js +32 -13
  209. package/dist/components/hazo_template_generator/components/preview_panel.js.map +1 -1
  210. package/dist/components/hazo_template_generator/components/section_tree.d.ts.map +1 -1
  211. package/dist/components/hazo_template_generator/components/section_tree.js +61 -27
  212. package/dist/components/hazo_template_generator/components/section_tree.js.map +1 -1
  213. package/dist/components/hazo_template_generator/components/tabs/conditional_tab.js +5 -5
  214. package/dist/components/hazo_template_generator/components/tabs/icons_behaviour_tab.d.ts.map +1 -1
  215. package/dist/components/hazo_template_generator/components/tabs/icons_behaviour_tab.js +4 -2
  216. package/dist/components/hazo_template_generator/components/tabs/icons_behaviour_tab.js.map +1 -1
  217. package/dist/components/hazo_template_generator/components/tabs/section_tab.d.ts +10 -0
  218. package/dist/components/hazo_template_generator/components/tabs/section_tab.d.ts.map +1 -0
  219. package/dist/components/hazo_template_generator/components/tabs/section_tab.js +22 -0
  220. package/dist/components/hazo_template_generator/components/tabs/section_tab.js.map +1 -0
  221. package/dist/components/hazo_template_generator/components/toolbar.d.ts +2 -2
  222. package/dist/components/hazo_template_generator/components/toolbar.d.ts.map +1 -1
  223. package/dist/components/hazo_template_generator/components/toolbar.js +76 -26
  224. package/dist/components/hazo_template_generator/components/toolbar.js.map +1 -1
  225. package/dist/components/hazo_template_generator/components/ui/resizable.d.ts +2 -3
  226. package/dist/components/hazo_template_generator/components/ui/resizable.d.ts.map +1 -1
  227. package/dist/components/hazo_template_generator/components/ui/resizable.js +3 -3
  228. package/dist/components/hazo_template_generator/components/ui/resizable.js.map +1 -1
  229. package/dist/components/hazo_template_generator/context.d.ts +5 -3
  230. package/dist/components/hazo_template_generator/context.d.ts.map +1 -1
  231. package/dist/components/hazo_template_generator/context.js +282 -102
  232. package/dist/components/hazo_template_generator/context.js.map +1 -1
  233. package/dist/components/hazo_template_generator/index.d.ts +4 -3
  234. package/dist/components/hazo_template_generator/index.d.ts.map +1 -1
  235. package/dist/components/hazo_template_generator/index.js +2 -2
  236. package/dist/components/hazo_template_generator/index.js.map +1 -1
  237. package/dist/components/hazo_template_generator/template_generator.d.ts.map +1 -1
  238. package/dist/components/hazo_template_generator/template_generator.js +8 -2
  239. package/dist/components/hazo_template_generator/template_generator.js.map +1 -1
  240. package/dist/components/hazo_template_generator/types.d.ts +41 -10
  241. package/dist/components/hazo_template_generator/types.d.ts.map +1 -1
  242. package/dist/components/hazo_template_generator/types.js +32 -1
  243. package/dist/components/hazo_template_generator/types.js.map +1 -1
  244. package/dist/components/hazo_template_generator/utils/template_utils.d.ts +73 -26
  245. package/dist/components/hazo_template_generator/utils/template_utils.d.ts.map +1 -1
  246. package/dist/components/hazo_template_generator/utils/template_utils.js +297 -110
  247. package/dist/components/hazo_template_generator/utils/template_utils.js.map +1 -1
  248. package/dist/components/hazo_template_generator/utils/validation.d.ts +4 -4
  249. package/dist/components/hazo_template_generator/utils/validation.d.ts.map +1 -1
  250. package/dist/components/hazo_template_generator/utils/validation.js +42 -17
  251. package/dist/components/hazo_template_generator/utils/validation.js.map +1 -1
  252. package/dist/components/index.d.ts +25 -4
  253. package/dist/components/index.d.ts.map +1 -1
  254. package/dist/components/index.js +22 -2
  255. package/dist/components/index.js.map +1 -1
  256. package/dist/components/shared/dependency/check_dependency.d.ts +36 -0
  257. package/dist/components/shared/dependency/check_dependency.d.ts.map +1 -0
  258. package/dist/components/shared/dependency/check_dependency.js +47 -0
  259. package/dist/components/shared/dependency/check_dependency.js.map +1 -0
  260. package/dist/components/shared/dependency/index.d.ts +22 -0
  261. package/dist/components/shared/dependency/index.d.ts.map +1 -0
  262. package/dist/components/shared/dependency/index.js +22 -0
  263. package/dist/components/shared/dependency/index.js.map +1 -0
  264. package/dist/components/shared/dependency/parse_dependency.d.ts +33 -0
  265. package/dist/components/shared/dependency/parse_dependency.d.ts.map +1 -0
  266. package/dist/components/shared/dependency/parse_dependency.js +35 -0
  267. package/dist/components/shared/dependency/parse_dependency.js.map +1 -0
  268. package/dist/components/shared/dialog/dialog.d.ts +35 -0
  269. package/dist/components/shared/dialog/dialog.d.ts.map +1 -0
  270. package/dist/components/shared/dialog/dialog.js +51 -0
  271. package/dist/components/shared/dialog/dialog.js.map +1 -0
  272. package/dist/components/shared/dialog/index.d.ts +5 -0
  273. package/dist/components/shared/dialog/index.d.ts.map +1 -0
  274. package/dist/components/shared/dialog/index.js +5 -0
  275. package/dist/components/shared/dialog/index.js.map +1 -0
  276. package/dist/components/shared/field_state/index.d.ts +31 -0
  277. package/dist/components/shared/field_state/index.d.ts.map +1 -0
  278. package/dist/components/shared/field_state/index.js +31 -0
  279. package/dist/components/shared/field_state/index.js.map +1 -0
  280. package/dist/components/shared/field_state/normalize.d.ts +53 -0
  281. package/dist/components/shared/field_state/normalize.d.ts.map +1 -0
  282. package/dist/components/shared/field_state/normalize.js +103 -0
  283. package/dist/components/shared/field_state/normalize.js.map +1 -0
  284. package/dist/components/shared/field_state/types.d.ts +137 -0
  285. package/dist/components/shared/field_state/types.d.ts.map +1 -0
  286. package/dist/components/shared/field_state/types.js +9 -0
  287. package/dist/components/shared/field_state/types.js.map +1 -0
  288. package/dist/components/shared/field_utils/collect_field_ids.d.ts +71 -0
  289. package/dist/components/shared/field_utils/collect_field_ids.d.ts.map +1 -0
  290. package/dist/components/shared/field_utils/collect_field_ids.js +88 -0
  291. package/dist/components/shared/field_utils/collect_field_ids.js.map +1 -0
  292. package/dist/components/shared/field_utils/index.d.ts +36 -0
  293. package/dist/components/shared/field_utils/index.d.ts.map +1 -0
  294. package/dist/components/shared/field_utils/index.js +38 -0
  295. package/dist/components/shared/field_utils/index.js.map +1 -0
  296. package/dist/components/shared/field_utils/should_render_field.d.ts +64 -0
  297. package/dist/components/shared/field_utils/should_render_field.d.ts.map +1 -0
  298. package/dist/components/shared/field_utils/should_render_field.js +111 -0
  299. package/dist/components/shared/field_utils/should_render_field.js.map +1 -0
  300. package/dist/components/shared/field_utils/traverse_fields.d.ts +51 -0
  301. package/dist/components/shared/field_utils/traverse_fields.d.ts.map +1 -0
  302. package/dist/components/shared/field_utils/traverse_fields.js +72 -0
  303. package/dist/components/shared/field_utils/traverse_fields.js.map +1 -0
  304. package/dist/components/shared/field_utils/types.d.ts +67 -0
  305. package/dist/components/shared/field_utils/types.d.ts.map +1 -0
  306. package/dist/components/shared/field_utils/types.js +5 -0
  307. package/dist/components/shared/field_utils/types.js.map +1 -0
  308. package/dist/components/shared/unified_field_controls/build_control_props.d.ts +107 -0
  309. package/dist/components/shared/unified_field_controls/build_control_props.d.ts.map +1 -0
  310. package/dist/components/shared/unified_field_controls/build_control_props.js +121 -0
  311. package/dist/components/shared/unified_field_controls/build_control_props.js.map +1 -0
  312. package/dist/components/shared/unified_field_controls/constants.d.ts.map +1 -1
  313. package/dist/components/shared/unified_field_controls/constants.js +12 -0
  314. package/dist/components/shared/unified_field_controls/constants.js.map +1 -1
  315. package/dist/components/shared/unified_field_controls/index.d.ts +2 -0
  316. package/dist/components/shared/unified_field_controls/index.d.ts.map +1 -1
  317. package/dist/components/shared/unified_field_controls/index.js +4 -0
  318. package/dist/components/shared/unified_field_controls/index.js.map +1 -1
  319. package/dist/components/shared/unified_field_controls/kebab_menu.d.ts.map +1 -1
  320. package/dist/components/shared/unified_field_controls/kebab_menu.js +27 -3
  321. package/dist/components/shared/unified_field_controls/kebab_menu.js.map +1 -1
  322. package/dist/components/shared/unified_field_controls/resolve_field_controls.d.ts +80 -0
  323. package/dist/components/shared/unified_field_controls/resolve_field_controls.d.ts.map +1 -0
  324. package/dist/components/shared/unified_field_controls/resolve_field_controls.js +91 -0
  325. package/dist/components/shared/unified_field_controls/resolve_field_controls.js.map +1 -0
  326. package/dist/components/shared/unified_field_controls/types.d.ts +14 -0
  327. package/dist/components/shared/unified_field_controls/types.d.ts.map +1 -1
  328. package/dist/components/shared/unified_field_controls/unified_field_controls.d.ts.map +1 -1
  329. package/dist/components/shared/unified_field_controls/unified_field_controls.js +29 -5
  330. package/dist/components/shared/unified_field_controls/unified_field_controls.js.map +1 -1
  331. package/dist/components/shared/unified_field_controls/use_control_resolution.d.ts.map +1 -1
  332. package/dist/components/shared/unified_field_controls/use_control_resolution.js +8 -3
  333. package/dist/components/shared/unified_field_controls/use_control_resolution.js.map +1 -1
  334. package/dist/types/icons_behaviour.d.ts +7 -1
  335. package/dist/types/icons_behaviour.d.ts.map +1 -1
  336. package/dist/types/icons_behaviour.js +6 -1
  337. package/dist/types/icons_behaviour.js.map +1 -1
  338. package/dist/utils/field_definition_to_config.d.ts +99 -0
  339. package/dist/utils/field_definition_to_config.d.ts.map +1 -0
  340. package/dist/utils/field_definition_to_config.js +297 -0
  341. package/dist/utils/field_definition_to_config.js.map +1 -0
  342. package/dist/utils/index.d.ts +1 -0
  343. package/dist/utils/index.d.ts.map +1 -1
  344. package/dist/utils/index.js +1 -0
  345. package/dist/utils/index.js.map +1 -1
  346. package/package.json +2 -2
package/README.md CHANGED
@@ -8,15 +8,19 @@ React form components with integrated chat collaboration, built for Next.js with
8
8
  ## Features
9
9
 
10
10
  - **Integrated Chat Collaboration**: Each form field supports real-time chat discussions via HazoChat
11
+ - **Unified Form View**: Multi-mode form display (Edit, Summary, Print, Approval) with shared context
11
12
  - **Read-Only Summary Views**: Display form data in summary format with HazoCollabFormSummary component
12
13
  - **Advanced Field Controls**: Visibility toggle, lock/unlock, field duplication, soft delete, and notes
13
14
  - **Notes Integration**: Database-backed notes on fields via hazo_notes package (optional)
14
15
  - **Field Tooltips**: Help tooltips with hover cards for field labels and data table columns
15
16
  - **Template Generator**: Visual drag-and-drop builder for creating form configurations (HazoTemplateGenerator)
17
+ - **Dynamic Field Management**: Add, edit, and delete fields at runtime with dialog components
18
+ - **Field Selector**: Search and select fields from templates with HazoFieldSelectorDialog
16
19
  - **Role-Based Icon Controls**: Configure control visibility and behavior per role with icons_behaviour system
17
20
  - **Unified Field Controls**: Consistent icon controls across form and summary views with automatic kebab consolidation
18
21
  - **Prop-Based Controls**: Enable/disable features via `enable_*` props for full control
19
22
  - **File Upload with Validation**: Built-in file upload with custom validation callbacks
23
+ - **Document Fields**: File-only fields with HazoCollabFormDoc component
20
24
  - **Mandatory File Indicator**: Visual indicators (red asterisk) for required file uploads
21
25
  - **Custom File Validators**: Implement custom validation logic before file upload
22
26
  - **Form Sets**: JSON-based dynamic form generation with full file upload support
@@ -140,7 +144,7 @@ npm install hazo_collab_forms react react-dom react-icons sonner lucide-react \
140
144
  ### One-Line shadcn Install (All Components)
141
145
 
142
146
  ```bash
143
- npx shadcn@latest add button label dialog tooltip sonner popover command calendar accordion tabs resizable hover-card separator card sheet
147
+ npx shadcn@latest add button label dialog tooltip sonner popover command calendar accordion tabs resizable hover-card separator card sheet scroll-area checkbox select
144
148
  ```
145
149
 
146
150
  ---
@@ -772,10 +776,148 @@ interface TemplateOutput {
772
776
 
773
777
  Install with: `npx shadcn@latest add resizable tabs`
774
778
 
779
+ ### Unified Form View (HazoCollabFormView)
780
+
781
+ A unified component that combines edit, summary, print, and approval views with shared context. Switch between view modes without remounting, preserving state and field metadata.
782
+
783
+ **Basic Usage:**
784
+
785
+ ```typescript
786
+ 'use client';
787
+
788
+ import { HazoCollabFormView, type ViewMode } from 'hazo_collab_forms';
789
+ import { useState } from 'react';
790
+
791
+ export default function UnifiedFormPage() {
792
+ const [viewMode, setViewMode] = useState<ViewMode>('edit');
793
+ const [formData, setFormData] = useState<Record<string, unknown>>({});
794
+
795
+ return (
796
+ <div>
797
+ {/* View mode switcher */}
798
+ <div className="flex gap-2 mb-4">
799
+ <button onClick={() => setViewMode('edit')}>Edit</button>
800
+ <button onClick={() => setViewMode('summary')}>Summary</button>
801
+ <button onClick={() => setViewMode('print')}>Print</button>
802
+ <button onClick={() => setViewMode('approval')}>Approval</button>
803
+ </div>
804
+
805
+ <HazoCollabFormView
806
+ sections={sections}
807
+ view_mode={viewMode}
808
+ form_data={formData}
809
+ on_form_data_change={setFormData}
810
+ icons_behaviour={iconsBehaviour}
811
+ active_role="tax_agent"
812
+ enable_chat={true}
813
+ chat_group_id="form-session-123"
814
+ />
815
+ </div>
816
+ );
817
+ }
818
+ ```
819
+
820
+ **View Modes:**
821
+
822
+ | Mode | Description |
823
+ |------|-------------|
824
+ | `edit` | Full form editing with all field controls |
825
+ | `summary` | Read-only summary view for review |
826
+ | `print` | Print-optimized layout |
827
+ | `approval` | Review with data_ok approval workflow |
828
+
829
+ **Key Props:**
830
+
831
+ | Prop | Type | Description |
832
+ |------|------|-------------|
833
+ | `sections` | ViewSection[] | Form sections (same as HazoCollabFormSet) |
834
+ | `view_mode` | ViewMode | Current view mode |
835
+ | `form_data` | Record<string, unknown> | Form values |
836
+ | `on_form_data_change` | callback | Called when form data changes |
837
+ | `field_metadata` | Record<string, FieldMetadata> | Field metadata (visibility, lock, etc.) |
838
+ | `on_field_metadata_change` | callback | Called when metadata changes |
839
+ | `icons_behaviour` | IconsBehaviour | Role-based control configuration |
840
+ | `active_role` | string | Current user's role |
841
+
842
+ **Context Hooks:**
843
+
844
+ Access form state from nested components using hooks:
845
+
846
+ ```typescript
847
+ import {
848
+ useFormViewContext,
849
+ useViewMode,
850
+ useFormData,
851
+ useFieldMetadata,
852
+ useFieldValue,
853
+ useFieldMeta,
854
+ useApprovalStats,
855
+ } from 'hazo_collab_forms';
856
+
857
+ function FieldComponent({ fieldId }) {
858
+ const viewMode = useViewMode();
859
+ const value = useFieldValue(fieldId);
860
+ const { data_ok, locked, visibility } = useFieldMeta(fieldId);
861
+ const { total, approved, pending } = useApprovalStats();
862
+
863
+ // Render based on view mode and field state
864
+ }
865
+ ```
866
+
775
867
  ### Role-Based Icon Controls (icons_behaviour)
776
868
 
777
869
  Configure which control icons are visible and enabled based on user roles. Supports automatic consolidation into kebab (3-dots) menus and extraction of active controls.
778
870
 
871
+ **JSON Configuration Options:**
872
+
873
+ You can configure icons_behaviour in two ways:
874
+
875
+ 1. **Embedded** (original): Include icons_behaviour directly in the form JSON file
876
+ 2. **Separate file** (recommended): Store icons_behaviour in a dedicated JSON file for reuse across forms
877
+
878
+ **Separate File Approach (v1.7.0+):**
879
+
880
+ ```
881
+ public/data/form-sets/
882
+ tax_form_individual_full.json # Sections only
883
+ icon_behaviour.json # Icons behaviour config (reusable)
884
+ ```
885
+
886
+ Load both files and pass icons_behaviour as a prop:
887
+
888
+ ```typescript
889
+ // Load form configuration
890
+ const sectionsResponse = await fetch('/data/form-sets/tax_form_individual_full.json');
891
+ const { sections } = await sectionsResponse.json();
892
+
893
+ const behaviourResponse = await fetch('/data/form-sets/icon_behaviour.json');
894
+ const icons_behaviour = await behaviourResponse.json();
895
+
896
+ // Pass to HazoCollabFormSet
897
+ <HazoCollabFormSet
898
+ section={section}
899
+ icons_behaviour={icons_behaviour}
900
+ active_role="tax_agent"
901
+ />
902
+
903
+ // Pass to HazoCollabFormSummary
904
+ <HazoCollabFormSummary
905
+ sections={sections}
906
+ icons_behaviour={icons_behaviour}
907
+ active_role="tax_agent"
908
+ form_data={formData}
909
+ />
910
+ ```
911
+
912
+ **Prop Priority:**
913
+ 1. `icons_behaviour` prop (if provided)
914
+ 2. `section.icons_behaviour` or `sections[0]?.icons_behaviour` (backward compatible)
915
+
916
+ This separation allows:
917
+ - Reusing the same icon behavior across multiple forms
918
+ - Changing roles without modifying form structure
919
+ - Easier maintenance of large form configurations
920
+
779
921
  **Configuration Structure:**
780
922
 
781
923
  ```typescript
@@ -902,8 +1044,118 @@ const fields: FieldConfig[] = [
902
1044
  - Easy role switching without code changes
903
1045
  - Visual editor in Template Generator
904
1046
 
1047
+ ### Dynamic Field Dialogs
1048
+
1049
+ Add, edit, and manage form fields at runtime using dialog components.
1050
+
1051
+ **HazoAddFieldDialog:**
1052
+
1053
+ Add new fields or groups to your form dynamically:
1054
+
1055
+ ```typescript
1056
+ import { HazoAddFieldDialog, type NewFieldDefinition } from 'hazo_collab_forms';
1057
+ import { useState } from 'react';
1058
+
1059
+ export default function DynamicForm() {
1060
+ const [isOpen, setIsOpen] = useState(false);
1061
+
1062
+ const handleAddField = (field: NewFieldDefinition) => {
1063
+ console.log('New field:', field);
1064
+ // Add field to your form sections
1065
+ };
1066
+
1067
+ return (
1068
+ <>
1069
+ <button onClick={() => setIsOpen(true)}>Add Field</button>
1070
+ <HazoAddFieldDialog
1071
+ open={isOpen}
1072
+ on_open_change={setIsOpen}
1073
+ on_add={handleAddField}
1074
+ parent_type="group" // 'section' | 'group'
1075
+ parent_id="personal_info"
1076
+ />
1077
+ </>
1078
+ );
1079
+ }
1080
+ ```
1081
+
1082
+ **HazoEditFieldDialog:**
1083
+
1084
+ Edit existing field configurations:
1085
+
1086
+ ```typescript
1087
+ import { HazoEditFieldDialog } from 'hazo_collab_forms';
1088
+
1089
+ <HazoEditFieldDialog
1090
+ open={isEditOpen}
1091
+ on_open_change={setIsEditOpen}
1092
+ field={selectedField}
1093
+ on_save={(updated) => updateField(updated)}
1094
+ />
1095
+ ```
1096
+
1097
+ **HazoFieldSelectorDialog:**
1098
+
1099
+ Search and select fields from a template:
1100
+
1101
+ ```typescript
1102
+ import { HazoFieldSelectorDialog } from 'hazo_collab_forms';
1103
+
1104
+ <HazoFieldSelectorDialog
1105
+ open={isSelectorOpen}
1106
+ on_open_change={setIsSelectorOpen}
1107
+ template={formTemplate}
1108
+ on_select={(selection) => {
1109
+ // Handle selected fields
1110
+ console.log('Selected:', selection);
1111
+ }}
1112
+ />
1113
+ ```
1114
+
1115
+ ### Shared Utilities
1116
+
1117
+ The package exports utility functions for working with form structures:
1118
+
1119
+ ```typescript
1120
+ import {
1121
+ // Field traversal
1122
+ traverse_fields,
1123
+ traverse_sections,
1124
+ collect_field_ids,
1125
+ collect_leaf_field_ids,
1126
+ should_render_field,
1127
+ is_field_empty,
1128
+ get_field_value,
1129
+
1130
+ // Dependency checking
1131
+ parse_dependency,
1132
+ check_dependency,
1133
+
1134
+ // Field metadata normalization
1135
+ normalize_field_metadata,
1136
+ normalize_field_metadata_input,
1137
+ } from 'hazo_collab_forms';
1138
+
1139
+ // Traverse all fields in sections
1140
+ traverse_sections(sections, (field, path) => {
1141
+ console.log(`Field: ${field.id} at path: ${path.join('/')}`);
1142
+ });
1143
+
1144
+ // Check if field should render based on dependencies
1145
+ const shouldRender = should_render_field(field, formData, {
1146
+ check_dependencies: true,
1147
+ show_empty_fields: false,
1148
+ });
1149
+
1150
+ // Parse and check field dependencies
1151
+ const dependency = parse_dependency(field.depends_on);
1152
+ const isActive = check_dependency(dependency, formData);
1153
+ ```
1154
+
905
1155
  ## Components
906
1156
 
1157
+ ### Form Field Components
1158
+
907
1159
  | Component | Description | Required shadcn |
908
1160
  |-----------|-------------|-----------------|
909
1161
  | `HazoCollabFormInputbox` | Text input with validation | button, label, dialog, tooltip |
@@ -912,13 +1164,34 @@ const fields: FieldConfig[] = [
912
1164
  | `HazoCollabFormCombo` | Dropdown select with search | + popover, command |
913
1165
  | `HazoCollabFormRadio` | Radio button group | button, label, dialog, tooltip |
914
1166
  | `HazoCollabFormDate` | Date or date-range picker | + calendar |
1167
+ | `HazoCollabFormDoc` | Document/file-only field | button, label, dialog, tooltip, accordion |
915
1168
  | `HazoCollabFormGroup` | Field grouping container | button, label, dialog, tooltip |
916
1169
  | `HazoCollabFormDataTable` | Editable data table with aggregations | button, label, dialog, tooltip |
1170
+
1171
+ ### Form Container Components
1172
+
1173
+ | Component | Description | Required shadcn |
1174
+ |-----------|-------------|-----------------|
917
1175
  | `HazoCollabFormSet` | Complete form with field arrays | all components |
918
1176
  | `HazoCollabFormSummary` | Read-only summary view | button, label, popover |
1177
+ | `HazoCollabFormView` | Unified multi-mode view (Edit/Summary/Print/Approval) | all components |
1178
+
1179
+ ### Builder & Dialog Components
1180
+
1181
+ | Component | Description | Required shadcn |
1182
+ |-----------|-------------|-----------------|
919
1183
  | `HazoTemplateGenerator` | Visual form builder | button, label, dialog, tooltip, tabs, resizable |
920
- | **File Upload** | When using `accept_files` prop | + **accordion** (required) |
921
- | **Field Tooltips** | When using `tooltip` prop | + **hover-card** (optional) |
1184
+ | `HazoAddFieldDialog` | Add new fields dynamically | dialog, popover, command |
1185
+ | `HazoAddGroupDialog` | Add new groups dynamically | dialog |
1186
+ | `HazoEditFieldDialog` | Edit field configurations | dialog, popover, command |
1187
+ | `HazoFieldSelectorDialog` | Search and select fields | dialog, command |
1188
+
1189
+ ### Optional Features
1190
+
1191
+ | Feature | Required shadcn |
1192
+ |---------|-----------------|
1193
+ | File Upload (`accept_files` prop) | + **accordion** (required) |
1194
+ | Field Tooltips (`tooltip` prop) | + **hover-card** (optional) |
922
1195
 
923
1196
  ## Import Paths
924
1197
 
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Field type combobox with icons for type selection
3
+ */
4
+ import React from 'react';
5
+ import type { AddFieldType, AddFieldTypeMeta, ComboboxComponents } from '../types.js';
6
+ export interface FieldTypeComboboxProps {
7
+ /**
8
+ * Currently selected field type
9
+ */
10
+ value: AddFieldType;
11
+ /**
12
+ * Available field type options
13
+ */
14
+ available_types: AddFieldTypeMeta[];
15
+ /**
16
+ * Callback when type changes
17
+ */
18
+ on_change: (type: AddFieldType) => void;
19
+ /**
20
+ * Unique ID for this combobox (for multiple comboboxes in list)
21
+ */
22
+ id?: string;
23
+ /**
24
+ * Optional shadcn Popover and Command components
25
+ * If provided, uses these instead of trying dynamic import
26
+ */
27
+ combobox_components?: ComboboxComponents;
28
+ }
29
+ /**
30
+ * FieldTypeCombobox - Combobox with icons for selecting field type
31
+ * Uses shadcn Popover/Command components from props, falls back to native select
32
+ */
33
+ export declare function FieldTypeCombobox({ value, available_types, on_change, id, combobox_components, }: FieldTypeComboboxProps): React.ReactElement;
34
+ //# sourceMappingURL=field_type_combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field_type_combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_add_field_dialog/components/field_type_combobox.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAcrD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAgBtF,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC;;OAEG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,eAAe,EACf,SAAS,EACT,EAAE,EACF,mBAAmB,GACpB,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CA0G7C"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Field type combobox with icons for type selection
3
+ */
4
+ 'use client';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { useState, useCallback } from 'react';
7
+ import { IoTextOutline, IoDocumentTextOutline, IoCheckboxOutline, IoRadioButtonOnOutline, IoChevronDownCircleOutline, IoCalendarOutline, IoCloudUploadOutline, IoLayersOutline, IoChevronDown, IoCheckmark, } from 'react-icons/io5';
8
+ import { cn } from '../../../utils/cn.js';
9
+ /**
10
+ * Icon mapping for field types
11
+ */
12
+ const FIELD_TYPE_ICONS = {
13
+ IoTextOutline,
14
+ IoDocumentTextOutline,
15
+ IoCheckboxOutline,
16
+ IoRadioButtonOnOutline,
17
+ IoChevronDownCircleOutline,
18
+ IoCalendarOutline,
19
+ IoCloudUploadOutline,
20
+ IoLayersOutline,
21
+ };
22
+ /**
23
+ * FieldTypeCombobox - Combobox with icons for selecting field type
24
+ * Uses shadcn Popover/Command components from props, falls back to native select
25
+ */
26
+ export function FieldTypeCombobox({ value, available_types, on_change, id, combobox_components, }) {
27
+ const [open, set_open] = useState(false);
28
+ // Get icon component for a field type
29
+ const get_icon = (icon_name) => {
30
+ return FIELD_TYPE_ICONS[icon_name] || null;
31
+ };
32
+ // Get selected type metadata
33
+ const selected_meta = available_types.find(t => t.type === value);
34
+ const SelectedIcon = selected_meta ? get_icon(selected_meta.icon) : null;
35
+ // Handle selection
36
+ const handle_select = useCallback((type) => {
37
+ on_change(type);
38
+ set_open(false);
39
+ }, [on_change]);
40
+ // Fallback to native select if shadcn components not available
41
+ if (!combobox_components) {
42
+ return (_jsx("select", { value: value, onChange: e => on_change(e.target.value), className: "cls_field_type_select h-8 rounded-md border border-input bg-background px-2 py-1 text-xs ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", "aria-label": "Select field type", children: available_types.map(meta => (_jsx("option", { value: meta.type, children: meta.label }, meta.type))) }));
43
+ }
44
+ const { Popover, PopoverTrigger, PopoverContent, Command, CommandList, CommandEmpty, CommandGroup, CommandItem, } = combobox_components;
45
+ return (_jsxs(Popover, { open: open, onOpenChange: set_open, modal: true, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { type: "button", role: "combobox", "aria-expanded": open, "aria-label": "Select field type", className: cn('cls_field_type_trigger inline-flex items-center justify-between gap-1 h-8 px-2 py-1 rounded-md border border-input bg-background text-xs', 'hover:bg-accent hover:text-accent-foreground', 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', 'min-w-[100px]'), children: [_jsxs("span", { className: "flex items-center gap-1.5 truncate", children: [SelectedIcon && _jsx(SelectedIcon, { className: "h-3.5 w-3.5 flex-shrink-0" }), _jsx("span", { className: "truncate", children: selected_meta?.label || 'Select' })] }), _jsx(IoChevronDown, { className: "h-3 w-3 opacity-50 flex-shrink-0" })] }) }), _jsx(PopoverContent, { className: "w-[180px] p-0", align: "start", onOpenAutoFocus: (e) => e.preventDefault(), onCloseAutoFocus: (e) => e.preventDefault(), children: _jsx(Command, { children: _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "No field type found." }), _jsx(CommandGroup, { children: available_types.map(meta => {
46
+ const IconComponent = get_icon(meta.icon);
47
+ const is_selected = value === meta.type;
48
+ return (_jsxs(CommandItem, { value: meta.type, onSelect: () => handle_select(meta.type), className: "flex items-center gap-2 cursor-pointer", children: [IconComponent && (_jsx(IconComponent, { className: "h-4 w-4 flex-shrink-0" })), _jsx("span", { className: "flex-1 truncate", children: meta.label }), is_selected && (_jsx(IoCheckmark, { className: "h-4 w-4 flex-shrink-0 text-primary" }))] }, meta.type));
49
+ }) })] }) }) })] }));
50
+ }
51
+ //# sourceMappingURL=field_type_combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field_type_combobox.js","sourceRoot":"","sources":["../../../../src/components/hazo_add_field_dialog/components/field_type_combobox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * HazoAddFieldDialog sub-components
3
+ */
4
+ export { QuestionInput, type QuestionInputProps } from './question_input.js';
5
+ export { FieldTypeCombobox, type FieldTypeComboboxProps } from './field_type_combobox.js';
6
+ export { PendingFieldItem, type PendingFieldItemProps } from './pending_field_item.js';
7
+ export { PendingFieldList, type PendingFieldListProps } from './pending_field_list.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_add_field_dialog/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * HazoAddFieldDialog sub-components
3
+ */
4
+ export { QuestionInput } from './question_input.js';
5
+ export { FieldTypeCombobox } from './field_type_combobox.js';
6
+ export { PendingFieldItem } from './pending_field_item.js';
7
+ export { PendingFieldList } from './pending_field_list.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/hazo_add_field_dialog/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAA+B,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAA8B,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAA8B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Sortable pending field item with accordion for options
3
+ */
4
+ import React from 'react';
5
+ import type { PendingFieldEntry, AddFieldType, AddFieldTypeMeta, FieldOption, DateConfig, CheckboxConfig, ComboboxComponents } from '../types.js';
6
+ export interface PendingFieldItemProps {
7
+ /**
8
+ * The pending field entry
9
+ */
10
+ item: PendingFieldEntry;
11
+ /**
12
+ * Available field types for the combobox
13
+ */
14
+ available_types: AddFieldTypeMeta[];
15
+ /**
16
+ * Callback when type changes
17
+ */
18
+ on_type_change: (id: string, type: AddFieldType) => void;
19
+ /**
20
+ * Callback when item is removed
21
+ */
22
+ on_remove: (id: string) => void;
23
+ /**
24
+ * Callback when accordion is toggled
25
+ */
26
+ on_toggle_expand: (id: string) => void;
27
+ /**
28
+ * Callback when required changes
29
+ */
30
+ on_required_change: (id: string, value: boolean) => void;
31
+ /**
32
+ * Callback when accept_files changes
33
+ */
34
+ on_accept_files_change: (id: string, value: boolean) => void;
35
+ /**
36
+ * Callback when options change (for Radio/Combo)
37
+ */
38
+ on_options_change: (id: string, options: FieldOption[]) => void;
39
+ /**
40
+ * Callback when date config changes
41
+ */
42
+ on_date_config_change: (id: string, config: DateConfig) => void;
43
+ /**
44
+ * Callback when checkbox config changes
45
+ */
46
+ on_checkbox_config_change: (id: string, config: CheckboxConfig) => void;
47
+ /**
48
+ * Optional shadcn combobox components for field type selector
49
+ */
50
+ combobox_components?: ComboboxComponents;
51
+ }
52
+ /**
53
+ * PendingFieldItem - Sortable item with drag handle, type selector, and expandable options
54
+ */
55
+ export declare function PendingFieldItem({ item, available_types, on_type_change, on_remove, on_toggle_expand, on_required_change, on_accept_files_change, on_options_change, on_date_config_change, on_checkbox_config_change, combobox_components, }: PendingFieldItemProps): React.ReactElement;
56
+ //# sourceMappingURL=pending_field_item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending_field_item.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_add_field_dialog/components/pending_field_item.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAkB,MAAM,OAAO,CAAC;AASvC,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAC;IACxB;;OAEG;IACH,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC;;OAEG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;OAEG;IACH,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D;;OAEG;IACH,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,yBAAyB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,eAAe,EACf,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CA0M5C"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Sortable pending field item with accordion for options
3
+ */
4
+ 'use client';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { useMemo } from 'react';
7
+ import { useSortable } from '@dnd-kit/sortable';
8
+ import { CSS } from '@dnd-kit/utilities';
9
+ import { HiX, HiChevronDown, HiChevronRight } from 'react-icons/hi';
10
+ import { RxDragHandleDots2 } from 'react-icons/rx';
11
+ import { cn } from '../../../utils/cn.js';
12
+ import { FieldTypeCombobox } from './field_type_combobox.js';
13
+ import { OptionsListEditor } from '../options/options_list_editor.js';
14
+ import { DateOptions } from '../options/date_options.js';
15
+ /**
16
+ * PendingFieldItem - Sortable item with drag handle, type selector, and expandable options
17
+ */
18
+ export function PendingFieldItem({ item, available_types, on_type_change, on_remove, on_toggle_expand, on_required_change, on_accept_files_change, on_options_change, on_date_config_change, on_checkbox_config_change, combobox_components, }) {
19
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging, } = useSortable({ id: item.id });
20
+ const style = {
21
+ transform: CSS.Transform.toString(transform),
22
+ transition,
23
+ opacity: isDragging ? 0.5 : 1,
24
+ };
25
+ // Determine which type-specific options to show
26
+ const shows_options_list = useMemo(() => ['HazoCollabFormRadio', 'HazoCollabFormCombo'].includes(item.field_type), [item.field_type]);
27
+ const shows_date_options = item.field_type === 'HazoCollabFormDate';
28
+ const shows_checkbox_options = item.field_type === 'HazoCollabFormCheckbox';
29
+ // Document upload doesn't need "allow file attachment" since it IS the file upload
30
+ // Groups also don't show accept_files
31
+ const shows_accept_files = item.field_type !== 'HazoCollabFormDoc' && item.field_type !== 'Group';
32
+ // Groups don't have "required" option
33
+ const shows_required = item.field_type !== 'Group';
34
+ // Check if there are any options to show in the accordion
35
+ const has_options = shows_required || shows_accept_files || shows_options_list || shows_date_options || shows_checkbox_options;
36
+ return (_jsxs("div", { ref: setNodeRef, style: style, className: cn('cls_pending_field_item rounded-md border bg-background', isDragging ? 'border-primary shadow-lg' : 'border-border', 'hover:border-muted-foreground/50 transition-colors'), children: [_jsxs("div", { className: "flex items-center gap-2 px-3 py-2", children: [_jsx("button", { ...attributes, ...listeners, className: "cursor-grab active:cursor-grabbing p-1 hover:bg-muted rounded flex-shrink-0", "aria-label": "Drag to reorder", children: _jsx(RxDragHandleDots2, { className: "h-4 w-4 text-muted-foreground" }) }), has_options && (_jsx("button", { onClick: () => on_toggle_expand(item.id), className: "p-1 hover:bg-muted rounded flex-shrink-0", "aria-label": item.is_expanded ? 'Collapse options' : 'Expand options', children: item.is_expanded ? (_jsx(HiChevronDown, { className: "h-4 w-4 text-muted-foreground" })) : (_jsx(HiChevronRight, { className: "h-4 w-4 text-muted-foreground" })) })), _jsx("div", { className: "flex-1 min-w-0", children: _jsx("span", { className: "text-sm truncate block", children: item.label }) }), _jsx(FieldTypeCombobox, { value: item.field_type, available_types: available_types, on_change: (type) => on_type_change(item.id, type), id: item.id, combobox_components: combobox_components }), _jsx("button", { onClick: () => on_remove(item.id), className: "p-1 hover:bg-destructive/10 rounded text-muted-foreground hover:text-destructive transition-colors flex-shrink-0", "aria-label": `Remove "${item.label}"`, children: _jsx(HiX, { className: "h-4 w-4" }) })] }), item.is_expanded && has_options && (_jsxs("div", { className: "border-t px-3 py-3 space-y-3 bg-muted/30", children: [(shows_required || shows_accept_files) && (_jsxs("div", { className: "flex flex-wrap items-center gap-6", children: [shows_required && (_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("input", { id: `${item.id}-required`, type: "checkbox", checked: item.required, onChange: e => on_required_change(item.id, e.target.checked), className: "cls_pending_field_checkbox h-4 w-4 rounded border-gray-300 text-primary focus:ring-primary" }), _jsx("label", { htmlFor: `${item.id}-required`, className: "text-sm font-medium leading-none cursor-pointer", children: "Required field" })] })), shows_accept_files && (_jsxs("div", { className: "flex items-center space-x-2", children: [_jsx("input", { id: `${item.id}-accept-files`, type: "checkbox", checked: item.accept_files, onChange: e => on_accept_files_change(item.id, e.target.checked), className: "cls_pending_field_checkbox h-4 w-4 rounded border-gray-300 text-primary focus:ring-primary" }), _jsx("label", { htmlFor: `${item.id}-accept-files`, className: "text-sm font-medium leading-none cursor-pointer", children: "Allow file attachment" })] }))] })), shows_options_list && (_jsx(OptionsListEditor, { options: item.options || [{ label: 'Option 1', value: 'option_1' }], on_options_change: (options) => on_options_change(item.id, options), label: item.field_type === 'HazoCollabFormRadio' ? 'Radio Options' : 'Dropdown Options' })), shows_date_options && (_jsx(DateOptions, { config: item.date_config || { date_mode: 'single' }, on_config_change: (config) => on_date_config_change(item.id, config) })), shows_checkbox_options && (_jsxs("div", { className: "space-y-3", children: [_jsx("label", { className: "text-sm font-medium leading-none", children: "Checkbox Labels (optional)" }), _jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: `${item.id}-checked-label`, className: "text-xs text-muted-foreground", children: "When checked" }), _jsx("input", { id: `${item.id}-checked-label`, type: "text", value: item.checkbox_config?.checked_label || '', onChange: e => on_checkbox_config_change(item.id, {
37
+ ...item.checkbox_config,
38
+ checked_label: e.target.value || undefined,
39
+ }), placeholder: "Yes", className: "flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2" })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("label", { htmlFor: `${item.id}-unchecked-label`, className: "text-xs text-muted-foreground", children: "When unchecked" }), _jsx("input", { id: `${item.id}-unchecked-label`, type: "text", value: item.checkbox_config?.unchecked_label || '', onChange: e => on_checkbox_config_change(item.id, {
40
+ ...item.checkbox_config,
41
+ unchecked_label: e.target.value || undefined,
42
+ }), placeholder: "No", className: "flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2" })] })] })] }))] }))] }));
43
+ }
44
+ //# sourceMappingURL=pending_field_item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending_field_item.js","sourceRoot":"","sources":["../../../../src/components/hazo_add_field_dialog/components/pending_field_item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Sortable pending field list with drag and drop reordering
3
+ */
4
+ import React from 'react';
5
+ import type { PendingFieldEntry, AddFieldType, AddFieldTypeMeta, FieldOption, DateConfig, CheckboxConfig, ComboboxComponents } from '../types.js';
6
+ export interface PendingFieldListProps {
7
+ /**
8
+ * List of pending field entries
9
+ */
10
+ items: PendingFieldEntry[];
11
+ /**
12
+ * Available field types for the combobox
13
+ */
14
+ available_types: AddFieldTypeMeta[];
15
+ /**
16
+ * Callback when items are reordered
17
+ */
18
+ on_reorder: (items: PendingFieldEntry[]) => void;
19
+ /**
20
+ * Callback when type changes
21
+ */
22
+ on_type_change: (id: string, type: AddFieldType) => void;
23
+ /**
24
+ * Callback when an item is removed
25
+ */
26
+ on_remove: (id: string) => void;
27
+ /**
28
+ * Callback when accordion is toggled
29
+ */
30
+ on_toggle_expand: (id: string) => void;
31
+ /**
32
+ * Callback when required changes
33
+ */
34
+ on_required_change: (id: string, value: boolean) => void;
35
+ /**
36
+ * Callback when accept_files changes
37
+ */
38
+ on_accept_files_change: (id: string, value: boolean) => void;
39
+ /**
40
+ * Callback when options change (for Radio/Combo)
41
+ */
42
+ on_options_change: (id: string, options: FieldOption[]) => void;
43
+ /**
44
+ * Callback when date config changes
45
+ */
46
+ on_date_config_change: (id: string, config: DateConfig) => void;
47
+ /**
48
+ * Callback when checkbox config changes
49
+ */
50
+ on_checkbox_config_change: (id: string, config: CheckboxConfig) => void;
51
+ /**
52
+ * Optional shadcn combobox components for field type selector
53
+ */
54
+ combobox_components?: ComboboxComponents;
55
+ }
56
+ /**
57
+ * PendingFieldList - DndContext wrapper for sortable pending fields
58
+ */
59
+ export declare function PendingFieldList({ items, available_types, on_reorder, on_type_change, on_remove, on_toggle_expand, on_required_change, on_accept_files_change, on_options_change, on_date_config_change, on_checkbox_config_change, combobox_components, }: PendingFieldListProps): React.ReactElement;
60
+ //# sourceMappingURL=pending_field_list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending_field_list.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_add_field_dialog/components/pending_field_list.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAiB1B,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B;;OAEG;IACH,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC;;OAEG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACjD;;OAEG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC;;OAEG;IACH,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD;;OAEG;IACH,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D;;OAEG;IACH,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,yBAAyB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,eAAe,EACf,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAkD5C"}