@erpsquad/common 1.11.7 → 1.11.8

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 (629) hide show
  1. package/dist/api-client/index.esm.js +2 -2
  2. package/dist/chunks/{DynamicDependentField-DOGY6cA_.esm.js → DynamicDependentField-C0XXmMlG.esm.js} +2 -2
  3. package/dist/chunks/{DynamicDependentField-DOGY6cA_.esm.js.map → DynamicDependentField-C0XXmMlG.esm.js.map} +1 -1
  4. package/dist/chunks/{DynamicDependentField-GTIwrPfP.js → DynamicDependentField-CQIfDDqc.js} +2 -2
  5. package/dist/chunks/{DynamicDependentField-GTIwrPfP.js.map → DynamicDependentField-CQIfDDqc.js.map} +1 -1
  6. package/dist/chunks/{ERPUIProvider-Dz0s77BR.esm.js → ERPUIProvider-I4j_X_SD.esm.js} +3 -3
  7. package/dist/chunks/{ERPUIProvider-Dz0s77BR.esm.js.map → ERPUIProvider-I4j_X_SD.esm.js.map} +1 -1
  8. package/dist/chunks/{FORMS-EouVYay1.js → FORMS-CUx32b_4.js} +5 -5
  9. package/dist/chunks/{FORMS-EouVYay1.js.map → FORMS-CUx32b_4.js.map} +1 -1
  10. package/dist/chunks/{FORMS-CR_DlD1m.esm.js → FORMS-pxf6g6xE.esm.js} +8 -8
  11. package/dist/chunks/{FORMS-CR_DlD1m.esm.js.map → FORMS-pxf6g6xE.esm.js.map} +1 -1
  12. package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js → FlexibleReduxExample--GtoEJhc.js} +3 -3
  13. package/dist/chunks/{FlexibleReduxExample-CMUylyy1.js.map → FlexibleReduxExample--GtoEJhc.js.map} +1 -1
  14. package/dist/chunks/{FlexibleReduxExample-B2e7Wa_S.esm.js → FlexibleReduxExample-C-2qOGIw.esm.js} +4 -4
  15. package/dist/chunks/{FlexibleReduxExample-B2e7Wa_S.esm.js.map → FlexibleReduxExample-C-2qOGIw.esm.js.map} +1 -1
  16. package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js +5479 -0
  17. package/dist/chunks/SectionFlowEditor-CFfJBYKx.esm.js.map +1 -0
  18. package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js +5478 -0
  19. package/dist/chunks/SectionFlowEditor-sKsZ3oQo.js.map +1 -0
  20. package/dist/chunks/{action-bar-Ci6RlMBM.esm.js → action-bar-C7Alva4T.esm.js} +6 -6
  21. package/dist/chunks/{action-bar-Ci6RlMBM.esm.js.map → action-bar-C7Alva4T.esm.js.map} +1 -1
  22. package/dist/chunks/{action-bar-jLqQTqU7.js → action-bar-DdtpxWNk.js} +3 -3
  23. package/dist/chunks/{action-bar-jLqQTqU7.js.map → action-bar-DdtpxWNk.js.map} +1 -1
  24. package/dist/chunks/{actionCreator-DIdMRO9L.esm.js → actionCreator-CL5ICuqZ.esm.js} +2 -2
  25. package/dist/chunks/{actionCreator-DIdMRO9L.esm.js.map → actionCreator-CL5ICuqZ.esm.js.map} +1 -1
  26. package/dist/chunks/{actionCreator-DKYufGAZ.esm.js → actionCreator-Cb3NxILP.esm.js} +2 -2
  27. package/dist/chunks/{actionCreator-DKYufGAZ.esm.js.map → actionCreator-Cb3NxILP.esm.js.map} +1 -1
  28. package/dist/chunks/{actionCreator-D3uwEAua.esm.js → actionCreator-Cl8vPLVO.esm.js} +3 -3
  29. package/dist/chunks/{actionCreator-D3uwEAua.esm.js.map → actionCreator-Cl8vPLVO.esm.js.map} +1 -1
  30. package/dist/chunks/{actionCreator-B6lXR_k1.esm.js → actionCreator-CpePNxQM.esm.js} +2 -2
  31. package/dist/chunks/{actionCreator-B6lXR_k1.esm.js.map → actionCreator-CpePNxQM.esm.js.map} +1 -1
  32. package/dist/chunks/{actionCreator-DcdyGsIX.esm.js → actionCreator-Dar9Z8_d.esm.js} +3 -3
  33. package/dist/chunks/{actionCreator-DcdyGsIX.esm.js.map → actionCreator-Dar9Z8_d.esm.js.map} +1 -1
  34. package/dist/chunks/add-template-DVvbD9a4.esm.js +11 -0
  35. package/dist/chunks/add-template-DVvbD9a4.esm.js.map +1 -0
  36. package/dist/chunks/add-template-Dohg2bHJ.js +10 -0
  37. package/dist/chunks/add-template-Dohg2bHJ.js.map +1 -0
  38. package/dist/chunks/{address-modal-DFd5sQtR.js → address-modal-CYhiC7ui.js} +2 -2
  39. package/dist/chunks/{address-modal-DFd5sQtR.js.map → address-modal-CYhiC7ui.js.map} +1 -1
  40. package/dist/chunks/{address-modal-DYGLjrqd.esm.js → address-modal-CkDBjnye.esm.js} +2 -2
  41. package/dist/chunks/{address-modal-DYGLjrqd.esm.js.map → address-modal-CkDBjnye.esm.js.map} +1 -1
  42. package/dist/chunks/{ai-summary-x2t8BZCx.esm.js → ai-summary-SKK5KN2s.esm.js} +2 -2
  43. package/dist/chunks/{ai-summary-x2t8BZCx.esm.js.map → ai-summary-SKK5KN2s.esm.js.map} +1 -1
  44. package/dist/chunks/{api-8jutPLh0.esm.js → api-BIVCMSwW.esm.js} +3 -3
  45. package/dist/chunks/{api-8jutPLh0.esm.js.map → api-BIVCMSwW.esm.js.map} +1 -1
  46. package/dist/chunks/{api-yLpQ3k5s.esm.js → api-DBmWILBN.esm.js} +9 -9
  47. package/dist/chunks/{api-yLpQ3k5s.esm.js.map → api-DBmWILBN.esm.js.map} +1 -1
  48. package/dist/chunks/{app-switcher-VhH9z0Rd.js → app-switcher-CyEQmYAN.js} +2 -2
  49. package/dist/chunks/{app-switcher-VhH9z0Rd.js.map → app-switcher-CyEQmYAN.js.map} +1 -1
  50. package/dist/chunks/{app-switcher-B6eapuGG.esm.js → app-switcher-D-Bvz9uO.esm.js} +2 -2
  51. package/dist/chunks/{app-switcher-B6eapuGG.esm.js.map → app-switcher-D-Bvz9uO.esm.js.map} +1 -1
  52. package/dist/chunks/{appbar-B8EgZsrn.esm.js → appbar-BRbO--as.esm.js} +2 -2
  53. package/dist/chunks/{appbar-B8EgZsrn.esm.js.map → appbar-BRbO--as.esm.js.map} +1 -1
  54. package/dist/chunks/{appbar-Is_7kfVo.js → appbar-rqqjZ99v.js} +2 -2
  55. package/dist/chunks/{appbar-Is_7kfVo.js.map → appbar-rqqjZ99v.js.map} +1 -1
  56. package/dist/chunks/{approval-wrapper-_kYfACQp.esm.js → approval-wrapper-BTtmXMlk.esm.js} +2 -2
  57. package/dist/chunks/{approval-wrapper-_kYfACQp.esm.js.map → approval-wrapper-BTtmXMlk.esm.js.map} +1 -1
  58. package/dist/chunks/{chat-bot-DO3vAGxA.esm.js → chat-bot-BpNtrZEL.esm.js} +39 -33
  59. package/dist/chunks/chat-bot-BpNtrZEL.esm.js.map +1 -0
  60. package/dist/chunks/{chat-bot-2Ga_xA_K.js → chat-bot-osiGMG3g.js} +38 -32
  61. package/dist/chunks/chat-bot-osiGMG3g.js.map +1 -0
  62. package/dist/chunks/common-C5AokA7z.js +368 -0
  63. package/dist/chunks/common-C5AokA7z.js.map +1 -0
  64. package/dist/chunks/{common-PH2uWkqL.js → common-CS5L0Ld_.js} +2 -2
  65. package/dist/chunks/{common-PH2uWkqL.js.map → common-CS5L0Ld_.js.map} +1 -1
  66. package/dist/chunks/common-CaomnEjX.esm.js +369 -0
  67. package/dist/chunks/common-CaomnEjX.esm.js.map +1 -0
  68. package/dist/chunks/common-utility-CA_Upser.js.map +1 -1
  69. package/dist/chunks/{common-utility-CS_sNoAC.esm.js → common-utility-DGpbsf7S.esm.js} +2 -2
  70. package/dist/chunks/common-utility-DGpbsf7S.esm.js.map +1 -0
  71. package/dist/chunks/{common-Cl5oGXmX.esm.js → common-yORBIVv-.esm.js} +2 -2
  72. package/dist/chunks/{common-Cl5oGXmX.esm.js.map → common-yORBIVv-.esm.js.map} +1 -1
  73. package/dist/chunks/company-selection-modal-B7jFVWWs.js.map +1 -1
  74. package/dist/chunks/company-selection-modal-Dn2L_skh.esm.js.map +1 -1
  75. package/dist/chunks/{constant-BXPcBhJN.esm.js → constant-Bwg2s_Sn.esm.js} +5 -35
  76. package/dist/chunks/constant-Bwg2s_Sn.esm.js.map +1 -0
  77. package/dist/chunks/{constant-BXeJD4Af.js → constant-ZYAN_teD.js} +5 -35
  78. package/dist/chunks/constant-ZYAN_teD.js.map +1 -0
  79. package/dist/chunks/{constants-D_xuLHSu.js → constants-06kIVUBw.js} +2 -2
  80. package/dist/chunks/{constants-D_xuLHSu.js.map → constants-06kIVUBw.js.map} +1 -1
  81. package/dist/chunks/{constants-BrmMAwu2.esm.js → constants-nmkxkzps.esm.js} +2 -2
  82. package/dist/chunks/{constants-BrmMAwu2.esm.js.map → constants-nmkxkzps.esm.js.map} +1 -1
  83. package/dist/chunks/{custom-editor-C-B5BK-H.esm.js → custom-editor-6-xqhKz6.esm.js} +3 -3
  84. package/dist/chunks/{custom-editor-C-B5BK-H.esm.js.map → custom-editor-6-xqhKz6.esm.js.map} +1 -1
  85. package/dist/chunks/{custom-form-T4yc_sE_.js → custom-form-CFU7NEVb.js} +4 -4
  86. package/dist/chunks/{custom-form-T4yc_sE_.js.map → custom-form-CFU7NEVb.js.map} +1 -1
  87. package/dist/chunks/{custom-form-DNUpk0nq.esm.js → custom-form-DD7YOHMF.esm.js} +7 -7
  88. package/dist/chunks/{custom-form-DNUpk0nq.esm.js.map → custom-form-DD7YOHMF.esm.js.map} +1 -1
  89. package/dist/chunks/{dashboard-eMHQayU_.js → dashboard-BcWVkWZt.js} +3 -3
  90. package/dist/chunks/{dashboard-eMHQayU_.js.map → dashboard-BcWVkWZt.js.map} +1 -1
  91. package/dist/chunks/{dashboard-B4xzJ1Xc.esm.js → dashboard-DL83yYRR.esm.js} +4 -4
  92. package/dist/chunks/{dashboard-B4xzJ1Xc.esm.js.map → dashboard-DL83yYRR.esm.js.map} +1 -1
  93. package/dist/chunks/default-data-6IxhqPTP.esm.js.map +1 -1
  94. package/dist/chunks/default-data-yreKVx_z.js.map +1 -1
  95. package/dist/chunks/{dynamic-report-CMguvXj2.esm.js → dynamic-report-tKn-KqAd.esm.js} +4 -4
  96. package/dist/chunks/{dynamic-report-CMguvXj2.esm.js.map → dynamic-report-tKn-KqAd.esm.js.map} +1 -1
  97. package/dist/chunks/{dynamic-rows-CmAE9nbA.esm.js → dynamic-rows-CTGETfcP.esm.js} +2 -2
  98. package/dist/chunks/{dynamic-rows-CmAE9nbA.esm.js.map → dynamic-rows-CTGETfcP.esm.js.map} +1 -1
  99. package/dist/chunks/{dynamic-text-editor-CSWdR1lK.esm.js → dynamic-text-editor-CPvlGcLK.esm.js} +2 -2
  100. package/dist/chunks/{dynamic-text-editor-CSWdR1lK.esm.js.map → dynamic-text-editor-CPvlGcLK.esm.js.map} +1 -1
  101. package/dist/chunks/{edit-section-modal-HihKbN6K.esm.js → edit-section-modal-BW-aZmUv.esm.js} +2 -2
  102. package/dist/chunks/edit-section-modal-BW-aZmUv.esm.js.map +1 -0
  103. package/dist/chunks/edit-section-modal-Br2ITvLk.js.map +1 -1
  104. package/dist/chunks/{filter-D9BHP_qc.esm.js → filter-COXKBEER.esm.js} +5 -5
  105. package/dist/chunks/{filter-D9BHP_qc.esm.js.map → filter-COXKBEER.esm.js.map} +1 -1
  106. package/dist/chunks/{filter-DtCrOG6W.js → filter-Cr_OSIpb.js} +3 -3
  107. package/dist/chunks/{filter-DtCrOG6W.js.map → filter-Cr_OSIpb.js.map} +1 -1
  108. package/dist/chunks/{footer-DioOh69g.js → footer-CD3kMRdS.js} +2 -2
  109. package/dist/chunks/{footer-DioOh69g.js.map → footer-CD3kMRdS.js.map} +1 -1
  110. package/dist/chunks/{footer-Bv5NOAf9.esm.js → footer-m3_dlNl8.esm.js} +2 -2
  111. package/dist/chunks/{footer-Bv5NOAf9.esm.js.map → footer-m3_dlNl8.esm.js.map} +1 -1
  112. package/dist/chunks/{form-fields-Di-p9XKG.esm.js → form-fields-hMMnB_wE.esm.js} +2 -2
  113. package/dist/chunks/{form-fields-Di-p9XKG.esm.js.map → form-fields-hMMnB_wE.esm.js.map} +1 -1
  114. package/dist/chunks/{form-fields-BYDhbAgB.js → form-fields-yE9kwjvb.js} +2 -2
  115. package/dist/chunks/{form-fields-BYDhbAgB.js.map → form-fields-yE9kwjvb.js.map} +1 -1
  116. package/dist/chunks/{form-parser-ZQpEVrzG.esm.js → form-parser-DbnSn5eY.esm.js} +2 -2
  117. package/dist/chunks/{form-parser-ZQpEVrzG.esm.js.map → form-parser-DbnSn5eY.esm.js.map} +1 -1
  118. package/dist/chunks/{form-parser-BnMdMDSb.js → form-parser-m4fnw38a.js} +2 -2
  119. package/dist/chunks/{form-parser-BnMdMDSb.js.map → form-parser-m4fnw38a.js.map} +1 -1
  120. package/dist/chunks/{form-section-CFeWD-tF.js → form-section-CPIyMdk2.js} +5 -5
  121. package/dist/chunks/{form-section-CFeWD-tF.js.map → form-section-CPIyMdk2.js.map} +1 -1
  122. package/dist/chunks/{form-section-BJ7Iqb9R.esm.js → form-section-TMjdOVeW.esm.js} +5 -5
  123. package/dist/chunks/{form-section-BJ7Iqb9R.esm.js.map → form-section-TMjdOVeW.esm.js.map} +1 -1
  124. package/dist/chunks/{fullScreen-h0JqBN4O.js → fullScreen-BLLa9ogA.js} +5 -5
  125. package/dist/chunks/fullScreen-BLLa9ogA.js.map +1 -0
  126. package/dist/chunks/{fullScreen-Cz3FIdU4.esm.js → fullScreen-DFgzE41_.esm.js} +5 -5
  127. package/dist/chunks/fullScreen-DFgzE41_.esm.js.map +1 -0
  128. package/dist/chunks/{global-search-CGmupYFQ.esm.js → global-search-BOkxXiZ0.esm.js} +3 -3
  129. package/dist/chunks/{global-search-CGmupYFQ.esm.js.map → global-search-BOkxXiZ0.esm.js.map} +1 -1
  130. package/dist/chunks/{global-search-BTV5iL6-.js → global-search-BjKPmzsQ.js} +2 -2
  131. package/dist/chunks/{global-search-BTV5iL6-.js.map → global-search-BjKPmzsQ.js.map} +1 -1
  132. package/dist/chunks/{grid-view-BMfleQMC.esm.js → grid-view-Bo86x7YL.esm.js} +2 -2
  133. package/dist/chunks/{grid-view-BMfleQMC.esm.js.map → grid-view-Bo86x7YL.esm.js.map} +1 -1
  134. package/dist/chunks/{header-BnVzqpGs.esm.js → header-B-HaoeK7.esm.js} +10 -12
  135. package/dist/chunks/{header-BnVzqpGs.esm.js.map → header-B-HaoeK7.esm.js.map} +1 -1
  136. package/dist/chunks/{header-jWPMgcy6.js → header-BHsex2As.js} +9 -11
  137. package/dist/chunks/{header-jWPMgcy6.js.map → header-BHsex2As.js.map} +1 -1
  138. package/dist/chunks/{header-enhanced-CkROCaOF.esm.js → header-enhanced-BjfqyQ1a.esm.js} +3 -3
  139. package/dist/chunks/{header-enhanced-CkROCaOF.esm.js.map → header-enhanced-BjfqyQ1a.esm.js.map} +1 -1
  140. package/dist/chunks/{header-enhanced-Dxdetx0I.js → header-enhanced-gJl4iC4m.js} +3 -3
  141. package/dist/chunks/{header-enhanced-Dxdetx0I.js.map → header-enhanced-gJl4iC4m.js.map} +1 -1
  142. package/dist/chunks/{index-BCmGHdos.esm.js → index-ALqg8b5U.esm.js} +2 -2
  143. package/dist/chunks/{index-BCmGHdos.esm.js.map → index-ALqg8b5U.esm.js.map} +1 -1
  144. package/dist/chunks/{inline-edit-fields-VOIx3qmC.esm.js → inline-edit-fields-BYhRpPcH.esm.js} +2 -2
  145. package/dist/chunks/{inline-edit-fields-VOIx3qmC.esm.js.map → inline-edit-fields-BYhRpPcH.esm.js.map} +1 -1
  146. package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js → inline-edit-fields-atDP84QL.js} +2 -2
  147. package/dist/chunks/{inline-edit-fields-Cd_qUOjU.js.map → inline-edit-fields-atDP84QL.js.map} +1 -1
  148. package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js → inventory-reports-title-bar-Bog2i0dr.js} +2 -2
  149. package/dist/chunks/{inventory-reports-title-bar-BfUMM54c.js.map → inventory-reports-title-bar-Bog2i0dr.js.map} +1 -1
  150. package/dist/chunks/{inventory-reports-title-bar-CZZFFqDc.esm.js → inventory-reports-title-bar-CP8FzW6A.esm.js} +3 -3
  151. package/dist/chunks/{inventory-reports-title-bar-CZZFFqDc.esm.js.map → inventory-reports-title-bar-CP8FzW6A.esm.js.map} +1 -1
  152. package/dist/chunks/{item-response-details-BheThTTK.js → item-response-details-DsGQ7Dlc.js} +2 -2
  153. package/dist/chunks/{item-response-details-BheThTTK.js.map → item-response-details-DsGQ7Dlc.js.map} +1 -1
  154. package/dist/chunks/{item-response-details-BTHf6ZvN.esm.js → item-response-details-SHSD-nBh.esm.js} +4 -4
  155. package/dist/chunks/{item-response-details-BTHf6ZvN.esm.js.map → item-response-details-SHSD-nBh.esm.js.map} +1 -1
  156. package/dist/chunks/{listing-ELQeM6S3.esm.js → listing-C0Yb6MVq.esm.js} +4 -4
  157. package/dist/chunks/{listing-ELQeM6S3.esm.js.map → listing-C0Yb6MVq.esm.js.map} +1 -1
  158. package/dist/chunks/{listing-Dr_1DDBr.js → listing-DIuzQrzb.js} +4 -4
  159. package/dist/chunks/{listing-Dr_1DDBr.js.map → listing-DIuzQrzb.js.map} +1 -1
  160. package/dist/chunks/{location-select-z1C88kCy.esm.js → location-select-CFa00fy4.esm.js} +2 -2
  161. package/dist/chunks/{location-select-z1C88kCy.esm.js.map → location-select-CFa00fy4.esm.js.map} +1 -1
  162. package/dist/chunks/{location-select-CLyRUilk.js → location-select-g5uczAUF.js} +2 -2
  163. package/dist/chunks/{location-select-CLyRUilk.js.map → location-select-g5uczAUF.js.map} +1 -1
  164. package/dist/chunks/{material-editable-table-DFGB0q-s.js → material-editable-table-BGLjrTzT.js} +3 -3
  165. package/dist/chunks/{material-editable-table-DFGB0q-s.js.map → material-editable-table-BGLjrTzT.js.map} +1 -1
  166. package/dist/chunks/{material-editable-table-DyGdqNkX.esm.js → material-editable-table-pAyK7KYf.esm.js} +4 -4
  167. package/dist/chunks/{material-editable-table-DyGdqNkX.esm.js.map → material-editable-table-pAyK7KYf.esm.js.map} +1 -1
  168. package/dist/chunks/{module-reducer-CEv3LZCX.esm.js → module-reducer-DMxxForv.esm.js} +2 -2
  169. package/dist/chunks/{module-reducer-CEv3LZCX.esm.js.map → module-reducer-DMxxForv.esm.js.map} +1 -1
  170. package/dist/chunks/{modules-enwLrpfQ.esm.js → modules-BBu2Y-K9.esm.js} +5 -5
  171. package/dist/chunks/{modules-enwLrpfQ.esm.js.map → modules-BBu2Y-K9.esm.js.map} +1 -1
  172. package/dist/chunks/{modules-DTRr7zwt.js → modules-maXT99-4.js} +5 -5
  173. package/dist/chunks/{modules-DTRr7zwt.js.map → modules-maXT99-4.js.map} +1 -1
  174. package/dist/chunks/{notification-menu-B00hDUbn.js → notification-menu-D7ASm-K1.js} +2 -2
  175. package/dist/chunks/{notification-menu-B00hDUbn.js.map → notification-menu-D7ASm-K1.js.map} +1 -1
  176. package/dist/chunks/{notification-menu-CehCt5fA.esm.js → notification-menu-XAadkn-e.esm.js} +4 -4
  177. package/dist/chunks/{notification-menu-CehCt5fA.esm.js.map → notification-menu-XAadkn-e.esm.js.map} +1 -1
  178. package/dist/chunks/{page-action-TMFOytDw.js → page-action-BPzaL2KJ.js} +2 -2
  179. package/dist/chunks/{page-action-TMFOytDw.js.map → page-action-BPzaL2KJ.js.map} +1 -1
  180. package/dist/chunks/{page-action-RqVevciV.esm.js → page-action-C07iGjvN.esm.js} +4 -4
  181. package/dist/chunks/{page-action-RqVevciV.esm.js.map → page-action-C07iGjvN.esm.js.map} +1 -1
  182. package/dist/chunks/{page-navigator-CuIJ0KGf.esm.js → page-navigator-8gZpp9_P.esm.js} +2 -2
  183. package/dist/chunks/{page-navigator-CuIJ0KGf.esm.js.map → page-navigator-8gZpp9_P.esm.js.map} +1 -1
  184. package/dist/chunks/{page-navigator-DdRsmtLy.js → page-navigator-Cgbh3tTG.js} +2 -2
  185. package/dist/chunks/{page-navigator-DdRsmtLy.js.map → page-navigator-Cgbh3tTG.js.map} +1 -1
  186. package/dist/chunks/{page-view-Daz-OKd_.esm.js → page-view-CokUNMBn.esm.js} +3 -3
  187. package/dist/chunks/{page-view-Daz-OKd_.esm.js.map → page-view-CokUNMBn.esm.js.map} +1 -1
  188. package/dist/chunks/{page-view-CvfqzV03.js → page-view-DJ6HS_dV.js} +3 -3
  189. package/dist/chunks/{page-view-CvfqzV03.js.map → page-view-DJ6HS_dV.js.map} +1 -1
  190. package/dist/chunks/{pathname.rental-CwK6JuID.js → pathname.rental-DgH4LoG7.js} +7 -2
  191. package/dist/chunks/{pathname.rental-CwK6JuID.js.map → pathname.rental-DgH4LoG7.js.map} +1 -1
  192. package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js → pathname.rental-qsAe3XFd.esm.js} +81 -76
  193. package/dist/chunks/{pathname.rental-CqHO_l_D.esm.js.map → pathname.rental-qsAe3XFd.esm.js.map} +1 -1
  194. package/dist/chunks/{quick-approval-modal-B-jvkgue.esm.js → quick-approval-modal-CPWs8htH.esm.js} +2 -2
  195. package/dist/chunks/{quick-approval-modal-B-jvkgue.esm.js.map → quick-approval-modal-CPWs8htH.esm.js.map} +1 -1
  196. package/dist/chunks/{reducer-BOwyP0QZ.esm.js → reducer-3tSO6RW6.esm.js} +3 -3
  197. package/dist/chunks/{reducer-BOwyP0QZ.esm.js.map → reducer-3tSO6RW6.esm.js.map} +1 -1
  198. package/dist/chunks/{reducer-BMkh_0Py.esm.js → reducer-CdJ6znKF.esm.js} +3 -3
  199. package/dist/chunks/{reducer-BMkh_0Py.esm.js.map → reducer-CdJ6znKF.esm.js.map} +1 -1
  200. package/dist/chunks/{reducer-BTfG9J4W.esm.js → reducer-IsgN83rP.esm.js} +2 -2
  201. package/dist/chunks/{reducer-BTfG9J4W.esm.js.map → reducer-IsgN83rP.esm.js.map} +1 -1
  202. package/dist/chunks/{reducer-CD1VDqeT.esm.js → reducer-sgaK2vfW.esm.js} +2 -2
  203. package/dist/chunks/{reducer-CD1VDqeT.esm.js.map → reducer-sgaK2vfW.esm.js.map} +1 -1
  204. package/dist/chunks/{reducer-BWiX5vxL.esm.js → reducer-yyZtsg1A.esm.js} +2 -2
  205. package/dist/chunks/{reducer-BWiX5vxL.esm.js.map → reducer-yyZtsg1A.esm.js.map} +1 -1
  206. package/dist/chunks/{reports-title-bar-Kl8XQe-K.esm.js → reports-title-bar-Cay4E8SQ.esm.js} +4 -4
  207. package/dist/chunks/{reports-title-bar-Kl8XQe-K.esm.js.map → reports-title-bar-Cay4E8SQ.esm.js.map} +1 -1
  208. package/dist/chunks/{reports-title-bar-B1_IweEc.js → reports-title-bar-Kz6JjqsY.js} +2 -2
  209. package/dist/chunks/{reports-title-bar-B1_IweEc.js.map → reports-title-bar-Kz6JjqsY.js.map} +1 -1
  210. package/dist/chunks/{route-page-map-D6-7jBQT.esm.js → route-page-map-DkWoisiB.esm.js} +133 -76
  211. package/dist/chunks/{route-page-map-D6-7jBQT.esm.js.map → route-page-map-DkWoisiB.esm.js.map} +1 -1
  212. package/dist/chunks/{route-page-map-CzFUh-SC.js → route-page-map-Dn-SAbdf.js} +60 -3
  213. package/dist/chunks/{route-page-map-CzFUh-SC.js.map → route-page-map-Dn-SAbdf.js.map} +1 -1
  214. package/dist/chunks/{routes-D9y_XQRu.esm.js → routes-CAc76Zan.esm.js} +4 -4
  215. package/dist/chunks/{routes-D9y_XQRu.esm.js.map → routes-CAc76Zan.esm.js.map} +1 -1
  216. package/dist/chunks/{routes-Dsumzjw0.js → routes-CfqLAYgR.js} +4 -4
  217. package/dist/chunks/{routes-Dsumzjw0.js.map → routes-CfqLAYgR.js.map} +1 -1
  218. package/dist/chunks/{schedule-report-BwmZ5jea.js → schedule-report-B4ZfEuiU.js} +4 -4
  219. package/dist/chunks/{schedule-report-BwmZ5jea.js.map → schedule-report-B4ZfEuiU.js.map} +1 -1
  220. package/dist/chunks/{schedule-report-CJXHVZ68.esm.js → schedule-report-CLXjjfjc.esm.js} +6 -6
  221. package/dist/chunks/{schedule-report-CJXHVZ68.esm.js.map → schedule-report-CLXjjfjc.esm.js.map} +1 -1
  222. package/dist/chunks/{schedule-report-modal-D8Y-TZ4u.esm.js → schedule-report-modal-CB3G9H7x.esm.js} +3 -3
  223. package/dist/chunks/{schedule-report-modal-D8Y-TZ4u.esm.js.map → schedule-report-modal-CB3G9H7x.esm.js.map} +1 -1
  224. package/dist/chunks/{schedule-report-modal-iNnWP9s4.js → schedule-report-modal-iwoDI-sg.js} +2 -2
  225. package/dist/chunks/{schedule-report-modal-iNnWP9s4.js.map → schedule-report-modal-iwoDI-sg.js.map} +1 -1
  226. package/dist/chunks/{searchable-select-BQtcqBKV.esm.js → searchable-select-0F6E4XAr.esm.js} +6 -6
  227. package/dist/chunks/{searchable-select-BQtcqBKV.esm.js.map → searchable-select-0F6E4XAr.esm.js.map} +1 -1
  228. package/dist/chunks/{searchable-select-DVUCWWti.js → searchable-select-_DCkITfk.js} +2 -2
  229. package/dist/chunks/{searchable-select-DVUCWWti.js.map → searchable-select-_DCkITfk.js.map} +1 -1
  230. package/dist/chunks/{share-modal-BOyLBawK.esm.js → share-modal-BaEyZs2h.esm.js} +3 -3
  231. package/dist/chunks/{share-modal-BOyLBawK.esm.js.map → share-modal-BaEyZs2h.esm.js.map} +1 -1
  232. package/dist/chunks/{share-modal-CobK7BN7.js → share-modal-DrXvh-fV.js} +2 -2
  233. package/dist/chunks/{share-modal-CobK7BN7.js.map → share-modal-DrXvh-fV.js.map} +1 -1
  234. package/dist/chunks/{share-modal-enhanced-DVarD-jt.js → share-modal-enhanced-BTr0zRhF.js} +2 -2
  235. package/dist/chunks/{share-modal-enhanced-DVarD-jt.js.map → share-modal-enhanced-BTr0zRhF.js.map} +1 -1
  236. package/dist/chunks/{share-modal-enhanced-CTp-tQw8.esm.js → share-modal-enhanced-DnEdDBmu.esm.js} +2 -2
  237. package/dist/chunks/{share-modal-enhanced-CTp-tQw8.esm.js.map → share-modal-enhanced-DnEdDBmu.esm.js.map} +1 -1
  238. package/dist/chunks/{sidebarScreen-lR6rw8bW.esm.js → sidebarScreen-DiOAiXeU.esm.js} +4 -4
  239. package/dist/chunks/{sidebarScreen-lR6rw8bW.esm.js.map → sidebarScreen-DiOAiXeU.esm.js.map} +1 -1
  240. package/dist/chunks/{sidebarScreen-K-dlM6NA.js → sidebarScreen-DpYj_wlK.js} +3 -3
  241. package/dist/chunks/{sidebarScreen-K-dlM6NA.js.map → sidebarScreen-DpYj_wlK.js.map} +1 -1
  242. package/dist/chunks/{store-DJh8C3Vv.esm.js → store-BL5VFPie.esm.js} +6 -6
  243. package/dist/chunks/{store-DJh8C3Vv.esm.js.map → store-BL5VFPie.esm.js.map} +1 -1
  244. package/dist/chunks/{table-Bpt6ggr3.js → table-DWx7x8zw.js} +2 -2
  245. package/dist/chunks/{table-Bpt6ggr3.js.map → table-DWx7x8zw.js.map} +1 -1
  246. package/dist/chunks/{table-form-8_f3FwhX.esm.js → table-form-DsTwCUcs.esm.js} +2 -2
  247. package/dist/chunks/{table-form-8_f3FwhX.esm.js.map → table-form-DsTwCUcs.esm.js.map} +1 -1
  248. package/dist/chunks/{table-DI3MyTNm.esm.js → table-gxAlAeTq.esm.js} +3 -3
  249. package/dist/chunks/{table-DI3MyTNm.esm.js.map → table-gxAlAeTq.esm.js.map} +1 -1
  250. package/dist/chunks/{template-editor-router-uzghBOap.esm.js → template-editor-router-BXLUTvsk.esm.js} +2 -2
  251. package/dist/chunks/{template-editor-router-uzghBOap.esm.js.map → template-editor-router-BXLUTvsk.esm.js.map} +1 -1
  252. package/dist/chunks/{template-editor-router-DugWbCh0.js → template-editor-router-D4NIwVws.js} +2 -2
  253. package/dist/chunks/{template-editor-router-DugWbCh0.js.map → template-editor-router-D4NIwVws.js.map} +1 -1
  254. package/dist/chunks/{template-modal-D7aLacan.esm.js → template-modal-B2VgotrF.esm.js} +6 -7
  255. package/dist/chunks/template-modal-B2VgotrF.esm.js.map +1 -0
  256. package/dist/chunks/{template-modal-Df7gF4QI.js → template-modal-X-iSmlki.js} +4 -5
  257. package/dist/chunks/template-modal-X-iSmlki.js.map +1 -0
  258. package/dist/chunks/{template-name-modal-ClreVUaz.js → template-name-modal-CeqxIE2r.js} +5 -12
  259. package/dist/chunks/template-name-modal-CeqxIE2r.js.map +1 -0
  260. package/dist/chunks/{template-name-modal-Dwe7U72p.esm.js → template-name-modal-Dctn8t3t.esm.js} +5 -12
  261. package/dist/chunks/template-name-modal-Dctn8t3t.esm.js.map +1 -0
  262. package/dist/chunks/{templates-9ZMHwRR6.esm.js → templates-CCy1eG6A.esm.js} +17 -10
  263. package/dist/chunks/templates-CCy1eG6A.esm.js.map +1 -0
  264. package/dist/chunks/{templates-DCXbeOtH.js → templates-CUREMwYo.js} +14 -7
  265. package/dist/chunks/templates-CUREMwYo.js.map +1 -0
  266. package/dist/chunks/{text-measurement-DMVkqP6b.esm.js → text-measurement-BCjauPbB.esm.js} +2 -2
  267. package/dist/chunks/{text-measurement-DMVkqP6b.esm.js.map → text-measurement-BCjauPbB.esm.js.map} +1 -1
  268. package/dist/chunks/{translations-JcE6qyDJ.esm.js → translations-BrwQcVN3.esm.js} +3 -3
  269. package/dist/chunks/{translations-JcE6qyDJ.esm.js.map → translations-BrwQcVN3.esm.js.map} +1 -1
  270. package/dist/chunks/{uom-field-wrapper-CWTsSsSi.esm.js → uom-field-wrapper-CTbEc-MB.esm.js} +2 -2
  271. package/dist/chunks/{uom-field-wrapper-CWTsSsSi.esm.js.map → uom-field-wrapper-CTbEc-MB.esm.js.map} +1 -1
  272. package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js → uom-field-wrapper-DXZgzOYB.js} +2 -2
  273. package/dist/chunks/{uom-field-wrapper-CSqeiVPY.js.map → uom-field-wrapper-DXZgzOYB.js.map} +1 -1
  274. package/dist/chunks/{upload-excel-CkEQqZW2.esm.js → upload-excel-BZPP13tP.esm.js} +2 -2
  275. package/dist/chunks/{upload-excel-CkEQqZW2.esm.js.map → upload-excel-BZPP13tP.esm.js.map} +1 -1
  276. package/dist/chunks/{use-translations-Cn3b4Kqh.js → use-translations-5wUQBxMm.js} +2 -2
  277. package/dist/chunks/{use-translations-Cn3b4Kqh.js.map → use-translations-5wUQBxMm.js.map} +1 -1
  278. package/dist/chunks/{use-translations-BqBPN1DM.esm.js → use-translations-CcjSFA3F.esm.js} +3 -3
  279. package/dist/chunks/{use-translations-BqBPN1DM.esm.js.map → use-translations-CcjSFA3F.esm.js.map} +1 -1
  280. package/dist/chunks/{useAccountSetting-DsU5zsjb.esm.js → useAccountSetting-vAqgEiJB.esm.js} +2 -2
  281. package/dist/chunks/{useAccountSetting-DsU5zsjb.esm.js.map → useAccountSetting-vAqgEiJB.esm.js.map} +1 -1
  282. package/dist/chunks/{useCheckSkuAndName-5ua30aZf.esm.js → useCheckSkuAndName-Dl24wQO-.esm.js} +2 -2
  283. package/dist/chunks/{useCheckSkuAndName-5ua30aZf.esm.js.map → useCheckSkuAndName-Dl24wQO-.esm.js.map} +1 -1
  284. package/dist/chunks/{useReduxIntegration-BlLpfwk6.esm.js → useReduxIntegration-DZBfKF7d.esm.js} +2 -2
  285. package/dist/chunks/{useReduxIntegration-BlLpfwk6.esm.js.map → useReduxIntegration-DZBfKF7d.esm.js.map} +1 -1
  286. package/dist/chunks/{useUniquenessCheck-CiR2q5bM.esm.js → useUniquenessCheck-bYjnp_0P.esm.js} +2 -2
  287. package/dist/chunks/{useUniquenessCheck-CiR2q5bM.esm.js.map → useUniquenessCheck-bYjnp_0P.esm.js.map} +1 -1
  288. package/dist/chunks/{useVendorAICompare-DMJvJJ3Y.esm.js → useVendorAICompare-DZRFDk4i.esm.js} +2 -2
  289. package/dist/chunks/{useVendorAICompare-DMJvJJ3Y.esm.js.map → useVendorAICompare-DZRFDk4i.esm.js.map} +1 -1
  290. package/dist/chunks/{value-editor-Br7X_wEB.js → value-editor-BSS9Ns2T.js} +2 -2
  291. package/dist/chunks/{value-editor-Br7X_wEB.js.map → value-editor-BSS9Ns2T.js.map} +1 -1
  292. package/dist/chunks/{value-editor-BxFdnUyM.esm.js → value-editor-DQ1qgZ2u.esm.js} +4 -4
  293. package/dist/chunks/{value-editor-BxFdnUyM.esm.js.map → value-editor-DQ1qgZ2u.esm.js.map} +1 -1
  294. package/dist/chunks/{vendor-ai-summary-Cpx90QOx.esm.js → vendor-ai-summary-BA6m2dH9.esm.js} +2 -2
  295. package/dist/chunks/{vendor-ai-summary-Cpx90QOx.esm.js.map → vendor-ai-summary-BA6m2dH9.esm.js.map} +1 -1
  296. package/dist/chunks/{vendor-ai-summary-zranZkfk.js → vendor-ai-summary-DWmAaQ_N.js} +2 -2
  297. package/dist/chunks/{vendor-ai-summary-zranZkfk.js.map → vendor-ai-summary-DWmAaQ_N.js.map} +1 -1
  298. package/dist/components/action-bar/action-bar/index.esm.js +1 -1
  299. package/dist/components/action-bar/action-bar/index.js +1 -1
  300. package/dist/components/action-bar/index.esm.js +1 -1
  301. package/dist/components/action-bar/index.js +1 -1
  302. package/dist/components/address-modal/index.esm.js +1 -1
  303. package/dist/components/address-modal/index.js +1 -1
  304. package/dist/components/ai-summary/ai-summary/index.esm.js +1 -1
  305. package/dist/components/ai-summary/index.esm.js +1 -1
  306. package/dist/components/appbar/appbar/index.esm.js +1 -1
  307. package/dist/components/appbar/appbar/index.js +1 -1
  308. package/dist/components/appbar/index.esm.js +1 -1
  309. package/dist/components/appbar/index.js +1 -1
  310. package/dist/components/approval-wrapper/approval-wrapper/index.esm.js +1 -1
  311. package/dist/components/approval-wrapper/index.esm.js +1 -1
  312. package/dist/components/chat-bot/index.esm.js +1 -1
  313. package/dist/components/chat-bot/index.js +1 -1
  314. package/dist/components/custom-forms/FORMS/index.esm.js +1 -1
  315. package/dist/components/custom-forms/FORMS/index.js +1 -1
  316. package/dist/components/custom-forms/grid-view/grid-view/index.esm.js +1 -1
  317. package/dist/components/custom-forms/grid-view/index.esm.js +1 -1
  318. package/dist/components/custom-forms/index.esm.js +2 -2
  319. package/dist/components/custom-forms/index.js +1 -1
  320. package/dist/components/department-add-modal/index.esm.js +1 -1
  321. package/dist/components/department-add-modal/index.js +1 -1
  322. package/dist/components/designation-add-modal/index.esm.js +1 -1
  323. package/dist/components/designation-add-modal/index.js +1 -1
  324. package/dist/components/editor/custom-editor/index.esm.js +1 -1
  325. package/dist/components/editor/index.esm.js +1 -1
  326. package/dist/components/examples/FlexibleReduxExample/index.esm.js +1 -1
  327. package/dist/components/examples/FlexibleReduxExample/index.js +1 -1
  328. package/dist/components/examples/index.esm.js +1 -1
  329. package/dist/components/examples/index.js +1 -1
  330. package/dist/components/filter/components/index.esm.js +1 -1
  331. package/dist/components/filter/components/index.js +1 -1
  332. package/dist/components/filter/components/value-editor/index.esm.js +1 -1
  333. package/dist/components/filter/components/value-editor/index.js +1 -1
  334. package/dist/components/filter/filter/index.esm.js +1 -1
  335. package/dist/components/filter/filter/index.js +1 -1
  336. package/dist/components/filter/index.esm.js +2 -2
  337. package/dist/components/filter/index.js +2 -2
  338. package/dist/components/footer/footer/index.esm.js +1 -1
  339. package/dist/components/footer/footer/index.js +1 -1
  340. package/dist/components/footer/index.esm.js +1 -1
  341. package/dist/components/footer/index.js +1 -1
  342. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.esm.js +1 -1
  343. package/dist/components/form-control/form-builder/form-builder-element/dynamic-dependent-field/index.js +1 -1
  344. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +1 -1
  345. package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js +1 -1
  346. package/dist/components/form-control/form-builder/form-builder-element/dynamic-text-editor/index.esm.js +1 -1
  347. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.esm.js +1 -1
  348. package/dist/components/form-control/form-builder/form-builder-element/fixed-asset-item-add-modal/index.js +1 -1
  349. package/dist/components/form-control/form-builder/form-builder-element/index.esm.js +4 -4
  350. package/dist/components/form-control/form-builder/form-builder-element/index.js +3 -3
  351. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.esm.js +1 -1
  352. package/dist/components/form-control/form-builder/form-builder-element/location-add-modal/index.js +1 -1
  353. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.esm.js +1 -1
  354. package/dist/components/form-control/form-builder/form-builder-element/select-configuration/index.js +1 -1
  355. package/dist/components/form-control/form-builder/form-builder-element/table/index.esm.js +1 -1
  356. package/dist/components/form-control/form-builder/form-builder-element/table/index.js +1 -1
  357. package/dist/components/form-control/form-builder/index.esm.js +4 -4
  358. package/dist/components/form-control/form-builder/index.js +3 -3
  359. package/dist/components/form-control/form-parser/form-parser/index.esm.js +1 -1
  360. package/dist/components/form-control/form-parser/form-parser/index.js +1 -1
  361. package/dist/components/form-control/form-parser/form-section/index.esm.js +1 -1
  362. package/dist/components/form-control/form-parser/form-section/index.js +1 -1
  363. package/dist/components/form-control/form-parser/index.esm.js +2 -2
  364. package/dist/components/form-control/form-parser/index.js +2 -2
  365. package/dist/components/form-control/index.esm.js +6 -6
  366. package/dist/components/form-control/index.js +5 -5
  367. package/dist/components/header/components/app-switcher/index.esm.js +1 -1
  368. package/dist/components/header/components/app-switcher/index.js +1 -1
  369. package/dist/components/header/components/global-search/index.esm.js +1 -1
  370. package/dist/components/header/components/global-search/index.js +1 -1
  371. package/dist/components/header/components/index.esm.js +1 -1
  372. package/dist/components/header/components/index.js +1 -1
  373. package/dist/components/header/components/notification-menu/index.esm.js +1 -1
  374. package/dist/components/header/components/notification-menu/index.js +1 -1
  375. package/dist/components/header/components/notification-menu/notification-menu/index.esm.js +1 -1
  376. package/dist/components/header/components/notification-menu/notification-menu/index.js +1 -1
  377. package/dist/components/header/header/index.esm.js +1 -1
  378. package/dist/components/header/header/index.js +1 -1
  379. package/dist/components/header/header-enhanced/index.esm.js +1 -1
  380. package/dist/components/header/header-enhanced/index.js +1 -1
  381. package/dist/components/header/index.esm.js +5 -5
  382. package/dist/components/header/index.js +3 -3
  383. package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
  384. package/dist/components/header/redux/index.esm.js +2 -2
  385. package/dist/components/header/redux/reducer/index.esm.js +1 -1
  386. package/dist/components/index.esm.js +36 -36
  387. package/dist/components/index.js +27 -27
  388. package/dist/components/inventory-reports-title-bar/index.esm.js +3 -3
  389. package/dist/components/inventory-reports-title-bar/index.js +1 -1
  390. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.esm.js +1 -1
  391. package/dist/components/inventory-reports-title-bar/inventory-reports-title-bar/index.js +1 -1
  392. package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  393. package/dist/components/inventory-reports-title-bar/redux/index.esm.js +2 -2
  394. package/dist/components/inventory-reports-title-bar/redux/reducer/index.esm.js +1 -1
  395. package/dist/components/listing/index.esm.js +1 -1
  396. package/dist/components/listing/index.js +1 -1
  397. package/dist/components/listing/listing/index.esm.js +1 -1
  398. package/dist/components/listing/listing/index.js +1 -1
  399. package/dist/components/location-select/index.esm.js +1 -1
  400. package/dist/components/location-select/index.js +1 -1
  401. package/dist/components/material-editable-table/components/index.esm.js +1 -1
  402. package/dist/components/material-editable-table/components/index.js +1 -1
  403. package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +1 -1
  404. package/dist/components/material-editable-table/components/inline-edit-fields/index.js +1 -1
  405. package/dist/components/material-editable-table/index.esm.js +2 -2
  406. package/dist/components/material-editable-table/index.js +2 -2
  407. package/dist/components/material-editable-table/material-editable-table/index.esm.js +1 -1
  408. package/dist/components/material-editable-table/material-editable-table/index.js +1 -1
  409. package/dist/components/material-table/components/index.esm.js +1 -1
  410. package/dist/components/material-table/components/index.js +1 -1
  411. package/dist/components/material-table/components/inline-edit-fields/index.esm.js +1 -1
  412. package/dist/components/material-table/components/inline-edit-fields/index.js +1 -1
  413. package/dist/components/material-table/index.esm.js +1 -1
  414. package/dist/components/material-table/index.js +1 -1
  415. package/dist/components/material-table/material-table/index.esm.js +1 -1
  416. package/dist/components/material-table/material-table/index.js +1 -1
  417. package/dist/components/page-navigator/components/index.esm.js +1 -1
  418. package/dist/components/page-navigator/components/index.js +1 -1
  419. package/dist/components/page-navigator/components/page-action/index.esm.js +1 -1
  420. package/dist/components/page-navigator/components/page-action/index.js +1 -1
  421. package/dist/components/page-navigator/index.esm.js +2 -2
  422. package/dist/components/page-navigator/index.js +2 -2
  423. package/dist/components/page-navigator/page-navigator/index.esm.js +1 -1
  424. package/dist/components/page-navigator/page-navigator/index.js +1 -1
  425. package/dist/components/parties-modal/index.esm.js +1 -1
  426. package/dist/components/parties-modal/index.js +1 -1
  427. package/dist/components/parties-modal/parties-modal/index.esm.js +1 -1
  428. package/dist/components/parties-modal/parties-modal/index.js +1 -1
  429. package/dist/components/providers/ERPUIProvider/index.esm.js +1 -1
  430. package/dist/components/providers/index.esm.js +1 -1
  431. package/dist/components/quick-approval-modal/index.esm.js +1 -1
  432. package/dist/components/quick-approval-modal/quick-approval-modal/index.esm.js +1 -1
  433. package/dist/components/reports/dynamic-report/dynamic-report/index.esm.js +1 -1
  434. package/dist/components/reports/dynamic-report/dynamic-rows/index.esm.js +1 -1
  435. package/dist/components/reports/dynamic-report/index.esm.js +2 -2
  436. package/dist/components/reports/index.esm.js +2 -2
  437. package/dist/components/reports-title-bar/index.esm.js +3 -3
  438. package/dist/components/reports-title-bar/index.js +1 -1
  439. package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
  440. package/dist/components/reports-title-bar/redux/index.esm.js +2 -2
  441. package/dist/components/reports-title-bar/redux/reducer/index.esm.js +1 -1
  442. package/dist/components/reports-title-bar/reports-title-bar/index.esm.js +1 -1
  443. package/dist/components/reports-title-bar/reports-title-bar/index.js +1 -1
  444. package/dist/components/rfq-response/index.esm.js +1 -1
  445. package/dist/components/rfq-response/index.js +1 -1
  446. package/dist/components/rfq-response/item-response-details/index.esm.js +1 -1
  447. package/dist/components/rfq-response/item-response-details/index.js +1 -1
  448. package/dist/components/schedule-report/index.esm.js +2 -2
  449. package/dist/components/schedule-report/index.js +2 -2
  450. package/dist/components/schedule-report/schedule-report/index.esm.js +1 -1
  451. package/dist/components/schedule-report/schedule-report/index.js +1 -1
  452. package/dist/components/schedule-report/schedule-report-modal/index.esm.js +1 -1
  453. package/dist/components/schedule-report/schedule-report-modal/index.js +1 -1
  454. package/dist/components/schedule-report/utils/common/index.esm.js +1 -1
  455. package/dist/components/searchable-select/index.esm.js +1 -1
  456. package/dist/components/searchable-select/index.js +1 -1
  457. package/dist/components/share-modal/index.esm.js +4 -4
  458. package/dist/components/share-modal/index.js +2 -2
  459. package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
  460. package/dist/components/share-modal/redux/index.esm.js +2 -2
  461. package/dist/components/share-modal/redux/reducer/index.esm.js +1 -1
  462. package/dist/components/share-modal/share-modal/index.esm.js +1 -1
  463. package/dist/components/share-modal/share-modal/index.js +1 -1
  464. package/dist/components/share-modal/share-modal-enhanced/index.esm.js +1 -1
  465. package/dist/components/share-modal/share-modal-enhanced/index.js +1 -1
  466. package/dist/components/team-add-modal/index.esm.js +1 -1
  467. package/dist/components/team-add-modal/index.js +1 -1
  468. package/dist/components/uom-field-wrapper/index.esm.js +1 -1
  469. package/dist/components/uom-field-wrapper/index.js +1 -1
  470. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.esm.js +1 -1
  471. package/dist/components/uom-field-wrapper/uom-field-wrapper/index.js +1 -1
  472. package/dist/components/upload-excel/index.esm.js +1 -1
  473. package/dist/components/upload-excel/upload-excel/index.esm.js +1 -1
  474. package/dist/components/vendor-ai-summary/index.esm.js +1 -1
  475. package/dist/components/vendor-ai-summary/index.js +1 -1
  476. package/dist/constants/index.esm.js +145 -143
  477. package/dist/constants/index.js +5 -3
  478. package/dist/constants/index.js.map +1 -1
  479. package/dist/hooks/index.esm.js +6 -6
  480. package/dist/hooks/index.js +1 -1
  481. package/dist/hooks/use-translations/index.esm.js +1 -1
  482. package/dist/hooks/use-translations/index.js +1 -1
  483. package/dist/hooks/useAccountSetting/index.esm.js +1 -1
  484. package/dist/hooks/useCheckSkuAndName/index.esm.js +1 -1
  485. package/dist/hooks/useReduxIntegration/index.esm.js +1 -1
  486. package/dist/hooks/useUniquenessCheck/index.esm.js +1 -1
  487. package/dist/images/index.esm.js +5 -5
  488. package/dist/images/index.esm.js.map +1 -1
  489. package/dist/images/index.js +5 -5
  490. package/dist/images/index.js.map +1 -1
  491. package/dist/index.esm.js +232 -235
  492. package/dist/index.esm.js.map +1 -1
  493. package/dist/index.js +64 -67
  494. package/dist/index.js.map +1 -1
  495. package/dist/layout/fullScreen/index.esm.js +1 -1
  496. package/dist/layout/fullScreen/index.js +1 -1
  497. package/dist/layout/index.esm.js +2 -2
  498. package/dist/layout/index.js +2 -2
  499. package/dist/layout/sidebarScreen/index.esm.js +1 -1
  500. package/dist/layout/sidebarScreen/index.js +1 -1
  501. package/dist/redux/index.esm.js +3 -3
  502. package/dist/runtime/index.esm.js +4 -4
  503. package/dist/runtime/index.js +2 -2
  504. package/dist/src/components/chat-bot/chat-bot-welcome.d.ts +2 -1
  505. package/dist/src/components/chat-bot/chat-bot.d.ts +5 -1
  506. package/dist/src/constants/defaultColumns.d.ts +1 -0
  507. package/dist/src/constants/pathnames/pathname.procurement.d.ts +4 -0
  508. package/dist/src/layout/fullScreen/fullScreen.d.ts +1 -0
  509. package/dist/src/views/template-editor/components/EditorCanvas.d.ts +12 -30
  510. package/dist/src/views/template-editor/components/EditorHeader.d.ts +0 -6
  511. package/dist/src/views/template-editor/components/EditorSection.d.ts +0 -1
  512. package/dist/src/views/template-editor/components/SectionFlowEditor.d.ts +3 -2
  513. package/dist/src/views/template-editor/components/SectionFormatPanel.d.ts +1 -2
  514. package/dist/src/views/template-editor/components/controllers/TableControls.d.ts +0 -23
  515. package/dist/src/views/template-editor/components/controllers/TextControls.d.ts +0 -3
  516. package/dist/src/views/template-editor/types/editor.d.ts +108 -20
  517. package/dist/src/views/template-editor/utils/common.d.ts +1 -10
  518. package/dist/src/views/template-editor/utils/constant.d.ts +1 -4
  519. package/dist/style.css +100 -4629
  520. package/dist/utils/api/index.esm.js +1 -1
  521. package/dist/utils/common/index.esm.js +1 -1
  522. package/dist/utils/common-utility/index.esm.js +1 -1
  523. package/dist/utils/export-filters/index.esm.js +1 -0
  524. package/dist/utils/export-filters/index.esm.js.map +1 -1
  525. package/dist/utils/export-filters/index.js +1 -0
  526. package/dist/utils/export-filters/index.js.map +1 -1
  527. package/dist/utils/index.esm.js +8 -8
  528. package/dist/utils/server/index.esm.js +2 -2
  529. package/dist/utils/text-measurement/index.esm.js +1 -1
  530. package/dist/views/afterAuth/dashboard/index.esm.js +1 -1
  531. package/dist/views/afterAuth/dashboard/index.js +1 -1
  532. package/dist/views/afterAuth/index.esm.js +2 -2
  533. package/dist/views/afterAuth/index.js +2 -2
  534. package/dist/views/afterAuth/page-view/index.esm.js +1 -1
  535. package/dist/views/afterAuth/page-view/index.js +1 -1
  536. package/dist/views/form-builder/custom-form/index.esm.js +1 -1
  537. package/dist/views/form-builder/custom-form/index.js +1 -1
  538. package/dist/views/form-builder/element-edit-forms/index.esm.js +1 -1
  539. package/dist/views/form-builder/form-fields/index.esm.js +1 -1
  540. package/dist/views/form-builder/form-fields/index.js +1 -1
  541. package/dist/views/form-builder/index.esm.js +5 -5
  542. package/dist/views/form-builder/index.js +3 -3
  543. package/dist/views/form-builder/redux/index.esm.js +1 -1
  544. package/dist/views/form-builder/utils/index.esm.js +1 -1
  545. package/dist/views/form-builder/utils/index.js +1 -1
  546. package/dist/views/index.esm.js +34 -39
  547. package/dist/views/index.esm.js.map +1 -1
  548. package/dist/views/index.js +31 -36
  549. package/dist/views/index.js.map +1 -1
  550. package/dist/views/template-editor/add-template/index.esm.js +1 -1
  551. package/dist/views/template-editor/add-template/index.js +1 -1
  552. package/dist/views/template-editor/components/index.esm.js +6 -7
  553. package/dist/views/template-editor/components/index.esm.js.map +1 -1
  554. package/dist/views/template-editor/components/index.js +3 -4
  555. package/dist/views/template-editor/components/index.js.map +1 -1
  556. package/dist/views/template-editor/edit-section-modal/index.esm.js +1 -1
  557. package/dist/views/template-editor/index.esm.js +20 -25
  558. package/dist/views/template-editor/index.esm.js.map +1 -1
  559. package/dist/views/template-editor/index.js +11 -16
  560. package/dist/views/template-editor/index.js.map +1 -1
  561. package/dist/views/template-editor/routes/index.esm.js +1 -1
  562. package/dist/views/template-editor/routes/index.js +1 -1
  563. package/dist/views/template-editor/template-modal/index.esm.js +1 -1
  564. package/dist/views/template-editor/template-modal/index.js +1 -1
  565. package/dist/views/template-editor/template-name-modal/index.esm.js +1 -1
  566. package/dist/views/template-editor/template-name-modal/index.js +1 -1
  567. package/dist/views/template-editor/templates/index.esm.js +1 -1
  568. package/dist/views/template-editor/templates/index.js +1 -1
  569. package/dist/views/template-editor/utils/index.esm.js +6 -10
  570. package/dist/views/template-editor/utils/index.js +2 -6
  571. package/dist/views/template-editor/utils/index.js.map +1 -1
  572. package/package.json +1 -1
  573. package/dist/chunks/EditorSection-BLGcgQFm.esm.js +0 -849
  574. package/dist/chunks/EditorSection-BLGcgQFm.esm.js.map +0 -1
  575. package/dist/chunks/EditorSection-D6yaBfjP.js +0 -848
  576. package/dist/chunks/EditorSection-D6yaBfjP.js.map +0 -1
  577. package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js +0 -12543
  578. package/dist/chunks/SectionFlowEditor-Dp-mjWT9.esm.js.map +0 -1
  579. package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js +0 -12542
  580. package/dist/chunks/SectionFlowEditor-Dz1SuCm2.js.map +0 -1
  581. package/dist/chunks/add-template-CUPbU0z7.js +0 -10
  582. package/dist/chunks/add-template-CUPbU0z7.js.map +0 -1
  583. package/dist/chunks/add-template-CxvhzFMF.esm.js +0 -11
  584. package/dist/chunks/add-template-CxvhzFMF.esm.js.map +0 -1
  585. package/dist/chunks/chat-bot-2Ga_xA_K.js.map +0 -1
  586. package/dist/chunks/chat-bot-DO3vAGxA.esm.js.map +0 -1
  587. package/dist/chunks/common-BgXEAs_y.esm.js +0 -851
  588. package/dist/chunks/common-BgXEAs_y.esm.js.map +0 -1
  589. package/dist/chunks/common-D6T6NGWY.js +0 -850
  590. package/dist/chunks/common-D6T6NGWY.js.map +0 -1
  591. package/dist/chunks/common-utility-CS_sNoAC.esm.js.map +0 -1
  592. package/dist/chunks/constant-BXPcBhJN.esm.js.map +0 -1
  593. package/dist/chunks/constant-BXeJD4Af.js.map +0 -1
  594. package/dist/chunks/edit-section-modal-HihKbN6K.esm.js.map +0 -1
  595. package/dist/chunks/fullScreen-Cz3FIdU4.esm.js.map +0 -1
  596. package/dist/chunks/fullScreen-h0JqBN4O.js.map +0 -1
  597. package/dist/chunks/template-modal-D7aLacan.esm.js.map +0 -1
  598. package/dist/chunks/template-modal-Df7gF4QI.js.map +0 -1
  599. package/dist/chunks/template-name-modal-ClreVUaz.js.map +0 -1
  600. package/dist/chunks/template-name-modal-Dwe7U72p.esm.js.map +0 -1
  601. package/dist/chunks/templates-9ZMHwRR6.esm.js.map +0 -1
  602. package/dist/chunks/templates-DCXbeOtH.js.map +0 -1
  603. package/dist/src/views/template-editor/components/EditorCanvas/FreeCanvas.d.ts +0 -34
  604. package/dist/src/views/template-editor/components/EditorCanvas/FreeElement.d.ts +0 -30
  605. package/dist/src/views/template-editor/components/stationery/StationeryPreview.d.ts +0 -24
  606. package/dist/src/views/template-editor/components/stationery/StationerySidebar.d.ts +0 -9
  607. package/dist/src/views/template-editor/engine/ai.d.ts +0 -12
  608. package/dist/src/views/template-editor/engine/app.d.ts +0 -1
  609. package/dist/src/views/template-editor/engine/controls.d.ts +0 -4
  610. package/dist/src/views/template-editor/engine/design-canvas.d.ts +0 -24
  611. package/dist/src/views/template-editor/engine/editor.d.ts +0 -17
  612. package/dist/src/views/template-editor/engine/engine.d.ts +0 -18
  613. package/dist/src/views/template-editor/engine/icons.d.ts +0 -91
  614. package/dist/src/views/template-editor/engine/letterpads.d.ts +0 -1
  615. package/dist/src/views/template-editor/engine/model.d.ts +0 -20
  616. package/dist/src/views/template-editor/engine/paginator.d.ts +0 -30
  617. package/dist/src/views/template-editor/engine/picker.d.ts +0 -20
  618. package/dist/src/views/template-editor/engine/schema.d.ts +0 -647
  619. package/dist/src/views/template-editor/engine/stationery-app.d.ts +0 -10
  620. package/dist/src/views/template-editor/engine/stationery-doc.d.ts +0 -62
  621. package/dist/src/views/template-editor/engine/stationery-free-element.d.ts +0 -22
  622. package/dist/src/views/template-editor/engine/stationery-store.d.ts +0 -154
  623. package/dist/src/views/template-editor/engine/templatebuilder.d.ts +0 -51
  624. package/dist/src/views/template-editor/engine/templates.d.ts +0 -11
  625. package/dist/src/views/template-editor/icons/custom-styled-icon.d.ts +0 -7
  626. package/dist/src/views/template-editor/icons/edit.d.ts +0 -4
  627. package/dist/src/views/template-editor/icons/trash.d.ts +0 -4
  628. package/dist/src/views/template-editor/types/stationery.d.ts +0 -66
  629. package/dist/src/views/template-editor/utils/compiler.d.ts +0 -12
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-bot-DO3vAGxA.esm.js","sources":["../../src/components/chat-bot/types.ts","../../src/components/chat-bot/icons.tsx","../../src/components/chat-bot/constants.tsx","../../src/components/chat-bot/chat-bot-header.tsx","../../src/components/chat-bot/chat-bot-welcome.tsx","../../src/components/chat-bot/chat-bot-messages.tsx","../../src/components/chat-bot/chat-bot-input.tsx","../../src/components/chat-bot/chat-bot-launcher.tsx","../../src/components/chat-bot/invoice-item-table.tsx","../../src/components/chat-bot/invoice-expense-table.tsx","../../src/components/chat-bot/invoice-preview.tsx","../../src/components/chat-bot/doc-file-icon.tsx","../../src/components/chat-bot/doc-upload.tsx","../../src/components/chat-bot/doc-status.tsx","../../src/components/chat-bot/doc-intro.tsx","../../src/components/chat-bot/chat-bot.tsx"],"sourcesContent":["export interface IMessage {\n\tid: number;\n\trole: 'user' | 'ai';\n\ttext: string;\n\ttime?: string;\n\tmode?: IMode;\n}\n\nexport type IMode = 'conversation' | 'agent' | 'doc_qa';\n\nexport type FormType = 'sales_invoice' | 'purchase_invoice';\n\nexport const FORM_TYPE_LABELS: Record<FormType, string> = {\n sales_invoice: 'Sales Invoice',\n purchase_invoice: 'Purchase Invoice',\n};\n\nexport type InsightKind = 'red' | 'amber' | 'blue' | '';\n\nexport type DocumentStatus = 'uploading' | 'pending' | 'processing' | 'parsing' | 'embedding' | 'indexing' | 'ready' | 'failed';\n\nexport interface IDocument {\n doc_id: string;\n filename: string;\n status: DocumentStatus;\n pages?: number;\n category?: string;\n sub_category?: string;\n chunk_count?: number;\n error?: string;\n error_code?: string;\n summary?: string;\n suggested_questions?: string[];\n}\n\nexport type FileCategory = 'pdf' | 'excel' | 'doc' | 'md' | 'image';\n\nexport const ACCEPTED_FILE_EXTENSIONS: Record<FileCategory, string[]> = {\n pdf: ['.pdf'],\n excel: ['.xls', '.xlsx'],\n doc: ['.doc', '.docx'],\n md: ['.md'],\n image: ['.png', '.jpg', '.jpeg'],\n};\n\nexport const ACCEPT_ATTR = Object.values(ACCEPTED_FILE_EXTENSIONS).flat().join(',');\n\nexport const getFileCategory = (filename: string): FileCategory | null => {\n const lower = filename.toLowerCase();\n return (Object.keys(ACCEPTED_FILE_EXTENSIONS) as FileCategory[]).find((category) =>\n ACCEPTED_FILE_EXTENSIONS[category].some((ext) => lower.endsWith(ext))\n ) || null;\n};\n\nexport const getTime = () =>\n\tnew Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n\nexport const getGreeting = () => {\n\tconst h = new Date().getHours();\n\tif (h < 12) return 'Good morning';\n\tif (h < 17) return 'Good afternoon';\n\treturn 'Good evening';\n};\n","export const IcWarning = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<path d=\"M10.3 3.9L1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z\" />\n\t\t<line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n\t\t<line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n\t</svg>\n);\n\nexport const IcBox = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\" />\n\t\t<polyline points=\"3.3 7 12 12 20.7 7\" />\n\t\t<line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"12\" />\n\t</svg>\n);\n\nexport const IcCalendar = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" />\n\t\t<line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\" />\n\t\t<line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\" />\n\t\t<line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\" />\n\t</svg>\n);\n\nexport const IcChevR = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<polyline points=\"9 6 15 12 9 18\" />\n\t</svg>\n);\n\nexport const IcSearch = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<circle cx=\"11\" cy=\"11\" r=\"7\" />\n\t\t<line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n\t</svg>\n);\n\nexport const IcTarget = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"9\" />\n\t\t<circle cx=\"12\" cy=\"12\" r=\"5\" />\n\t\t<circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"currentColor\" stroke=\"none\" />\n\t</svg>\n);\n\nexport const IcBolt = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\" />\n\t</svg>\n);\n\nexport const IcFlame = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"1.8\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<path d=\"M8.5 14.5A2.5 2.5 0 0 0 11 17c1.4 0 2-1 2-2 0-1-.6-2-2-2-1 0-1.5.5-1.5 1zM12 2c0 4-3 5-3 9a5 5 0 0 0 10 0c0-2-1-3-2-4 0-1 0-2-1-3-1.5-1.5-3-2-4-2z\" />\n\t</svg>\n);\n\nexport const SparkMark = ({ size = 20 }: { size?: number }) => (\n\t<span\n\t\tclassName='chatBot--spark-mark'\n\t\tstyle={{ width: size, height: size, borderRadius: Math.round(size * 0.3) }}>\n\t\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\t\tstyle={{ width: '58%', height: '58%' }}>\n\t\t\t<path d=\"M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z\" />\n\t\t\t<path d=\"M19 3l.6 1.8L21 5.4l-1.4.6L19 7.8l-.6-1.8L17 5.4l1.4-.6z\" />\n\t\t</svg>\n\t</span>\n);\n\nexport const IcInvoice = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n\t\t<polyline points=\"14 2 14 8 20 8\" />\n\t\t<line x1=\"8\" y1=\"13\" x2=\"16\" y2=\"13\" />\n\t\t<line x1=\"8\" y1=\"17\" x2=\"14\" y2=\"17\" />\n\t</svg>\n);\n\nexport const SparkSvg = ({ size = 12 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0 }}>\n\t\t<path d=\"M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z\" />\n\t\t<path d=\"M19 3l.6 1.8L21 5.4l-1.4.6L19 7.8l-.6-1.8L17 5.4l1.4-.6z\" />\n\t</svg>\n);\n\nexport const IcInfo = ({ size = 14 }: { size?: number }) => (\n\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"\n\t\tstyle={{ width: size, height: size, flexShrink: 0, fill: 'none' }}>\n\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t<line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n\t\t<line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n\t</svg>\n);\n","import { IcWarning, IcBox, IcCalendar, IcSearch, IcTarget, IcBolt, IcFlame } from './icons';\nimport { IMode, InsightKind, FormType } from './types';\n\nexport const SLASH_COMMANDS: { id: IMode; label: string; description: string }[] = [\n\t{\n\t\tid: 'conversation',\n\t\tlabel: 'Conversation',\n\t\tdescription: 'Chat with the ERP AI assistant'\n\t},\n\t{\n\t\tid: 'agent',\n\t\tlabel: 'Agent',\n\t\tdescription: 'Let AI take actions in your ERP'\n\t},\n\t{\n\t\tid: 'doc_qa',\n\t\tlabel: 'Document',\n\t\tdescription: 'Upload a document and ask questions about it'\n\t}\n];\n\nexport const INSIGHTS: {\n\ticon: React.FC<{ size?: number }>;\n\tkind: InsightKind;\n\ttitle: string;\n\tsub: string;\n}[] = [\n\t{ icon: IcWarning, kind: 'red', title: 'Overdue invoices need attention', sub: 'Review receivables aging for payment follow-up' },\n\t{ icon: IcBox, kind: 'amber', title: 'Items below reorder level detected', sub: 'Check inventory before the next purchase order cycle' },\n\t{ icon: IcCalendar, kind: 'blue', title: 'Pending leave requests awaiting approval', sub: 'Some requests are past the standard SLA' }\n];\n\nexport const SUGGEST_TILES: {\n\ticon: React.FC<{ size?: number }>;\n\tkind: InsightKind;\n\tcat: string;\n\tmode: IMode;\n\tformType?: FormType;\n\tprompt: string;\n}[] = [\n\t{ icon: IcSearch, kind: '', cat: 'ASK', mode: 'conversation', prompt: 'List the 5 most recent purchase orders' },\n\t{ icon: IcSearch, kind: '', cat: 'ASK', mode: 'conversation', prompt: 'Show me journal entries from last month' },\n\t{ icon: IcBolt, kind: 'amber', cat: 'AGENT', mode: 'agent', formType: 'sales_invoice', prompt: 'Create a sales invoice' },\n\t{ icon: IcBolt, kind: 'amber', cat: 'AGENT', mode: 'agent', formType: 'purchase_invoice', prompt: 'Create a purchase invoice' },\n\t{ icon: IcSearch, kind: 'blue', cat: 'DOC', mode: 'doc_qa', prompt: 'Upload a document to get started' },\n\t{ icon: IcTarget, kind: 'blue', cat: 'DOC', mode: 'doc_qa', prompt: 'Ask questions about any uploaded document' },\n];\n","import { Add, Close, OpenInFullRounded } from '@mui/icons-material';\nimport { SparkMark } from './icons';\n\ninterface Props {\n\tonClose: () => void;\n\tonNewChat: () => void;\n}\n\nconst ChatBotHeader = ({ onClose, onNewChat }: Props) => (\n\t<>\n\t\t<div className='chatBot--header'>\n\t\t\t<SparkMark size={34} />\n\t\t\t<div className='chatBot--hd-info'>\n\t\t\t\t<div className='chatBot--hd-name'>\n\t\t\t\t\t\t\tNovaForce\n\t\t\t\t\t\t\t<span className='chatBot--hd-beta'>Beta</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t<div className='chatBot--hd-sub'>AI-powered ERP assistant</div>\n\t\t\t</div>\n\t\t\t<div className='chatBot--hd-actions'>\n\t\t\t\t<button title='New chat' onClick={onNewChat}>\n\t\t\t\t\t<Add style={{ fontSize: 18 }} />\n\t\t\t\t</button>\n\t\t\t\t<button title='Expand'>\n\t\t\t\t\t<OpenInFullRounded style={{ fontSize: 16 }} />\n\t\t\t\t</button>\n\t\t\t\t<button title='Close' onClick={onClose}>\n\t\t\t\t\t<Close style={{ fontSize: 18 }} />\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div className='chatBot--ctx-bar'>\n\t\t\t<span className='chatBot--ctx-chip'>\n\t\t\t\t<span className='chatBot--ctx-dot' />\n\t\t\t\tERP Data\n\t\t\t</span>\n\t\t\t<span className='chatBot--ctx-label'>All modules · Live data</span>\n\t\t</div>\n\t</>\n);\n\nexport default ChatBotHeader;\n","import { IcChevR, IcSearch } from './icons';\nimport { INSIGHTS, SUGGEST_TILES } from './constants';\nimport { IMode, FormType, getGreeting } from './types';\n\ninterface Props {\n\tfirstName: string;\n\tonSuggestion: (prompt: string, mode: IMode, formType?: FormType) => void;\n\tdynamicQuestions?: any[];\n\tmode: IMode;\n}\n\nconst ChatBotWelcome = ({ firstName, onSuggestion, dynamicQuestions = [], mode }: Props) => {\n\tconst greeting = getGreeting();\n\n\tconst dynamicTiles = dynamicQuestions.map(dq => ({\n\t\ticon: IcSearch,\n\t\tkind: dq.kind || 'blue',\n\t\tcat: dq.cat,\n\t\tmode: dq.mode,\n\t\tformType: dq.formType,\n\t\tprompt: dq.prompt\n\t}));\n\n\tconst askTiles = dynamicQuestions.length > 0 ? dynamicTiles : SUGGEST_TILES.filter(t => t.cat === 'ASK');\n\tconst agentTiles = SUGGEST_TILES.filter(t => t.cat === 'AGENT');\n\tconst docTiles = SUGGEST_TILES.filter(t => t.cat === 'DOC');\n\tconst displayTiles = mode === 'conversation' ? askTiles : mode === 'agent' ? agentTiles : docTiles;\n\n\treturn (\n\t\t<div className='chatBot--welcome'>\n\t\t\t<div className='chatBot--greeting'>\n\t\t\t\t{greeting}\n\t\t\t\t{firstName && (\n\t\t\t\t\t<>, <span className='chatBot--grad'>{firstName}</span></>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className='chatBot--greeting-sub'>\n\t\t\t\tNovaForce is watching your ERP data. Here's what stands out today.\n\t\t\t</div>\n\n\t\t\t{/* Insights section is removed as per latest design, but can be added back if needed in the future */}\n\t\t\t{/* <div className='chatBot--section-lbl'>\n\t\t\t\t<span>Insights for you</span>\n\t\t\t\t<span className='chatBot--ln' />\n\t\t\t</div>\n\n\t\t\t<div className='chatBot--insight-list'>\n\t\t\t\t{INSIGHTS.map((item, i) => (\n\t\t\t\t\t<div className='chatBot--insight-row' key={i}>\n\t\t\t\t\t\t<span className={`chatBot--ic chatBot--ic--${item.kind}`}>\n\t\t\t\t\t\t\t<item.icon size={13} />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<div className='chatBot--ins-body'>\n\t\t\t\t\t\t\t<div className='chatBot--ins-title'>{item.title}</div>\n\t\t\t\t\t\t\t<div className='chatBot--ins-sub'>{item.sub}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className='chatBot--ins-chevron'>\n\t\t\t\t\t\t\t<IcChevR size={13} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div> */}\n\n\t\t\t<div className='chatBot--section-lbl'>\n\t\t\t\t<span>Try asking</span>\n\t\t\t\t<span className='chatBot--ln' />\n\t\t\t</div>\n\n\t\t\t<div className='chatBot--suggest-grid'>\n\t\t\t\t{displayTiles.map((tile, i) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tclassName='chatBot--suggest-tile'\n\t\t\t\t\t\tonClick={() => onSuggestion(tile.prompt, tile.mode as IMode, tile.formType as FormType)}>\n\t\t\t\t\t\t<div className='chatBot--suggest-head'>\n\t\t\t\t\t\t\t<span className={`chatBot--ic chatBot--ic--${tile.kind}`}>\n\t\t\t\t\t\t\t\t<tile.icon size={13} />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className='chatBot--suggest-cat'>{tile.cat}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className='chatBot--suggest-prompt'>{tile.prompt}</div>\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ChatBotWelcome;\n","import { RefObject } from 'react';\nimport { marked } from 'marked';\nimport { ReactNode } from 'react';\n\nimport { SparkMark } from './icons';\nimport { IMessage } from './types';\n\ninterface Props {\n\tmessages: IMessage[];\n\tisTyping: boolean;\n\tbodyRef: RefObject<HTMLDivElement>;\n\tfooter?: ReactNode;\n}\n\nconst ChatBotMessages = ({ messages, isTyping, bodyRef, footer }: Props) => (\n\t<div ref={bodyRef} className='chatBot--body'>\n\t\t{messages.map((msg) => (\n\t\t\t<div key={msg.id} className={`chatBot--msg-row chatBot--msg-row--${msg.role}`}>\n\t\t\t\t{msg.role === 'user' && (\n\t\t\t\t\t<div className='chatBot--user-bubble'>{msg.text}</div>\n\t\t\t\t)}\n\t\t\t\t{msg.role === 'ai' && (\n\t\t\t\t\t<div className='chatBot--ai-msg'>\n\t\t\t\t\t\t<div className='chatBot--ai-sender'>\n\t\t\t\t\t\t\t<SparkMark size={22} />\n\t\t\t\t\t\t\t<span className='chatBot--ai-name'>NovaForce</span>\n\t\t\t\t\t\t\t{msg.time && (\n\t\t\t\t\t\t\t\t<span className='chatBot--ai-time'>· {msg.time}</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='chatBot--ai-text'\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={{ __html: marked.parse(msg.text) as string }}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t))}\n\n\t\t{isTyping && (\n\t\t\t<div className='chatBot--ai-msg'>\n\t\t\t\t<div className='chatBot--ai-sender'>\n\t\t\t\t\t<SparkMark size={22} />\n\t\t\t\t\t<span className='chatBot--ai-name'>NovaForce</span>\n\t\t\t\t</div>\n\t\t\t\t<div className='chatBot--typing-dots'>\n\t\t\t\t\t<span />\n\t\t\t\t\t<span />\n\t\t\t\t\t<span />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t)}\n\n\t\t{footer}\n\t\t\n\n\t</div>\n);\n\nexport default ChatBotMessages;\n","import { RefObject } from 'react';\nimport { ArrowUpwardRounded, UploadFileRounded, DeleteOutlineRounded } from '@mui/icons-material';\nimport { SparkMark, SparkSvg } from './icons';\nimport { SLASH_COMMANDS } from './constants';\nimport { IMode, FormType, FORM_TYPE_LABELS, IDocument } from './types';\nimport AIDisclaimer from '../ai-disclaimer/ai-disclaimer';\n\nconst FORM_TYPES: FormType[] = ['sales_invoice', 'purchase_invoice'];\n\ninterface Props {\n\tinputValue: string;\n\tisTyping: boolean;\n\tmode: IMode;\n\tformType: FormType | null;\n\tshowSlashMenu: boolean;\n\tfilteredCommands: typeof SLASH_COMMANDS;\n\tslashIndex: number;\n\ttextareaRef: RefObject<HTMLTextAreaElement>;\n\tonChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n\tonKeyDown: (e: React.KeyboardEvent) => void;\n\tonSend: () => void;\n\tonSlashHover: (idx: number) => void;\n\tonSlashSelect: (id: IMode) => void;\n\tonModeChange: (id: IMode) => void;\n\tonFormTypeChange: (ft: FormType) => void;\n\tactiveDocument?: IDocument | null;\n\tactiveDocuments?: IDocument[];\n\tonDocDelete?: () => void;\n\tonDocUpload?: () => void;\n\tonMultiDocDelete?: (docId?: string) => void;\n}\n\nconst ChatBotInput = ({\n\tinputValue,\n\tisTyping,\n\tmode,\n\tformType,\n\tshowSlashMenu,\n\tfilteredCommands,\n\tslashIndex,\n\ttextareaRef,\n\tonChange,\n\tonKeyDown,\n\tonSend,\n\tonSlashHover,\n\tonSlashSelect,\n\tonModeChange,\n\tonFormTypeChange,\n\tactiveDocument,\n\tactiveDocuments,\n\tonDocDelete,\n\tonDocUpload,\n\tonMultiDocDelete,\n}: Props) => {\n\tconst canSend = mode === 'agent'\n\t\t? (formType !== null && !isTyping)\n\t\t: mode === 'doc_qa'\n\t\t\t? (activeDocuments && activeDocuments.length > 0)\n\t\t\t\t? (activeDocuments.every(d => d.status === 'ready') && !!inputValue.trim() && !isTyping)\n\t\t\t\t: (activeDocument?.status === 'ready' && !!inputValue.trim() && !isTyping)\n\t\t\t: (!!inputValue.trim() && !isTyping);\n\n\treturn (\n\t\t<div className='chatBot--input-area'>\n\t\t\t{showSlashMenu && filteredCommands.length > 0 && (\n\t\t\t\t<div className='chatBot--slash-menu'>\n\t\t\t\t\t<div className='chatBot--slash-menu-label'>Commands</div>\n\t\t\t\t\t{filteredCommands.map((cmd, idx) => (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={cmd.id}\n\t\t\t\t\t\t\tclassName={`chatBot--slash-item${idx === slashIndex ? ' chatBot--slash-item--active' : ''}`}\n\t\t\t\t\t\t\tonMouseEnter={() => onSlashHover(idx)}\n\t\t\t\t\t\t\tonClick={() => onSlashSelect(cmd.id)}>\n\t\t\t\t\t\t\t<SparkMark size={28} />\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<div className='chatBot--slash-item-label'>{cmd.label}</div>\n\t\t\t\t\t\t\t\t<div className='chatBot--slash-item-desc'>{cmd.description}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{mode === 'agent' && (\n\t\t\t\t<div className='chatBot--form-type-bar'>\n\t\t\t\t\t<span className='chatBot--form-type-label'>Form type</span>\n\t\t\t\t\t<div className='chatBot--form-type-options'>\n\t\t\t\t\t\t{FORM_TYPES.map((ft) => (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tkey={ft}\n\t\t\t\t\t\t\t\tclassName={`chatBot--form-type-btn${formType === ft ? ' chatBot--form-type-btn--active' : ''}`}\n\t\t\t\t\t\t\t\tonClick={() => onFormTypeChange(ft)}>\n\t\t\t\t\t\t\t\t{FORM_TYPE_LABELS[ft]}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{mode === 'doc_qa' && activeDocument && (!activeDocuments || activeDocuments.length === 0) && (\n\t\t\t\t<div className='chatBot--doc-chip-bar'>\n\t\t\t\t\t<div className='chatBot--doc-chip'>\n\t\t\t\t\t\t<span className='chatBot--doc-chip-dot' style={{\n\t\t\t\t\t\t\tbackground: activeDocument.status === 'ready' ? '#2EB273'\n\t\t\t\t\t\t\t\t: activeDocument.status === 'failed' ? '#C62828' : '#2EB273'\n\t\t\t\t\t\t}} />\n\t\t\t\t\t\t<span className='chatBot--doc-chip-name'>{activeDocument.filename}</span>\n\t\t\t\t\t\t{activeDocument.status === 'ready' && (\n\t\t\t\t\t\t\t<span className='chatBot--doc-chip-badge'>Ready</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t{/* <button className='chatBot--doc-chip-action' onClick={onDocUpload} title='Upload different file'>\n\t\t\t\t\t\t<UploadFileRounded sx={{ fontSize: 15 }} />\n\t\t\t\t\t</button>\n\t\t\t\t\t<button className='chatBot--doc-chip-action chatBot--doc-chip-action--danger' onClick={onDocDelete} title='Remove document'>\n\t\t\t\t\t\t<DeleteOutlineRounded sx={{ fontSize: 15 }} />\n\t\t\t\t\t</button> */}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{mode === 'doc_qa' && activeDocuments && activeDocuments.length > 0 && (\n\t\t\t\t<div className='chatBot--doc-chip-bar'>\n\t\t\t\t\t{activeDocuments.map(doc => (\n\t\t\t\t\t\t<div key={doc.doc_id} className='chatBot--doc-chip'>\n\t\t\t\t\t\t\t<span className='chatBot--doc-chip-dot' style={{\n\t\t\t\t\t\t\t\tbackground: doc.status === 'ready' ? '#2EB273'\n\t\t\t\t\t\t\t\t\t: doc.status === 'failed' ? '#C62828' : '#2EB273'\n\t\t\t\t\t\t\t}} />\n\t\t\t\t\t\t\t<span className='chatBot--doc-chip-name' title={doc.filename}>{doc.filename}</span>\n\t\t\t\t\t\t\t{doc.status === 'ready' && (\n\t\t\t\t\t\t\t\t<span className='chatBot--doc-chip-badge'>Ready</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<button className='chatBot--doc-chip-action chatBot--doc-chip-action--danger' onClick={() => onMultiDocDelete?.(doc.doc_id)} title='Remove document'>\n\t\t\t\t\t\t\t\t<DeleteOutlineRounded sx={{ fontSize: 15 }} />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t\t{/* <button className='chatBot--doc-chip-action' onClick={onDocUpload} title='Upload more files'>\n\t\t\t\t\t\t<UploadFileRounded sx={{ fontSize: 15 }} />\n\t\t\t\t\t</button>\n\t\t\t\t\t{activeDocuments.length > 1 && (\n\t\t\t\t\t\t<button className='chatBot--doc-chip-action chatBot--doc-chip-action--danger' onClick={() => onMultiDocDelete?.()} title='Remove all documents'>\n\t\t\t\t\t\t\t<DeleteOutlineRounded sx={{ fontSize: 15 }} />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)} */}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div className='chatBot--input-wrap'>\n\t\t\t\t<textarea\n\t\t\t\t\tref={textareaRef}\n\t\t\t\t\tclassName='chatBot--textarea'\n\t\t\t\t\trows={2}\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tmode === 'doc_qa'\n\t\t\t\t\t\t\t? (activeDocuments && activeDocuments.length > 0)\n\t\t\t\t\t\t\t\t? activeDocuments.every(d => d.status === 'ready')\n\t\t\t\t\t\t\t\t\t? 'Ask a question about the document(s)…'\n\t\t\t\t\t\t\t\t\t: 'Documents are processing…'\n\t\t\t\t\t\t\t\t: activeDocument?.status === 'ready'\n\t\t\t\t\t\t\t\t\t? 'Ask a question about this document…'\n\t\t\t\t\t\t\t\t\t: activeDocument\n\t\t\t\t\t\t\t\t\t\t? 'Document is still processing…'\n\t\t\t\t\t\t\t\t\t\t: 'Upload PDF(s) above, then ask questions…'\n\t\t\t\t\t\t\t: mode === 'agent'\n\t\t\t\t\t\t\t\t? 'Add any context for the agent…'\n\t\t\t\t\t\t\t\t: 'Ask anything, or describe an action…'\n\t\t\t\t\t}\n\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\tonKeyDown={onKeyDown}\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tisTyping ||\n\t\t\t\t\t\t(mode === 'doc_qa' && !!activeDocument && activeDocument.status !== 'ready') ||\n\t\t\t\t\t\t(mode === 'doc_qa' && !!activeDocuments && activeDocuments.length > 0 && activeDocuments.some(d => d.status !== 'ready'))\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<div className='chatBot--ctrls'>\n\t\t\t\t\t<div className='chatBot--mode-tabs'>\n\t\t\t\t\t\t{SLASH_COMMANDS.map((cmd) => (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tkey={cmd.id}\n\t\t\t\t\t\t\t\tclassName={`chatBot--mode-tab${mode === cmd.id ? ' chatBot--mode-tab--active' : ''}`}\n\t\t\t\t\t\t\t\tonClick={() => onModeChange(cmd.id)}\n\t\t\t\t\t\t\t\ttitle={cmd.description}>\n\t\t\t\t\t\t\t\t{mode === cmd.id && <SparkSvg size={11} />}\n\t\t\t\t\t\t\t\t{cmd.label}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t\t<span className='chatBot--ctrls-grow' />\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={`chatBot--send-btn${canSend ? ' active' : ''}`}\n\t\t\t\t\t\tonClick={onSend}\n\t\t\t\t\t\tdisabled={!canSend}\n\t\t\t\t\t\ttitle='Send'>\n\t\t\t\t\t\t<ArrowUpwardRounded style={{ fontSize: 15 }} />\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className='chatBot--hints' style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '6px', overflow: 'hidden' }}>\n\t\t\t\t<div style={{ color: '#9ca3af', fontSize: '10px', whiteSpace: 'nowrap' }}>\n\t\t\t\t\t{mode === 'doc_qa' ? 'Document Q&A mode' : 'Replies use ERP data only'}\n\t\t\t\t</div>\n\t\t\t\t<div style={{ width: '1px', height: '10px', background: '#d1d5db', flexShrink: 0 }} />\n\t\t\t\t<div style={{ marginTop: '-16px', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}>\n\t\t\t\t\t<AIDisclaimer showIcon={false} justifyContent=\"flex-start\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ChatBotInput;\n","interface Props {\n\tonOpen: () => void;\n}\n\nconst ChatBotLauncher = ({ onOpen }: Props) => (\n\t<button className='chatBot--launcher' onClick={onOpen}>\n\t\t<span className='chatBot--launcher-icon'>\n\t\t\t<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\" strokeWidth=\"2\"\n\t\t\t\tstyle={{ width: 22, height: 22, flexShrink: 0 }}>\n\t\t\t\t<path d=\"M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z\" />\n\t\t\t\t<path d=\"M19 3l.6 1.8L21 5.4l-1.4.6L19 7.8l-.6-1.8L17 5.4l1.4-.6z\" />\n\t\t\t</svg>\n\t\t</span>\n\t\t<span className='chatBot--launcher-label'>Ask NovaForce</span>\n\n\t\t{/**/}\n\t\t{/* <span className='chatBot--launcher-kbd'>⌘J</span> */}\n\t\t{/**/}\n\n\t</button>\n);\n\nexport default ChatBotLauncher;\n","import React from 'react';\n\ninterface Props {\n fieldUpdates: Record<string, any>;\n resolvedLabels: Record<string, string>;\n}\n\nconst ItemEntryTable = ({ fieldUpdates, resolvedLabels }: Props) => {\n const prefix = fieldUpdates['sales_item_entries.items.name']\n ? 'sales_item_entries'\n : fieldUpdates['purchase_item_entries.items.name']\n ? 'purchase_item_entries'\n : null;\n\n if (!prefix) return null;\n\n const names = fieldUpdates[`${prefix}.items.name`];\n const quantities = fieldUpdates[`${prefix}.quantity`];\n const rates = fieldUpdates[`${prefix}.rate`];\n const discountAmounts = fieldUpdates[`${prefix}.discount_amount`];\n const taxAmounts = fieldUpdates[`${prefix}.tax_amount`];\n const totalAmounts = fieldUpdates[`${prefix}.total_amount`];\n\n if (!Array.isArray(names) || names.length === 0) return null;\n\n const rows = names.map((_: any, i: number) => {\n const itemId = names[i];\n const qty = parseFloat(quantities?.[i]) || 0;\n const rate = parseFloat(rates?.[i]) || 0;\n const gross = qty * rate;\n const discount = parseFloat(discountAmounts?.[i]) || 0;\n const tax = parseFloat(taxAmounts?.[i]) || 0;\n const total = parseFloat(totalAmounts?.[i]) || 0;\n const resolvedKey = `${prefix}.items.name:${itemId}`;\n const itemName = resolvedLabels[resolvedKey] || `Item #${itemId}`;\n return { itemName, qty, rate, gross, discount, tax, total };\n });\n\n const subtotal = rows.reduce((sum, r) => sum + r.gross, 0);\n const totalDiscount = rows.reduce((sum, r) => sum + r.discount, 0);\n const totalTax = rows.reduce((sum, r) => sum + r.tax, 0);\n const totalDue = rows.reduce((sum, r) => sum + r.total, 0);\n\n return (\n <>\n <div style={{ overflowX: 'auto' }}>\n <div className=\"chatBot--preview-li\" style={{ gridTemplateColumns: '1fr repeat(6, 85px)' }}>\n <div className=\"chatBot--preview-li-h\">Item</div>\n <div className=\"chatBot--preview-li-h right\">Qty</div>\n <div className=\"chatBot--preview-li-h right\">Rate</div>\n <div className=\"chatBot--preview-li-h right\">Gross</div>\n <div className=\"chatBot--preview-li-h right\">Discount</div>\n <div className=\"chatBot--preview-li-h right\">Tax</div>\n <div className=\"chatBot--preview-li-h right\">Total</div>\n {rows.map((r, i) => (\n <React.Fragment key={i}>\n <div className=\"chatBot--preview-li-c\">{r.itemName}</div>\n <div className=\"chatBot--preview-li-c right\">{r.qty}</div>\n <div className=\"chatBot--preview-li-c right\">{r.rate.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.gross.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.discount.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.tax.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.total.toFixed(2)}</div>\n </React.Fragment>\n ))}\n </div>\n </div>\n <div className=\"chatBot--preview-tot\">\n <div className=\"chatBot--preview-tot-row\">\n <span>Subtotal</span>\n <span className=\"chatBot--preview-tot-row-val\">{subtotal.toFixed(2)}</span>\n </div>\n {totalDiscount > 0 && (\n <div className=\"chatBot--preview-tot-row\">\n <span>Discount</span>\n <span className=\"chatBot--preview-tot-row-val\">-{totalDiscount.toFixed(2)}</span>\n </div>\n )}\n {rows.filter(r => r.tax).map((r, i) => (\n <div className=\"chatBot--preview-tot-row\" key={i}>\n <span>Tax</span>\n <span className=\"chatBot--preview-tot-row-val\">{r.tax.toFixed(2)}</span>\n </div>\n ))}\n <div className=\"chatBot--preview-tot-row total\">\n <span>Total due (items)</span>\n <span className=\"chatBot--preview-tot-row-val\">{totalDue.toFixed(2)}</span>\n </div>\n </div>\n </>\n );\n};\n\nexport default ItemEntryTable;\n","import React from 'react';\n\ninterface Props {\n fieldUpdates: Record<string, any>;\n resolvedLabels: Record<string, string>;\n}\n\nconst ExpenseEntryTable = ({ fieldUpdates, resolvedLabels }: Props) => {\n const accountIds = fieldUpdates['purchase_expense_entries.accounts.account_name'];\n const rates = fieldUpdates['purchase_expense_entries.rate'];\n const discountAmounts = fieldUpdates['purchase_expense_entries.discount_amount'];\n const taxAmounts = fieldUpdates['purchase_expense_entries.tax_amount'];\n const totalAmounts = fieldUpdates['purchase_expense_entries.total_amount'];\n\n if (!Array.isArray(accountIds) || accountIds.length === 0) return null;\n\n const rows = accountIds.map((_: any, i: number) => {\n const accountId = accountIds[i];\n const rate = parseFloat(rates?.[i]) || 0;\n const gross = rate;\n const discount = parseFloat(discountAmounts?.[i]) || 0;\n const tax = parseFloat(taxAmounts?.[i]) || 0;\n const total = parseFloat(totalAmounts?.[i]) || 0;\n const resolvedKey = `purchase_expense_entries.accounts.account_name:${accountId}`;\n const accountName = resolvedLabels[resolvedKey] || `Account #${accountId}`;\n return { accountName, rate, gross, discount, tax, total };\n });\n\n const subtotal = rows.reduce((sum, r) => sum + r.gross, 0);\n const totalDiscount = rows.reduce((sum, r) => sum + r.discount, 0);\n const totalTax = rows.reduce((sum, r) => sum + r.tax, 0);\n const totalDue = rows.reduce((sum, r) => sum + r.total, 0);\n\n return (\n <>\n <div style={{ overflowX: 'auto' }}>\n <div className=\"chatBot--preview-li\" style={{ gridTemplateColumns: '1fr repeat(5, 85px)' }}>\n <div className=\"chatBot--preview-li-h\">Account</div>\n <div className=\"chatBot--preview-li-h right\">Rate</div>\n <div className=\"chatBot--preview-li-h right\">Gross</div>\n <div className=\"chatBot--preview-li-h right\">Discount</div>\n <div className=\"chatBot--preview-li-h right\">Tax</div>\n <div className=\"chatBot--preview-li-h right\">Total</div>\n {rows.map((r, i) => (\n <React.Fragment key={i}>\n <div className=\"chatBot--preview-li-c\">{r.accountName}</div>\n <div className=\"chatBot--preview-li-c right\">{r.rate.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.gross.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.discount.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.tax.toFixed(2)}</div>\n <div className=\"chatBot--preview-li-c right\">{r.total.toFixed(2)}</div>\n </React.Fragment>\n ))}\n </div>\n </div>\n <div className=\"chatBot--preview-tot\">\n <div className=\"chatBot--preview-tot-row\">\n <span>Subtotal</span>\n <span className=\"chatBot--preview-tot-row-val\">{subtotal.toFixed(2)}</span>\n </div>\n {totalDiscount > 0 && (\n <div className=\"chatBot--preview-tot-row\">\n <span>Discount</span>\n <span className=\"chatBot--preview-tot-row-val\">-{totalDiscount.toFixed(2)}</span>\n </div>\n )}\n <div className=\"chatBot--preview-tot-row\">\n <span>Total Tax</span>\n <span className=\"chatBot--preview-tot-row-val\">{totalTax.toFixed(2)}</span>\n </div>\n <div className=\"chatBot--preview-tot-row total\">\n <span>Total due (expenses)</span>\n <span className=\"chatBot--preview-tot-row-val\">{totalDue.toFixed(2)}</span>\n </div>\n </div>\n </>\n );\n};\n\nexport default ExpenseEntryTable;\n","import { IcInvoice } from './icons';\nimport Button from '../button/button';\nimport { Save, Trash, Tick } from '../icons';\nimport ItemEntryTable from './invoice-item-table';\nimport ExpenseEntryTable from './invoice-expense-table';\n\nconst sumField = (updates: Record<string, any>, key: string) =>\n (updates[key] || []).reduce((s: number, v: any) => s + (parseFloat(v) || 0), 0);\n\ninterface Props {\n fieldUpdates: Record<string, any>;\n resolvedLabels: Record<string, string>;\n formStatus?: string;\n onSave: () => void;\n onSubmit?: () => void;\n onDiscard?: () => void;\n}\n\nconst FIELD_LABELS: Record<string, string> = {\n customer_id: 'Customer',\n vendor_id: 'Vendor',\n date: 'Date',\n bill_date: 'Bill Date',\n invoice_date: 'Invoice Date',\n due_date: 'Due Date',\n posting_time: 'Posting Time',\n payment_term_id: 'Payment Term',\n company_id: 'Company',\n exchange_rate: 'Exchange Rate',\n account_payable_id: 'Account Payable',\n account_receivable_id: 'Account Receivable',\n currency_id: 'Currency',\n supplier_currency_id: 'Supplier Currency',\n supplier_invoice_number: 'Supplier Invoice #',\n supplier_invoice_date: 'Supplier Invoice Date',\n transaction_type: 'Transaction Type',\n narration: 'Narration',\n department: 'Department',\n department_id: 'Department',\n location: 'Location',\n incoterm_id: 'Incoterm',\n region_id: 'Region',\n series_number: 'Series Number',\n attachment_url: 'Attachment',\n additional_discount_on: 'Discount On',\n additional_discount_percentage: 'Discount Percentage',\n additional_discount_amount: 'Discount Amount',\n round_off: 'Round Off',\n round_off_option: 'Round Off Option',\n is_cash: 'Cash Transaction',\n discount_amount: 'Discount Amount',\n total_invoice_amount: 'Total Amount',\n supplier_address: 'Supplier Address',\n contact_person: 'Contact Person',\n shipping_address: 'Shipping Address',\n billing_address: 'Billing Address',\n place_of_supply: 'Place of Supply',\n};\n\nconst InvoicePreview = ({ fieldUpdates, resolvedLabels, formStatus, onSave, onSubmit, onDiscard }: Props) => {\n const itemTotalKey = fieldUpdates['purchase_item_entries.total_amount']\n ? 'purchase_item_entries.total_amount'\n : fieldUpdates['sales_item_entries.total_amount']\n ? 'sales_item_entries.total_amount'\n : null;\n const itemTotal = itemTotalKey ? sumField(fieldUpdates, itemTotalKey) : 0;\n const expenseTotal = sumField(fieldUpdates, 'purchase_expense_entries.total_amount');\n const grandTotal = itemTotal + expenseTotal;\n const displayKey = (key: string) => {\n const shortKey = key.startsWith('invoice_addresses.') ? key.slice('invoice_addresses.'.length) : key;\n return FIELD_LABELS[shortKey] || FIELD_LABELS[key] || key;\n };\n\n\tconst entries = Object.entries(fieldUpdates).filter(([key]) => {\n if (key.startsWith('sales_item_entries.') || key.startsWith('purchase_item_entries.') || key.startsWith('purchase_expense_entries.')) return false;\n return true;\n });\n\n if (Object.keys(fieldUpdates).length === 0) return null;\n\n return (\n <div className=\"chatBot--preview-card\">\n <div className=\"chatBot--preview-head\">\n <span className=\"chatBot--preview-head-ic\"><IcInvoice size={14} /></span>\n <div className=\"chatBot--preview-head-ttl\">\n Draft Invoice\n <span className=\"chatBot--preview-head-sub\">AI-prepared · {entries.length} fields locked</span>\n </div>\n <span className=\"chatBot--preview-badge\">DRAFT</span>\n </div>\n\n <div className=\"chatBot--preview-body\">\n {entries.map(([key, value]) => (\n <div className=\"chatBot--preview-row\" key={key}>\n <span className=\"chatBot--preview-row-key\">{displayKey(key)}</span>\n <span className=\"chatBot--preview-row-val\">{resolvedLabels[key] || String(value ?? '')}</span>\n </div>\n ))}\n <ItemEntryTable fieldUpdates={fieldUpdates} resolvedLabels={resolvedLabels} />\n <ExpenseEntryTable fieldUpdates={fieldUpdates} resolvedLabels={resolvedLabels} />\n {(itemTotal > 0 || expenseTotal > 0) && (\n <div className=\"chatBot--preview-tot-row total\" style={{ marginTop: 8 }}>\n <span>Grand Total</span>\n <span className=\"chatBot--preview-tot-row-val\">{grandTotal.toFixed(2)}</span>\n </div>\n )}\n </div>\n\n <div className=\"chatBot--preview-foot\">\n <span className=\"chatBot--preview-foot-grow\" />\n {formStatus === 'ready_to_submit' && (\n <>\n {onDiscard && (\n <Button variant=\"outlined\" startIcon={<Trash fontSize='small' sx={{ stroke: 'currentColor', strokeWidth: 0.5 }} />} onClick={onDiscard} sx={{ mr: 1 }}>\n Discard\n </Button>\n )}\n <Button variant=\"outlined\" startIcon={<Save fontSize='small' sx={{ stroke: 'currentColor', strokeWidth: 0.5 }} />} onClick={onSave} sx={{ mr: 1 }}>\n Save Draft\n </Button>\n {onSubmit && (\n <Button variant=\"contained\" startIcon={<Tick fontSize='small' sx={{ stroke: 'currentColor', strokeWidth: 0.5 }} />} onClick={onSubmit}>\n Submit\n </Button>\n )}\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport default InvoicePreview;\n","import {\n PictureAsPdfRounded,\n TableChartRounded,\n DescriptionRounded,\n ArticleRounded,\n ImageRounded,\n InsertDriveFileRounded,\n} from '@mui/icons-material';\nimport { getFileCategory, FileCategory } from './types';\n\nconst ICON_BY_CATEGORY: Record<FileCategory, { Icon: typeof PictureAsPdfRounded; color: string }> = {\n pdf: { Icon: PictureAsPdfRounded, color: '#C62828' },\n excel: { Icon: TableChartRounded, color: '#1E7E34' },\n doc: { Icon: DescriptionRounded, color: '#1B5FBD' },\n md: { Icon: ArticleRounded, color: '#5C5C5C' },\n image: { Icon: ImageRounded, color: '#8E24AA' },\n};\n\ninterface Props {\n filename: string;\n fontSize?: number;\n}\n\nconst DocFileIcon = ({ filename, fontSize = 16 }: Props) => {\n const category = getFileCategory(filename);\n const { Icon, color } = category ? ICON_BY_CATEGORY[category] : { Icon: InsertDriveFileRounded, color: '#9E9E9E' };\n return <Icon sx={{ fontSize, color }} />;\n};\n\nexport default DocFileIcon;\n","import { useCallback, useRef, useState } from 'react';\nimport { CloudUploadRounded } from '@mui/icons-material';\nimport { IDocument, ACCEPT_ATTR, getFileCategory } from './types';\nimport DocFileIcon from './doc-file-icon';\n\ninterface Props {\n onUploadComplete: (docs: IDocument[]) => void;\n onUploadError: (msg: string) => void;\n uploadDocument: (file: File, onProgress: (pct: number) => void) => Promise<IDocument>;\n uploadDocuments: (files: File[], onProgress: (pct: number) => void) => Promise<IDocument[]>;\n}\n\nconst DocUpload = ({ onUploadComplete, onUploadError, uploadDocument, uploadDocuments }: Props) => {\n const [isDragging, setIsDragging] = useState(false);\n const [progress, setProgress] = useState<number | null>(null);\n const [fileNames, setFileNames] = useState<string[]>([]);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const handleFiles = useCallback(async (files: File[]) => {\n if (files.length === 0) return;\n if (files.length > 10) {\n onUploadError('Maximum 10 files allowed per request.');\n return;\n }\n\n for (const file of files) {\n if (!getFileCategory(file.name)) {\n onUploadError('Unsupported file type. Accepted: PDF, Word, Excel, Markdown, image.');\n return;\n }\n if (file.size > 50 * 1024 * 1024) {\n onUploadError(`File too large (${file.name}). Maximum 50MB.`);\n return;\n }\n }\n\n setFileNames(files.map(f => f.name));\n setProgress(0);\n\n try {\n if (files.length === 1) {\n // Strict single file flow\n const doc = await uploadDocument(files[0], (pct) => setProgress(pct));\n onUploadComplete([doc]);\n } else {\n // Multi file flow\n const docs = await uploadDocuments(files, (pct) => setProgress(pct));\n onUploadComplete(docs);\n }\n } catch (err: any) {\n onUploadError(err.message || 'Upload failed');\n } finally {\n setProgress(null);\n setFileNames([]);\n }\n }, [uploadDocument, uploadDocuments, onUploadComplete, onUploadError]);\n\n const handleDrop = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n const files = Array.from(e.dataTransfer.files);\n if (files.length) handleFiles(files);\n }, [handleFiles]);\n\n const handleDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback(() => setIsDragging(false), []);\n\n const handleClick = () => fileInputRef.current?.click();\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = Array.from(e.target.files || []);\n if (files.length) handleFiles(files);\n e.target.value = '';\n };\n\n if (progress !== null) {\n return (\n <div className='chatBot--doc-progress-wrap'>\n <div className='chatBot--doc-progress-info'>\n <DocFileIcon filename={fileNames[0] || ''} fontSize={16} />\n <span className='chatBot--doc-progress-name'>\n {fileNames.length === 1 ? fileNames[0] : `${fileNames.length} files uploading...`}\n </span>\n <span className='chatBot--doc-progress-pct'>{progress}%</span>\n </div>\n <div className='chatBot--doc-progress-bar'>\n <div className='chatBot--doc-progress-fill' style={{ width: `${progress}%` }} />\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={`chatBot--doc-dropzone${isDragging ? ' chatBot--doc-dropzone--active' : ''}`}\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onClick={handleClick}\n >\n <input\n ref={fileInputRef}\n type='file'\n accept={ACCEPT_ATTR}\n multiple\n style={{ display: 'none' }}\n onChange={handleChange}\n />\n <CloudUploadRounded sx={{ fontSize: 28, color: '#2EB273', mb: 0.5 }} />\n <div className='chatBot--doc-drop-label'>Drop files here or click to browse</div>\n <div className='chatBot--doc-drop-sub'>Max 50MB per file · PDF, Word, Excel, Markdown, image · Up to 10 files</div>\n </div>\n );\n};\n\nexport default DocUpload;\n","import { useEffect, useRef, useState } from 'react';\nimport { CheckCircleRounded, ErrorRounded, HourglassBottomRounded } from '@mui/icons-material';\nimport { IDocument, DocumentStatus } from './types';\n\ninterface Props {\n document: IDocument;\n onReady: (doc: IDocument) => void;\n onError: (doc: IDocument) => void;\n getStatus: (docId: string) => Promise<IDocument>;\n}\n\nconst STATUS_LABELS: Record<DocumentStatus, string> = {\n uploading: 'Uploading…',\n pending: 'Queued',\n processing: 'Processing',\n parsing: 'Extracting text',\n embedding: 'Generating embeddings',\n indexing: 'Indexing',\n ready: 'Ready',\n failed: 'Failed',\n};\n\nconst ACTIVE_STATUSES: DocumentStatus[] = ['pending', 'processing', 'parsing', 'embedding', 'indexing'];\n\nconst DocStatus = ({ document, onReady, onError, getStatus }: Props) => {\n const [doc, setDoc] = useState<IDocument>(document);\n const [pollCount, setPollCount] = useState(0);\n const mountedRef = useRef(true);\n const pollDocIdRef = useRef(doc.doc_id);\n pollDocIdRef.current = doc.doc_id;\n\n useEffect(() => {\n mountedRef.current = true;\n return () => { mountedRef.current = false; };\n }, []);\n\n useEffect(() => {\n if (!ACTIVE_STATUSES.includes(doc.status)) return;\n\n const interval = setInterval(async () => {\n try {\n const updated = await getStatus(doc.doc_id);\n if (!mountedRef.current || updated.doc_id !== pollDocIdRef.current) return;\n setDoc(updated);\n setPollCount((c) => c + 1);\n\n if (updated.status === 'ready') {\n clearInterval(interval);\n onReady(updated);\n } else if (updated.status === 'failed') {\n clearInterval(interval);\n onError(updated);\n }\n } catch {\n setPollCount((c) => c + 1);\n }\n }, 3000);\n\n return () => clearInterval(interval);\n }, [doc.doc_id, doc.status]);\n\n const isActive = ACTIVE_STATUSES.includes(doc.status);\n const isReady = doc.status === 'ready';\n const isFailed = doc.status === 'failed';\n\n return (\n <div className='chatBot--doc-status-card'>\n <div className='chatBot--doc-status-head'>\n {isReady && <CheckCircleRounded sx={{ fontSize: 18, color: '#2EB273' }} />}\n {isFailed && <ErrorRounded sx={{ fontSize: 18, color: '#C62828' }} />}\n {isActive && <HourglassBottomRounded sx={{ fontSize: 18, color: '#2EB273' }} className='chatBot--doc-status-spin' />}\n <div className='chatBot--doc-status-info'>\n <span className='chatBot--doc-status-name'>{doc.filename}</span>\n <span className='chatBot--doc-status-label'>\n {STATUS_LABELS[doc.status]}\n {doc.pages ? ` · ${doc.pages} pages` : ''}\n {doc.category ? ` · ${doc.category}` : ''}\n </span>\n </div>\n </div>\n\n {isActive && (\n <div className='chatBot--doc-progress-bar'>\n <div className='chatBot--doc-progress-fill chatBot--doc-progress-fill--indeterminate' />\n </div>\n )}\n\n {isFailed && (\n <div className='chatBot--doc-status-error'>\n {doc.error || 'Document processing failed'}\n {doc.error_code && <span className='chatBot--doc-status-error-code'>{doc.error_code}</span>}\n </div>\n )}\n\n {isReady && (\n <div className='chatBot--doc-status-ready'>\n {doc.chunk_count} chunks indexed · Ready to chat\n </div>\n )}\n </div>\n );\n};\n\nexport default DocStatus;\n","import { IDocument } from './types';\nimport DocFileIcon from './doc-file-icon';\n\ninterface Props {\n document?: IDocument;\n documents?: IDocument[];\n suggestedQuestions?: string[];\n onSuggestion: (question: string) => void;\n}\n\nconst DocIntro = ({ document, documents, suggestedQuestions, onSuggestion }: Props) => {\n const docsToRender = documents && documents.length > 0 ? documents : document ? [document] : [];\n const questionsToRender = suggestedQuestions && suggestedQuestions.length > 0 ? suggestedQuestions : document?.suggested_questions;\n\n if (docsToRender.length === 0) return null;\n if (!docsToRender.some(d => d.summary) && !questionsToRender?.length) return null;\n\n return (\n <div className='chatBot--doc-intro-card'>\n {docsToRender.map((doc, idx) => (\n <div key={doc.doc_id || idx} style={{ borderBottom: idx < docsToRender.length - 1 && docsToRender.length > 1 ? '1px solid #F2F3F4' : 'none' }}>\n <div className='chatBot--doc-intro-head'>\n <DocFileIcon filename={doc.filename} fontSize={16} />\n <div className='chatBot--doc-intro-head-info'>\n <span className='chatBot--doc-intro-filename'>{doc.filename}</span>\n <span className='chatBot--doc-intro-meta'>\n {doc.category && <>{doc.category}{doc.sub_category ? ` · ${doc.sub_category}` : ''}</>}\n </span>\n </div>\n </div>\n {doc.summary && (\n <div className='chatBot--doc-intro-summary'>{doc.summary}</div>\n )}\n </div>\n ))}\n\n {questionsToRender && questionsToRender.length > 0 && (\n <div className='chatBot--doc-intro-questions'>\n <div className='chatBot--doc-intro-q-label'>Suggested questions</div>\n {questionsToRender.map((q, i) => (\n <button key={i} className='chatBot--doc-intro-q-btn' onClick={() => onSuggestion(q)}>\n {q}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nexport default DocIntro;\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { marked } from 'marked';\nimport { useAuth } from '@erpsquad/common/runtime';\nimport { getToken } from '../../utils';\nimport { getDefaultUserData } from '../../utils/common';\nimport { getApiConfigSafe } from '../../utils/api-config';\nimport { resetV1CopilotSession, startV1CopilotAgent, formAssistV1Copilot, streamV1CopilotChat, uploadDocument as apiUploadDocument, uploadDocuments as apiUploadDocuments, getDocumentStatus as apiGetDocumentStatus, setAiFeatureBaseUrl, getV1CopilotQuestions, postV1CopilotSubmit, postV1CopilotSaveDraft, postV1CopilotDiscard } from '../../api-client/api.ai-feature/api';\nimport { getV1PartiesId, getV1ChartOfAccountId, getV1PaymentTermsId, getV1CurrencyId, getV1TaxCodeId } from '../../api-client/api.accounting/api';\nimport { getV1CompanyId, getV1LocationsStates } from '../../api-client/api.rbac/api';\nimport { getV1InventoryItemsId, getV1Uom, getV1WarehouseLocationId } from '../../api-client/api.inventory/api';\nimport { getV1DepartmentsId } from '../../api-client/api.hrms/api';\n\nimport { IMessage, IMode, FormType, IDocument, getTime } from './types';\nimport { SLASH_COMMANDS } from './constants';\nimport ChatBotHeader from './chat-bot-header';\nimport ChatBotWelcome from './chat-bot-welcome';\nimport ChatBotMessages from './chat-bot-messages';\nimport ChatBotInput from './chat-bot-input';\nimport ChatBotLauncher from './chat-bot-launcher';\nimport InvoicePreview from './invoice-preview';\nimport DocUpload from './doc-upload';\nimport DocStatus from './doc-status';\nimport DocIntro from './doc-intro';\nimport toast from 'react-hot-toast';\n\nimport './chat-bot.scss';\n\nmarked.use({ breaks: true, gfm: true });\n\nconst ChatBot = () => {\n\tconst isAiEnabled = getApiConfigSafe()?.aiFeatureEnabled === 'true';\n\tif (!isAiEnabled) return null;\n\n\tconst uData = JSON.parse(localStorage.getItem('_u_data') || '{}');\n\tif (uData.role_type !== 'Admin') return null;\n\n\tconst { user } = useAuth();\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst [messages, setMessages] = useState<IMessage[]>([]);\n\tconst [isTyping, setIsTyping] = useState(false);\n\tconst [inputValue, setInputValue] = useState('');\n\tconst [mode, setMode] = useState<IMode>('conversation');\n\tconst [formType, setFormType] = useState<FormType | null>(null);\n\tconst [formStatus, setFormStatus] = useState<string>('in_progress');\n\tconst [currentFieldUpdates, setCurrentFieldUpdates] = useState<Record<string, any> | null>(null);\n\tconst [resolvedLabels, setResolvedLabels] = useState<Record<string, string>>({});\n\tconst [dynamicQuestions, setDynamicQuestions] = useState<any[]>([]);\n\tconst [showSlashMenu, setShowSlashMenu] = useState(false);\n\tconst [slashIndex, setSlashIndex] = useState(0);\n\tconst labelCacheRef = useRef<Record<string, string>>({});\n\tconst bodyRef = useRef<HTMLDivElement>(null);\n\tconst textareaRef = useRef<HTMLTextAreaElement>(null);\n\tconst userScrolledUp = useRef(false);\n\tconst agentStarted = useRef(false);\n\n\t// Document state\n\tconst [activeDocument, setActiveDocument] = useState<IDocument | null>(null);\n\tconst [docIntroSent, setDocIntroSent] = useState(false);\n\tconst [docError, setDocError] = useState<string | null>(null);\n\n\t// Multi-Document state\n\tconst [activeDocuments, setActiveDocuments] = useState<IDocument[]>([]);\n\tconst [suggestedQuestions, setSuggestedQuestions] = useState<string[]>([]);\n\tconst fetchedMultiDocIntroIds = useRef<string>('');\n\n\tconst firstName = user?.first_name || '';\n\n\tconst filteredMessages = useMemo(\n\t\t() => messages.filter(m => !m.mode || m.mode === mode),\n\t\t[messages, mode]\n\t);\n\n\t// Initialize the ai-feature base URL from config\n\tuseEffect(() => {\n\t\tconst config = getApiConfigSafe();\n\t\tif (config?.backendBaseUrl) {\n\t\t\tsetAiFeatureBaseUrl(`${config.backendBaseUrl}/ai-feature`);\n\t\t}\n\t}, []);\n\n\tconst slashQuery = inputValue.startsWith('/') ? inputValue.slice(1).toLowerCase() : '';\n\tconst filteredCommands = SLASH_COMMANDS.filter((cmd) =>\n\t\tcmd.label.toLowerCase().startsWith(slashQuery)\n\t);\n\n\tconst fetchQuestions = useCallback(async () => {\n\t\ttry {\n\t\t\tconst { 'x-token': token } = getToken();\n\t\t\tconst uData = getDefaultUserData();\n\t\t\tconst mapLocalToApiModule = (localName: string): string | null => {\n\t\t\t\tswitch (localName) {\n\t\t\t\t\tcase 'accounts-and-finance': return 'Accounting';\n\t\t\t\t\tcase 'inventory': return 'Inventory';\n\t\t\t\t\tcase 'manufacturing': return 'Manufacturing';\n\t\t\t\t\tcase 'purchase': return 'Procurement';\n\t\t\t\t\tcase 'sales': return 'CRM';\n\t\t\t\t\tcase 'hrms': return 'HRMS';\n\t\t\t\t\tcase 'rental': return 'Rental';\n\t\t\t\t\tcase 'rbac':\n\t\t\t\t\tcase 'user': return 'Users';\n\t\t\t\t\tdefault: return null;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst mappedModules = (uData?.module_access || [])\n\t\t\t\t.map((m: any) => mapLocalToApiModule(m.module_name))\n\t\t\t\t.filter(Boolean) as string[];\n\n\t\t\tconst uniqueModules = Array.from(new Set(mappedModules));\n\t\t\tif (uniqueModules.length === 0) {\n\t\t\t\tsetDynamicQuestions([]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst modules = [...uniqueModules].sort(() => Math.random() - 0.5).slice(0, 4);\n\n\t\t\tconst res = await getV1CopilotQuestions(modules, token);\n\t\t\tif (res && res.modules) {\n\t\t\t\tconst questions: any[] = [];\n\t\t\t\tres.modules.forEach((mod: any) => {\n\t\t\t\t\tif (mod.questions) {\n\t\t\t\t\t\tmod.questions.forEach((q: string) => {\n\t\t\t\t\t\t\tquestions.push({\n\t\t\t\t\t\t\t\tprompt: q,\n\t\t\t\t\t\t\t\tcat: mod.module.toUpperCase(),\n\t\t\t\t\t\t\t\tmode: 'conversation',\n\t\t\t\t\t\t\t\tkind: 'blue'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tsetDynamicQuestions(questions);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('Failed to fetch copilot questions', e);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\tsetTimeout(() => textareaRef.current?.focus(), 100);\n\t\t\tif (dynamicQuestions.length === 0) {\n\t\t\t\tfetchQuestions();\n\t\t\t}\n\t\t}\n\t}, [isOpen, dynamicQuestions.length, fetchQuestions]);\n\n\tuseEffect(() => {\n\t\tconst container = bodyRef.current;\n\t\tif (!container) return;\n\t\tconst onScroll = () => {\n\t\t\tconst atBottom =\n\t\t\t\tcontainer.scrollHeight - container.scrollTop - container.clientHeight < 40;\n\t\t\tuserScrolledUp.current = !atBottom;\n\t\t};\n\t\tcontainer.addEventListener('scroll', onScroll);\n\t\treturn () => container.removeEventListener('scroll', onScroll);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!userScrolledUp.current && bodyRef.current) {\n\t\t\tbodyRef.current.scrollTop = bodyRef.current.scrollHeight;\n\t\t}\n\t}, [messages, isTyping, currentFieldUpdates, resolvedLabels, activeDocument, activeDocuments, suggestedQuestions]);\n\n\tconst selectCommand = (id: IMode) => {\n\t\tsetMode(id);\n\t\tsetShowSlashMenu(false);\n\t\tsetSlashIndex(0);\n\t\tif (id === 'conversation') {\n\t\t\tsetFormType(null);\n\t\t\tsetFormStatus('in_progress');\n\t\t\tagentStarted.current = false;\n\t\t} else if (id === 'agent' && !formType) {\n\t\t\tsetFormType('sales_invoice');\n\t\t}\n\t\tsetTimeout(() => textareaRef.current?.focus(), 0);\n\t};\n\n\tconst handleModeChange = (id: IMode) => {\n\t\tselectCommand(id);\n\t};\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n\t\tconst val = e.target.value;\n\t\tsetInputValue(val);\n\t\tif (val.startsWith('/')) {\n\t\t\tsetShowSlashMenu(true);\n\t\t\tsetSlashIndex(0);\n\t\t} else {\n\t\t\tsetShowSlashMenu(false);\n\t\t}\n\t};\n\n\tconst handleSuggestion = (prompt: string, suggestionMode: IMode, suggestionFormType?: FormType) => {\n\t\tsetMode(suggestionMode);\n\t\tif (suggestionFormType) setFormType(suggestionFormType);\n\t\tsetInputValue(prompt);\n\t\tsetTimeout(() => {\n\t\t\tconst ta = textareaRef.current;\n\t\t\tif (ta) {\n\t\t\t\tta.focus();\n\t\t\t\tta.selectionStart = ta.selectionEnd = prompt.length;\n\t\t\t}\n\t\t}, 0);\n\t};\n\n\t// ── Document upload handlers ──────────────────────────────────────────────\n\tconst handleDocUpload = useCallback(async (file: File, onProgress: (pct: number) => void): Promise<IDocument> => {\n\t\tconst { 'x-token': token } = getToken();\n\t\tsetDocError(null);\n\t\tconst result = await apiUploadDocument(file, token, undefined, onProgress);\n\t\tconst doc: IDocument = {\n\t\t\tdoc_id: result.doc_id,\n\t\t\tfilename: result.filename,\n\t\t\tstatus: result.status as IDocument['status'],\n\t\t\tpages: result.pages,\n\t\t};\n\t\tsetActiveDocument(doc);\n\t\tif (result.deduplicated && result.status === 'ready') {\n\t\t\tconst fullStatus = await apiGetDocumentStatus(result.doc_id, token);\n\t\t\tconst fullDoc: IDocument = {\n\t\t\t\tdoc_id: fullStatus.doc_id,\n\t\t\t\tfilename: fullStatus.filename || result.filename,\n\t\t\t\tstatus: fullStatus.status,\n\t\t\t\tpages: fullStatus.pages || result.pages,\n\t\t\t\tcategory: fullStatus.category || undefined,\n\t\t\t\tsub_category: fullStatus.sub_category || undefined,\n\t\t\t\tchunk_count: fullStatus.chunk_count || undefined,\n\t\t\t};\n\t\t\tsetActiveDocument(fullDoc);\n\t\t\tsetDocIntroSent(false);\n\t\t\tstreamV1CopilotChat(\n\t\t\t\t{ ...getToken(), query: '', doc_id: fullDoc.doc_id, doc_intro: true },\n\t\t\t\t() => {}, () => {}, () => {}, () => {},\n\t\t\t\t(data: any) => {\n\t\t\t\t\tif (data?.found) {\n\t\t\t\t\t\tsetActiveDocument((prev) => prev && prev.doc_id === fullDoc.doc_id ? {\n\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\tsummary: data.summary,\n\t\t\t\t\t\t\tsuggested_questions: data.suggested_questions,\n\t\t\t\t\t\t\tcategory: data.category || prev.category,\n\t\t\t\t\t\t\tsub_category: data.sub_category || prev.sub_category,\n\t\t\t\t\t\t} : prev);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t).catch(() => {});\n\t\t\treturn fullDoc;\n\t\t}\n\t\treturn doc;\n\t}, []);\n\n\tconst handleDocUploadComplete = useCallback((doc: IDocument) => {\n\t\tsetDocIntroSent(false);\n\t}, []);\n\n\tconst handleDocUploadError = useCallback((msg: string) => {\n\t\tsetDocError(msg);\n\t}, []);\n\n\tconst handleDocReady = useCallback((doc: IDocument) => {\n\t\tsetActiveDocument(doc);\n\t\tsetDocIntroSent(false);\n\t\tconst onDocIntro = (data: any) => {\n\t\t\tif (data?.found) {\n\t\t\t\tsetActiveDocument((prev) => prev && prev.doc_id === doc.doc_id ? {\n\t\t\t\t\t...prev,\n\t\t\t\t\tsummary: data.summary,\n\t\t\t\t\tsuggested_questions: data.suggested_questions,\n\t\t\t\t\tcategory: data.category || prev.category,\n\t\t\t\t\tsub_category: data.sub_category || prev.sub_category,\n\t\t\t\t} : prev);\n\t\t\t}\n\t\t};\n\t\tstreamV1CopilotChat(\n\t\t\t{ ...getToken(), query: '', doc_id: doc.doc_id, doc_intro: true },\n\t\t\t() => {}, () => {}, () => {}, () => {},\n\t\t\tonDocIntro,\n\t\t).catch(() => {});\n\t}, []);\n\n\tconst handleDocError = useCallback((doc: IDocument) => {\n\t\tsetActiveDocument(null);\n\t\tsetDocError(doc.error || 'Document processing failed');\n\t}, []);\n\n\tconst handleDocDelete = useCallback(async () => {\n\t\tif (!activeDocument) return;\n\t\tconst docId = activeDocument.doc_id;\n\t\ttry {\n\t\t\tconst { 'x-token': token } = getToken();\n\t\t\tconst { deleteDocument } = await import('../../api-client/api.ai-feature/api');\n\t\t\tawait deleteDocument(docId, token);\n\t\t\tsetActiveDocument((current) =>\n\t\t\t\tcurrent?.doc_id === docId ? null : current\n\t\t\t);\n\t\t\tsetDocIntroSent(false);\n\t\t\tsetDocError(null);\n\t\t} catch {\n\t\t\tsetDocError('Failed to delete document. Please try again.');\n\t\t}\n\t}, [activeDocument]);\n\n\t// ── Multi-Document upload handlers ──────────────────────────────────────────────\n\tconst checkAndSendMultiDocIntro = useCallback((docs: IDocument[]) => {\n\t\tif (docs.length === 0) return;\n\t\tif (docs.some(d => d.status !== 'ready')) return;\n\t\t\n\t\tconst currentIds = docs.map(d => d.doc_id).sort().join(',');\n\t\tif (fetchedMultiDocIntroIds.current === currentIds) return;\n\t\tfetchedMultiDocIntroIds.current = currentIds;\n\n\t\tstreamV1CopilotChat(\n\t\t\t{ ...getToken(), query: '', doc_ids: docs.map(d => d.doc_id), doc_intro: true },\n\t\t\t() => {}, () => {}, () => {}, () => {},\n\t\t\t(data: any) => {\n\t\t\t\tif (data?.found) {\n\t\t\t\t\tif (data.suggested_questions) {\n\t\t\t\t\t\tsetSuggestedQuestions(data.suggested_questions);\n\t\t\t\t\t}\n\t\t\t\t\tsetActiveDocuments((prev) => prev.map(p => {\n\t\t\t\t\t\tif (docs.length === 1) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...p,\n\t\t\t\t\t\t\t\tsummary: data.summary,\n\t\t\t\t\t\t\t\tcategory: data.category || p.category,\n\t\t\t\t\t\t\t\tsub_category: data.sub_category || p.sub_category,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} else if (data.docs && Array.isArray(data.docs)) {\n\t\t\t\t\t\t\tconst dData = data.docs.find((d: any) => d.doc_id === p.doc_id);\n\t\t\t\t\t\t\tif (dData) {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...p,\n\t\t\t\t\t\t\t\t\tsummary: dData.summary,\n\t\t\t\t\t\t\t\t\tcategory: dData.category || p.category,\n\t\t\t\t\t\t\t\t\tsub_category: dData.sub_category || p.sub_category,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn p;\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t},\n\t\t).catch(() => {});\n\t}, [docIntroSent]);\n\n\tconst handleMultiDocUpload = useCallback(async (files: File[], onProgress: (pct: number) => void): Promise<IDocument[]> => {\n\t\tconst { 'x-token': token } = getToken();\n\t\tsetDocError(null);\n\t\tconst result = await apiUploadDocuments(files, token, undefined, onProgress);\n\t\tconst items = Array.isArray(result) ? result : (result as any).items || [];\n\t\t\n\t\tconst docs: IDocument[] = items.map((r: any) => ({\n\t\t\tdoc_id: r.doc_id,\n\t\t\tfilename: r.filename,\n\t\t\tstatus: r.status as IDocument['status'],\n\t\t\tpages: r.pages,\n\t\t\terror: r.error\n\t\t}));\n\n\t\tsetActiveDocuments(prev => {\n\t\t\tconst newDocs = [...prev];\n\t\t\tdocs.forEach(d => {\n\t\t\t\tif (!newDocs.find(x => x.doc_id === d.doc_id)) newDocs.push(d);\n\t\t\t});\n\t\t\treturn newDocs;\n\t\t});\n\t\tsetDocIntroSent(false);\n\n\t\tconst readyDocs = items.filter((r: any) => r.deduplicated && r.status === 'ready');\n\t\tif (readyDocs.length > 0) {\n\t\t\tconst fullStatuses = await Promise.all(readyDocs.map((r: any) => apiGetDocumentStatus(r.doc_id, token)));\n\t\t\tsetActiveDocuments(prev => {\n\t\t\t\tconst updated = prev.map(p => {\n\t\t\t\t\tconst full = fullStatuses.find(fs => fs.doc_id === p.doc_id);\n\t\t\t\t\tif (full) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...p,\n\t\t\t\t\t\t\tfilename: full.filename || p.filename,\n\t\t\t\t\t\t\tstatus: full.status,\n\t\t\t\t\t\t\tpages: full.pages || p.pages,\n\t\t\t\t\t\t\tcategory: full.category || p.category,\n\t\t\t\t\t\t\tsub_category: full.sub_category || p.sub_category,\n\t\t\t\t\t\t\tchunk_count: full.chunk_count || p.chunk_count,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn p;\n\t\t\t\t});\n\t\t\t\tsetTimeout(() => checkAndSendMultiDocIntro(updated), 0);\n\t\t\t\treturn updated;\n\t\t\t});\n\t\t}\n\n\t\treturn docs;\n\t}, [checkAndSendMultiDocIntro]);\n\n\tconst handleMultiDocUploadComplete = useCallback((docs: IDocument[]) => {\n\t\tsetDocIntroSent(false);\n\t}, []);\n\n\tconst handleMultiDocUploadError = useCallback((msg: string) => {\n\t\tsetDocError(msg);\n\t}, []);\n\n\tconst handleMultiDocReady = useCallback((doc: IDocument) => {\n\t\tsetActiveDocuments(prev => {\n\t\t\tconst updated = prev.map(p => p.doc_id === doc.doc_id ? doc : p);\n\t\t\tsetTimeout(() => checkAndSendMultiDocIntro(updated), 0);\n\t\t\treturn updated;\n\t\t});\n\t}, [checkAndSendMultiDocIntro]);\n\n\tconst handleMultiDocError = useCallback((doc: IDocument) => {\n\t\tsetActiveDocuments(prev => prev.filter(p => p.doc_id !== doc.doc_id));\n\t\tsetDocError(doc.error || 'Document processing failed');\n\t}, []);\n\n\tconst handleMultiDocDelete = useCallback(async (docId?: string) => {\n\t\tif (activeDocuments.length === 0) return;\n\t\tconst docsToDelete = docId ? activeDocuments.filter(d => d.doc_id === docId) : activeDocuments;\n\t\ttry {\n\t\t\tconst { 'x-token': token } = getToken();\n\t\t\tconst { deleteDocument } = await import('../../api-client/api.ai-feature/api');\n\t\t\tawait Promise.all(docsToDelete.map(d => deleteDocument(d.doc_id, token)));\n\t\t\tsetActiveDocuments((current) => docId ? current.filter(c => c.doc_id !== docId) : []);\n\t\t\tsetDocIntroSent(false);\n\t\t\tsetDocError(null);\n\t\t\tsetSuggestedQuestions([]);\n\t\t\tfetchedMultiDocIntroIds.current = '';\n\t\t} catch {\n\t\t\tsetDocError('Failed to delete document(s). Please try again.');\n\t\t}\n\t}, [activeDocuments]);\n\n\tconst sendMessage = useCallback(\n\t\tasync (text: string) => {\n\t\t\tif (isTyping) return;\n\t\t\tif (mode === 'conversation' && !text.trim()) return;\n\t\t\tif (mode === 'agent' && !formType) return;\n\t\t\tif (mode === 'doc_qa' && !activeDocument && activeDocuments.length === 0) return;\n\n\t\t\tconst userText = text;\n\n\t\t\tsetMessages((prev) => [\n\t\t\t\t...prev,\n\t\t\t\t{ id: Date.now(), role: 'user', text: userText, mode }\n\t\t\t]);\n\t\t\tsetInputValue('');\n\t\t\tsetIsTyping(true);\n\n\t\t\tlet aiMsgId: number | null = null;\n\t\t\tconst startTime = Date.now();\n\n\t\t\tconst appendToken = (chunk: string) => {\n\t\t\t\tif (aiMsgId === null) {\n\t\t\t\t\taiMsgId = Date.now() + 1;\n\t\t\t\t\tconst responseTime = `${((Date.now() - startTime) / 1000).toFixed(1)}s`;\n\t\t\t\t\tsetIsTyping(false);\n\t\t\t\t\tsetMessages((prev) => [\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t{ id: aiMsgId!, role: 'ai', text: chunk, time: responseTime, mode }\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tsetMessages((prev) =>\n\t\t\t\t\t\tprev.map((m) => (m.id === aiMsgId ? { ...m, text: m.text + chunk } : m))\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onDone = () => { setIsTyping(false); };\n\t\t\tconst onError = (message?: string) => {\n\t\t\t\tsetIsTyping(false);\n\t\t\t\tconst errorText = message || 'Sorry, something went wrong. Please try again.';\n\t\t\t\tif (aiMsgId !== null) {\n\t\t\t\t\tsetMessages((prev) => prev.map((m) =>\n\t\t\t\t\t\tm.id === aiMsgId\n\t\t\t\t\t\t\t? { ...m, text: m.text + '\\n\\n⚠️ ' + errorText }\n\t\t\t\t\t\t\t: m\n\t\t\t\t\t));\n\t\t\t\t} else {\n\t\t\t\t\tsetMessages((prev) => [\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t{ id: Date.now() + 1, role: 'ai', text: errorText, time: getTime(), mode }\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst onOffTopic = () => {\n\t\t\t\tsetIsTyping(false);\n\t\t\t\tif (aiMsgId === null) {\n\t\t\t\t\tsetMessages((prev) => [\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t{ id: Date.now() + 1, role: 'ai', text: 'That question is outside the scope of ERP data.', time: getTime(), mode }\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst resolveFieldLabel = async (key: string, value: any): Promise<string> => {\n\t\t\t\tconst cacheKey = `${key}:${value}`;\n\t\t\t\tif (labelCacheRef.current[cacheKey]) return labelCacheRef.current[cacheKey];\n\t\t\t\tlet label = String(value ?? '');\n\t\t\t\ttry {\n\t\t\t\t\tif (key === 'customer_id' || key === 'vendor_id') {\n\t\t\t\t\t\tconst res = await getV1PartiesId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst p = (res as any)?.data?.parties?.party?.data || (res as any)?.data?.parties?.party || {};\n\t\t\t\t\t\tlabel = p.company_name || `${p.first_name || ''} ${p.last_name || ''}`.trim() || label;\n\t\t\t\t\t} else if (key === 'payment_term_id') {\n\t\t\t\t\t\tconst res = await getV1PaymentTermsId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst pt = (res as any)?.data?.payment_term?.payment_term?.data || {};\n\t\t\t\t\t\tlabel = pt.name || label;\n\t\t\t\t\t} else if (key === 'account_payable_id' || key === 'account_receivable_id') {\n\t\t\t\t\t\tconst res = await getV1ChartOfAccountId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst c = (res as any)?.data?.chart_of_account?.account?.data || {};\n\t\t\t\t\t\tlabel = c.account_name || label;\n\t\t\t\t\t} else if (key === 'company_id') {\n\t\t\t\t\t\tconst res = await getV1CompanyId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst c = (res as any)?.data?.company?.data || {};\n\t\t\t\t\t\tlabel = c.company_name || label;\n\t\t\t\t\t} else if (key === 'currency_id' || key === 'supplier_currency_id') {\n\t\t\t\t\t\tconst res = await getV1CurrencyId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst c = (res as any)?.data?.currency?.data || {};\n\t\t\t\t\t\tlabel = c.currency_name || label;\n\t\t\t\t\t} else if (key === 'region_id') {\n\t\t\t\t\t\tconst res = await getV1LocationsStates({ ...getToken(), id: Number(value) });\n\t\t\t\t\t\tconst r = (res as any)?.data?.state || res?.data || {}\n\t\t\t\t\t\tlabel = r.name || r.state_name || label;\n\t\t\t\t\t} else if (key === 'location' || key.startsWith('invoice_addresses.shipping_address') || key.startsWith('invoice_addresses.billing_address') || key.startsWith('invoice_addresses.place_of_supply')) {\n\t\t\t\t\t\tconst res = await getV1WarehouseLocationId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst wl = (res as any)?.data?.warehouse_location?.warehouse_location?.data || {};\n\t\t\t\t\t\tlabel = wl.name || label;\n\t\t\t\t\t} else if (key === 'department' || key === 'department_id') {\n\t\t\t\t\t\tconst res = await getV1DepartmentsId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst d = (res as any)?.data?.department?.department?.data || {};\n\t\t\t\t\t\tlabel = d.name || label;\n\t\t\t\t\t} else if (key.startsWith('invoice_addresses.supplier_address') || key.startsWith('invoice_addresses.contact_person')) {\n\t\t\t\t\t\tconst res = await getV1PartiesId({ ...getToken(), id: value });\n\t\t\t\t\t\tconst p = (res as any)?.data?.parties?.party?.data || (res as any)?.data?.parties?.party || {};\n\t\t\t\t\t\tlabel = p.company_name || `${p.first_name || ''} ${p.last_name || ''}`.trim() || label;\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t\tlabelCacheRef.current[cacheKey] = label;\n\t\t\t\treturn label;\n\t\t\t};\n\n\t\t\tconst onFieldUpdates = async (updates: Record<string, unknown>) => {\n\t\t\t\tsetCurrentFieldUpdates(updates);\n\t\t\t\tconst newLabels: Record<string, string> = {};\n\n\t\t\t\tconst expenseAccountIds = updates['purchase_expense_entries.accounts.account_name'];\n\t\t\t\tif (Array.isArray(expenseAccountIds)) {\n\t\t\t\t\tconst accountPromises = expenseAccountIds.map(async (accountId: string) => {\n\t\t\t\t\t\tconst cacheKey = `purchase_expense_entries.accounts.account_name:${accountId}`;\n\t\t\t\t\t\tif (labelCacheRef.current[cacheKey]) {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = labelCacheRef.current[cacheKey];\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst res = await getV1ChartOfAccountId({ ...getToken(), id: accountId });\n\t\t\t\t\t\t\tconst c = (res as any)?.data?.chart_of_account?.account?.data || {};\n\t\t\t\t\t\t\tconst label = c.account_name || `Account #${accountId}`;\n\t\t\t\t\t\t\tlabelCacheRef.current[cacheKey] = label;\n\t\t\t\t\t\t\tnewLabels[cacheKey] = label;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = `Account #${accountId}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tawait Promise.all(accountPromises);\n\t\t\t\t}\n\n\t\t\t\tconst expenseTaxCodes = updates['purchase_expense_entries.tax_codes'];\n\t\t\t\tif (Array.isArray(expenseTaxCodes)) {\n\t\t\t\t\tconst uniqueTaxIds = [...new Set(expenseTaxCodes.filter(Boolean))];\n\t\t\t\t\tconst taxPromises = uniqueTaxIds.map(async (taxId: string) => {\n\t\t\t\t\t\tconst cacheKey = `tax_code_data:${taxId}`;\n\t\t\t\t\t\tif (labelCacheRef.current[cacheKey]) {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = labelCacheRef.current[cacheKey];\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst res = await getV1TaxCodeId({ ...getToken(), id: taxId });\n\t\t\t\t\t\t\tconst taxCode = (res as any)?.data?.taxCode?.data || {};\n\t\t\t\t\t\t\tconst taxRate = Number(taxCode.rate) || 0;\n\t\t\t\t\t\t\tconst taxName = taxCode.name || `Tax #${taxId}`;\n\t\t\t\t\t\t\tconst label = JSON.stringify({ name: `${taxName} (${taxRate}%)`, rate: taxRate });\n\t\t\t\t\t\t\tlabelCacheRef.current[cacheKey] = label;\n\t\t\t\t\t\t\tnewLabels[cacheKey] = label;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = JSON.stringify({ name: `Tax #${taxId}`, rate: 0 });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tawait Promise.all(taxPromises);\n\t\t\t\t}\n\n\t\t\t\tconst itemNames = updates['sales_item_entries.items.name'] || updates['purchase_item_entries.items.name'];\n\t\t\t\tconst itemPrefix = updates['sales_item_entries.items.name'] ? 'sales_item_entries' : 'purchase_item_entries';\n\t\t\t\tif (Array.isArray(itemNames)) {\n\t\t\t\t\tconst itemPromises = itemNames.map(async (itemId: string) => {\n\t\t\t\t\t\tconst cacheKey = `${itemPrefix}.items.name:${itemId}`;\n\t\t\t\t\t\tif (labelCacheRef.current[cacheKey]) {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = labelCacheRef.current[cacheKey];\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst res = await getV1InventoryItemsId({ ...getToken(), id: itemId });\n\t\t\t\t\t\t\tconst item = (res as any)?.data?.data || {};\n\t\t\t\t\t\t\tconst label = item.name || `Item #${itemId}`;\n\t\t\t\t\t\t\tlabelCacheRef.current[cacheKey] = label;\n\t\t\t\t\t\t\tnewLabels[cacheKey] = label;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = `Item #${itemId}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tawait Promise.all(itemPromises);\n\t\t\t\t}\n\n\t\t\t\tconst taxCodes = updates['sales_item_entries.tax_codes'] || updates['purchase_item_entries.tax_codes'];\n\t\t\t\tif (Array.isArray(taxCodes)) {\n\t\t\t\t\tconst uniqueTaxIds = [...new Set(taxCodes.filter(Boolean))];\n\t\t\t\t\tconst taxPromises = uniqueTaxIds.map(async (taxId: string) => {\n\t\t\t\t\t\tconst cacheKey = `tax_code_data:${taxId}`;\n\t\t\t\t\t\tif (labelCacheRef.current[cacheKey]) {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = labelCacheRef.current[cacheKey];\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst res = await getV1TaxCodeId({ ...getToken(), id: taxId });\n\t\t\t\t\t\t\tconst taxCode = (res as any)?.data?.taxCode?.data || {};\n\t\t\t\t\t\t\tconst taxRate = Number(taxCode.rate) || 0;\n\t\t\t\t\t\t\tconst taxName = taxCode.name || `Tax #${taxId}`;\n\t\t\t\t\t\t\tconst label = JSON.stringify({ name: `${taxName} (${taxRate}%)`, rate: taxRate });\n\t\t\t\t\t\t\tlabelCacheRef.current[cacheKey] = label;\n\t\t\t\t\t\t\tnewLabels[cacheKey] = label;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = JSON.stringify({ name: `Tax #${taxId}`, rate: 0 });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tawait Promise.all(taxPromises);\n\t\t\t\t}\n\n\t\t\t\tconst uomKeys = ['sales_item_entries.units_of_measurement.uom_name', 'sales_item_entries.units_of_measurement.name', 'purchase_item_entries.units_of_measurement.uom_name'];\n\t\t\t\tconst uomIdsForKey = uomKeys.find(k => Array.isArray(updates[k]));\n\t\t\t\tif (uomIdsForKey) {\n\t\t\t\t\tconst uomIds = updates[uomIdsForKey] as string[];\n\t\t\t\t\tconst uomPrefix = uomIdsForKey.startsWith('sales') ? 'sales_item_entries' : 'purchase_item_entries';\n\t\t\t\t\tconst uomPromises = uomIds.map(async (uomId: string) => {\n\t\t\t\t\t\tconst cacheKey = `${uomPrefix}.units_of_measurement:${uomId}`;\n\t\t\t\t\t\tif (labelCacheRef.current[cacheKey]) {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = labelCacheRef.current[cacheKey];\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst res = await getV1Uom({ ...getToken(), filters: JSON.stringify({ id: uomId }) });\n\t\t\t\t\t\t\tconst uomList = (res as any)?.data?.['uom'] || (res as any)?.data?.data || [];\n\t\t\t\t\t\t\tconst uom = Array.isArray(uomList) ? uomList[0] : uomList;\n\t\t\t\t\t\t\tconst label = uom?.name || uom?.uom_name || `UOM #${uomId}`;\n\t\t\t\t\t\t\tlabelCacheRef.current[cacheKey] = label;\n\t\t\t\t\t\t\tnewLabels[cacheKey] = label;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tnewLabels[cacheKey] = `UOM #${uomId}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tawait Promise.all(uomPromises);\n\t\t\t\t}\n\n\t\t\t\tconst promises = Object.entries(updates).map(async ([key, value]) => {\n\t\t\t\t\tif (value !== undefined && value !== null && value !== '') {\n\t\t\t\t\t\tif (key === 'sales_item_entries.items.name' || key === 'purchase_item_entries.items.name' || key === 'purchase_expense_entries.accounts.account_name') return;\n\t\t\t\t\t\tif (uomKeys.includes(key)) return;\n\t\t\t\t\t\tnewLabels[key] = await resolveFieldLabel(key, value);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tawait Promise.all(promises);\n\t\t\t\tsetResolvedLabels((prev) => ({ ...prev, ...newLabels }));\n\t\t\t};\n\n\t\t\ttry {\n\t\t\t\tif (mode === 'doc_qa') {\n\t\t\t\t\tif (activeDocuments && activeDocuments.length > 0) {\n\t\t\t\t\t\tawait streamV1CopilotChat(\n\t\t\t\t\t\t\t{ ...getToken(), query: text, doc_ids: activeDocuments.map(d => d.doc_id) },\n\t\t\t\t\t\t\tappendToken, onDone, onError, onOffTopic\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (activeDocument) {\n\t\t\t\t\t\tawait streamV1CopilotChat(\n\t\t\t\t\t\t\t{ ...getToken(), query: text, doc_id: activeDocument.doc_id },\n\t\t\t\t\t\t\tappendToken, onDone, onError, onOffTopic\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else if (mode === 'agent' && formType) {\n\t\t\t\t\tif (!agentStarted.current) {\n\t\t\t\t\t\tawait startV1CopilotAgent(\n\t\t\t\t\t\t\t{ ...getToken(), form_type: formType },\n\t\t\t\t\t\t\tappendToken,\n\t\t\t\t\t\t\t() => { agentStarted.current = true; },\n\t\t\t\t\t\t\tonError,\n\t\t\t\t\t\t\tonOffTopic\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\tawait formAssistV1Copilot(\n\t\t\t\t\t{ ...getToken(), message: text },\n\t\t\t\t\tappendToken, onDone, onError, onFieldUpdates,\n\t\t\t\t\tasync (action) => {\n\t\t\t\t\t\tif (['save_draft', 'submit_form', 'discard_form'].includes(action)) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst token = getToken()['x-token'];\n\t\t\t\t\t\t\t\tconst sessionId = 'current_session';\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (action === 'submit_form') {\n\t\t\t\t\t\t\t\t\tawait postV1CopilotSubmit(sessionId, token, formType as string, currentFieldUpdates);\n\t\t\t\t\t\t\t\t\ttoast.success('Form submitted successfully!');\n\t\t\t\t\t\t\t\t\tsetTimeout(() => setIsOpen(false), 2000);\n\t\t\t\t\t\t\t\t} else if (action === 'save_draft') {\n\t\t\t\t\t\t\t\t\tawait postV1CopilotSaveDraft(sessionId, token, formType as string, currentFieldUpdates);\n\t\t\t\t\t\t\t\t\ttoast.success('Draft saved successfully!');\n\t\t\t\t\t\t\t\t\tsetTimeout(() => setIsOpen(false), 2000);\n\t\t\t\t\t\t\t\t} else if (action === 'discard_form') {\n\t\t\t\t\t\t\t\t\tawait postV1CopilotDiscard(sessionId, token, formType as string, currentFieldUpdates);\n\t\t\t\t\t\t\t\t\ttoast.success('Form discarded');\n\t\t\t\t\t\t\t\t\tsetIsOpen(false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// Only clean up state if the API action actually succeeded!\n\t\t\t\t\t\t\t\tagentStarted.current = false;\n\t\t\t\t\t\t\t\tsetCurrentFieldUpdates(null);\n\t\t\t\t\t\t\t\tsetResolvedLabels({});\n\t\t\t\t\t\t\t\tlabelCacheRef.current = {};\n\t\t\t\t\t\t\t\tsetFormStatus('in_progress');\n\t\t\t\t\t\t\t\tsetMessages([]);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} catch (e: any) {\n\t\t\t\t\t\t\t\tconsole.error('Failed to perform copilot action', e);\n\t\t\t\t\t\t\t\tlet errMsg = 'Action failed. Please try again.';\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst parsed = JSON.parse(e.message);\n\t\t\t\t\t\t\t\t\tif (parsed.message) errMsg = parsed.message;\n\t\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t\tif (e.message) errMsg = e.message;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoast.error(errMsg);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// Also display the error in the chat UI so the user doesn't miss it\n\t\t\t\t\t\t\t\tsetMessages((prev) => [\n\t\t\t\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\t\tid: Date.now(), \n\t\t\t\t\t\t\t\t\t\trole: 'ai', \n\t\t\t\t\t\t\t\t\t\ttext: `Validation Error: ${errMsg}\\n\\nPlease correct the details and try again.`, \n\t\t\t\t\t\t\t\t\t\ttime: new Date().toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }), \n\t\t\t\t\t\t\t\t\t\tmode: 'agent' \n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t(status) => {\n\t\t\t\t\t\tconsole.log(\"Copilot Form Status:\", status);\n\t\t\t\t\t\tsetFormStatus(status);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tawait streamV1CopilotChat(\n\t\t\t\t\t\t{ ...getToken(), query: text, 'x-timezone': new Date().getTimezoneOffset() },\n\t\t\t\t\t\tappendToken, onDone, onError, onOffTopic\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tsetIsTyping(false);\n\t\t\t\tif (aiMsgId === null) {\n\t\t\t\t\tsetMessages((prev) => [\n\t\t\t\t\t\t...prev,\n\t\t\t\t\t\t{ id: Date.now() + 1, role: 'ai', text: 'Connection error. Please try again.', time: getTime(), mode }\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[isTyping, mode, formType, activeDocument, activeDocuments]\n\t);\n\n\tconst handleKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (showSlashMenu && filteredCommands.length > 0) {\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetSlashIndex((i) => (i + 1) % filteredCommands.length);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetSlashIndex((i) => (i - 1 + filteredCommands.length) % filteredCommands.length);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (e.key === 'Enter' || e.key === 'Tab') {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst cmdId = filteredCommands[slashIndex].id;\n\t\t\t\tsetInputValue('');\n\t\t\t\tselectCommand(cmdId);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (e.key === 'Escape') {\n\t\t\t\tsetShowSlashMenu(false);\n\t\t\t\tsetInputValue('');\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (e.key === 'Enter' && !e.shiftKey) {\n\t\t\te.preventDefault();\n\t\t\tsendMessage(inputValue);\n\t\t}\n\t};\n\n\tconst handleSave = useCallback(async () => {\n\t\tawait sendMessage('Save the draft');\n\t}, [sendMessage]);\n\n\tconst handleDiscard = useCallback(async () => {\n\t\tawait sendMessage('Discard this form');\n\t}, [sendMessage]);\n\n\tconst handleSubmit = useCallback(async () => {\n\t\tawait sendMessage('Submit this form');\n\t}, [sendMessage]);\n\n\treturn (\n\t\t<>\n\t\t\t{isOpen && (\n\t\t\t\t<div className='chatBot--panel'>\n\t\t\t\t\t<ChatBotHeader\n\t\t\t\t\t\tonClose={() => setIsOpen(false)}\n\t\t\t\t\t\tonNewChat={async () => {\n\t\t\t\t\t\t\tconst { 'x-token': token } = getToken();\n\t\t\t\t\t\t\tawait resetV1CopilotSession(token);\n\t\t\t\t\t\t\tsetIsTyping(false);\n\t\t\t\t\t\t\tsetFormType(null);\n\t\t\t\t\t\t\tsetFormStatus('in_progress');\n\t\t\t\t\t\t\tagentStarted.current = false;\n\t\t\t\t\t\t\tsetCurrentFieldUpdates(null);\n\t\t\t\t\t\t\tsetResolvedLabels({});\n\t\t\t\t\t\t\tlabelCacheRef.current = {};\n\t\t\t\t\t\t\tsetActiveDocument(null);\n\t\t\t\t\t\t\tsetDocIntroSent(false);\n\t\t\t\t\t\t\tsetDocError(null);\n\t\t\t\t\t\t\tsetActiveDocuments([]);\n\t\t\t\t\t\t\tsetSuggestedQuestions([]);\n\t\t\t\t\t\t\tsetMessages([]);\n\t\t\t\t\t\t\tfetchedMultiDocIntroIds.current = '';\n\t\t\t\t\t\t\tfetchQuestions();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{(filteredMessages.length === 0 && !activeDocument && activeDocuments.length === 0) ? (\n\t\t\t\t\t\t<div ref={bodyRef} className='chatBot--body'>\n\t\t\t\t\t\t\t<ChatBotWelcome firstName={firstName} onSuggestion={handleSuggestion} dynamicQuestions={dynamicQuestions} mode={mode} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<ChatBotMessages\n\t\t\t\t\t\t\tmessages={filteredMessages}\n\t\t\t\t\t\t\tisTyping={isTyping}\n\t\t\t\t\t\t\tbodyRef={bodyRef}\n\t\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{activeDocument && activeDocuments.length === 0 && mode === 'doc_qa' && activeDocument.status === 'ready' && !docIntroSent && filteredMessages.length === 0 && (\n\t\t\t\t\t\t\t\t\t\t<DocIntro\n\t\t\t\t\t\t\t\t\t\t\tdocument={activeDocument}\n\t\t\t\t\t\t\t\t\t\t\tonSuggestion={(q) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetDocIntroSent(true);\n\t\t\t\t\t\t\t\t\t\t\t\tsetInputValue(q);\n\t\t\t\t\t\t\t\t\t\t\t\tsetTimeout(() => sendMessage(q), 0);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{activeDocuments.length > 0 && mode === 'doc_qa' && activeDocuments.every(d => d.status === 'ready') && !docIntroSent && filteredMessages.length === 0 && (\n\t\t\t\t\t\t\t\t\t\t<DocIntro\n\t\t\t\t\t\t\t\t\t\t\tdocuments={activeDocuments}\n\t\t\t\t\t\t\t\t\t\t\tsuggestedQuestions={suggestedQuestions.length > 0 ? suggestedQuestions : activeDocuments[0].suggested_questions}\n\t\t\t\t\t\t\t\t\t\t\tonSuggestion={(q) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetDocIntroSent(true);\n\t\t\t\t\t\t\t\t\t\t\t\tsetInputValue(q);\n\t\t\t\t\t\t\t\t\t\t\t\tsetTimeout(() => sendMessage(q), 0);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{currentFieldUpdates && mode === 'agent' && (\n\t\t\t\t\t\t\t\t\t\t<InvoicePreview\n\t\t\t\t\t\t\t\t\t\t\tfieldUpdates={currentFieldUpdates}\n\t\t\t\t\t\t\t\t\t\t\tresolvedLabels={resolvedLabels}\n\t\t\t\t\t\t\t\t\t\t\tformStatus={formStatus}\n\t\t\t\t\t\t\t\t\t\t\tonSave={handleSave}\n\t\t\t\t\t\t\t\t\t\t\tonDiscard={handleDiscard}\n\t\t\t\t\t\t\t\t\t\t\tonSubmit={handleSubmit}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{mode === 'doc_qa' && !activeDocument && activeDocuments.length === 0 && (\n\t\t\t\t\t\t<div className='chatBot--doc-upload-area'>\n\t\t\t\t\t\t\t<DocUpload\n\t\t\t\t\t\t\t\tonUploadComplete={(docs) => {\n\t\t\t\t\t\t\t\t\tif (docs.length === 1 && (!activeDocuments || activeDocuments.length === 0)) {\n\t\t\t\t\t\t\t\t\t\thandleDocUploadComplete(docs[0]);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\thandleMultiDocUploadComplete(docs);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonUploadError={handleDocUploadError}\n\t\t\t\t\t\t\t\tuploadDocument={handleDocUpload}\n\t\t\t\t\t\t\t\tuploadDocuments={handleMultiDocUpload}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{docError && <div className='chatBot--doc-error'>{docError}</div>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{activeDocument && activeDocuments.length === 0 && mode === 'doc_qa' && ['pending', 'processing', 'parsing', 'embedding', 'indexing'].includes(activeDocument.status) && (\n\t\t\t\t\t\t<div className='chatBot--doc-status-area'>\n\t\t\t\t\t\t\t<DocStatus key={activeDocument.doc_id}\n\t\t\t\t\t\t\t\tdocument={activeDocument}\n\t\t\t\t\t\t\t\tonReady={handleDocReady}\n\t\t\t\t\t\t\t\tonError={handleDocError}\n\t\t\t\t\t\t\t\tgetStatus={async (docId) => {\n\t\t\t\t\t\t\t\t\tconst { 'x-token': token } = getToken();\n\t\t\t\t\t\t\t\t\tconst res = await apiGetDocumentStatus(docId, token);\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\tdoc_id: res.doc_id,\n\t\t\t\t\t\t\t\t\t\tfilename: res.filename || activeDocument.filename,\n\t\t\t\t\t\t\t\t\t\tstatus: res.status,\n\t\t\t\t\t\t\t\t\t\tpages: res.pages || activeDocument.pages,\n\t\t\t\t\t\t\t\t\t\tcategory: res.category || undefined,\n\t\t\t\t\t\t\t\t\t\tsub_category: res.sub_category || undefined,\n\t\t\t\t\t\t\t\t\t\tchunk_count: res.chunk_count || undefined,\n\t\t\t\t\t\t\t\t\t\terror: res.error || undefined,\n\t\t\t\t\t\t\t\t\t\terror_code: res.error_code || undefined,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{mode === 'doc_qa' && activeDocuments.length > 0 && activeDocuments.some(d => ['pending', 'processing', 'parsing', 'embedding', 'indexing'].includes(d.status)) && (\n\t\t\t\t\t\t<div className='chatBot--doc-status-area chatBot--doc-status-area--multiple'>\n\t\t\t\t\t\t\t{activeDocuments.filter(d => ['pending', 'processing', 'parsing', 'embedding', 'indexing'].includes(d.status)).map(doc => (\n\t\t\t\t\t\t\t\t<DocStatus key={doc.doc_id}\n\t\t\t\t\t\t\t\t\tdocument={doc}\n\t\t\t\t\t\t\t\t\tonReady={handleMultiDocReady}\n\t\t\t\t\t\t\t\t\tonError={handleMultiDocError}\n\t\t\t\t\t\t\t\t\tgetStatus={async (docId) => {\n\t\t\t\t\t\t\t\t\t\tconst { 'x-token': token } = getToken();\n\t\t\t\t\t\t\t\t\t\tconst res = await apiGetDocumentStatus(docId, token);\n\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\tdoc_id: res.doc_id,\n\t\t\t\t\t\t\t\t\t\t\tfilename: res.filename || doc.filename,\n\t\t\t\t\t\t\t\t\t\t\tstatus: res.status,\n\t\t\t\t\t\t\t\t\t\t\tpages: res.pages || doc.pages,\n\t\t\t\t\t\t\t\t\t\t\tcategory: res.category || undefined,\n\t\t\t\t\t\t\t\t\t\t\tsub_category: res.sub_category || undefined,\n\t\t\t\t\t\t\t\t\t\t\tchunk_count: res.chunk_count || undefined,\n\t\t\t\t\t\t\t\t\t\t\terror: res.error || undefined,\n\t\t\t\t\t\t\t\t\t\t\terror_code: res.error_code || undefined,\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{docError && mode === 'doc_qa' && !!(activeDocument || activeDocuments.length > 0) && (\n\t\t\t\t\t\t<div className='chatBot--doc-error-floating' onClick={() => setDocError(null)}>\n\t\t\t\t\t\t\t{docError}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<ChatBotInput\n\t\t\t\t\t\tinputValue={inputValue}\n\t\t\t\t\t\tisTyping={isTyping}\n\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\tformType={formType}\n\t\t\t\t\t\tshowSlashMenu={showSlashMenu}\n\t\t\t\t\t\tfilteredCommands={filteredCommands}\n\t\t\t\t\t\tslashIndex={slashIndex}\n\t\t\t\t\t\ttextareaRef={textareaRef}\n\t\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t\tonSend={() => sendMessage(inputValue)}\n\t\t\t\t\t\tonSlashHover={setSlashIndex}\n\t\t\t\t\t\tonSlashSelect={selectCommand}\n\t\t\t\t\t\tonModeChange={handleModeChange}\n\t\t\t\t\t\tonFormTypeChange={setFormType}\n\t\t\t\t\t\tactiveDocument={activeDocument}\n\t\t\t\t\t\tactiveDocuments={activeDocuments}\n\t\t\t\t\t\tonDocDelete={handleDocDelete}\n\t\t\t\t\t\tonDocUpload={() => {\n\t\t\t\t\t\t\t// don't clear the list necessarily\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonMultiDocDelete={handleMultiDocDelete}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{!isOpen && (\n\t\t\t\t<ChatBotLauncher onOpen={() => setIsOpen(true)} />\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nexport default ChatBot;\n"],"names":["React","uploadDocument","uploadDocuments","uData","_a","apiUploadDocument","apiGetDocumentStatus","apiUploadDocuments"],"mappings":"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"}