@powerhousedao/network-admin 0.0.1

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 (509) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +179 -0
  3. package/dist/document-models/index.d.ts +6 -0
  4. package/dist/document-models/index.d.ts.map +1 -0
  5. package/dist/document-models/index.js +4 -0
  6. package/dist/document-models/network-profile/gen/actions.d.ts +4 -0
  7. package/dist/document-models/network-profile/gen/actions.d.ts.map +1 -0
  8. package/dist/document-models/network-profile/gen/actions.js +1 -0
  9. package/dist/document-models/network-profile/gen/creators.d.ts +2 -0
  10. package/dist/document-models/network-profile/gen/creators.d.ts.map +1 -0
  11. package/dist/document-models/network-profile/gen/creators.js +1 -0
  12. package/dist/document-models/network-profile/gen/document-model.d.ts +3 -0
  13. package/dist/document-models/network-profile/gen/document-model.d.ts.map +1 -0
  14. package/dist/document-models/network-profile/gen/document-model.js +158 -0
  15. package/dist/document-models/network-profile/gen/index.d.ts +6 -0
  16. package/dist/document-models/network-profile/gen/index.d.ts.map +1 -0
  17. package/dist/document-models/network-profile/gen/index.js +5 -0
  18. package/dist/document-models/network-profile/gen/network-profile-management/actions.d.ts +48 -0
  19. package/dist/document-models/network-profile/gen/network-profile-management/actions.d.ts.map +1 -0
  20. package/dist/document-models/network-profile/gen/network-profile-management/actions.js +1 -0
  21. package/dist/document-models/network-profile/gen/network-profile-management/creators.d.ts +14 -0
  22. package/dist/document-models/network-profile/gen/network-profile-management/creators.d.ts.map +1 -0
  23. package/dist/document-models/network-profile/gen/network-profile-management/creators.js +13 -0
  24. package/dist/document-models/network-profile/gen/network-profile-management/error.d.ts +2 -0
  25. package/dist/document-models/network-profile/gen/network-profile-management/error.d.ts.map +1 -0
  26. package/dist/document-models/network-profile/gen/network-profile-management/error.js +1 -0
  27. package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts +17 -0
  28. package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts.map +1 -0
  29. package/dist/document-models/network-profile/gen/network-profile-management/object.js +37 -0
  30. package/dist/document-models/network-profile/gen/network-profile-management/operations.d.ts +17 -0
  31. package/dist/document-models/network-profile/gen/network-profile-management/operations.d.ts.map +1 -0
  32. package/dist/document-models/network-profile/gen/network-profile-management/operations.js +1 -0
  33. package/dist/document-models/network-profile/gen/object.d.ts +16 -0
  34. package/dist/document-models/network-profile/gen/object.d.ts.map +1 -0
  35. package/dist/document-models/network-profile/gen/object.js +25 -0
  36. package/dist/document-models/network-profile/gen/reducer.d.ts +3 -0
  37. package/dist/document-models/network-profile/gen/reducer.d.ts.map +1 -0
  38. package/dist/document-models/network-profile/gen/reducer.js +60 -0
  39. package/dist/document-models/network-profile/gen/schema/index.d.ts +3 -0
  40. package/dist/document-models/network-profile/gen/schema/index.d.ts.map +1 -0
  41. package/dist/document-models/network-profile/gen/schema/index.js +2 -0
  42. package/dist/document-models/network-profile/gen/schema/types.d.ts +184 -0
  43. package/dist/document-models/network-profile/gen/schema/types.d.ts.map +1 -0
  44. package/dist/document-models/network-profile/gen/schema/types.js +1 -0
  45. package/dist/document-models/network-profile/gen/schema/zod.d.ts +23 -0
  46. package/dist/document-models/network-profile/gen/schema/zod.d.ts.map +1 -0
  47. package/dist/document-models/network-profile/gen/schema/zod.js +83 -0
  48. package/dist/document-models/network-profile/gen/types.d.ts +10 -0
  49. package/dist/document-models/network-profile/gen/types.d.ts.map +1 -0
  50. package/dist/document-models/network-profile/gen/types.js +1 -0
  51. package/dist/document-models/network-profile/gen/utils.d.ts +13 -0
  52. package/dist/document-models/network-profile/gen/utils.d.ts.map +1 -0
  53. package/dist/document-models/network-profile/gen/utils.js +52 -0
  54. package/dist/document-models/network-profile/index.d.ts +35 -0
  55. package/dist/document-models/network-profile/index.d.ts.map +1 -0
  56. package/dist/document-models/network-profile/index.js +21 -0
  57. package/dist/document-models/network-profile/ph-factories.d.ts +27 -0
  58. package/dist/document-models/network-profile/ph-factories.d.ts.map +1 -0
  59. package/dist/document-models/network-profile/ph-factories.js +60 -0
  60. package/dist/document-models/network-profile/src/reducers/network-profile-management.d.ts +8 -0
  61. package/dist/document-models/network-profile/src/reducers/network-profile-management.d.ts.map +1 -0
  62. package/dist/document-models/network-profile/src/reducers/network-profile-management.js +40 -0
  63. package/dist/document-models/network-profile/src/tests/document-model.test.d.ts +6 -0
  64. package/dist/document-models/network-profile/src/tests/document-model.test.d.ts.map +1 -0
  65. package/dist/document-models/network-profile/src/tests/document-model.test.js +18 -0
  66. package/dist/document-models/network-profile/src/tests/network-profile-management.test.d.ts +6 -0
  67. package/dist/document-models/network-profile/src/tests/network-profile-management.test.d.ts.map +1 -0
  68. package/dist/document-models/network-profile/src/tests/network-profile-management.test.js +164 -0
  69. package/dist/document-models/network-profile/src/utils.d.ts +2 -0
  70. package/dist/document-models/network-profile/src/utils.d.ts.map +1 -0
  71. package/dist/document-models/network-profile/src/utils.js +1 -0
  72. package/dist/document-models/payment-terms/gen/actions.d.ts +8 -0
  73. package/dist/document-models/payment-terms/gen/actions.d.ts.map +1 -0
  74. package/dist/document-models/payment-terms/gen/actions.js +3 -0
  75. package/dist/document-models/payment-terms/gen/clauses/actions.d.ts +28 -0
  76. package/dist/document-models/payment-terms/gen/clauses/actions.d.ts.map +1 -0
  77. package/dist/document-models/payment-terms/gen/clauses/actions.js +1 -0
  78. package/dist/document-models/payment-terms/gen/clauses/creators.d.ts +9 -0
  79. package/dist/document-models/payment-terms/gen/clauses/creators.d.ts.map +1 -0
  80. package/dist/document-models/payment-terms/gen/clauses/creators.js +8 -0
  81. package/dist/document-models/payment-terms/gen/clauses/error.d.ts +41 -0
  82. package/dist/document-models/payment-terms/gen/clauses/error.d.ts.map +1 -0
  83. package/dist/document-models/payment-terms/gen/clauses/error.js +44 -0
  84. package/dist/document-models/payment-terms/gen/clauses/object.d.ts +12 -0
  85. package/dist/document-models/payment-terms/gen/clauses/object.d.ts.map +1 -0
  86. package/dist/document-models/payment-terms/gen/clauses/object.js +22 -0
  87. package/dist/document-models/payment-terms/gen/clauses/operations.d.ts +12 -0
  88. package/dist/document-models/payment-terms/gen/clauses/operations.d.ts.map +1 -0
  89. package/dist/document-models/payment-terms/gen/clauses/operations.js +1 -0
  90. package/dist/document-models/payment-terms/gen/creators.d.ts +4 -0
  91. package/dist/document-models/payment-terms/gen/creators.d.ts.map +1 -0
  92. package/dist/document-models/payment-terms/gen/creators.js +3 -0
  93. package/dist/document-models/payment-terms/gen/document-model.d.ts +3 -0
  94. package/dist/document-models/payment-terms/gen/document-model.d.ts.map +1 -0
  95. package/dist/document-models/payment-terms/gen/document-model.js +318 -0
  96. package/dist/document-models/payment-terms/gen/index.d.ts +6 -0
  97. package/dist/document-models/payment-terms/gen/index.d.ts.map +1 -0
  98. package/dist/document-models/payment-terms/gen/index.js +5 -0
  99. package/dist/document-models/payment-terms/gen/milestones/actions.d.ts +24 -0
  100. package/dist/document-models/payment-terms/gen/milestones/actions.d.ts.map +1 -0
  101. package/dist/document-models/payment-terms/gen/milestones/actions.js +1 -0
  102. package/dist/document-models/payment-terms/gen/milestones/creators.d.ts +8 -0
  103. package/dist/document-models/payment-terms/gen/milestones/creators.d.ts.map +1 -0
  104. package/dist/document-models/payment-terms/gen/milestones/creators.js +7 -0
  105. package/dist/document-models/payment-terms/gen/milestones/error.d.ts +27 -0
  106. package/dist/document-models/payment-terms/gen/milestones/error.d.ts.map +1 -0
  107. package/dist/document-models/payment-terms/gen/milestones/error.js +26 -0
  108. package/dist/document-models/payment-terms/gen/milestones/object.d.ts +11 -0
  109. package/dist/document-models/payment-terms/gen/milestones/object.d.ts.map +1 -0
  110. package/dist/document-models/payment-terms/gen/milestones/object.js +19 -0
  111. package/dist/document-models/payment-terms/gen/milestones/operations.d.ts +11 -0
  112. package/dist/document-models/payment-terms/gen/milestones/operations.d.ts.map +1 -0
  113. package/dist/document-models/payment-terms/gen/milestones/operations.js +1 -0
  114. package/dist/document-models/payment-terms/gen/object.d.ts +20 -0
  115. package/dist/document-models/payment-terms/gen/object.d.ts.map +1 -0
  116. package/dist/document-models/payment-terms/gen/object.js +33 -0
  117. package/dist/document-models/payment-terms/gen/reducer.d.ts +3 -0
  118. package/dist/document-models/payment-terms/gen/reducer.d.ts.map +1 -0
  119. package/dist/document-models/payment-terms/gen/reducer.js +86 -0
  120. package/dist/document-models/payment-terms/gen/schema/index.d.ts +3 -0
  121. package/dist/document-models/payment-terms/gen/schema/index.d.ts.map +1 -0
  122. package/dist/document-models/payment-terms/gen/schema/index.js +2 -0
  123. package/dist/document-models/payment-terms/gen/schema/types.d.ts +298 -0
  124. package/dist/document-models/payment-terms/gen/schema/types.d.ts.map +1 -0
  125. package/dist/document-models/payment-terms/gen/schema/types.js +1 -0
  126. package/dist/document-models/payment-terms/gen/schema/zod.d.ts +41 -0
  127. package/dist/document-models/payment-terms/gen/schema/zod.d.ts.map +1 -0
  128. package/dist/document-models/payment-terms/gen/schema/zod.js +291 -0
  129. package/dist/document-models/payment-terms/gen/terms/actions.d.ts +28 -0
  130. package/dist/document-models/payment-terms/gen/terms/actions.d.ts.map +1 -0
  131. package/dist/document-models/payment-terms/gen/terms/actions.js +1 -0
  132. package/dist/document-models/payment-terms/gen/terms/creators.d.ts +9 -0
  133. package/dist/document-models/payment-terms/gen/terms/creators.d.ts.map +1 -0
  134. package/dist/document-models/payment-terms/gen/terms/creators.js +8 -0
  135. package/dist/document-models/payment-terms/gen/terms/error.d.ts +2 -0
  136. package/dist/document-models/payment-terms/gen/terms/error.d.ts.map +1 -0
  137. package/dist/document-models/payment-terms/gen/terms/error.js +1 -0
  138. package/dist/document-models/payment-terms/gen/terms/object.d.ts +12 -0
  139. package/dist/document-models/payment-terms/gen/terms/object.d.ts.map +1 -0
  140. package/dist/document-models/payment-terms/gen/terms/object.js +22 -0
  141. package/dist/document-models/payment-terms/gen/terms/operations.d.ts +12 -0
  142. package/dist/document-models/payment-terms/gen/terms/operations.d.ts.map +1 -0
  143. package/dist/document-models/payment-terms/gen/terms/operations.js +1 -0
  144. package/dist/document-models/payment-terms/gen/types.d.ts +10 -0
  145. package/dist/document-models/payment-terms/gen/types.d.ts.map +1 -0
  146. package/dist/document-models/payment-terms/gen/types.js +1 -0
  147. package/dist/document-models/payment-terms/gen/utils.d.ts +13 -0
  148. package/dist/document-models/payment-terms/gen/utils.d.ts.map +1 -0
  149. package/dist/document-models/payment-terms/gen/utils.js +54 -0
  150. package/dist/document-models/payment-terms/index.d.ts +41 -0
  151. package/dist/document-models/payment-terms/index.d.ts.map +1 -0
  152. package/dist/document-models/payment-terms/index.js +21 -0
  153. package/dist/document-models/payment-terms/ph-factories.d.ts +27 -0
  154. package/dist/document-models/payment-terms/ph-factories.d.ts.map +1 -0
  155. package/dist/document-models/payment-terms/ph-factories.js +62 -0
  156. package/dist/document-models/payment-terms/src/reducers/clauses.d.ts +3 -0
  157. package/dist/document-models/payment-terms/src/reducers/clauses.d.ts.map +1 -0
  158. package/dist/document-models/payment-terms/src/reducers/clauses.js +69 -0
  159. package/dist/document-models/payment-terms/src/reducers/milestones.d.ts +3 -0
  160. package/dist/document-models/payment-terms/src/reducers/milestones.d.ts.map +1 -0
  161. package/dist/document-models/payment-terms/src/reducers/milestones.js +57 -0
  162. package/dist/document-models/payment-terms/src/reducers/terms.d.ts +3 -0
  163. package/dist/document-models/payment-terms/src/reducers/terms.d.ts.map +1 -0
  164. package/dist/document-models/payment-terms/src/reducers/terms.js +48 -0
  165. package/dist/document-models/payment-terms/src/tests/clauses.test.d.ts +6 -0
  166. package/dist/document-models/payment-terms/src/tests/clauses.test.d.ts.map +1 -0
  167. package/dist/document-models/payment-terms/src/tests/clauses.test.js +64 -0
  168. package/dist/document-models/payment-terms/src/tests/document-model.test.d.ts +6 -0
  169. package/dist/document-models/payment-terms/src/tests/document-model.test.d.ts.map +1 -0
  170. package/dist/document-models/payment-terms/src/tests/document-model.test.js +18 -0
  171. package/dist/document-models/payment-terms/src/tests/milestones.test.d.ts +6 -0
  172. package/dist/document-models/payment-terms/src/tests/milestones.test.d.ts.map +1 -0
  173. package/dist/document-models/payment-terms/src/tests/milestones.test.js +56 -0
  174. package/dist/document-models/payment-terms/src/tests/terms.test.d.ts +6 -0
  175. package/dist/document-models/payment-terms/src/tests/terms.test.d.ts.map +1 -0
  176. package/dist/document-models/payment-terms/src/tests/terms.test.js +64 -0
  177. package/dist/document-models/payment-terms/src/utils.d.ts +2 -0
  178. package/dist/document-models/payment-terms/src/utils.d.ts.map +1 -0
  179. package/dist/document-models/payment-terms/src/utils.js +1 -0
  180. package/dist/document-models/request-for-proposals/gen/actions.d.ts +8 -0
  181. package/dist/document-models/request-for-proposals/gen/actions.d.ts.map +1 -0
  182. package/dist/document-models/request-for-proposals/gen/actions.js +3 -0
  183. package/dist/document-models/request-for-proposals/gen/contex-document/actions.d.ts +12 -0
  184. package/dist/document-models/request-for-proposals/gen/contex-document/actions.d.ts.map +1 -0
  185. package/dist/document-models/request-for-proposals/gen/contex-document/actions.js +1 -0
  186. package/dist/document-models/request-for-proposals/gen/contex-document/creators.d.ts +5 -0
  187. package/dist/document-models/request-for-proposals/gen/contex-document/creators.d.ts.map +1 -0
  188. package/dist/document-models/request-for-proposals/gen/contex-document/creators.js +4 -0
  189. package/dist/document-models/request-for-proposals/gen/contex-document/error.d.ts +2 -0
  190. package/dist/document-models/request-for-proposals/gen/contex-document/error.d.ts.map +1 -0
  191. package/dist/document-models/request-for-proposals/gen/contex-document/error.js +1 -0
  192. package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts +8 -0
  193. package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts.map +1 -0
  194. package/dist/document-models/request-for-proposals/gen/contex-document/object.js +10 -0
  195. package/dist/document-models/request-for-proposals/gen/contex-document/operations.d.ts +8 -0
  196. package/dist/document-models/request-for-proposals/gen/contex-document/operations.d.ts.map +1 -0
  197. package/dist/document-models/request-for-proposals/gen/contex-document/operations.js +1 -0
  198. package/dist/document-models/request-for-proposals/gen/creators.d.ts +4 -0
  199. package/dist/document-models/request-for-proposals/gen/creators.d.ts.map +1 -0
  200. package/dist/document-models/request-for-proposals/gen/creators.js +3 -0
  201. package/dist/document-models/request-for-proposals/gen/document-model.d.ts +3 -0
  202. package/dist/document-models/request-for-proposals/gen/document-model.d.ts.map +1 -0
  203. package/dist/document-models/request-for-proposals/gen/document-model.js +117 -0
  204. package/dist/document-models/request-for-proposals/gen/index.d.ts +6 -0
  205. package/dist/document-models/request-for-proposals/gen/index.d.ts.map +1 -0
  206. package/dist/document-models/request-for-proposals/gen/index.js +5 -0
  207. package/dist/document-models/request-for-proposals/gen/object.d.ts +20 -0
  208. package/dist/document-models/request-for-proposals/gen/object.d.ts.map +1 -0
  209. package/dist/document-models/request-for-proposals/gen/object.js +33 -0
  210. package/dist/document-models/request-for-proposals/gen/proposals/actions.d.ts +16 -0
  211. package/dist/document-models/request-for-proposals/gen/proposals/actions.d.ts.map +1 -0
  212. package/dist/document-models/request-for-proposals/gen/proposals/actions.js +1 -0
  213. package/dist/document-models/request-for-proposals/gen/proposals/creators.d.ts +6 -0
  214. package/dist/document-models/request-for-proposals/gen/proposals/creators.d.ts.map +1 -0
  215. package/dist/document-models/request-for-proposals/gen/proposals/creators.js +5 -0
  216. package/dist/document-models/request-for-proposals/gen/proposals/error.d.ts +2 -0
  217. package/dist/document-models/request-for-proposals/gen/proposals/error.d.ts.map +1 -0
  218. package/dist/document-models/request-for-proposals/gen/proposals/error.js +1 -0
  219. package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts +9 -0
  220. package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts.map +1 -0
  221. package/dist/document-models/request-for-proposals/gen/proposals/object.js +13 -0
  222. package/dist/document-models/request-for-proposals/gen/proposals/operations.d.ts +9 -0
  223. package/dist/document-models/request-for-proposals/gen/proposals/operations.d.ts.map +1 -0
  224. package/dist/document-models/request-for-proposals/gen/proposals/operations.js +1 -0
  225. package/dist/document-models/request-for-proposals/gen/reducer.d.ts +3 -0
  226. package/dist/document-models/request-for-proposals/gen/reducer.d.ts.map +1 -0
  227. package/dist/document-models/request-for-proposals/gen/reducer.js +42 -0
  228. package/dist/document-models/request-for-proposals/gen/rfp-state/actions.d.ts +8 -0
  229. package/dist/document-models/request-for-proposals/gen/rfp-state/actions.d.ts.map +1 -0
  230. package/dist/document-models/request-for-proposals/gen/rfp-state/actions.js +1 -0
  231. package/dist/document-models/request-for-proposals/gen/rfp-state/creators.d.ts +4 -0
  232. package/dist/document-models/request-for-proposals/gen/rfp-state/creators.d.ts.map +1 -0
  233. package/dist/document-models/request-for-proposals/gen/rfp-state/creators.js +3 -0
  234. package/dist/document-models/request-for-proposals/gen/rfp-state/error.d.ts +2 -0
  235. package/dist/document-models/request-for-proposals/gen/rfp-state/error.d.ts.map +1 -0
  236. package/dist/document-models/request-for-proposals/gen/rfp-state/error.js +1 -0
  237. package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts +7 -0
  238. package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts.map +1 -0
  239. package/dist/document-models/request-for-proposals/gen/rfp-state/object.js +7 -0
  240. package/dist/document-models/request-for-proposals/gen/rfp-state/operations.d.ts +7 -0
  241. package/dist/document-models/request-for-proposals/gen/rfp-state/operations.d.ts.map +1 -0
  242. package/dist/document-models/request-for-proposals/gen/rfp-state/operations.js +1 -0
  243. package/dist/document-models/request-for-proposals/gen/schema/index.d.ts +3 -0
  244. package/dist/document-models/request-for-proposals/gen/schema/index.d.ts.map +1 -0
  245. package/dist/document-models/request-for-proposals/gen/schema/index.js +2 -0
  246. package/dist/document-models/request-for-proposals/gen/schema/types.d.ts +231 -0
  247. package/dist/document-models/request-for-proposals/gen/schema/types.d.ts.map +1 -0
  248. package/dist/document-models/request-for-proposals/gen/schema/types.js +1 -0
  249. package/dist/document-models/request-for-proposals/gen/schema/zod.d.ts +30 -0
  250. package/dist/document-models/request-for-proposals/gen/schema/zod.d.ts.map +1 -0
  251. package/dist/document-models/request-for-proposals/gen/schema/zod.js +176 -0
  252. package/dist/document-models/request-for-proposals/gen/types.d.ts +10 -0
  253. package/dist/document-models/request-for-proposals/gen/types.d.ts.map +1 -0
  254. package/dist/document-models/request-for-proposals/gen/types.js +1 -0
  255. package/dist/document-models/request-for-proposals/gen/utils.d.ts +13 -0
  256. package/dist/document-models/request-for-proposals/gen/utils.d.ts.map +1 -0
  257. package/dist/document-models/request-for-proposals/gen/utils.js +59 -0
  258. package/dist/document-models/request-for-proposals/index.d.ts +30 -0
  259. package/dist/document-models/request-for-proposals/index.d.ts.map +1 -0
  260. package/dist/document-models/request-for-proposals/index.js +21 -0
  261. package/dist/document-models/request-for-proposals/ph-factories.d.ts +27 -0
  262. package/dist/document-models/request-for-proposals/ph-factories.d.ts.map +1 -0
  263. package/dist/document-models/request-for-proposals/ph-factories.js +67 -0
  264. package/dist/document-models/request-for-proposals/src/reducers/contex-document.d.ts +8 -0
  265. package/dist/document-models/request-for-proposals/src/reducers/contex-document.d.ts.map +1 -0
  266. package/dist/document-models/request-for-proposals/src/reducers/contex-document.js +27 -0
  267. package/dist/document-models/request-for-proposals/src/reducers/proposals.d.ts +8 -0
  268. package/dist/document-models/request-for-proposals/src/reducers/proposals.d.ts.map +1 -0
  269. package/dist/document-models/request-for-proposals/src/reducers/proposals.js +56 -0
  270. package/dist/document-models/request-for-proposals/src/reducers/rfp-state.d.ts +8 -0
  271. package/dist/document-models/request-for-proposals/src/reducers/rfp-state.d.ts.map +1 -0
  272. package/dist/document-models/request-for-proposals/src/reducers/rfp-state.js +24 -0
  273. package/dist/document-models/request-for-proposals/src/tests/contex-document.test.d.ts +5 -0
  274. package/dist/document-models/request-for-proposals/src/tests/contex-document.test.d.ts.map +1 -0
  275. package/dist/document-models/request-for-proposals/src/tests/contex-document.test.js +185 -0
  276. package/dist/document-models/request-for-proposals/src/tests/document-model.test.d.ts +6 -0
  277. package/dist/document-models/request-for-proposals/src/tests/document-model.test.d.ts.map +1 -0
  278. package/dist/document-models/request-for-proposals/src/tests/document-model.test.js +18 -0
  279. package/dist/document-models/request-for-proposals/src/tests/proposals.test.d.ts +5 -0
  280. package/dist/document-models/request-for-proposals/src/tests/proposals.test.d.ts.map +1 -0
  281. package/dist/document-models/request-for-proposals/src/tests/proposals.test.js +332 -0
  282. package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.d.ts +5 -0
  283. package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.d.ts.map +1 -0
  284. package/dist/document-models/request-for-proposals/src/tests/rfp-state.test.js +243 -0
  285. package/dist/document-models/request-for-proposals/src/utils.d.ts +2 -0
  286. package/dist/document-models/request-for-proposals/src/utils.d.ts.map +1 -0
  287. package/dist/document-models/request-for-proposals/src/utils.js +1 -0
  288. package/dist/document-models/workstream/gen/actions.d.ts +6 -0
  289. package/dist/document-models/workstream/gen/actions.d.ts.map +1 -0
  290. package/dist/document-models/workstream/gen/actions.js +2 -0
  291. package/dist/document-models/workstream/gen/creators.d.ts +3 -0
  292. package/dist/document-models/workstream/gen/creators.d.ts.map +1 -0
  293. package/dist/document-models/workstream/gen/creators.js +2 -0
  294. package/dist/document-models/workstream/gen/document-model.d.ts +3 -0
  295. package/dist/document-models/workstream/gen/document-model.d.ts.map +1 -0
  296. package/dist/document-models/workstream/gen/document-model.js +143 -0
  297. package/dist/document-models/workstream/gen/index.d.ts +6 -0
  298. package/dist/document-models/workstream/gen/index.d.ts.map +1 -0
  299. package/dist/document-models/workstream/gen/index.js +5 -0
  300. package/dist/document-models/workstream/gen/object.d.ts +18 -0
  301. package/dist/document-models/workstream/gen/object.d.ts.map +1 -0
  302. package/dist/document-models/workstream/gen/object.js +27 -0
  303. package/dist/document-models/workstream/gen/proposals/actions.d.ts +20 -0
  304. package/dist/document-models/workstream/gen/proposals/actions.d.ts.map +1 -0
  305. package/dist/document-models/workstream/gen/proposals/actions.js +1 -0
  306. package/dist/document-models/workstream/gen/proposals/creators.d.ts +7 -0
  307. package/dist/document-models/workstream/gen/proposals/creators.d.ts.map +1 -0
  308. package/dist/document-models/workstream/gen/proposals/creators.js +6 -0
  309. package/dist/document-models/workstream/gen/proposals/error.d.ts +2 -0
  310. package/dist/document-models/workstream/gen/proposals/error.d.ts.map +1 -0
  311. package/dist/document-models/workstream/gen/proposals/error.js +1 -0
  312. package/dist/document-models/workstream/gen/proposals/object.d.ts +10 -0
  313. package/dist/document-models/workstream/gen/proposals/object.d.ts.map +1 -0
  314. package/dist/document-models/workstream/gen/proposals/object.js +16 -0
  315. package/dist/document-models/workstream/gen/proposals/operations.d.ts +10 -0
  316. package/dist/document-models/workstream/gen/proposals/operations.d.ts.map +1 -0
  317. package/dist/document-models/workstream/gen/proposals/operations.js +1 -0
  318. package/dist/document-models/workstream/gen/reducer.d.ts +3 -0
  319. package/dist/document-models/workstream/gen/reducer.d.ts.map +1 -0
  320. package/dist/document-models/workstream/gen/reducer.js +53 -0
  321. package/dist/document-models/workstream/gen/schema/index.d.ts +3 -0
  322. package/dist/document-models/workstream/gen/schema/index.d.ts.map +1 -0
  323. package/dist/document-models/workstream/gen/schema/index.js +2 -0
  324. package/dist/document-models/workstream/gen/schema/types.d.ts +225 -0
  325. package/dist/document-models/workstream/gen/schema/types.d.ts.map +1 -0
  326. package/dist/document-models/workstream/gen/schema/types.js +1 -0
  327. package/dist/document-models/workstream/gen/schema/zod.d.ts +29 -0
  328. package/dist/document-models/workstream/gen/schema/zod.d.ts.map +1 -0
  329. package/dist/document-models/workstream/gen/schema/zod.js +158 -0
  330. package/dist/document-models/workstream/gen/types.d.ts +10 -0
  331. package/dist/document-models/workstream/gen/types.d.ts.map +1 -0
  332. package/dist/document-models/workstream/gen/types.js +1 -0
  333. package/dist/document-models/workstream/gen/utils.d.ts +13 -0
  334. package/dist/document-models/workstream/gen/utils.d.ts.map +1 -0
  335. package/dist/document-models/workstream/gen/utils.js +51 -0
  336. package/dist/document-models/workstream/gen/workstream/actions.d.ts +24 -0
  337. package/dist/document-models/workstream/gen/workstream/actions.d.ts.map +1 -0
  338. package/dist/document-models/workstream/gen/workstream/actions.js +1 -0
  339. package/dist/document-models/workstream/gen/workstream/creators.d.ts +8 -0
  340. package/dist/document-models/workstream/gen/workstream/creators.d.ts.map +1 -0
  341. package/dist/document-models/workstream/gen/workstream/creators.js +7 -0
  342. package/dist/document-models/workstream/gen/workstream/error.d.ts +2 -0
  343. package/dist/document-models/workstream/gen/workstream/error.d.ts.map +1 -0
  344. package/dist/document-models/workstream/gen/workstream/error.js +1 -0
  345. package/dist/document-models/workstream/gen/workstream/object.d.ts +11 -0
  346. package/dist/document-models/workstream/gen/workstream/object.d.ts.map +1 -0
  347. package/dist/document-models/workstream/gen/workstream/object.js +19 -0
  348. package/dist/document-models/workstream/gen/workstream/operations.d.ts +11 -0
  349. package/dist/document-models/workstream/gen/workstream/operations.d.ts.map +1 -0
  350. package/dist/document-models/workstream/gen/workstream/operations.js +1 -0
  351. package/dist/document-models/workstream/index.d.ts +33 -0
  352. package/dist/document-models/workstream/index.d.ts.map +1 -0
  353. package/dist/document-models/workstream/index.js +21 -0
  354. package/dist/document-models/workstream/ph-factories.d.ts +27 -0
  355. package/dist/document-models/workstream/ph-factories.d.ts.map +1 -0
  356. package/dist/document-models/workstream/ph-factories.js +59 -0
  357. package/dist/document-models/workstream/src/reducers/proposals.d.ts +8 -0
  358. package/dist/document-models/workstream/src/reducers/proposals.d.ts.map +1 -0
  359. package/dist/document-models/workstream/src/reducers/proposals.js +106 -0
  360. package/dist/document-models/workstream/src/reducers/workstream.d.ts +8 -0
  361. package/dist/document-models/workstream/src/reducers/workstream.d.ts.map +1 -0
  362. package/dist/document-models/workstream/src/reducers/workstream.js +69 -0
  363. package/dist/document-models/workstream/src/tests/document-model.test.d.ts +6 -0
  364. package/dist/document-models/workstream/src/tests/document-model.test.d.ts.map +1 -0
  365. package/dist/document-models/workstream/src/tests/document-model.test.js +18 -0
  366. package/dist/document-models/workstream/src/tests/proposals-reducers.test.d.ts +5 -0
  367. package/dist/document-models/workstream/src/tests/proposals-reducers.test.d.ts.map +1 -0
  368. package/dist/document-models/workstream/src/tests/proposals-reducers.test.js +316 -0
  369. package/dist/document-models/workstream/src/tests/proposals.test.d.ts +6 -0
  370. package/dist/document-models/workstream/src/tests/proposals.test.d.ts.map +1 -0
  371. package/dist/document-models/workstream/src/tests/proposals.test.js +48 -0
  372. package/dist/document-models/workstream/src/tests/workstream-reducers.test.d.ts +5 -0
  373. package/dist/document-models/workstream/src/tests/workstream-reducers.test.d.ts.map +1 -0
  374. package/dist/document-models/workstream/src/tests/workstream-reducers.test.js +208 -0
  375. package/dist/document-models/workstream/src/tests/workstream.test.d.ts +6 -0
  376. package/dist/document-models/workstream/src/tests/workstream.test.d.ts.map +1 -0
  377. package/dist/document-models/workstream/src/tests/workstream.test.js +56 -0
  378. package/dist/document-models/workstream/src/utils.d.ts +2 -0
  379. package/dist/document-models/workstream/src/utils.d.ts.map +1 -0
  380. package/dist/document-models/workstream/src/utils.js +1 -0
  381. package/dist/editors/index.d.ts +7 -0
  382. package/dist/editors/index.d.ts.map +1 -0
  383. package/dist/editors/index.js +5 -0
  384. package/dist/editors/network-admin/components/CreateDocument.d.ts +6 -0
  385. package/dist/editors/network-admin/components/CreateDocument.d.ts.map +1 -0
  386. package/dist/editors/network-admin/components/CreateDocument.js +24 -0
  387. package/dist/editors/network-admin/components/DriveExplorer.d.ts +6 -0
  388. package/dist/editors/network-admin/components/DriveExplorer.d.ts.map +1 -0
  389. package/dist/editors/network-admin/components/DriveExplorer.js +460 -0
  390. package/dist/editors/network-admin/components/EditorContainer.d.ts +12 -0
  391. package/dist/editors/network-admin/components/EditorContainer.d.ts.map +1 -0
  392. package/dist/editors/network-admin/components/EditorContainer.js +81 -0
  393. package/dist/editors/network-admin/components/FolderTree.d.ts +15 -0
  394. package/dist/editors/network-admin/components/FolderTree.d.ts.map +1 -0
  395. package/dist/editors/network-admin/components/FolderTree.js +44 -0
  396. package/dist/editors/network-admin/components/IsolatedSidebar.d.ts +22 -0
  397. package/dist/editors/network-admin/components/IsolatedSidebar.d.ts.map +1 -0
  398. package/dist/editors/network-admin/components/IsolatedSidebar.js +106 -0
  399. package/dist/editors/network-admin/components/IsolatedSidebarProvider.d.ts +15 -0
  400. package/dist/editors/network-admin/components/IsolatedSidebarProvider.d.ts.map +1 -0
  401. package/dist/editors/network-admin/components/IsolatedSidebarProvider.js +367 -0
  402. package/dist/editors/network-admin/editor.d.ts +10 -0
  403. package/dist/editors/network-admin/editor.d.ts.map +1 -0
  404. package/dist/editors/network-admin/editor.js +22 -0
  405. package/dist/editors/network-admin/index.d.ts +4 -0
  406. package/dist/editors/network-admin/index.d.ts.map +1 -0
  407. package/dist/editors/network-admin/index.js +12 -0
  408. package/dist/editors/network-admin/utils.d.ts +60 -0
  409. package/dist/editors/network-admin/utils.d.ts.map +1 -0
  410. package/dist/editors/network-admin/utils.js +67 -0
  411. package/dist/editors/network-profile/editor.d.ts +4 -0
  412. package/dist/editors/network-profile/editor.d.ts.map +1 -0
  413. package/dist/editors/network-profile/editor.js +151 -0
  414. package/dist/editors/network-profile/index.d.ts +4 -0
  415. package/dist/editors/network-profile/index.d.ts.map +1 -0
  416. package/dist/editors/network-profile/index.js +12 -0
  417. package/dist/editors/payment-terms/basic-terms-tab.d.ts +8 -0
  418. package/dist/editors/payment-terms/basic-terms-tab.d.ts.map +1 -0
  419. package/dist/editors/payment-terms/basic-terms-tab.js +84 -0
  420. package/dist/editors/payment-terms/clauses-tab.d.ts +10 -0
  421. package/dist/editors/payment-terms/clauses-tab.d.ts.map +1 -0
  422. package/dist/editors/payment-terms/clauses-tab.js +208 -0
  423. package/dist/editors/payment-terms/cost-materials-tab.d.ts +8 -0
  424. package/dist/editors/payment-terms/cost-materials-tab.d.ts.map +1 -0
  425. package/dist/editors/payment-terms/cost-materials-tab.js +53 -0
  426. package/dist/editors/payment-terms/editor.d.ts +4 -0
  427. package/dist/editors/payment-terms/editor.d.ts.map +1 -0
  428. package/dist/editors/payment-terms/editor.js +45 -0
  429. package/dist/editors/payment-terms/escrow-tab.d.ts +8 -0
  430. package/dist/editors/payment-terms/escrow-tab.d.ts.map +1 -0
  431. package/dist/editors/payment-terms/escrow-tab.js +56 -0
  432. package/dist/editors/payment-terms/evaluation-tab.d.ts +8 -0
  433. package/dist/editors/payment-terms/evaluation-tab.d.ts.map +1 -0
  434. package/dist/editors/payment-terms/evaluation-tab.js +62 -0
  435. package/dist/editors/payment-terms/index.d.ts +4 -0
  436. package/dist/editors/payment-terms/index.d.ts.map +1 -0
  437. package/dist/editors/payment-terms/index.js +12 -0
  438. package/dist/editors/payment-terms/milestones-tab.d.ts +9 -0
  439. package/dist/editors/payment-terms/milestones-tab.d.ts.map +1 -0
  440. package/dist/editors/payment-terms/milestones-tab.js +193 -0
  441. package/dist/editors/payment-terms/retainer-tab.d.ts +8 -0
  442. package/dist/editors/payment-terms/retainer-tab.d.ts.map +1 -0
  443. package/dist/editors/payment-terms/retainer-tab.js +82 -0
  444. package/dist/editors/request-for-proposals/editor.d.ts +4 -0
  445. package/dist/editors/request-for-proposals/editor.d.ts.map +1 -0
  446. package/dist/editors/request-for-proposals/editor.js +42 -0
  447. package/dist/editors/request-for-proposals/index.d.ts +4 -0
  448. package/dist/editors/request-for-proposals/index.d.ts.map +1 -0
  449. package/dist/editors/request-for-proposals/index.js +12 -0
  450. package/dist/editors/request-for-proposals/markdown-editor.d.ts +12 -0
  451. package/dist/editors/request-for-proposals/markdown-editor.d.ts.map +1 -0
  452. package/dist/editors/request-for-proposals/markdown-editor.js +119 -0
  453. package/dist/editors/workstream/editor.d.ts +4 -0
  454. package/dist/editors/workstream/editor.d.ts.map +1 -0
  455. package/dist/editors/workstream/editor.js +450 -0
  456. package/dist/editors/workstream/index.d.ts +4 -0
  457. package/dist/editors/workstream/index.d.ts.map +1 -0
  458. package/dist/editors/workstream/index.js +12 -0
  459. package/dist/index.d.ts +5 -0
  460. package/dist/index.d.ts.map +1 -0
  461. package/dist/index.js +6 -0
  462. package/dist/powerhouse.manifest.json +65 -0
  463. package/dist/processors/index.d.ts +2 -0
  464. package/dist/processors/index.d.ts.map +1 -0
  465. package/dist/processors/index.js +1 -0
  466. package/dist/style.css +18384 -0
  467. package/dist/subgraphs/index.d.ts +6 -0
  468. package/dist/subgraphs/index.d.ts.map +1 -0
  469. package/dist/subgraphs/index.js +4 -0
  470. package/dist/subgraphs/network-profile/index.d.ts +10 -0
  471. package/dist/subgraphs/network-profile/index.d.ts.map +1 -0
  472. package/dist/subgraphs/network-profile/index.js +11 -0
  473. package/dist/subgraphs/network-profile/resolvers.d.ts +3 -0
  474. package/dist/subgraphs/network-profile/resolvers.d.ts.map +1 -0
  475. package/dist/subgraphs/network-profile/resolvers.js +145 -0
  476. package/dist/subgraphs/network-profile/schema.d.ts +3 -0
  477. package/dist/subgraphs/network-profile/schema.d.ts.map +1 -0
  478. package/dist/subgraphs/network-profile/schema.js +139 -0
  479. package/dist/subgraphs/payment-terms/index.d.ts +10 -0
  480. package/dist/subgraphs/payment-terms/index.d.ts.map +1 -0
  481. package/dist/subgraphs/payment-terms/index.js +11 -0
  482. package/dist/subgraphs/payment-terms/resolvers.d.ts +3 -0
  483. package/dist/subgraphs/payment-terms/resolvers.d.ts.map +1 -0
  484. package/dist/subgraphs/payment-terms/resolvers.js +260 -0
  485. package/dist/subgraphs/payment-terms/schema.d.ts +3 -0
  486. package/dist/subgraphs/payment-terms/schema.d.ts.map +1 -0
  487. package/dist/subgraphs/payment-terms/schema.js +302 -0
  488. package/dist/subgraphs/request-for-proposals/index.d.ts +10 -0
  489. package/dist/subgraphs/request-for-proposals/index.d.ts.map +1 -0
  490. package/dist/subgraphs/request-for-proposals/index.js +11 -0
  491. package/dist/subgraphs/request-for-proposals/resolvers.d.ts +3 -0
  492. package/dist/subgraphs/request-for-proposals/resolvers.d.ts.map +1 -0
  493. package/dist/subgraphs/request-for-proposals/resolvers.js +110 -0
  494. package/dist/subgraphs/request-for-proposals/schema.d.ts +3 -0
  495. package/dist/subgraphs/request-for-proposals/schema.d.ts.map +1 -0
  496. package/dist/subgraphs/request-for-proposals/schema.js +232 -0
  497. package/dist/subgraphs/workstream/index.d.ts +10 -0
  498. package/dist/subgraphs/workstream/index.d.ts.map +1 -0
  499. package/dist/subgraphs/workstream/index.js +11 -0
  500. package/dist/subgraphs/workstream/resolvers.d.ts +3 -0
  501. package/dist/subgraphs/workstream/resolvers.d.ts.map +1 -0
  502. package/dist/subgraphs/workstream/resolvers.js +131 -0
  503. package/dist/subgraphs/workstream/schema.d.ts +3 -0
  504. package/dist/subgraphs/workstream/schema.d.ts.map +1 -0
  505. package/dist/subgraphs/workstream/schema.js +206 -0
  506. package/dist/vitest.config.d.ts +3 -0
  507. package/dist/vitest.config.d.ts.map +1 -0
  508. package/dist/vitest.config.js +8 -0
  509. package/package.json +106 -0
