hazo_collab_forms 2.2.8 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGE_LOG.md +47 -0
- package/dist/components/_internal_form_set.d.ts +17 -0
- package/dist/components/_internal_form_set.d.ts.map +1 -1
- package/dist/components/_internal_form_set.js +38 -9
- package/dist/components/_internal_form_set.js.map +1 -1
- package/dist/components/clarification/clarification_card.d.ts +36 -13
- package/dist/components/clarification/clarification_card.d.ts.map +1 -1
- package/dist/components/clarification/clarification_card.js +12 -32
- package/dist/components/clarification/clarification_card.js.map +1 -1
- package/dist/components/clarification/clarification_dialog.d.ts.map +1 -1
- package/dist/components/clarification/clarification_dialog.js +11 -5
- package/dist/components/clarification/clarification_dialog.js.map +1 -1
- package/dist/components/clarification/clarification_doc_reference.d.ts +6 -0
- package/dist/components/clarification/clarification_doc_reference.d.ts.map +1 -1
- package/dist/components/clarification/clarification_doc_reference.js +20 -11
- package/dist/components/clarification/clarification_doc_reference.js.map +1 -1
- package/dist/components/clarification/clarification_group_card.d.ts +65 -0
- package/dist/components/clarification/clarification_group_card.d.ts.map +1 -0
- package/dist/components/clarification/clarification_group_card.js +84 -0
- package/dist/components/clarification/clarification_group_card.js.map +1 -0
- package/dist/components/clarification/clarification_item_body.d.ts +80 -0
- package/dist/components/clarification/clarification_item_body.d.ts.map +1 -0
- package/dist/components/clarification/clarification_item_body.js +55 -0
- package/dist/components/clarification/clarification_item_body.js.map +1 -0
- package/dist/components/clarification/clarification_response_form.d.ts +25 -1
- package/dist/components/clarification/clarification_response_form.d.ts.map +1 -1
- package/dist/components/clarification/clarification_response_form.js +103 -9
- package/dist/components/clarification/clarification_response_form.js.map +1 -1
- package/dist/components/clarification/clarification_section.d.ts +36 -2
- package/dist/components/clarification/clarification_section.d.ts.map +1 -1
- package/dist/components/clarification/clarification_section.js +55 -19
- package/dist/components/clarification/clarification_section.js.map +1 -1
- package/dist/components/clarification/clarification_status_config.d.ts +57 -0
- package/dist/components/clarification/clarification_status_config.d.ts.map +1 -0
- package/dist/components/clarification/clarification_status_config.js +131 -0
- package/dist/components/clarification/clarification_status_config.js.map +1 -0
- package/dist/components/clarification/index.d.ts +6 -0
- package/dist/components/clarification/index.d.ts.map +1 -1
- package/dist/components/clarification/index.js +3 -0
- package/dist/components/clarification/index.js.map +1 -1
- package/dist/components/collab_form_file_upload.d.ts +3 -1
- package/dist/components/collab_form_file_upload.d.ts.map +1 -1
- package/dist/components/collab_form_file_upload.js +6 -6
- package/dist/components/collab_form_file_upload.js.map +1 -1
- package/dist/components/hazo_add_field_dialog/components/pending_field_item.d.ts +14 -2
- package/dist/components/hazo_add_field_dialog/components/pending_field_item.d.ts.map +1 -1
- package/dist/components/hazo_add_field_dialog/components/pending_field_item.js +11 -9
- package/dist/components/hazo_add_field_dialog/components/pending_field_item.js.map +1 -1
- package/dist/components/hazo_add_field_dialog/components/pending_field_list.d.ts +14 -2
- package/dist/components/hazo_add_field_dialog/components/pending_field_list.d.ts.map +1 -1
- package/dist/components/hazo_add_field_dialog/components/pending_field_list.js +2 -2
- package/dist/components/hazo_add_field_dialog/components/pending_field_list.js.map +1 -1
- package/dist/components/hazo_add_field_dialog/components/question_input.d.ts +6 -1
- package/dist/components/hazo_add_field_dialog/components/question_input.d.ts.map +1 -1
- package/dist/components/hazo_add_field_dialog/components/question_input.js +2 -2
- package/dist/components/hazo_add_field_dialog/components/question_input.js.map +1 -1
- package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.d.ts +6 -1
- package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.d.ts.map +1 -1
- package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.js +67 -17
- package/dist/components/hazo_add_field_dialog/hazo_add_field_dialog.js.map +1 -1
- package/dist/components/hazo_add_field_dialog/index.d.ts +3 -1
- package/dist/components/hazo_add_field_dialog/index.d.ts.map +1 -1
- package/dist/components/hazo_add_field_dialog/index.js +2 -0
- package/dist/components/hazo_add_field_dialog/index.js.map +1 -1
- package/dist/components/hazo_add_field_dialog/options/file_textbox_options.d.ts +31 -0
- package/dist/components/hazo_add_field_dialog/options/file_textbox_options.d.ts.map +1 -0
- package/dist/components/hazo_add_field_dialog/options/file_textbox_options.js +54 -0
- package/dist/components/hazo_add_field_dialog/options/file_textbox_options.js.map +1 -0
- package/dist/components/hazo_add_field_dialog/options/index.d.ts +1 -0
- package/dist/components/hazo_add_field_dialog/options/index.d.ts.map +1 -1
- package/dist/components/hazo_add_field_dialog/options/index.js +1 -0
- package/dist/components/hazo_add_field_dialog/options/index.js.map +1 -1
- package/dist/components/hazo_add_field_dialog/types.d.ts +51 -2
- package/dist/components/hazo_add_field_dialog/types.d.ts.map +1 -1
- package/dist/components/hazo_add_field_dialog/types.js +7 -0
- package/dist/components/hazo_add_field_dialog/types.js.map +1 -1
- package/dist/components/hazo_collab_form_base.d.ts +6 -1
- package/dist/components/hazo_collab_form_base.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_base.js +7 -15
- package/dist/components/hazo_collab_form_base.js.map +1 -1
- package/dist/components/hazo_collab_form_data_table.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_data_table.js +4 -2
- package/dist/components/hazo_collab_form_data_table.js.map +1 -1
- package/dist/components/hazo_collab_form_file_textbox/file_chip.d.ts +37 -0
- package/dist/components/hazo_collab_form_file_textbox/file_chip.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/file_chip.js +45 -0
- package/dist/components/hazo_collab_form_file_textbox/file_chip.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/file_group.d.ts +35 -0
- package/dist/components/hazo_collab_form_file_textbox/file_group.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/file_group.js +54 -0
- package/dist/components/hazo_collab_form_file_textbox/file_group.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/file_textbox_panel.d.ts +46 -0
- package/dist/components/hazo_collab_form_file_textbox/file_textbox_panel.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/file_textbox_panel.js +104 -0
- package/dist/components/hazo_collab_form_file_textbox/file_textbox_panel.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/file_upload_zone.d.ts +20 -0
- package/dist/components/hazo_collab_form_file_textbox/file_upload_zone.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/file_upload_zone.js +14 -0
- package/dist/components/hazo_collab_form_file_textbox/file_upload_zone.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/hazo_collab_form_file_textbox.d.ts +63 -0
- package/dist/components/hazo_collab_form_file_textbox/hazo_collab_form_file_textbox.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/hazo_collab_form_file_textbox.js +226 -0
- package/dist/components/hazo_collab_form_file_textbox/hazo_collab_form_file_textbox.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/index.d.ts +24 -0
- package/dist/components/hazo_collab_form_file_textbox/index.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/index.js +16 -0
- package/dist/components/hazo_collab_form_file_textbox/index.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/tag_pills.d.ts +11 -0
- package/dist/components/hazo_collab_form_file_textbox/tag_pills.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/tag_pills.js +17 -0
- package/dist/components/hazo_collab_form_file_textbox/tag_pills.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/utils.d.ts +14 -0
- package/dist/components/hazo_collab_form_file_textbox/utils.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/utils.js +58 -0
- package/dist/components/hazo_collab_form_file_textbox/utils.js.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/validation_dialog.d.ts +29 -0
- package/dist/components/hazo_collab_form_file_textbox/validation_dialog.d.ts.map +1 -0
- package/dist/components/hazo_collab_form_file_textbox/validation_dialog.js +182 -0
- package/dist/components/hazo_collab_form_file_textbox/validation_dialog.js.map +1 -0
- package/dist/components/hazo_collab_form_group.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_group.js +2 -2
- package/dist/components/hazo_collab_form_group.js.map +1 -1
- package/dist/components/hazo_collab_form_view/context.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/context.js +10 -3
- package/dist/components/hazo_collab_form_view/context.js.map +1 -1
- package/dist/components/hazo_collab_form_view/index.d.ts +1 -1
- package/dist/components/hazo_collab_form_view/index.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/index.js.map +1 -1
- package/dist/components/hazo_collab_form_view/types.d.ts +32 -4
- package/dist/components/hazo_collab_form_view/types.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/views/edit_view.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/views/edit_view.js +4 -2
- package/dist/components/hazo_collab_form_view/views/edit_view.js.map +1 -1
- package/dist/components/hazo_collab_form_view/views/summary_view.d.ts.map +1 -1
- package/dist/components/hazo_collab_form_view/views/summary_view.js +2 -2
- package/dist/components/hazo_collab_form_view/views/summary_view.js.map +1 -1
- package/dist/components/hazo_data_form/hazo_data_form.d.ts.map +1 -1
- package/dist/components/hazo_data_form/hazo_data_form.js +4 -2
- package/dist/components/hazo_data_form/hazo_data_form.js.map +1 -1
- package/dist/components/hazo_data_form/pdf_panel.d.ts.map +1 -1
- package/dist/components/hazo_data_form/pdf_panel.js +7 -2
- package/dist/components/hazo_data_form/pdf_panel.js.map +1 -1
- package/dist/components/hazo_fb_form/components/backoffice_run_button.d.ts +16 -0
- package/dist/components/hazo_fb_form/components/backoffice_run_button.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/backoffice_run_button.js +23 -0
- package/dist/components/hazo_fb_form/components/backoffice_run_button.js.map +1 -0
- package/dist/components/hazo_fb_form/components/draft_clarification_card.d.ts +25 -0
- package/dist/components/hazo_fb_form/components/draft_clarification_card.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/draft_clarification_card.js +71 -0
- package/dist/components/hazo_fb_form/components/draft_clarification_card.js.map +1 -0
- package/dist/components/hazo_fb_form/components/fb_document_type_editor.d.ts +11 -0
- package/dist/components/hazo_fb_form/components/fb_document_type_editor.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/fb_document_type_editor.js +82 -0
- package/dist/components/hazo_fb_form/components/fb_document_type_editor.js.map +1 -0
- package/dist/components/hazo_fb_form/components/fb_tag_editor.d.ts +11 -0
- package/dist/components/hazo_fb_form/components/fb_tag_editor.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/fb_tag_editor.js +107 -0
- package/dist/components/hazo_fb_form/components/fb_tag_editor.js.map +1 -0
- package/dist/components/hazo_fb_form/components/front_office_stepper.d.ts +15 -0
- package/dist/components/hazo_fb_form/components/front_office_stepper.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/front_office_stepper.js +21 -0
- package/dist/components/hazo_fb_form/components/front_office_stepper.js.map +1 -0
- package/dist/components/hazo_fb_form/components/instance_sidebar.d.ts +21 -0
- package/dist/components/hazo_fb_form/components/instance_sidebar.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/instance_sidebar.js +58 -0
- package/dist/components/hazo_fb_form/components/instance_sidebar.js.map +1 -0
- package/dist/components/hazo_fb_form/components/run_button.d.ts +19 -0
- package/dist/components/hazo_fb_form/components/run_button.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/run_button.js +38 -0
- package/dist/components/hazo_fb_form/components/run_button.js.map +1 -0
- package/dist/components/hazo_fb_form/components/run_details_dialog.d.ts +17 -0
- package/dist/components/hazo_fb_form/components/run_details_dialog.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/run_details_dialog.js +35 -0
- package/dist/components/hazo_fb_form/components/run_details_dialog.js.map +1 -0
- package/dist/components/hazo_fb_form/components/tag_pill.d.ts +15 -0
- package/dist/components/hazo_fb_form/components/tag_pill.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/components/tag_pill.js +15 -0
- package/dist/components/hazo_fb_form/components/tag_pill.js.map +1 -0
- package/dist/components/hazo_fb_form/context.d.ts +90 -0
- package/dist/components/hazo_fb_form/context.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/context.js +13 -0
- package/dist/components/hazo_fb_form/context.js.map +1 -0
- package/dist/components/hazo_fb_form/hazo_fb_form.d.ts +13 -0
- package/dist/components/hazo_fb_form/hazo_fb_form.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/hazo_fb_form.js +401 -0
- package/dist/components/hazo_fb_form/hazo_fb_form.js.map +1 -0
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.d.ts +45 -0
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.js +223 -0
- package/dist/components/hazo_fb_form/hooks/use_fb_form_state.js.map +1 -0
- package/dist/components/hazo_fb_form/hooks/use_llm_run.d.ts +46 -0
- package/dist/components/hazo_fb_form/hooks/use_llm_run.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/hooks/use_llm_run.js +1435 -0
- package/dist/components/hazo_fb_form/hooks/use_llm_run.js.map +1 -0
- package/dist/components/hazo_fb_form/index.d.ts +24 -0
- package/dist/components/hazo_fb_form/index.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/index.js +16 -0
- package/dist/components/hazo_fb_form/index.js.map +1 -0
- package/dist/components/hazo_fb_form/shared/clarification_helpers.d.ts +15 -0
- package/dist/components/hazo_fb_form/shared/clarification_helpers.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/shared/clarification_helpers.js +23 -0
- package/dist/components/hazo_fb_form/shared/clarification_helpers.js.map +1 -0
- package/dist/components/hazo_fb_form/shared/file_utils.d.ts +9 -0
- package/dist/components/hazo_fb_form/shared/file_utils.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/shared/file_utils.js +31 -0
- package/dist/components/hazo_fb_form/shared/file_utils.js.map +1 -0
- package/dist/components/hazo_fb_form/shared/format.d.ts +12 -0
- package/dist/components/hazo_fb_form/shared/format.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/shared/format.js +45 -0
- package/dist/components/hazo_fb_form/shared/format.js.map +1 -0
- package/dist/components/hazo_fb_form/shared/index.d.ts +10 -0
- package/dist/components/hazo_fb_form/shared/index.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/shared/index.js +9 -0
- package/dist/components/hazo_fb_form/shared/index.js.map +1 -0
- package/dist/components/hazo_fb_form/shared/pdf_side_panel.d.ts +22 -0
- package/dist/components/hazo_fb_form/shared/pdf_side_panel.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/shared/pdf_side_panel.js +10 -0
- package/dist/components/hazo_fb_form/shared/pdf_side_panel.js.map +1 -0
- package/dist/components/hazo_fb_form/shared/use_pdf_viewer.d.ts +26 -0
- package/dist/components/hazo_fb_form/shared/use_pdf_viewer.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/shared/use_pdf_viewer.js +41 -0
- package/dist/components/hazo_fb_form/shared/use_pdf_viewer.js.map +1 -0
- package/dist/components/hazo_fb_form/types.d.ts +283 -0
- package/dist/components/hazo_fb_form/types.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/types.js +5 -0
- package/dist/components/hazo_fb_form/types.js.map +1 -0
- package/dist/components/hazo_fb_form/views/back_office_view.d.ts +7 -0
- package/dist/components/hazo_fb_form/views/back_office_view.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/views/back_office_view.js +327 -0
- package/dist/components/hazo_fb_form/views/back_office_view.js.map +1 -0
- package/dist/components/hazo_fb_form/views/clarifications_view.d.ts +16 -0
- package/dist/components/hazo_fb_form/views/clarifications_view.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/views/clarifications_view.js +262 -0
- package/dist/components/hazo_fb_form/views/clarifications_view.js.map +1 -0
- package/dist/components/hazo_fb_form/views/front_office_view.d.ts +6 -0
- package/dist/components/hazo_fb_form/views/front_office_view.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/views/front_office_view.js +1097 -0
- package/dist/components/hazo_fb_form/views/front_office_view.js.map +1 -0
- package/dist/components/hazo_fb_form/views/interim_view.d.ts +8 -0
- package/dist/components/hazo_fb_form/views/interim_view.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/views/interim_view.js +416 -0
- package/dist/components/hazo_fb_form/views/interim_view.js.map +1 -0
- package/dist/components/hazo_fb_form/views/summary_review_view.d.ts +15 -0
- package/dist/components/hazo_fb_form/views/summary_review_view.d.ts.map +1 -0
- package/dist/components/hazo_fb_form/views/summary_review_view.js +173 -0
- package/dist/components/hazo_fb_form/views/summary_review_view.js.map +1 -0
- package/dist/components/hazo_field_library/components/template_loader_dialog.d.ts.map +1 -1
- package/dist/components/hazo_field_library/components/template_loader_dialog.js +7 -7
- package/dist/components/hazo_field_library/components/template_loader_dialog.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/components/clarification_settings.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/components/clarification_settings.js +29 -2
- package/dist/components/hazo_validation_rule_editor/components/clarification_settings.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/components/rule_editor.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/components/rule_editor.js +4 -4
- package/dist/components/hazo_validation_rule_editor/components/rule_editor.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/context.d.ts +3 -2
- package/dist/components/hazo_validation_rule_editor/context.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/context.js +5 -1
- package/dist/components/hazo_validation_rule_editor/context.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/hooks/use_file_validation.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/hooks/use_file_validation.js +23 -7
- package/dist/components/hazo_validation_rule_editor/hooks/use_file_validation.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/index.d.ts +1 -1
- package/dist/components/hazo_validation_rule_editor/index.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/index.js.map +1 -1
- package/dist/components/hazo_validation_rule_editor/types.d.ts +10 -0
- package/dist/components/hazo_validation_rule_editor/types.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts +1 -1
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.d.ts.map +1 -1
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js +2 -2
- package/dist/components/hazo_validation_rule_editor/validation_rule_editor.js.map +1 -1
- package/dist/components/index.d.ts +10 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/shared/editor_theme/components.d.ts.map +1 -1
- package/dist/components/shared/editor_theme/components.js +35 -3
- package/dist/components/shared/editor_theme/components.js.map +1 -1
- package/dist/components/shared/file_bar/file_bar.d.ts +51 -0
- package/dist/components/shared/file_bar/file_bar.d.ts.map +1 -0
- package/dist/components/shared/file_bar/file_bar.js +91 -0
- package/dist/components/shared/file_bar/file_bar.js.map +1 -0
- package/dist/components/shared/file_bar/file_bar_tag.d.ts +10 -0
- package/dist/components/shared/file_bar/file_bar_tag.d.ts.map +1 -0
- package/dist/components/shared/file_bar/file_bar_tag.js +15 -0
- package/dist/components/shared/file_bar/file_bar_tag.js.map +1 -0
- package/dist/components/shared/file_bar/file_bar_types.d.ts +29 -0
- package/dist/components/shared/file_bar/file_bar_types.d.ts.map +1 -0
- package/dist/components/shared/file_bar/file_bar_types.js +5 -0
- package/dist/components/shared/file_bar/file_bar_types.js.map +1 -0
- package/dist/components/shared/file_bar/file_bar_validation.d.ts +11 -0
- package/dist/components/shared/file_bar/file_bar_validation.d.ts.map +1 -0
- package/dist/components/shared/file_bar/file_bar_validation.js +21 -0
- package/dist/components/shared/file_bar/file_bar_validation.js.map +1 -0
- package/dist/components/shared/file_bar/file_bar_validation_dialog.d.ts +13 -0
- package/dist/components/shared/file_bar/file_bar_validation_dialog.d.ts.map +1 -0
- package/dist/components/shared/file_bar/file_bar_validation_dialog.js +74 -0
- package/dist/components/shared/file_bar/file_bar_validation_dialog.js.map +1 -0
- package/dist/components/shared/file_bar/file_validation_issues_dialog.d.ts +24 -0
- package/dist/components/shared/file_bar/file_validation_issues_dialog.d.ts.map +1 -0
- package/dist/components/shared/file_bar/file_validation_issues_dialog.js +22 -0
- package/dist/components/shared/file_bar/file_validation_issues_dialog.js.map +1 -0
- package/dist/components/shared/file_bar/index.d.ts +13 -0
- package/dist/components/shared/file_bar/index.d.ts.map +1 -0
- package/dist/components/shared/file_bar/index.js +8 -0
- package/dist/components/shared/file_bar/index.js.map +1 -0
- package/dist/components/shared/strip_base_props.d.ts.map +1 -1
- package/dist/components/shared/strip_base_props.js +2 -0
- package/dist/components/shared/strip_base_props.js.map +1 -1
- package/dist/components/shared/summary_files/summary_files.d.ts +2 -2
- package/dist/components/shared/summary_files/summary_files.d.ts.map +1 -1
- package/dist/components/shared/summary_files/summary_files.js +31 -72
- package/dist/components/shared/summary_files/summary_files.js.map +1 -1
- package/dist/components/shared/use_base_form_field.d.ts +1 -0
- package/dist/components/shared/use_base_form_field.d.ts.map +1 -1
- package/dist/components/shared/use_base_form_field.js +2 -1
- package/dist/components/shared/use_base_form_field.js.map +1 -1
- package/dist/config/clarification_templates.d.ts.map +1 -1
- package/dist/config/clarification_templates.js +15 -5
- package/dist/config/clarification_templates.js.map +1 -1
- package/dist/lib/autofill_handler.d.ts +42 -23
- package/dist/lib/autofill_handler.d.ts.map +1 -1
- package/dist/lib/autofill_handler.js +74 -197
- package/dist/lib/autofill_handler.js.map +1 -1
- package/dist/lib/fb_form_handler.d.ts +63 -0
- package/dist/lib/fb_form_handler.d.ts.map +1 -0
- package/dist/lib/fb_form_handler.js +232 -0
- package/dist/lib/fb_form_handler.js.map +1 -0
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/validation_handler.d.ts.map +1 -1
- package/dist/lib/validation_handler.js +153 -0
- package/dist/lib/validation_handler.js.map +1 -1
- package/dist/types/clarification.d.ts +14 -1
- package/dist/types/clarification.d.ts.map +1 -1
- package/dist/types/fb_form_instance.d.ts +44 -0
- package/dist/types/fb_form_instance.d.ts.map +1 -0
- package/dist/types/fb_form_instance.js +10 -0
- package/dist/types/fb_form_instance.js.map +1 -0
- package/dist/types/file_manager.d.ts +2 -0
- package/dist/types/file_manager.d.ts.map +1 -1
- package/dist/types/file_textbox.d.ts +36 -0
- package/dist/types/file_textbox.d.ts.map +1 -0
- package/dist/types/file_textbox.js +59 -0
- package/dist/types/file_textbox.js.map +1 -0
- package/dist/types/index.d.ts +6 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/validation.d.ts +34 -2
- package/dist/types/validation.d.ts.map +1 -1
- package/dist/utils/dev_file_manager.d.ts +12 -0
- package/dist/utils/dev_file_manager.d.ts.map +1 -0
- package/dist/utils/dev_file_manager.js +54 -0
- package/dist/utils/dev_file_manager.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/rule_to_execution.d.ts +7 -0
- package/dist/utils/rule_to_execution.d.ts.map +1 -0
- package/dist/utils/rule_to_execution.js +18 -0
- package/dist/utils/rule_to_execution.js.map +1 -0
- package/dist/utils/section_helpers.d.ts +20 -0
- package/dist/utils/section_helpers.d.ts.map +1 -0
- package/dist/utils/section_helpers.js +37 -0
- package/dist/utils/section_helpers.js.map +1 -0
- package/package.json +53 -23
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document type editor component for managing FB Form classification document types.
|
|
3
|
+
*/
|
|
4
|
+
'use client';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useState } from 'react';
|
|
7
|
+
import { cn } from '../../../utils/cn.js';
|
|
8
|
+
import { HiPencil, HiTrash, HiPlus } from 'react-icons/hi';
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Sub-components
|
|
11
|
+
// ============================================================================
|
|
12
|
+
function TypeEditForm({ initial, existing_ids, on_save, on_cancel, }) {
|
|
13
|
+
const [state, set_state] = useState({
|
|
14
|
+
type_id: initial?.type_id ?? '',
|
|
15
|
+
type_label: initial?.type_label ?? '',
|
|
16
|
+
description: initial?.description ?? '',
|
|
17
|
+
});
|
|
18
|
+
const [error, set_error] = useState('');
|
|
19
|
+
const is_edit = !!initial;
|
|
20
|
+
const auto_id = (label) => label.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '');
|
|
21
|
+
const handle_label_change = (label) => {
|
|
22
|
+
set_state((s) => ({
|
|
23
|
+
...s,
|
|
24
|
+
type_label: label,
|
|
25
|
+
type_id: is_edit ? s.type_id : auto_id(label),
|
|
26
|
+
}));
|
|
27
|
+
set_error('');
|
|
28
|
+
};
|
|
29
|
+
const handle_save = () => {
|
|
30
|
+
if (!state.type_label.trim()) {
|
|
31
|
+
set_error('Label is required');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (!state.type_id.trim()) {
|
|
35
|
+
set_error('Type ID is required');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const id_conflict = existing_ids.has(state.type_id) && state.type_id !== initial?.type_id;
|
|
39
|
+
if (id_conflict) {
|
|
40
|
+
set_error(`Type ID "${state.type_id}" already exists`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
on_save({
|
|
44
|
+
type_id: state.type_id,
|
|
45
|
+
type_label: state.type_label,
|
|
46
|
+
...(state.description ? { description: state.description } : {}),
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
return (_jsxs("div", { className: "border rounded-md p-3 bg-muted/30 space-y-3", children: [_jsxs("div", { className: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-2 items-center", children: [_jsx("label", { className: "text-xs font-medium text-muted-foreground", children: "Label" }), _jsx("input", { type: "text", value: state.type_label, onChange: (e) => handle_label_change(e.target.value), placeholder: "e.g. PAYG Summary", className: "h-8 px-2 text-sm border rounded-md bg-background", autoFocus: true }), _jsx("label", { className: "text-xs font-medium text-muted-foreground", children: "Type ID" }), _jsx("input", { type: "text", value: state.type_id, onChange: (e) => { set_state((s) => ({ ...s, type_id: e.target.value })); set_error(''); }, placeholder: "e.g. payg_summary", className: cn('h-8 px-2 text-sm border rounded-md bg-background', is_edit && 'opacity-60'), readOnly: is_edit }), _jsx("label", { className: "text-xs font-medium text-muted-foreground self-start mt-1", children: "Description" }), _jsx("textarea", { value: state.description, onChange: (e) => set_state((s) => ({ ...s, description: e.target.value })), placeholder: "e.g. Pay As You Go payment summary document", className: "h-14 px-2 py-1 text-sm border rounded-md bg-background resize-none" })] }), error && _jsx("p", { className: "text-xs text-destructive", children: error }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: handle_save, className: "h-7 px-3 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90", children: "Save" }), _jsx("button", { type: "button", onClick: on_cancel, className: "h-7 px-3 text-xs font-medium rounded-md border hover:bg-muted", children: "Cancel" })] })] }));
|
|
50
|
+
}
|
|
51
|
+
function TypeRow({ doc_type, on_edit, on_delete, }) {
|
|
52
|
+
return (_jsxs("div", { className: "flex items-center gap-2 py-1.5 px-2 rounded-md hover:bg-muted/50 group", children: [_jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "text-sm truncate block", children: doc_type.type_label }), doc_type.description && (_jsx("span", { className: "text-xs text-muted-foreground truncate block", children: doc_type.description }))] }), _jsx("span", { className: "text-xs text-muted-foreground font-mono flex-shrink-0", children: doc_type.type_id }), _jsx("button", { type: "button", onClick: on_edit, className: "p-1 rounded hover:bg-muted opacity-0 group-hover:opacity-100 transition-opacity", title: "Edit type", children: _jsx(HiPencil, { className: "w-3.5 h-3.5" }) }), _jsx("button", { type: "button", onClick: on_delete, className: "p-1 rounded hover:bg-muted text-destructive opacity-0 group-hover:opacity-100 transition-opacity", title: "Delete type", children: _jsx(HiTrash, { className: "w-3.5 h-3.5" }) })] }));
|
|
53
|
+
}
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Main Component
|
|
56
|
+
// ============================================================================
|
|
57
|
+
export function FbDocumentTypeEditor({ types, on_types_change, className }) {
|
|
58
|
+
const [editing_id, set_editing_id] = useState(null);
|
|
59
|
+
const [is_adding, set_is_adding] = useState(false);
|
|
60
|
+
const existing_ids = new Set(types.map((t) => t.type_id));
|
|
61
|
+
const handle_save = (doc_type) => {
|
|
62
|
+
if (editing_id) {
|
|
63
|
+
on_types_change(types.map((t) => (t.type_id === editing_id ? doc_type : t)));
|
|
64
|
+
set_editing_id(null);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
on_types_change([...types, doc_type]);
|
|
68
|
+
set_is_adding(false);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const handle_delete = (type_id) => {
|
|
72
|
+
on_types_change(types.filter((t) => t.type_id !== type_id));
|
|
73
|
+
if (editing_id === type_id)
|
|
74
|
+
set_editing_id(null);
|
|
75
|
+
};
|
|
76
|
+
const handle_cancel = () => {
|
|
77
|
+
set_editing_id(null);
|
|
78
|
+
set_is_adding(false);
|
|
79
|
+
};
|
|
80
|
+
return (_jsxs("div", { className: cn('space-y-2', className), children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { className: "text-sm font-semibold", children: "Document Types" }), _jsxs("button", { type: "button", onClick: () => { set_is_adding(true); set_editing_id(null); }, disabled: is_adding, className: "inline-flex items-center gap-1 h-7 px-2 text-xs font-medium rounded-md border hover:bg-muted disabled:opacity-50", children: [_jsx(HiPlus, { className: "w-3.5 h-3.5" }), "Add"] })] }), _jsxs("div", { className: "border rounded-md divide-y", children: [types.length === 0 && !is_adding && (_jsx("p", { className: "text-xs text-muted-foreground p-3 text-center", children: "No document types defined" })), types.map((doc_type) => editing_id === doc_type.type_id ? (_jsx("div", { className: "p-2", children: _jsx(TypeEditForm, { initial: doc_type, existing_ids: existing_ids, on_save: handle_save, on_cancel: handle_cancel }) }, doc_type.type_id)) : (_jsx(TypeRow, { doc_type: doc_type, on_edit: () => { set_editing_id(doc_type.type_id); set_is_adding(false); }, on_delete: () => handle_delete(doc_type.type_id) }, doc_type.type_id))), is_adding && (_jsx("div", { className: "p-2", children: _jsx(TypeEditForm, { existing_ids: existing_ids, on_save: handle_save, on_cancel: handle_cancel }) }))] })] }));
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=fb_document_type_editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fb_document_type_editor.js","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/fb_document_type_editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tag editor component for managing FB Form classification tags.
|
|
3
|
+
*/
|
|
4
|
+
import type { FbTag } from '../types.js';
|
|
5
|
+
export interface FbTagEditorProps {
|
|
6
|
+
tags: FbTag[];
|
|
7
|
+
on_tags_change: (tags: FbTag[]) => void;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function FbTagEditor({ tags, on_tags_change, className }: FbTagEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=fb_tag_editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fb_tag_editor.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/fb_tag_editor.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAuBzC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwMD,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CA4EhF"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tag editor component for managing FB Form classification tags.
|
|
3
|
+
*/
|
|
4
|
+
'use client';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useState } from 'react';
|
|
7
|
+
import { cn } from '../../../utils/cn.js';
|
|
8
|
+
import { TagPill } from './tag_pill.js';
|
|
9
|
+
import { HiPencil, HiTrash, HiPlus } from 'react-icons/hi';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Constants
|
|
12
|
+
// ============================================================================
|
|
13
|
+
const TAG_COLORS = [
|
|
14
|
+
'bg-blue-100 text-blue-800',
|
|
15
|
+
'bg-green-100 text-green-800',
|
|
16
|
+
'bg-purple-100 text-purple-800',
|
|
17
|
+
'bg-amber-100 text-amber-800',
|
|
18
|
+
'bg-orange-100 text-orange-800',
|
|
19
|
+
'bg-red-100 text-red-800',
|
|
20
|
+
'bg-teal-100 text-teal-800',
|
|
21
|
+
'bg-pink-100 text-pink-800',
|
|
22
|
+
'bg-indigo-100 text-indigo-800',
|
|
23
|
+
];
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// Sub-components
|
|
26
|
+
// ============================================================================
|
|
27
|
+
function ColorSwatchPicker({ selected, on_select, }) {
|
|
28
|
+
return (_jsx("div", { className: "flex flex-wrap gap-1.5", children: TAG_COLORS.map((color) => {
|
|
29
|
+
const bg_class = color.split(' ')[0];
|
|
30
|
+
const is_selected = color === selected;
|
|
31
|
+
return (_jsx("button", { type: "button", onClick: () => on_select(color), className: cn('w-6 h-6 rounded-full border-2 transition-all', bg_class, is_selected ? 'border-foreground scale-110' : 'border-transparent hover:border-muted-foreground/50'), title: bg_class.replace('bg-', '').replace('-100', '') }, color));
|
|
32
|
+
}) }));
|
|
33
|
+
}
|
|
34
|
+
function TagEditForm({ initial, existing_ids, on_save, on_cancel, }) {
|
|
35
|
+
const [state, set_state] = useState({
|
|
36
|
+
tag_id: initial?.tag_id ?? '',
|
|
37
|
+
tag_label: initial?.tag_label ?? '',
|
|
38
|
+
color: initial?.color ?? TAG_COLORS[0],
|
|
39
|
+
description: initial?.description ?? '',
|
|
40
|
+
});
|
|
41
|
+
const [error, set_error] = useState('');
|
|
42
|
+
const is_edit = !!initial;
|
|
43
|
+
const auto_id = (label) => label.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '');
|
|
44
|
+
const handle_label_change = (label) => {
|
|
45
|
+
set_state((s) => ({
|
|
46
|
+
...s,
|
|
47
|
+
tag_label: label,
|
|
48
|
+
tag_id: is_edit ? s.tag_id : auto_id(label),
|
|
49
|
+
}));
|
|
50
|
+
set_error('');
|
|
51
|
+
};
|
|
52
|
+
const handle_save = () => {
|
|
53
|
+
if (!state.tag_label.trim()) {
|
|
54
|
+
set_error('Label is required');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (!state.tag_id.trim()) {
|
|
58
|
+
set_error('Tag ID is required');
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const id_conflict = existing_ids.has(state.tag_id) && state.tag_id !== initial?.tag_id;
|
|
62
|
+
if (id_conflict) {
|
|
63
|
+
set_error(`Tag ID "${state.tag_id}" already exists`);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
on_save({
|
|
67
|
+
tag_id: state.tag_id,
|
|
68
|
+
tag_label: state.tag_label,
|
|
69
|
+
color: state.color,
|
|
70
|
+
...(state.description ? { description: state.description } : {}),
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
return (_jsxs("div", { className: "border rounded-md p-3 bg-muted/30 space-y-3", children: [_jsxs("div", { className: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-2 items-center", children: [_jsx("label", { className: "text-xs font-medium text-muted-foreground", children: "Label" }), _jsx("input", { type: "text", value: state.tag_label, onChange: (e) => handle_label_change(e.target.value), placeholder: "e.g. Salary/Wages", className: "h-8 px-2 text-sm border rounded-md bg-background", autoFocus: true }), _jsx("label", { className: "text-xs font-medium text-muted-foreground", children: "Tag ID" }), _jsx("input", { type: "text", value: state.tag_id, onChange: (e) => { set_state((s) => ({ ...s, tag_id: e.target.value })); set_error(''); }, placeholder: "e.g. salary_wages", className: cn('h-8 px-2 text-sm border rounded-md bg-background', is_edit && 'opacity-60'), readOnly: is_edit }), _jsx("label", { className: "text-xs font-medium text-muted-foreground", children: "Color" }), _jsx(ColorSwatchPicker, { selected: state.color, on_select: (c) => set_state((s) => ({ ...s, color: c })) }), _jsx("label", { className: "text-xs font-medium text-muted-foreground self-start mt-1", children: "Description" }), _jsx("textarea", { value: state.description, onChange: (e) => set_state((s) => ({ ...s, description: e.target.value })), placeholder: "e.g. Includes PAYG summaries, group certificates, income statements", className: "h-14 px-2 py-1 text-sm border rounded-md bg-background resize-none" }), _jsx("label", { className: "text-xs font-medium text-muted-foreground", children: "Preview" }), _jsx("div", { children: _jsx(TagPill, { tag: { tag_id: state.tag_id || 'preview', tag_label: state.tag_label || 'Preview', color: state.color } }) })] }), error && _jsx("p", { className: "text-xs text-destructive", children: error }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: handle_save, className: "h-7 px-3 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90", children: "Save" }), _jsx("button", { type: "button", onClick: on_cancel, className: "h-7 px-3 text-xs font-medium rounded-md border hover:bg-muted", children: "Cancel" })] })] }));
|
|
74
|
+
}
|
|
75
|
+
function TagRow({ tag, on_edit, on_delete, }) {
|
|
76
|
+
const bg_class = (tag.color || 'bg-muted').split(' ')[0];
|
|
77
|
+
return (_jsxs("div", { className: "flex items-center gap-2 py-1.5 px-2 rounded-md hover:bg-muted/50 group", children: [_jsx("span", { className: cn('w-3 h-3 rounded-full flex-shrink-0', bg_class) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "text-sm truncate block", children: tag.tag_label }), tag.description && (_jsx("span", { className: "text-xs text-muted-foreground truncate block", children: tag.description }))] }), _jsx("span", { className: "text-xs text-muted-foreground font-mono flex-shrink-0", children: tag.tag_id }), _jsx("button", { type: "button", onClick: on_edit, className: "p-1 rounded hover:bg-muted opacity-0 group-hover:opacity-100 transition-opacity", title: "Edit tag", children: _jsx(HiPencil, { className: "w-3.5 h-3.5" }) }), _jsx("button", { type: "button", onClick: on_delete, className: "p-1 rounded hover:bg-muted text-destructive opacity-0 group-hover:opacity-100 transition-opacity", title: "Delete tag", children: _jsx(HiTrash, { className: "w-3.5 h-3.5" }) })] }));
|
|
78
|
+
}
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// Main Component
|
|
81
|
+
// ============================================================================
|
|
82
|
+
export function FbTagEditor({ tags, on_tags_change, className }) {
|
|
83
|
+
const [editing_id, set_editing_id] = useState(null);
|
|
84
|
+
const [is_adding, set_is_adding] = useState(false);
|
|
85
|
+
const existing_ids = new Set(tags.map((t) => t.tag_id));
|
|
86
|
+
const handle_save = (tag) => {
|
|
87
|
+
if (editing_id) {
|
|
88
|
+
on_tags_change(tags.map((t) => (t.tag_id === editing_id ? tag : t)));
|
|
89
|
+
set_editing_id(null);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
on_tags_change([...tags, tag]);
|
|
93
|
+
set_is_adding(false);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const handle_delete = (tag_id) => {
|
|
97
|
+
on_tags_change(tags.filter((t) => t.tag_id !== tag_id));
|
|
98
|
+
if (editing_id === tag_id)
|
|
99
|
+
set_editing_id(null);
|
|
100
|
+
};
|
|
101
|
+
const handle_cancel = () => {
|
|
102
|
+
set_editing_id(null);
|
|
103
|
+
set_is_adding(false);
|
|
104
|
+
};
|
|
105
|
+
return (_jsxs("div", { className: cn('space-y-2', className), children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { className: "text-sm font-semibold", children: "Classification Tags" }), _jsxs("button", { type: "button", onClick: () => { set_is_adding(true); set_editing_id(null); }, disabled: is_adding, className: "inline-flex items-center gap-1 h-7 px-2 text-xs font-medium rounded-md border hover:bg-muted disabled:opacity-50", children: [_jsx(HiPlus, { className: "w-3.5 h-3.5" }), "Add"] })] }), _jsxs("div", { className: "border rounded-md divide-y", children: [tags.length === 0 && !is_adding && (_jsx("p", { className: "text-xs text-muted-foreground p-3 text-center", children: "No tags defined" })), tags.map((tag) => editing_id === tag.tag_id ? (_jsx("div", { className: "p-2", children: _jsx(TagEditForm, { initial: tag, existing_ids: existing_ids, on_save: handle_save, on_cancel: handle_cancel }) }, tag.tag_id)) : (_jsx(TagRow, { tag: tag, on_edit: () => { set_editing_id(tag.tag_id); set_is_adding(false); }, on_delete: () => handle_delete(tag.tag_id) }, tag.tag_id))), is_adding && (_jsx("div", { className: "p-2", children: _jsx(TagEditForm, { existing_ids: existing_ids, on_save: handle_save, on_cancel: handle_cancel }) }))] })] }));
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=fb_tag_editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fb_tag_editor.js","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/fb_tag_editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Front Office Stepper - Horizontal pill-stepper navigation for front office wizard flow.
|
|
3
|
+
* Visually subordinate to top-level tabs, using numbered circles + chevron separators.
|
|
4
|
+
*/
|
|
5
|
+
export interface FrontOfficeStepperProps {
|
|
6
|
+
steps: Array<{
|
|
7
|
+
label: string;
|
|
8
|
+
badge_count?: number;
|
|
9
|
+
}>;
|
|
10
|
+
active_step: number;
|
|
11
|
+
completed_steps: Set<number>;
|
|
12
|
+
on_step_click: (step: number) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function FrontOfficeStepper({ steps, active_step, completed_steps, on_step_click }: FrontOfficeStepperProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=front_office_stepper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"front_office_stepper.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/front_office_stepper.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,uBAAuB,2CAuDjH"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Front Office Stepper - Horizontal pill-stepper navigation for front office wizard flow.
|
|
3
|
+
* Visually subordinate to top-level tabs, using numbered circles + chevron separators.
|
|
4
|
+
*/
|
|
5
|
+
'use client';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { HiChevronRight } from 'react-icons/hi';
|
|
9
|
+
export function FrontOfficeStepper({ steps, active_step, completed_steps, on_step_click }) {
|
|
10
|
+
return (_jsx("div", { className: "bg-muted/15 rounded-lg px-4 py-2.5 mb-4 border border-border/20", children: _jsx("div", { className: "flex items-center gap-1", children: steps.map((step, i) => {
|
|
11
|
+
const is_active = i === active_step;
|
|
12
|
+
const is_completed = completed_steps.has(i);
|
|
13
|
+
const is_clickable = true;
|
|
14
|
+
return (_jsxs(React.Fragment, { children: [i > 0 && (_jsx(HiChevronRight, { className: "h-4 w-4 text-muted-foreground/40 mx-2 flex-shrink-0" })), _jsxs("button", { type: "button", onClick: () => is_clickable && on_step_click(i), className: `flex items-center gap-2 px-1 py-1 rounded-md transition-colors ${is_clickable ? 'cursor-pointer hover:bg-muted/50' : 'cursor-default'}`, disabled: !is_clickable, children: [_jsx("span", { className: `flex items-center justify-center w-6 h-6 rounded-full text-xs font-medium flex-shrink-0 ${is_active
|
|
15
|
+
? 'bg-primary text-primary-foreground'
|
|
16
|
+
: 'bg-muted text-muted-foreground'}`, children: String.fromCharCode(65 + i) }), _jsx("span", { className: `text-sm whitespace-nowrap ${is_active
|
|
17
|
+
? 'font-semibold text-foreground'
|
|
18
|
+
: 'text-muted-foreground'}`, children: step.label }), step.badge_count != null && step.badge_count > 0 && (_jsx("span", { className: "text-[10px] bg-red-100 text-red-600 px-1.5 py-px rounded font-medium", children: step.badge_count }))] })] }, i));
|
|
19
|
+
}) }) }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=front_office_stepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"front_office_stepper.js","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/front_office_stepper.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,CAAC;;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAW,cAAc,EAAE,MAAM,gBAAgB,CAAC;AASzD,MAAM,UAAU,kBAAkB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAA2B;IAChH,OAAO,CACL,cAAK,SAAS,EAAC,iEAAiE,YAC9E,cAAK,SAAS,EAAC,yBAAyB,YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACrB,MAAM,SAAS,GAAG,CAAC,KAAK,WAAW,CAAC;gBACpC,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,YAAY,GAAG,IAAI,CAAC;gBAE1B,OAAO,CACL,MAAC,KAAK,CAAC,QAAQ,eACZ,CAAC,GAAG,CAAC,IAAI,CACR,KAAC,cAAc,IAAC,SAAS,EAAC,qDAAqD,GAAG,CACnF,EACD,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,EAC/C,SAAS,EAAE,kEACT,YAAY,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,gBACtD,EAAE,EACF,QAAQ,EAAE,CAAC,YAAY,aAGvB,eACE,SAAS,EAAE,2FACT,SAAS;wCACP,CAAC,CAAC,oCAAoC;wCACtC,CAAC,CAAC,gCACN,EAAE,YAED,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,GACvB,EAEP,eACE,SAAS,EAAE,6BACT,SAAS;wCACP,CAAC,CAAC,+BAA+B;wCACjC,CAAC,CAAC,uBACN,EAAE,YAED,IAAI,CAAC,KAAK,GACN,EAEN,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CACnD,eAAM,SAAS,EAAC,sEAAsE,YACnF,IAAI,CAAC,WAAW,GACZ,CACR,IACM,KAtCU,CAAC,CAuCL,CAClB,CAAC;YACJ,CAAC,CAAC,GACE,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InstanceSidebar - Lists form instances for multi-instance mode.
|
|
3
|
+
* Sorted by created_at ascending (oldest first), numbered starting at (1).
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { FbFormInstance } from '../../../types/fb_form_instance.js';
|
|
7
|
+
interface InstanceSidebarProps {
|
|
8
|
+
instances: FbFormInstance[];
|
|
9
|
+
active_instance_id: string;
|
|
10
|
+
on_instance_change: (instance_id: string) => void;
|
|
11
|
+
on_create?: () => Promise<FbFormInstance | null>;
|
|
12
|
+
user_role?: 'author' | 'responder';
|
|
13
|
+
instance_badge_render?: (instance: FbFormInstance) => React.ReactNode;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function InstanceSidebar({ instances, active_instance_id, on_instance_change, on_create, user_role, instance_badge_render, className }: InstanceSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare namespace InstanceSidebar {
|
|
18
|
+
var displayName: string;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=instance_sidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance_sidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/instance_sidebar.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,oCAAoC,CAAC;AAI3F,UAAU,oBAAoB;IAC5B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACnC,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CA0FlK;yBA1Fe,eAAe"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InstanceSidebar - Lists form instances for multi-instance mode.
|
|
3
|
+
* Sorted by created_at ascending (oldest first), numbered starting at (1).
|
|
4
|
+
*/
|
|
5
|
+
'use client';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import { cn } from '../../../utils/cn.js';
|
|
9
|
+
import { is_fb_terminal_status } from '../../../types/fb_form_instance.js';
|
|
10
|
+
import { HiPlus } from 'react-icons/hi';
|
|
11
|
+
const STATUS_STYLES = {
|
|
12
|
+
draft: { bg: 'bg-gray-100', text: 'text-gray-600', label: 'Draft' },
|
|
13
|
+
sent_to_client: { bg: 'bg-blue-100', text: 'text-blue-700', label: 'Sent to Client' },
|
|
14
|
+
client_submitted: { bg: 'bg-indigo-100', text: 'text-indigo-700', label: 'Client Submitted' },
|
|
15
|
+
client_submitted_auto_review: { bg: 'bg-purple-100', text: 'text-purple-700', label: 'Auto Review' },
|
|
16
|
+
completed: { bg: 'bg-green-100', text: 'text-green-700', label: 'Completed' },
|
|
17
|
+
cancelled: { bg: 'bg-red-100', text: 'text-red-600', label: 'Cancelled' },
|
|
18
|
+
archived: { bg: 'bg-gray-50', text: 'text-gray-400', label: 'Archived' },
|
|
19
|
+
active: { bg: 'bg-blue-100', text: 'text-blue-700', label: 'Active' }, // @deprecated alias
|
|
20
|
+
};
|
|
21
|
+
function format_time(iso_string) {
|
|
22
|
+
try {
|
|
23
|
+
const date = new Date(iso_string);
|
|
24
|
+
return date.toLocaleTimeString('en-AU', { hour: '2-digit', minute: '2-digit' });
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return '';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export function InstanceSidebar({ instances, active_instance_id, on_instance_change, on_create, user_role, instance_badge_render, className }) {
|
|
31
|
+
const [creating, set_creating] = useState(false);
|
|
32
|
+
// Sort by created_at ascending (oldest first, newest at bottom)
|
|
33
|
+
const sorted = [...instances].sort((a, b) => new Date(a.created_at).getTime() - new Date(b.created_at).getTime());
|
|
34
|
+
const handle_create = async () => {
|
|
35
|
+
if (!on_create || creating)
|
|
36
|
+
return;
|
|
37
|
+
set_creating(true);
|
|
38
|
+
try {
|
|
39
|
+
await on_create();
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
set_creating(false);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("div", { className: cn('cls_fb_instance_sidebar w-[200px] flex-shrink-0 border-r border-border/50 bg-muted/10 flex flex-col h-full', className), children: [_jsxs("div", { className: "flex items-center justify-between px-3 py-2.5 border-b border-border/50", children: [_jsx("span", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: "Instances" }), on_create && user_role !== 'responder' && (_jsx("button", { type: "button", onClick: handle_create, disabled: creating, className: cn('h-5 w-5 inline-flex items-center justify-center rounded transition-colors', creating
|
|
46
|
+
? 'text-muted-foreground cursor-wait'
|
|
47
|
+
: 'text-muted-foreground hover:text-primary hover:bg-primary/10'), title: "New instance", children: _jsx(HiPlus, { className: cn('h-3.5 w-3.5', creating && 'animate-pulse') }) }))] }), _jsxs("div", { className: "flex-1 overflow-y-auto", children: [sorted.map((instance, index) => {
|
|
48
|
+
const is_active = instance.instance_id === active_instance_id;
|
|
49
|
+
const is_completed = is_fb_terminal_status(instance.status);
|
|
50
|
+
const style = STATUS_STYLES[instance.status];
|
|
51
|
+
const number = index + 1;
|
|
52
|
+
return (_jsx("button", { type: "button", onClick: () => on_instance_change(instance.instance_id), className: cn('w-full text-left px-3 py-2 transition-colors', is_active
|
|
53
|
+
? 'bg-primary/8 border-l-2 border-l-primary'
|
|
54
|
+
: 'hover:bg-muted/40 border-l-2 border-l-transparent', is_completed && !is_active && 'opacity-50'), title: format_time(instance.created_at), children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: cn('inline-flex items-center justify-center h-5 w-5 rounded-full text-[10px] font-bold flex-shrink-0', is_active ? 'bg-primary text-primary-foreground' : 'bg-muted/80 text-muted-foreground'), children: number }), _jsx("div", { className: "flex-1 min-w-0", children: _jsx("div", { className: cn('text-xs font-medium truncate', is_active ? 'text-foreground' : 'text-muted-foreground'), children: instance.label }) }), _jsx("span", { className: cn('text-[9px] px-1.5 py-px rounded font-medium flex-shrink-0', style.bg, style.text), children: style.label }), instance_badge_render && instance_badge_render(instance)] }) }, instance.instance_id));
|
|
55
|
+
}), instances.length === 0 && (_jsx("div", { className: "px-3 py-6 text-center text-[11px] text-muted-foreground/60", children: "No instances yet" }))] })] }));
|
|
56
|
+
}
|
|
57
|
+
InstanceSidebar.displayName = 'InstanceSidebar';
|
|
58
|
+
//# sourceMappingURL=instance_sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance_sidebar.js","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/instance_sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run button with dropdown for run modes and progress indicator.
|
|
3
|
+
* Phase 1 ("Run"): classify + validate.
|
|
4
|
+
* Phase 2 ("Complete"): route + autofill.
|
|
5
|
+
*/
|
|
6
|
+
import type { FbRunProgress, FbRunMode, FbClassificationResult, FbUnassignedFile, FbGroupAutofillLog } from '../types.js';
|
|
7
|
+
export interface RunButtonProps {
|
|
8
|
+
progress: FbRunProgress;
|
|
9
|
+
on_run: (mode?: FbRunMode) => void;
|
|
10
|
+
/** Phase 2: route eligible files + autofill */
|
|
11
|
+
on_complete?: () => void;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
classification_results?: FbClassificationResult[];
|
|
15
|
+
unassigned_files?: FbUnassignedFile[];
|
|
16
|
+
group_autofill_log?: Record<string, FbGroupAutofillLog>;
|
|
17
|
+
}
|
|
18
|
+
export declare function RunButton({ progress, on_run, on_complete, disabled, className, classification_results, unassigned_files, group_autofill_log }: RunButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=run_button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_button.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/run_button.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE1H,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAClD,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACzD;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAA2B,EAAE,gBAAqB,EAAE,kBAAuB,EAAE,EAAE,cAAc,2CAgK5K"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run button with dropdown for run modes and progress indicator.
|
|
3
|
+
* Phase 1 ("Run"): classify + validate.
|
|
4
|
+
* Phase 2 ("Complete"): route + autofill.
|
|
5
|
+
*/
|
|
6
|
+
'use client';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
8
|
+
import { useState, useRef, useEffect } from 'react';
|
|
9
|
+
import { cn } from '../../../utils/cn.js';
|
|
10
|
+
import { FaSpinner } from 'react-icons/fa';
|
|
11
|
+
import { HiPlay, HiCheck, HiExclamationCircle, HiChevronDown } from 'react-icons/hi';
|
|
12
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, } from '../../shared/dialog/index.js';
|
|
13
|
+
import { RunDetailsDialog } from './run_details_dialog.js';
|
|
14
|
+
export function RunButton({ progress, on_run, on_complete, disabled, className, classification_results = [], unassigned_files = [], group_autofill_log = {} }) {
|
|
15
|
+
const is_running = progress.status === 'classifying' || progress.status === 'validating' || progress.status === 'routing';
|
|
16
|
+
const has_run = progress.status === 'done' || progress.status === 'error' || progress.status === 'validated';
|
|
17
|
+
const [dropdown_open, set_dropdown_open] = useState(false);
|
|
18
|
+
const [errors_open, set_errors_open] = useState(false);
|
|
19
|
+
const [details_open, set_details_open] = useState(false);
|
|
20
|
+
const dropdown_ref = useRef(null);
|
|
21
|
+
// Close dropdown on outside click
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!dropdown_open)
|
|
24
|
+
return;
|
|
25
|
+
const handle_click = (e) => {
|
|
26
|
+
if (dropdown_ref.current && !dropdown_ref.current.contains(e.target)) {
|
|
27
|
+
set_dropdown_open(false);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
document.addEventListener('mousedown', handle_click);
|
|
31
|
+
return () => document.removeEventListener('mousedown', handle_click);
|
|
32
|
+
}, [dropdown_open]);
|
|
33
|
+
const button_label = is_running ? 'Processing...' : has_run ? 'Run Again' : 'Run';
|
|
34
|
+
const button_icon = is_running ? (_jsx(FaSpinner, { className: "h-4 w-4 animate-spin" })) : progress.status === 'done' ? (_jsx(HiCheck, { className: "h-4 w-4" })) : progress.status === 'validated' ? (_jsx(HiCheck, { className: "h-4 w-4" })) : progress.status === 'error' ? (_jsx(HiExclamationCircle, { className: "h-4 w-4" })) : (_jsx(HiPlay, { className: "h-4 w-4" }));
|
|
35
|
+
const error_details = progress.error_details ?? [];
|
|
36
|
+
return (_jsxs("div", { className: cn('flex items-center gap-3', className), children: [_jsxs("div", { className: "relative inline-flex", ref: dropdown_ref, children: [_jsxs("button", { type: "button", onClick: () => on_run('new_only'), disabled: disabled || is_running, className: cn('inline-flex items-center gap-2 px-4 py-2 text-sm font-medium transition-colors', 'bg-primary text-primary-foreground hover:bg-primary/90', 'disabled:opacity-50 disabled:cursor-not-allowed', has_run ? 'rounded-l-md' : 'rounded-md'), children: [button_icon, button_label] }), has_run && (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => set_dropdown_open(!dropdown_open), disabled: disabled || is_running, className: cn('inline-flex items-center px-2 py-2 text-sm font-medium transition-colors border-l border-primary-foreground/20', 'bg-primary text-primary-foreground hover:bg-primary/90 rounded-r-md', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: _jsx(HiChevronDown, { className: "h-4 w-4" }) }), dropdown_open && (_jsx("div", { className: "absolute right-0 top-full mt-1 z-50 min-w-[160px] rounded-md border shadow-md py-1", style: { backgroundColor: 'hsl(var(--popover))' }, children: _jsx("button", { type: "button", onClick: () => { set_dropdown_open(false); on_run('all'); }, className: "w-full text-left px-3 py-1.5 text-sm hover:bg-accent whitespace-nowrap", children: "Run All Again" }) }))] }))] }), is_running && progress.current_step && (_jsx("span", { className: "text-sm text-muted-foreground", children: progress.current_step })), progress.status === 'validated' && on_complete && (_jsx("button", { type: "button", onClick: on_complete, disabled: disabled, className: cn('inline-flex items-center gap-2 px-4 py-2 text-sm font-medium transition-colors rounded-md', 'bg-green-600 text-white hover:bg-green-700', 'disabled:opacity-50 disabled:cursor-not-allowed'), children: "Complete" })), progress.status === 'done' && (_jsx("button", { type: "button", onClick: () => set_details_open(true), className: "text-sm text-green-600 hover:underline cursor-pointer", children: "Complete" })), progress.status === 'error' && progress.error && (_jsx("button", { type: "button", onClick: () => set_errors_open(true), className: "text-sm text-destructive hover:underline cursor-pointer", children: progress.error })), _jsx(RunDetailsDialog, { open: details_open, on_open_change: set_details_open, progress: progress, classification_results: classification_results, unassigned_files: unassigned_files, group_autofill_log: group_autofill_log }), _jsx(Dialog, { open: errors_open, onOpenChange: set_errors_open, children: _jsxs(DialogContent, { className: "max-w-lg max-h-[80vh] overflow-y-auto", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Processing Errors" }), _jsxs(DialogDescription, { children: [error_details.length, " error(s) occurred during the last run."] })] }), _jsx("div", { className: "space-y-2 mt-2", children: error_details.map((err, i) => (_jsxs("div", { className: "rounded-md border p-3 text-sm", children: [_jsx("div", { className: "font-medium text-foreground", children: err.step }), _jsx("div", { className: "text-muted-foreground mt-0.5", children: err.error })] }, i))) })] }) })] }));
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=run_button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_button.js","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/run_button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialog showing details of the last FB Form run — classification results,
|
|
3
|
+
* autofill results, and expandable raw request/response JSON for each API call.
|
|
4
|
+
*/
|
|
5
|
+
import type { FbRunProgress, FbClassificationResult, FbUnassignedFile, FbGroupAutofillLog } from '../types.js';
|
|
6
|
+
export interface RunDetailsDialogProps {
|
|
7
|
+
open: boolean;
|
|
8
|
+
on_open_change: (open: boolean) => void;
|
|
9
|
+
progress: FbRunProgress;
|
|
10
|
+
classification_results: FbClassificationResult[];
|
|
11
|
+
unassigned_files: FbUnassignedFile[];
|
|
12
|
+
group_autofill_log: Record<string, FbGroupAutofillLog>;
|
|
13
|
+
/** Whether to show the API call log sections (default: true) */
|
|
14
|
+
show_run_log?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function RunDetailsDialog({ open, on_open_change, progress, classification_results, unassigned_files, group_autofill_log, show_run_log, }: RunDetailsDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=run_details_dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_details_dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/run_details_dialog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,aAAa,CAAC;IACxB,sBAAsB,EAAE,sBAAsB,EAAE,CAAC;IACjD,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACvD,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA2CD,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACb,EAAE,qBAAqB,2CA4KvB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dialog showing details of the last FB Form run — classification results,
|
|
3
|
+
* autofill results, and expandable raw request/response JSON for each API call.
|
|
4
|
+
*/
|
|
5
|
+
'use client';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { useState } from 'react';
|
|
8
|
+
import { cn } from '../../../utils/cn.js';
|
|
9
|
+
import { HiChevronDown, HiChevronRight } from 'react-icons/hi';
|
|
10
|
+
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, } from '../../shared/dialog/index.js';
|
|
11
|
+
function JsonAccordion({ label, data }) {
|
|
12
|
+
const [open, set_open] = useState(false);
|
|
13
|
+
return (_jsxs("div", { className: "border rounded-md text-xs mt-1", children: [_jsxs("button", { type: "button", onClick: () => set_open(!open), className: "flex items-center gap-1 w-full px-2 py-1 text-left text-muted-foreground hover:bg-muted/50", children: [open ? _jsx(HiChevronDown, { className: "h-3 w-3 flex-shrink-0" }) : _jsx(HiChevronRight, { className: "h-3 w-3 flex-shrink-0" }), label] }), open && (_jsx("pre", { className: "px-2 py-1 overflow-auto max-h-[300px] bg-muted/30 text-[11px] leading-tight whitespace-pre-wrap break-all", children: JSON.stringify(data, null, 2) }))] }));
|
|
14
|
+
}
|
|
15
|
+
function LogEntryCard({ entry }) {
|
|
16
|
+
const date = new Date(entry.timestamp);
|
|
17
|
+
const time_str = date.toLocaleTimeString();
|
|
18
|
+
return (_jsxs("div", { className: "rounded-md border p-3 text-sm space-y-1", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "font-medium", children: entry.label }), _jsxs("span", { className: "text-xs text-muted-foreground", children: [time_str, " (", entry.duration_ms, "ms)"] })] }), (entry.prompt_area || entry.prompt_key) && (_jsxs("div", { className: "text-xs text-muted-foreground", children: ["Prompt: ", _jsxs("span", { className: "font-mono", children: [entry.prompt_area, "/", entry.prompt_key] })] })), _jsx(JsonAccordion, { label: "Request", data: entry.request }), _jsx(JsonAccordion, { label: "Response", data: entry.response })] }));
|
|
19
|
+
}
|
|
20
|
+
export function RunDetailsDialog({ open, on_open_change, progress, classification_results, unassigned_files, group_autofill_log, show_run_log, }) {
|
|
21
|
+
const show_log = show_run_log !== false;
|
|
22
|
+
const run_log = progress.run_log ?? [];
|
|
23
|
+
const classify_entries = run_log.filter((e) => e.step === 'classify');
|
|
24
|
+
const autofill_entries = run_log.filter((e) => e.step === 'autofill');
|
|
25
|
+
const error_details = progress.error_details ?? [];
|
|
26
|
+
// Summary stats
|
|
27
|
+
const total_files_classified = classification_results.reduce((sum, c) => sum + c.file_classifications.length, 0);
|
|
28
|
+
const total_routed = total_files_classified - unassigned_files.length;
|
|
29
|
+
const autofill_groups = Object.keys(group_autofill_log);
|
|
30
|
+
return (_jsx(Dialog, { open: open, onOpenChange: on_open_change, children: _jsxs(DialogContent, { className: "max-w-2xl max-h-[85vh] overflow-y-auto", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Run Details" }), _jsx(DialogDescription, { children: run_log.length > 0 && (_jsxs("span", { children: [run_log.length, " API call(s) at ", new Date(run_log[0].timestamp).toLocaleString()] })) })] }), _jsxs("div", { className: "grid grid-cols-2 gap-2 text-sm mt-2", children: [_jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Files classified" }), _jsx("div", { className: "font-medium", children: total_files_classified })] }), _jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Files routed" }), _jsx("div", { className: "font-medium", children: total_routed })] }), _jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Unassigned" }), _jsx("div", { className: cn('font-medium', unassigned_files.length > 0 && 'text-amber-600'), children: unassigned_files.length })] }), _jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Errors" }), _jsx("div", { className: cn('font-medium', error_details.length > 0 && 'text-destructive'), children: error_details.length })] })] }), classification_results.length > 0 && (_jsxs("div", { className: "mt-4", children: [_jsx("h3", { className: "text-sm font-medium mb-2", children: "Classification Results" }), _jsx("div", { className: "space-y-2", children: classification_results.map((cls) => (_jsxs("div", { className: "rounded-md border p-3 text-sm", children: [_jsx("div", { className: "font-medium mb-1", children: cls.field_id }), _jsxs("div", { className: "text-xs text-muted-foreground mb-1", children: ["Tags: ", cls.tags.length > 0 ? cls.tags.join(', ') : 'none'] }), cls.file_classifications.map((fc) => (_jsxs("div", { className: "flex items-start gap-2 text-xs py-0.5", children: [_jsx("span", { className: "font-mono truncate max-w-[200px]", title: fc.file_name, children: fc.file_name }), _jsxs("span", { className: "text-muted-foreground", children: ["[", fc.tags.join(', '), "]", fc.document_date && ` | ${fc.document_date}`, fc.document_nature && ` | ${fc.document_nature}`] })] }, fc.file_id)))] }, cls.field_id))) })] })), autofill_groups.length > 0 && (_jsxs("div", { className: "mt-4", children: [_jsx("h3", { className: "text-sm font-medium mb-2", children: "Autofill Results" }), _jsx("div", { className: "space-y-2", children: autofill_groups.map((group_id) => {
|
|
31
|
+
const log = group_autofill_log[group_id];
|
|
32
|
+
return (_jsxs("div", { className: "rounded-md border p-3 text-sm", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "font-medium", children: group_id }), _jsx("span", { className: cn('text-xs px-1.5 py-0.5 rounded-full', log.status === 'success' && 'bg-green-100 text-green-700', log.status === 'error' && 'bg-red-100 text-red-700', log.status === 'empty' && 'bg-gray-100 text-gray-600'), children: log.status })] }), _jsx("div", { className: "text-xs text-muted-foreground mt-0.5", children: log.message }), log.details && log.details.length > 0 && (_jsx("div", { className: "mt-1 space-y-0.5", children: log.details.map((d, i) => (_jsxs("div", { className: "text-xs flex gap-2", children: [_jsxs("span", { className: "text-muted-foreground", children: [d.field_label, ":"] }), _jsx("span", { children: d.value_summary }), _jsxs("span", { className: "text-muted-foreground", children: ["(", d.file_name, ")"] })] }, i))) }))] }, group_id));
|
|
33
|
+
}) })] })), unassigned_files.length > 0 && (_jsxs("div", { className: "mt-4", children: [_jsx("h3", { className: "text-sm font-medium mb-2", children: "Unassigned Files" }), _jsx("div", { className: "space-y-1", children: unassigned_files.map((f) => (_jsxs("div", { className: "rounded-md border p-2 text-xs flex items-center gap-2", children: [_jsx("span", { className: "font-mono truncate max-w-[200px]", children: f.file_name }), _jsxs("span", { className: "text-muted-foreground", children: ["[", f.tags.join(', '), "]"] })] }, f.file_id))) })] })), show_log && classify_entries.length > 0 && (_jsxs("div", { className: "mt-4", children: [_jsx("h3", { className: "text-sm font-medium mb-2", children: "Classification API Calls" }), _jsx("div", { className: "space-y-2", children: classify_entries.map((entry, i) => (_jsx(LogEntryCard, { entry: entry }, i))) })] })), show_log && autofill_entries.length > 0 && (_jsxs("div", { className: "mt-4", children: [_jsx("h3", { className: "text-sm font-medium mb-2", children: "Autofill API Calls" }), _jsx("div", { className: "space-y-2", children: autofill_entries.map((entry, i) => (_jsx(LogEntryCard, { entry: entry }, i))) })] })), error_details.length > 0 && (_jsxs("div", { className: "mt-4", children: [_jsx("h3", { className: "text-sm font-medium mb-2 text-destructive", children: "Errors" }), _jsx("div", { className: "space-y-1", children: error_details.map((err, i) => (_jsxs("div", { className: "rounded-md border border-destructive/30 p-2 text-xs", children: [_jsxs("span", { className: "font-medium", children: [err.step, ":"] }), " ", err.error] }, i))) })] }))] }) }));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=run_details_dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run_details_dialog.js","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/run_details_dialog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AAoBtC,SAAS,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAoD;IACtF,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,CACL,eAAK,SAAS,EAAC,gCAAgC,aAC7C,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAC9B,SAAS,EAAC,4FAA4F,aAErG,IAAI,CAAC,CAAC,CAAC,KAAC,aAAa,IAAC,SAAS,EAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,KAAC,cAAc,IAAC,SAAS,EAAC,uBAAuB,GAAG,EACjH,KAAK,IACC,EACR,IAAI,IAAI,CACP,cAAK,SAAS,EAAC,2GAA2G,YACvH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAC1B,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAA4B;IACvD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3C,OAAO,CACL,eAAK,SAAS,EAAC,yCAAyC,aACtD,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAM,SAAS,EAAC,aAAa,YAAE,KAAK,CAAC,KAAK,GAAQ,EAClD,gBAAM,SAAS,EAAC,+BAA+B,aAAE,QAAQ,QAAI,KAAK,CAAC,WAAW,WAAW,IACrF,EACL,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAC1C,eAAK,SAAS,EAAC,+BAA+B,yBACpC,gBAAM,SAAS,EAAC,WAAW,aAAE,KAAK,CAAC,WAAW,OAAG,KAAK,CAAC,UAAU,IAAQ,IAC7E,CACP,EACD,KAAC,aAAa,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,KAAK,CAAC,OAAO,GAAI,EACtD,KAAC,aAAa,IAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAI,IACpD,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACU;IACtB,MAAM,QAAQ,GAAG,YAAY,KAAK,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;IAEnD,gBAAgB;IAChB,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,CAC1D,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CACnD,CAAC;IACF,MAAM,YAAY,GAAG,sBAAsB,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACtE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAExD,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,YAC9C,MAAC,aAAa,IAAC,SAAS,EAAC,wCAAwC,aAC/D,MAAC,YAAY,eACX,KAAC,WAAW,8BAA0B,EACtC,KAAC,iBAAiB,cACf,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,2BACG,OAAO,CAAC,MAAM,sBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,IAC3E,CACR,GACiB,IACP,EAGf,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,+BAA+B,iCAAuB,EACrE,cAAK,SAAS,EAAC,aAAa,YAAE,sBAAsB,GAAO,IACvD,EACN,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,+BAA+B,6BAAmB,EACjE,cAAK,SAAS,EAAC,aAAa,YAAE,YAAY,GAAO,IAC7C,EACN,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,+BAA+B,2BAAiB,EAC/D,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,YAC/E,gBAAgB,CAAC,MAAM,GACpB,IACF,EACN,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,+BAA+B,uBAAa,EAC3D,cAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,YAC9E,aAAa,CAAC,MAAM,GACjB,IACF,IACF,EAGL,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpC,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,0BAA0B,uCAA4B,EACpE,cAAK,SAAS,EAAC,WAAW,YACvB,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACnC,eAAwB,SAAS,EAAC,+BAA+B,aAC/D,cAAK,SAAS,EAAC,kBAAkB,YAAE,GAAG,CAAC,QAAQ,GAAO,EACtD,eAAK,SAAS,EAAC,oCAAoC,uBAC1C,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IACrD,EACL,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACpC,eAAsB,SAAS,EAAC,uCAAuC,aACrE,eAAM,SAAS,EAAC,kCAAkC,EAAC,KAAK,EAAE,EAAE,CAAC,SAAS,YAAG,EAAE,CAAC,SAAS,GAAQ,EAC7F,gBAAM,SAAS,EAAC,uBAAuB,kBACnC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OACnB,EAAE,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC,aAAa,EAAE,EAC5C,EAAE,CAAC,eAAe,IAAI,MAAM,EAAE,CAAC,eAAe,EAAE,IAC5C,KANC,EAAE,CAAC,OAAO,CAOd,CACP,CAAC,KAdM,GAAG,CAAC,QAAQ,CAehB,CACP,CAAC,GACE,IACF,CACP,EAGA,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAC7B,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,0BAA0B,iCAAsB,EAC9D,cAAK,SAAS,EAAC,WAAW,YACvB,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gCAChC,MAAM,GAAG,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gCACzC,OAAO,CACL,eAAoB,SAAS,EAAC,+BAA+B,aAC3D,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,aAAa,YAAE,QAAQ,GAAQ,EAC/C,eAAM,SAAS,EAAE,EAAE,CACjB,oCAAoC,EACpC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,6BAA6B,EACzD,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,yBAAyB,EACnD,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,2BAA2B,CACtD,YACE,GAAG,CAAC,MAAM,GACN,IACH,EACN,cAAK,SAAS,EAAC,sCAAsC,YAAE,GAAG,CAAC,OAAO,GAAO,EACxE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACxC,cAAK,SAAS,EAAC,kBAAkB,YAC9B,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACzB,eAAa,SAAS,EAAC,oBAAoB,aACzC,gBAAM,SAAS,EAAC,uBAAuB,aAAE,CAAC,CAAC,WAAW,SAAS,EAC/D,yBAAO,CAAC,CAAC,aAAa,GAAQ,EAC9B,gBAAM,SAAS,EAAC,uBAAuB,kBAAG,CAAC,CAAC,SAAS,SAAS,KAHtD,CAAC,CAIL,CACP,CAAC,GACE,CACP,KAvBO,QAAQ,CAwBZ,CACP,CAAC;4BACJ,CAAC,CAAC,GACE,IACF,CACP,EAGA,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9B,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,0BAA0B,iCAAsB,EAC9D,cAAK,SAAS,EAAC,WAAW,YACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC3B,eAAqB,SAAS,EAAC,uDAAuD,aACpF,eAAM,SAAS,EAAC,kCAAkC,YAAE,CAAC,CAAC,SAAS,GAAQ,EACvE,gBAAM,SAAS,EAAC,uBAAuB,kBAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAF5D,CAAC,CAAC,OAAO,CAGb,CACP,CAAC,GACE,IACF,CACP,EAGA,QAAQ,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1C,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,0BAA0B,yCAA8B,EACtE,cAAK,SAAS,EAAC,WAAW,YACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAClC,KAAC,YAAY,IAAS,KAAK,EAAE,KAAK,IAAf,CAAC,CAAkB,CACvC,CAAC,GACE,IACF,CACP,EAEA,QAAQ,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1C,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,0BAA0B,mCAAwB,EAChE,cAAK,SAAS,EAAC,WAAW,YACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAClC,KAAC,YAAY,IAAS,KAAK,EAAE,KAAK,IAAf,CAAC,CAAkB,CACvC,CAAC,GACE,IACF,CACP,EAGA,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,2CAA2C,uBAAY,EACrE,cAAK,SAAS,EAAC,WAAW,YACvB,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7B,eAAa,SAAS,EAAC,qDAAqD,aAC1E,gBAAM,SAAS,EAAC,aAAa,aAAE,GAAG,CAAC,IAAI,SAAS,OAAE,GAAG,CAAC,KAAK,KADnD,CAAC,CAEL,CACP,CAAC,GACE,IACF,CACP,IACa,GACT,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tag badge component for classification display.
|
|
3
|
+
*/
|
|
4
|
+
import type { FbTag } from '../types.js';
|
|
5
|
+
export interface TagPillProps {
|
|
6
|
+
tag: FbTag;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function TagPill({ tag, className }: TagPillProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export interface TagPillListProps {
|
|
11
|
+
tags: FbTag[];
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function TagPillList({ tags, className }: TagPillListProps): import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
//# sourceMappingURL=tag_pill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag_pill.d.ts","sourceRoot":"","sources":["../../../../src/components/hazo_fb_form/components/tag_pill.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,KAAK,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,YAAY,2CAUvD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,gBAAgB,kDAOhE"}
|