@@ -0,0 +1,208 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback, useMemo } from "react";
3
+ import { ObjectSetTable, TextInput, Textarea } from "@powerhousedao/document-engineering";
4
+ import { Button, Icon, toast } from "@powerhousedao/design-system";
5
+ import { generateId } from "document-model";
6
+ export function ClausesTab({ bonusClauses, penaltyClauses, dispatch, actions, currency = "USD" }) {
7
+ const [activeSubTab, setActiveSubTab] = useState("bonus");
8
+ const [isAddingNew, setIsAddingNew] = useState(false);
9
+ const [newClause, setNewClause] = useState({
10
+ condition: "",
11
+ amount: "",
12
+ comment: ""
13
+ });
14
+ const bonusColumns = useMemo(() => [
15
+ {
16
+ field: "condition",
17
+ title: "Condition",
18
+ editable: true,
19
+ align: "left",
20
+ onSave: (newValue, context) => {
21
+ dispatch(actions.updateBonusClause({
22
+ id: context.row.id,
23
+ condition: newValue
24
+ }));
25
+ toast("Bonus clause condition updated", {
26
+ type: "success",
27
+ });
28
+ return true;
29
+ },
30
+ },
31
+ {
32
+ field: "bonusAmount",
33
+ title: `Bonus Amount (${currency})`,
34
+ editable: true,
35
+ align: "right",
36
+ renderCell: (value) => {
37
+ return value ? `${value.value} ${value.unit}` : "";
38
+ },
39
+ onSave: (newValue, context) => {
40
+ const amount = parseFloat(newValue);
41
+ if (isNaN(amount)) {
42
+ toast("Please enter a valid amount", {
43
+ type: "error",
44
+ });
45
+ return false;
46
+ }
47
+ dispatch(actions.updateBonusClause({
48
+ id: context.row.id,
49
+ bonusAmount: { value: amount, unit: currency }
50
+ }));
51
+ toast("Bonus amount updated", {
52
+ type: "success",
53
+ });
54
+ return true;
55
+ },
56
+ },
57
+ {
58
+ field: "comment",
59
+ title: "Comment",
60
+ editable: true,
61
+ align: "left",
62
+ renderCell: (value) => value || "-",
63
+ onSave: (newValue, context) => {
64
+ dispatch(actions.updateBonusClause({
65
+ id: context.row.id,
66
+ comment: newValue || undefined
67
+ }));
68
+ toast("Bonus clause comment updated", {
69
+ type: "success",
70
+ });
71
+ return true;
72
+ },
73
+ }
74
+ ], [actions, currency, dispatch]);
75
+ const penaltyColumns = useMemo(() => [
76
+ {
77
+ field: "condition",
78
+ title: "Condition",
79
+ editable: true,
80
+ align: "left",
81
+ onSave: (newValue, context) => {
82
+ dispatch(actions.updatePenaltyClause({
83
+ id: context.row.id,
84
+ condition: newValue
85
+ }));
86
+ toast("Penalty clause condition updated", {
87
+ type: "success",
88
+ });
89
+ return true;
90
+ },
91
+ },
92
+ {
93
+ field: "deductionAmount",
94
+ title: `Deduction Amount (${currency})`,
95
+ editable: true,
96
+ align: "right",
97
+ renderCell: (value) => {
98
+ return value ? `${value.value} ${value.unit}` : "";
99
+ },
100
+ onSave: (newValue, context) => {
101
+ const amount = parseFloat(newValue);
102
+ if (isNaN(amount)) {
103
+ toast("Please enter a valid amount", {
104
+ type: "error",
105
+ });
106
+ return false;
107
+ }
108
+ dispatch(actions.updatePenaltyClause({
109
+ id: context.row.id,
110
+ deductionAmount: { value: amount, unit: currency }
111
+ }));
112
+ toast("Deduction amount updated", {
113
+ type: "success",
114
+ });
115
+ return true;
116
+ },
117
+ },
118
+ {
119
+ field: "comment",
120
+ title: "Comment",
121
+ editable: true,
122
+ align: "left",
123
+ renderCell: (value) => value || "-",
124
+ onSave: (newValue, context) => {
125
+ dispatch(actions.updatePenaltyClause({
126
+ id: context.row.id,
127
+ comment: newValue || undefined
128
+ }));
129
+ toast("Penalty clause comment updated", {
130
+ type: "success",
131
+ });
132
+ return true;
133
+ },
134
+ }
135
+ ], [actions, currency, dispatch]);
136
+ const handleAddClause = useCallback((e) => {
137
+ e.preventDefault();
138
+ if (!newClause.condition.trim()) {
139
+ toast('Condition is required', {
140
+ type: "error",
141
+ });
142
+ return;
143
+ }
144
+ if (!newClause.amount || isNaN(parseFloat(newClause.amount))) {
145
+ toast('Valid amount is required', {
146
+ type: "error",
147
+ });
148
+ return;
149
+ }
150
+ if (activeSubTab === "bonus") {
151
+ dispatch(actions.addBonusClause({
152
+ id: generateId(),
153
+ condition: newClause.condition,
154
+ bonusAmount: {
155
+ value: parseFloat(newClause.amount),
156
+ unit: currency
157
+ },
158
+ comment: newClause.comment || undefined
159
+ }));
160
+ toast("Bonus clause added successfully", {
161
+ type: "success",
162
+ });
163
+ }
164
+ else {
165
+ dispatch(actions.addPenaltyClause({
166
+ id: generateId(),
167
+ condition: newClause.condition,
168
+ deductionAmount: {
169
+ value: parseFloat(newClause.amount),
170
+ unit: currency
171
+ },
172
+ comment: newClause.comment || undefined
173
+ }));
174
+ toast("Penalty clause added successfully", {
175
+ type: "success",
176
+ });
177
+ }
178
+ setNewClause({
179
+ condition: "",
180
+ amount: "",
181
+ comment: ""
182
+ });
183
+ setIsAddingNew(false);
184
+ }, [newClause, activeSubTab, dispatch, actions, currency]);
185
+ const currentClauses = activeSubTab === "bonus" ? bonusClauses : penaltyClauses;
186
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Bonus & Penalty Clauses" }), _jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: [bonusClauses.length, " bonus clause(s), ", penaltyClauses.length, " penalty clause(s)"] })] }), _jsxs(Button, { onClick: () => setIsAddingNew(!isAddingNew), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: [_jsx(Icon, { name: "Plus", size: 16, className: "mr-2" }), "Add ", activeSubTab === "bonus" ? "Bonus" : "Penalty", " Clause"] })] }), _jsxs("div", { className: "flex space-x-1 border-b border-gray-200 dark:border-gray-600", children: [_jsxs("button", { onClick: () => setActiveSubTab("bonus"), className: `px-4 py-2 text-sm font-medium rounded-t-lg ${activeSubTab === "bonus"
187
+ ? "bg-blue-50 dark:bg-blue-900 text-blue-700 dark:text-blue-300 border-b-2 border-blue-700 dark:border-blue-300"
188
+ : "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`, children: ["Bonus Clauses (", bonusClauses.length, ")"] }), _jsxs("button", { onClick: () => setActiveSubTab("penalty"), className: `px-4 py-2 text-sm font-medium rounded-t-lg ${activeSubTab === "penalty"
189
+ ? "bg-red-50 dark:bg-red-900 text-red-700 dark:text-red-300 border-b-2 border-red-700 dark:border-red-300"
190
+ : "text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200"}`, children: ["Penalty Clauses (", penaltyClauses.length, ")"] })] }), isAddingNew && (_jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border dark:border-gray-600", children: [_jsxs("h3", { className: "text-lg font-medium mb-4 dark:text-white", children: ["Add New ", activeSubTab === "bonus" ? "Bonus" : "Penalty", " Clause"] }), _jsxs("form", { onSubmit: handleAddClause, className: "space-y-4", children: [_jsx(TextInput, { label: "Condition *", value: newClause.condition, onChange: (e) => setNewClause({ ...newClause, condition: e.target.value }), className: "w-full", required: true }), _jsx(TextInput, { label: `${activeSubTab === "bonus" ? "Bonus" : "Deduction"} Amount (${currency}) *`, type: "number", value: newClause.amount, onChange: (e) => setNewClause({ ...newClause, amount: e.target.value }), className: "w-full", placeholder: "0.00", step: "0.01", required: true }), _jsx(Textarea, { label: "Comment", value: newClause.comment, onChange: (e) => setNewClause({ ...newClause, comment: e.target.value }), className: "w-full", rows: 3, placeholder: "Optional comment or additional details..." }), _jsxs("div", { className: "flex gap-3", children: [_jsxs(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: ["Add ", activeSubTab === "bonus" ? "Bonus" : "Penalty", " Clause"] }), _jsx(Button, { type: "button", onClick: () => {
191
+ setIsAddingNew(false);
192
+ setNewClause({
193
+ condition: "",
194
+ amount: "",
195
+ comment: ""
196
+ });
197
+ }, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] })] })), currentClauses.length > 0 ? (activeSubTab === "bonus" ? (_jsx(ObjectSetTable, { data: bonusClauses, columns: bonusColumns, onAdd: () => setIsAddingNew(true), onDelete: (row) => {
198
+ dispatch(actions.deleteBonusClause({ id: row.id }));
199
+ toast("Bonus clause deleted", {
200
+ type: "success",
201
+ });
202
+ } })) : (_jsx(ObjectSetTable, { data: penaltyClauses, columns: penaltyColumns, onAdd: () => setIsAddingNew(true), onDelete: (row) => {
203
+ dispatch(actions.deletePenaltyClause({ id: row.id }));
204
+ toast("Penalty clause deleted", {
205
+ type: "success",
206
+ });
207
+ } }))) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400 border-2 border-dashed border-gray-300 dark:border-gray-600 rounded-lg", children: [_jsx(Icon, { name: "Checkmark", size: 48, className: "mx-auto mb-4 text-gray-400" }), _jsxs("p", { className: "text-lg font-medium", children: ["No ", activeSubTab, " clauses defined yet"] }), _jsxs("p", { className: "text-sm", children: ["Add your first ", activeSubTab, " clause to get started"] })] }))] }));
208
+ }
@@ -0,0 +1,8 @@
1
+ import type { PaymentTermsState } from "../../document-models/payment-terms/gen/schema/types.js";
2
+ export interface CostMaterialsTabProps {
3
+ state: PaymentTermsState;
4
+ dispatch: (action: any) => void;
5
+ actions: any;
6
+ }
7
+ export declare function CostMaterialsTab({ state, dispatch, actions }: CostMaterialsTabProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=cost-materials-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-materials-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/cost-materials-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,yDAAyD,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,qBAAqB,2CAkLnF"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback } from "react";
3
+ import { TextInput, Select } from "@powerhousedao/document-engineering";
4
+ import { Button, toast } from "@powerhousedao/design-system";
5
+ export function CostMaterialsTab({ state, dispatch, actions }) {
6
+ const [isEditing, setIsEditing] = useState(false);
7
+ const [formData, setFormData] = useState({
8
+ hourlyRate: state.costAndMaterials?.hourlyRate?.value?.toString() || "",
9
+ variableCap: state.costAndMaterials?.variableCap?.value?.toString() || "",
10
+ billingFrequency: state.costAndMaterials?.billingFrequency || "MONTHLY",
11
+ timesheetRequired: state.costAndMaterials?.timesheetRequired || false
12
+ });
13
+ const handleSubmit = useCallback((e) => {
14
+ e.preventDefault();
15
+ dispatch(actions.setCostAndMaterials({
16
+ hourlyRate: formData.hourlyRate ? {
17
+ value: parseFloat(formData.hourlyRate),
18
+ unit: state.currency
19
+ } : undefined,
20
+ variableCap: formData.variableCap ? {
21
+ value: parseFloat(formData.variableCap),
22
+ unit: state.currency
23
+ } : undefined,
24
+ billingFrequency: formData.billingFrequency,
25
+ timesheetRequired: formData.timesheetRequired
26
+ }));
27
+ toast("Cost & Materials configuration saved", {
28
+ type: "success",
29
+ });
30
+ setIsEditing(false);
31
+ }, [formData, dispatch, actions, state.currency]);
32
+ const handleCancel = useCallback(() => {
33
+ setFormData({
34
+ hourlyRate: state.costAndMaterials?.hourlyRate?.value?.toString() || "",
35
+ variableCap: state.costAndMaterials?.variableCap?.value?.toString() || "",
36
+ billingFrequency: state.costAndMaterials?.billingFrequency || "MONTHLY",
37
+ timesheetRequired: state.costAndMaterials?.timesheetRequired || false
38
+ });
39
+ setIsEditing(false);
40
+ }, [state.costAndMaterials]);
41
+ if (!isEditing) {
42
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Cost & Materials Configuration" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: state.costAndMaterials ? "Edit Configuration" : "Configure Cost & Materials" })] }), state.costAndMaterials ? (_jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Hourly Rate" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.hourlyRate
43
+ ? `${state.costAndMaterials.hourlyRate.value} ${state.costAndMaterials.hourlyRate.unit}`
44
+ : "Not set" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Variable Cap" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.variableCap
45
+ ? `${state.costAndMaterials.variableCap.value} ${state.costAndMaterials.variableCap.unit}`
46
+ : "Not set" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Billing Frequency" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.billingFrequency })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Timesheet Required" }), _jsx("p", { className: "text-lg dark:text-white", children: state.costAndMaterials.timesheetRequired ? "Yes" : "No" })] })] })) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: [_jsx("p", { children: "No cost & materials configuration set up yet." }), _jsx("p", { className: "text-sm", children: "Click \"Configure Cost & Materials\" to get started." })] }))] }));
47
+ }
48
+ return (_jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsx("div", { className: "flex justify-between items-center mb-4", children: _jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Configure Cost & Materials" }) }), _jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Hourly Rate" }), _jsx(TextInput, { value: formData.hourlyRate, onChange: (e) => setFormData({ ...formData, hourlyRate: e.target.value }), placeholder: "0.00", type: "number", step: "0.01" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Variable Cap" }), _jsx(TextInput, { value: formData.variableCap, onChange: (e) => setFormData({ ...formData, variableCap: e.target.value }), placeholder: "0.00", type: "number", step: "0.01" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Billing Frequency *" }), _jsx(Select, { value: formData.billingFrequency, onChange: (value) => setFormData({ ...formData, billingFrequency: value }), options: [
49
+ { value: "WEEKLY", label: "Weekly" },
50
+ { value: "BIWEEKLY", label: "Biweekly" },
51
+ { value: "MONTHLY", label: "Monthly" }
52
+ ], placeholder: "Select billing frequency", required: true })] }), _jsxs("div", { className: "flex items-center pt-6", children: [_jsx("input", { type: "checkbox", id: "timesheetRequired", checked: formData.timesheetRequired, onChange: (e) => setFormData({ ...formData, timesheetRequired: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "timesheetRequired", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Timesheet Required" })] })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: "Save Configuration" }), _jsx(Button, { type: "button", onClick: handleCancel, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] }));
53
+ }
@@ -0,0 +1,4 @@
1
+ import type { EditorProps } from "document-model";
2
+ export type IProps = EditorProps;
3
+ export default function Editor(props: any): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/editor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAalD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,GAAG,2CA8PxC"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useSelectedDocument } from "@powerhousedao/reactor-browser";
3
+ import { Icon, ToastContainer } from "@powerhousedao/design-system";
4
+ import { actions, } from "../../document-models/payment-terms/index.js";
5
+ import { BasicTermsTab } from "./basic-terms-tab.js";
6
+ import { MilestonesTab } from "./milestones-tab.js";
7
+ import { ClausesTab } from "./clauses-tab.js";
8
+ import { CostMaterialsTab } from "./cost-materials-tab.js";
9
+ import { RetainerTab } from "./retainer-tab.js";
10
+ import { EscrowTab } from "./escrow-tab.js";
11
+ import { EvaluationTab } from "./evaluation-tab.js";
12
+ export default function Editor(props) {
13
+ // Getting dispatch from props or selected document
14
+ let dispatch;
15
+ const { document } = props;
16
+ if (props.dispatch) {
17
+ dispatch = props.dispatch;
18
+ }
19
+ else {
20
+ const selectedDocument = useSelectedDocument();
21
+ dispatch = selectedDocument[1];
22
+ }
23
+ const state = document.state.global;
24
+ const getStatusColor = (status) => {
25
+ switch (status) {
26
+ case "DRAFT": return "bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200";
27
+ case "SUBMITTED": return "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200";
28
+ case "ACCEPTED": return "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200";
29
+ case "CANCELLED": return "bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200";
30
+ default: return "bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-200";
31
+ }
32
+ };
33
+ const getStatusIcon = (status) => {
34
+ switch (status) {
35
+ case "DRAFT": return "CalendarTime";
36
+ case "SUBMITTED": return "ArrowUp";
37
+ case "ACCEPTED": return "CheckCircle";
38
+ case "CANCELLED": return "ArrowLeft";
39
+ default: return "CalendarTime";
40
+ }
41
+ };
42
+ const totalMilestones = state.milestoneSchedule?.length || 0;
43
+ const completedMilestones = state.milestoneSchedule?.filter((m) => m.payoutStatus === "PAID").length || 0;
44
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "min-h-screen bg-gray-50 dark:bg-gray-900", children: _jsxs("div", { className: "max-w-7xl mx-auto p-6", children: [_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm p-6 mb-6", children: [_jsxs("div", { className: "flex justify-between items-start", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "CalendarTime", size: 32, className: "text-blue-600 dark:text-blue-400" }), _jsxs("div", { children: [_jsx("h1", { className: "text-3xl font-bold text-gray-900 dark:text-white mb-2", children: "Payment Terms Document" }), _jsx("p", { className: "text-gray-600 dark:text-gray-300", children: "Manage payment terms, milestones, and contract clauses" })] })] }), _jsxs("div", { className: `flex items-center gap-2 px-3 py-2 rounded-full font-medium ${getStatusColor(state.status)}`, children: [_jsx(Icon, { name: getStatusIcon(state.status), size: 16 }), state.status] })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4 mt-6", children: [_jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-blue-600 dark:text-blue-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Payment Model" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.paymentModel.replace(/_/g, ' ') })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-green-600 dark:text-green-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Currency" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.currency })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-yellow-600 dark:text-yellow-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Total Amount" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.totalAmount ? `${state.totalAmount.value} ${state.totalAmount.unit}` : "Not set" })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-purple-600 dark:text-purple-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Progress" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.paymentModel === "MILESTONE" ? `${completedMilestones} / ${totalMilestones}` : "N/A" })] })] })] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "CalendarTime", size: 20, className: "text-blue-600 dark:text-blue-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Basic Terms" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure the basic payment terms and details" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(BasicTermsTab, { state: state, dispatch: dispatch, actions: actions }) })] }), state.paymentModel === "MILESTONE" && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-green-600 dark:text-green-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Milestone Schedule" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Define project milestones and payment amounts" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(MilestonesTab, { milestones: state.milestoneSchedule, dispatch: dispatch, actions: actions, currency: state.currency }) })] })), state.paymentModel === "COST_AND_MATERIALS" && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-yellow-600 dark:text-yellow-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Cost & Materials" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure hourly rates, billing frequency, and caps" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(CostMaterialsTab, { state: state, dispatch: dispatch, actions: actions }) })] })), state.paymentModel === "RETAINER" && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-purple-600 dark:text-purple-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Retainer Details" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure retainer amount, frequency, and services" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(RetainerTab, { state: state, dispatch: dispatch, actions: actions }) })] })), state.escrowDetails && state.escrowDetails.releaseConditions && (state.paymentModel === "MILESTONE" || state.paymentModel === "COST_AND_MATERIALS" || state.paymentModel === "RETAINER") && (_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-orange-600 dark:text-orange-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Escrow Details" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Configure escrow payment arrangements" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(EscrowTab, { state: state, dispatch: dispatch, actions: actions }) })] })), _jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-red-600 dark:text-red-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Bonus & Penalty Clauses" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Add performance-based bonus and penalty conditions" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(ClausesTab, { bonusClauses: state.bonusClauses, penaltyClauses: state.penaltyClauses, dispatch: dispatch, actions: actions, currency: state.currency }) })] }), _jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm", children: [_jsx("div", { className: "px-6 py-4 border-b border-gray-200 dark:border-gray-700", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "BarChart", size: 20, className: "text-indigo-600 dark:text-indigo-400" }), _jsxs("div", { children: [_jsx("h2", { className: "text-xl font-semibold text-gray-900 dark:text-white", children: "Evaluation Terms" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 mt-1", children: "Define performance evaluation criteria and processes" })] })] }) }), _jsx("div", { className: "p-6", children: _jsx(EvaluationTab, { state: state, dispatch: dispatch, actions: actions }) })] })] })] }) }), _jsx(ToastContainer, {})] }));
45
+ }
@@ -0,0 +1,8 @@
1
+ import type { PaymentTermsState } from "../../document-models/payment-terms/gen/schema/types.js";
2
+ export interface EscrowTabProps {
3
+ state: PaymentTermsState;
4
+ dispatch: (action: any) => void;
5
+ actions: any;
6
+ }
7
+ export declare function EscrowTab({ state, dispatch, actions }: EscrowTabProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=escrow-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escrow-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/escrow-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,cAAc,2CAsKrE"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback } from "react";
3
+ import { TextInput, Textarea } from "@powerhousedao/document-engineering";
4
+ import { Button, toast } from "@powerhousedao/design-system";
5
+ export function EscrowTab({ state, dispatch, actions }) {
6
+ const [isEditing, setIsEditing] = useState(false);
7
+ const [formData, setFormData] = useState({
8
+ amountHeld: state.escrowDetails?.amountHeld?.value?.toString() || "",
9
+ proofOfFundsDocumentId: state.escrowDetails?.proofOfFundsDocumentId || "",
10
+ releaseConditions: state.escrowDetails?.releaseConditions || "",
11
+ escrowProvider: state.escrowDetails?.escrowProvider || ""
12
+ });
13
+ const handleSubmit = useCallback((e) => {
14
+ e.preventDefault();
15
+ if (!formData.amountHeld || isNaN(parseFloat(formData.amountHeld))) {
16
+ toast("Please enter a valid amount to be held in escrow", {
17
+ type: "error",
18
+ });
19
+ return;
20
+ }
21
+ if (!formData.releaseConditions.trim()) {
22
+ toast("Release conditions are required", {
23
+ type: "error",
24
+ });
25
+ return;
26
+ }
27
+ dispatch(actions.setEscrowDetails({
28
+ amountHeld: {
29
+ value: parseFloat(formData.amountHeld),
30
+ unit: state.currency
31
+ },
32
+ proofOfFundsDocumentId: formData.proofOfFundsDocumentId || undefined,
33
+ releaseConditions: formData.releaseConditions,
34
+ escrowProvider: formData.escrowProvider || undefined
35
+ }));
36
+ toast("Escrow details saved", {
37
+ type: "success",
38
+ });
39
+ setIsEditing(false);
40
+ }, [formData, dispatch, actions, state.currency]);
41
+ const handleCancel = useCallback(() => {
42
+ setFormData({
43
+ amountHeld: state.escrowDetails?.amountHeld?.value?.toString() || "",
44
+ proofOfFundsDocumentId: state.escrowDetails?.proofOfFundsDocumentId || "",
45
+ releaseConditions: state.escrowDetails?.releaseConditions || "",
46
+ escrowProvider: state.escrowDetails?.escrowProvider || ""
47
+ });
48
+ setIsEditing(false);
49
+ }, [state.escrowDetails]);
50
+ if (!isEditing) {
51
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Escrow Configuration" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: state.escrowDetails ? "Edit Escrow" : "Configure Escrow" })] }), state.escrowDetails && state.escrowDetails.releaseConditions ? (_jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Amount Held" }), _jsx("p", { className: "text-lg dark:text-white", children: state.escrowDetails.amountHeld
52
+ ? `${state.escrowDetails.amountHeld.value} ${state.escrowDetails.amountHeld.unit}`
53
+ : "Not set" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Escrow Provider" }), _jsx("p", { className: "text-lg dark:text-white", children: state.escrowDetails.escrowProvider || "Not specified" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Proof of Funds Document ID" }), _jsx("p", { className: "text-lg font-mono text-sm dark:text-white", children: state.escrowDetails.proofOfFundsDocumentId || "Not provided" })] }), _jsxs("div", { className: "col-span-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Release Conditions" }), _jsx("div", { className: "bg-gray-50 dark:bg-gray-700 p-3 rounded border dark:border-gray-600", children: _jsx("p", { className: "text-sm dark:text-white", children: state.escrowDetails.releaseConditions }) })] })] })) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: [_jsx("p", { children: "No escrow configuration set up yet." }), _jsx("p", { className: "text-sm", children: "Click \"Configure Escrow\" to get started." })] }))] }));
54
+ }
55
+ return (_jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsx("div", { className: "flex justify-between items-center mb-4", children: _jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Configure Escrow" }) }), _jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsx(TextInput, { label: `Amount Held (${state.currency}) *`, type: "number", value: formData.amountHeld, onChange: (e) => setFormData({ ...formData, amountHeld: e.target.value }), className: "w-full", placeholder: "0.00", step: "0.01", required: true }), _jsx(TextInput, { label: "Escrow Provider", value: formData.escrowProvider, onChange: (e) => setFormData({ ...formData, escrowProvider: e.target.value }), className: "w-full", placeholder: "e.g., Escrow.com" }), _jsx(TextInput, { label: "Proof of Funds Document ID", value: formData.proofOfFundsDocumentId, onChange: (e) => setFormData({ ...formData, proofOfFundsDocumentId: e.target.value }), className: "w-full", placeholder: "Document reference ID" }), _jsx("div", { className: "col-span-1", children: _jsx(Textarea, { label: "Release Conditions *", value: formData.releaseConditions, onChange: (e) => setFormData({ ...formData, releaseConditions: e.target.value }), className: "w-full", rows: 4, placeholder: "Describe the conditions for releasing escrow funds...", required: true }) })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", children: "Save Escrow Details" }), _jsx(Button, { type: "button", onClick: handleCancel, children: "Cancel" })] })] }));
56
+ }
@@ -0,0 +1,8 @@
1
+ import type { PaymentTermsState } from "../../document-models/payment-terms/gen/schema/types.js";
2
+ export interface EvaluationTabProps {
3
+ state: PaymentTermsState;
4
+ dispatch: (action: any) => void;
5
+ actions: any;
6
+ }
7
+ export declare function EvaluationTab({ state, dispatch, actions }: EvaluationTabProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=evaluation-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluation-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/evaluation-tab.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,yDAAyD,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,kBAAkB,2CA2N7E"}
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useCallback, useMemo } from "react";
3
+ import { TextInput, Select, Textarea } from "@powerhousedao/document-engineering";
4
+ import { Button, toast } from "@powerhousedao/design-system";
5
+ export function EvaluationTab({ state, dispatch, actions }) {
6
+ const [isEditing, setIsEditing] = useState(false);
7
+ const [formData, setFormData] = useState({
8
+ evaluationFrequency: state.evaluation?.evaluationFrequency || "MONTHLY",
9
+ evaluatorTeam: state.evaluation?.evaluatorTeam || "",
10
+ criteria: state.evaluation?.criteria?.join("\n") || "",
11
+ impactsPayout: state.evaluation?.impactsPayout || false,
12
+ impactsReputation: state.evaluation?.impactsReputation || false,
13
+ commentsVisibleToClient: state.evaluation?.commentsVisibleToClient || false
14
+ });
15
+ const evaluationFrequencyOptions = useMemo(() => [
16
+ { label: "Weekly", value: "WEEKLY" },
17
+ { label: "Monthly", value: "MONTHLY" },
18
+ { label: "Per Milestone", value: "PER_MILESTONE" }
19
+ ], []);
20
+ const handleSubmit = useCallback((e) => {
21
+ e.preventDefault();
22
+ if (!formData.evaluatorTeam.trim()) {
23
+ toast("Evaluator team is required", {
24
+ type: "error",
25
+ });
26
+ return;
27
+ }
28
+ if (!formData.criteria.trim()) {
29
+ toast("Evaluation criteria are required", {
30
+ type: "error",
31
+ });
32
+ return;
33
+ }
34
+ dispatch(actions.setEvaluationTerms({
35
+ evaluationFrequency: formData.evaluationFrequency,
36
+ evaluatorTeam: formData.evaluatorTeam,
37
+ criteria: formData.criteria.split("\n").filter(c => c.trim()),
38
+ impactsPayout: formData.impactsPayout,
39
+ impactsReputation: formData.impactsReputation,
40
+ commentsVisibleToClient: formData.commentsVisibleToClient
41
+ }));
42
+ toast("Evaluation terms saved", {
43
+ type: "success",
44
+ });
45
+ setIsEditing(false);
46
+ }, [formData, dispatch, actions]);
47
+ const handleCancel = useCallback(() => {
48
+ setFormData({
49
+ evaluationFrequency: state.evaluation?.evaluationFrequency || "MONTHLY",
50
+ evaluatorTeam: state.evaluation?.evaluatorTeam || "",
51
+ criteria: state.evaluation?.criteria?.join("\n") || "",
52
+ impactsPayout: state.evaluation?.impactsPayout || false,
53
+ impactsReputation: state.evaluation?.impactsReputation || false,
54
+ commentsVisibleToClient: state.evaluation?.commentsVisibleToClient || false
55
+ });
56
+ setIsEditing(false);
57
+ }, [state.evaluation]);
58
+ if (!isEditing) {
59
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Evaluation Terms" }), _jsx(Button, { onClick: () => setIsEditing(true), color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: state.evaluation ? "Edit Terms" : "Configure Evaluation" })] }), state.evaluation ? (_jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Evaluation Frequency" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.evaluationFrequency })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Evaluator Team" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.evaluatorTeam })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Impacts Payout" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.impactsPayout ? "Yes" : "No" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Impacts Reputation" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.impactsReputation ? "Yes" : "No" })] }), _jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Comments Visible to Client" }), _jsx("p", { className: "text-lg dark:text-white", children: state.evaluation.commentsVisibleToClient ? "Yes" : "No" })] }), _jsxs("div", { className: "col-span-2", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", children: "Evaluation Criteria" }), _jsx("div", { className: "bg-gray-50 dark:bg-gray-700 p-3 rounded border dark:border-gray-600", children: _jsx("ul", { className: "list-disc list-inside text-sm space-y-1", children: state.evaluation.criteria.map((criterion, index) => (_jsx("li", { children: criterion }, index))) }) })] })] })) : (_jsxs("div", { className: "text-center py-8 text-gray-500 dark:text-gray-400", children: [_jsx("p", { children: "No evaluation terms configured yet." }), _jsx("p", { className: "text-sm", children: "Click \"Configure Evaluation\" to get started." })] }))] }));
60
+ }
61
+ return (_jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsx("div", { className: "flex justify-between items-center mb-4", children: _jsx("h2", { className: "text-xl font-semibold dark:text-white", children: "Configure Evaluation Terms" }) }), _jsxs("div", { className: "grid grid-cols-2 gap-6", children: [_jsx(Select, { label: "Evaluation Frequency *", options: evaluationFrequencyOptions, value: formData.evaluationFrequency, onChange: (value) => setFormData({ ...formData, evaluationFrequency: value }) }), _jsx(TextInput, { label: "Evaluator Team *", value: formData.evaluatorTeam, onChange: (e) => setFormData({ ...formData, evaluatorTeam: e.target.value }), className: "w-full", placeholder: "e.g., Product Team", required: true }), _jsx("div", { className: "col-span-2", children: _jsx(Textarea, { label: "Evaluation Criteria * (one per line)", value: formData.criteria, onChange: (e) => setFormData({ ...formData, criteria: e.target.value }), className: "w-full", rows: 6, placeholder: "Enter each evaluation criterion on a separate line...", required: true }) }), _jsxs("div", { className: "col-span-2 space-y-4", children: [_jsx("h3", { className: "text-lg font-medium dark:text-white", children: "Impact Settings" }), _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "impactsPayout", checked: formData.impactsPayout, onChange: (e) => setFormData({ ...formData, impactsPayout: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "impactsPayout", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Evaluation results impact payout" })] }), _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "impactsReputation", checked: formData.impactsReputation, onChange: (e) => setFormData({ ...formData, impactsReputation: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "impactsReputation", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Evaluation results impact reputation" })] }), _jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: "commentsVisibleToClient", checked: formData.commentsVisibleToClient, onChange: (e) => setFormData({ ...formData, commentsVisibleToClient: e.target.checked }), className: "mr-2 h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded" }), _jsx("label", { htmlFor: "commentsVisibleToClient", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Evaluation comments visible to client" })] })] })] }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Button, { type: "submit", color: "light", size: "small", className: "cursor-pointer hover:bg-blue-600 hover:text-white", children: "Save Evaluation Terms" }), _jsx(Button, { type: "button", onClick: handleCancel, color: "light", size: "small", className: "cursor-pointer hover:bg-gray-600 hover:text-white", children: "Cancel" })] })] }));
62
+ }
@@ -0,0 +1,4 @@
1
+ import type { EditorModule } from "document-model";
2
+ export declare const module: EditorModule;
3
+ export default module;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAInD,eAAO,MAAM,MAAM,EAAE,YASpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,12 @@
1
+ import Editor from "./editor.js";
2
+ export const module = {
3
+ Component: Editor,
4
+ documentTypes: ["payment-terms"],
5
+ config: {
6
+ id: "payment-terms-editor",
7
+ disableExternalControls: true,
8
+ documentToolbarEnabled: true,
9
+ showSwitchboardLink: true,
10
+ },
11
+ };
12
+ export default module;
@@ -0,0 +1,9 @@
1
+ import type { Milestone } from "../../document-models/payment-terms/gen/types.js";
2
+ export interface MilestonesTabProps {
3
+ milestones: Milestone[];
4
+ dispatch: (action: any) => void;
5
+ actions: any;
6
+ currency: string;
7
+ }
8
+ export declare function MilestonesTab({ milestones, dispatch, actions, currency }: MilestonesTabProps): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=milestones-tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milestones-tab.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/milestones-tab.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,kDAAkD,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAgB,EAAE,EAAE,kBAAkB,2CAqTpG"}