@powerhousedao/builder-team-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 (438) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +179 -0
  3. package/dist/document-models/builders/actions.d.ts +14 -0
  4. package/dist/document-models/builders/actions.d.ts.map +1 -0
  5. package/dist/document-models/builders/actions.js +4 -0
  6. package/dist/document-models/builders/gen/actions.d.ts +4 -0
  7. package/dist/document-models/builders/gen/actions.d.ts.map +1 -0
  8. package/dist/document-models/builders/gen/actions.js +1 -0
  9. package/dist/document-models/builders/gen/builders/actions.d.ts +12 -0
  10. package/dist/document-models/builders/gen/builders/actions.d.ts.map +1 -0
  11. package/dist/document-models/builders/gen/builders/actions.js +1 -0
  12. package/dist/document-models/builders/gen/builders/creators.d.ts +5 -0
  13. package/dist/document-models/builders/gen/builders/creators.d.ts.map +1 -0
  14. package/dist/document-models/builders/gen/builders/creators.js +4 -0
  15. package/dist/document-models/builders/gen/builders/error.d.ts +2 -0
  16. package/dist/document-models/builders/gen/builders/error.d.ts.map +1 -0
  17. package/dist/document-models/builders/gen/builders/error.js +1 -0
  18. package/dist/document-models/builders/gen/builders/operations.d.ts +8 -0
  19. package/dist/document-models/builders/gen/builders/operations.d.ts.map +1 -0
  20. package/dist/document-models/builders/gen/builders/operations.js +3 -0
  21. package/dist/document-models/builders/gen/creators.d.ts +3 -0
  22. package/dist/document-models/builders/gen/creators.d.ts.map +1 -0
  23. package/dist/document-models/builders/gen/creators.js +2 -0
  24. package/dist/document-models/builders/gen/document-model.d.ts +3 -0
  25. package/dist/document-models/builders/gen/document-model.d.ts.map +1 -0
  26. package/dist/document-models/builders/gen/document-model.js +59 -0
  27. package/dist/document-models/builders/gen/document-schema.d.ts +142 -0
  28. package/dist/document-models/builders/gen/document-schema.d.ts.map +1 -0
  29. package/dist/document-models/builders/gen/document-schema.js +33 -0
  30. package/dist/document-models/builders/gen/document-type.d.ts +2 -0
  31. package/dist/document-models/builders/gen/document-type.d.ts.map +1 -0
  32. package/dist/document-models/builders/gen/document-type.js +1 -0
  33. package/dist/document-models/builders/gen/index.d.ts +12 -0
  34. package/dist/document-models/builders/gen/index.d.ts.map +1 -0
  35. package/dist/document-models/builders/gen/index.js +11 -0
  36. package/dist/document-models/builders/gen/ph-factories.d.ts +23 -0
  37. package/dist/document-models/builders/gen/ph-factories.d.ts.map +1 -0
  38. package/dist/document-models/builders/gen/ph-factories.js +47 -0
  39. package/dist/document-models/builders/gen/reducer.d.ts +3 -0
  40. package/dist/document-models/builders/gen/reducer.d.ts.map +1 -0
  41. package/dist/document-models/builders/gen/reducer.js +21 -0
  42. package/dist/document-models/builders/gen/schema/index.d.ts +3 -0
  43. package/dist/document-models/builders/gen/schema/index.d.ts.map +1 -0
  44. package/dist/document-models/builders/gen/schema/index.js +2 -0
  45. package/dist/document-models/builders/gen/schema/types.d.ts +146 -0
  46. package/dist/document-models/builders/gen/schema/types.d.ts.map +1 -0
  47. package/dist/document-models/builders/gen/schema/types.js +1 -0
  48. package/dist/document-models/builders/gen/schema/zod.d.ts +13 -0
  49. package/dist/document-models/builders/gen/schema/zod.d.ts.map +1 -0
  50. package/dist/document-models/builders/gen/schema/zod.js +21 -0
  51. package/dist/document-models/builders/gen/types.d.ts +12 -0
  52. package/dist/document-models/builders/gen/types.d.ts.map +1 -0
  53. package/dist/document-models/builders/gen/types.js +1 -0
  54. package/dist/document-models/builders/gen/utils.d.ts +15 -0
  55. package/dist/document-models/builders/gen/utils.d.ts.map +1 -0
  56. package/dist/document-models/builders/gen/utils.js +51 -0
  57. package/dist/document-models/builders/hooks.d.ts +11 -0
  58. package/dist/document-models/builders/hooks.d.ts.map +1 -0
  59. package/dist/document-models/builders/hooks.js +26 -0
  60. package/dist/document-models/builders/index.d.ts +10 -0
  61. package/dist/document-models/builders/index.d.ts.map +1 -0
  62. package/dist/document-models/builders/index.js +9 -0
  63. package/dist/document-models/builders/module.d.ts +5 -0
  64. package/dist/document-models/builders/module.d.ts.map +1 -0
  65. package/dist/document-models/builders/module.js +10 -0
  66. package/dist/document-models/builders/src/index.d.ts +2 -0
  67. package/dist/document-models/builders/src/index.d.ts.map +1 -0
  68. package/dist/document-models/builders/src/index.js +1 -0
  69. package/dist/document-models/builders/src/reducers/builders.d.ts +3 -0
  70. package/dist/document-models/builders/src/reducers/builders.d.ts.map +1 -0
  71. package/dist/document-models/builders/src/reducers/builders.js +8 -0
  72. package/dist/document-models/builders/src/tests/builders.test.d.ts +6 -0
  73. package/dist/document-models/builders/src/tests/builders.test.d.ts.map +1 -0
  74. package/dist/document-models/builders/src/tests/builders.test.js +29 -0
  75. package/dist/document-models/builders/src/tests/document-model.test.d.ts +10 -0
  76. package/dist/document-models/builders/src/tests/document-model.test.d.ts.map +1 -0
  77. package/dist/document-models/builders/src/tests/document-model.test.js +104 -0
  78. package/dist/document-models/builders/src/utils.d.ts +2 -0
  79. package/dist/document-models/builders/src/utils.d.ts.map +1 -0
  80. package/dist/document-models/builders/src/utils.js +1 -0
  81. package/dist/document-models/builders/utils.d.ts +14 -0
  82. package/dist/document-models/builders/utils.d.ts.map +1 -0
  83. package/dist/document-models/builders/utils.js +7 -0
  84. package/dist/document-models/document-models.d.ts +3 -0
  85. package/dist/document-models/document-models.d.ts.map +1 -0
  86. package/dist/document-models/document-models.js +6 -0
  87. package/dist/document-models/expense-report/actions.d.ts +27 -0
  88. package/dist/document-models/expense-report/actions.d.ts.map +1 -0
  89. package/dist/document-models/expense-report/actions.js +4 -0
  90. package/dist/document-models/expense-report/gen/actions.d.ts +4 -0
  91. package/dist/document-models/expense-report/gen/actions.d.ts.map +1 -0
  92. package/dist/document-models/expense-report/gen/actions.js +1 -0
  93. package/dist/document-models/expense-report/gen/creators.d.ts +3 -0
  94. package/dist/document-models/expense-report/gen/creators.d.ts.map +1 -0
  95. package/dist/document-models/expense-report/gen/creators.js +2 -0
  96. package/dist/document-models/expense-report/gen/document-model.d.ts +3 -0
  97. package/dist/document-models/expense-report/gen/document-model.d.ts.map +1 -0
  98. package/dist/document-models/expense-report/gen/document-model.js +202 -0
  99. package/dist/document-models/expense-report/gen/document-schema.d.ts +199 -0
  100. package/dist/document-models/expense-report/gen/document-schema.d.ts.map +1 -0
  101. package/dist/document-models/expense-report/gen/document-schema.js +33 -0
  102. package/dist/document-models/expense-report/gen/document-type.d.ts +2 -0
  103. package/dist/document-models/expense-report/gen/document-type.d.ts.map +1 -0
  104. package/dist/document-models/expense-report/gen/document-type.js +1 -0
  105. package/dist/document-models/expense-report/gen/index.d.ts +12 -0
  106. package/dist/document-models/expense-report/gen/index.d.ts.map +1 -0
  107. package/dist/document-models/expense-report/gen/index.js +11 -0
  108. package/dist/document-models/expense-report/gen/ph-factories.d.ts +23 -0
  109. package/dist/document-models/expense-report/gen/ph-factories.d.ts.map +1 -0
  110. package/dist/document-models/expense-report/gen/ph-factories.js +186 -0
  111. package/dist/document-models/expense-report/gen/reducer.d.ts +3 -0
  112. package/dist/document-models/expense-report/gen/reducer.d.ts.map +1 -0
  113. package/dist/document-models/expense-report/gen/reducer.js +73 -0
  114. package/dist/document-models/expense-report/gen/schema/index.d.ts +3 -0
  115. package/dist/document-models/expense-report/gen/schema/index.d.ts.map +1 -0
  116. package/dist/document-models/expense-report/gen/schema/index.js +2 -0
  117. package/dist/document-models/expense-report/gen/schema/types.d.ts +258 -0
  118. package/dist/document-models/expense-report/gen/schema/types.d.ts.map +1 -0
  119. package/dist/document-models/expense-report/gen/schema/types.js +1 -0
  120. package/dist/document-models/expense-report/gen/schema/zod.d.ts +32 -0
  121. package/dist/document-models/expense-report/gen/schema/zod.d.ts.map +1 -0
  122. package/dist/document-models/expense-report/gen/schema/zod.js +200 -0
  123. package/dist/document-models/expense-report/gen/types.d.ts +12 -0
  124. package/dist/document-models/expense-report/gen/types.d.ts.map +1 -0
  125. package/dist/document-models/expense-report/gen/types.js +1 -0
  126. package/dist/document-models/expense-report/gen/utils.d.ts +15 -0
  127. package/dist/document-models/expense-report/gen/utils.d.ts.map +1 -0
  128. package/dist/document-models/expense-report/gen/utils.js +190 -0
  129. package/dist/document-models/expense-report/gen/wallet/actions.d.ts +64 -0
  130. package/dist/document-models/expense-report/gen/wallet/actions.d.ts.map +1 -0
  131. package/dist/document-models/expense-report/gen/wallet/actions.js +1 -0
  132. package/dist/document-models/expense-report/gen/wallet/creators.d.ts +18 -0
  133. package/dist/document-models/expense-report/gen/wallet/creators.d.ts.map +1 -0
  134. package/dist/document-models/expense-report/gen/wallet/creators.js +17 -0
  135. package/dist/document-models/expense-report/gen/wallet/error.d.ts +2 -0
  136. package/dist/document-models/expense-report/gen/wallet/error.d.ts.map +1 -0
  137. package/dist/document-models/expense-report/gen/wallet/error.js +1 -0
  138. package/dist/document-models/expense-report/gen/wallet/operations.d.ts +21 -0
  139. package/dist/document-models/expense-report/gen/wallet/operations.d.ts.map +1 -0
  140. package/dist/document-models/expense-report/gen/wallet/operations.js +3 -0
  141. package/dist/document-models/expense-report/hooks.d.ts +11 -0
  142. package/dist/document-models/expense-report/hooks.d.ts.map +1 -0
  143. package/dist/document-models/expense-report/hooks.js +26 -0
  144. package/dist/document-models/expense-report/index.d.ts +10 -0
  145. package/dist/document-models/expense-report/index.d.ts.map +1 -0
  146. package/dist/document-models/expense-report/index.js +9 -0
  147. package/dist/document-models/expense-report/module.d.ts +5 -0
  148. package/dist/document-models/expense-report/module.d.ts.map +1 -0
  149. package/dist/document-models/expense-report/module.js +10 -0
  150. package/dist/document-models/expense-report/src/index.d.ts +2 -0
  151. package/dist/document-models/expense-report/src/index.d.ts.map +1 -0
  152. package/dist/document-models/expense-report/src/index.js +1 -0
  153. package/dist/document-models/expense-report/src/reducers/wallet.d.ts +3 -0
  154. package/dist/document-models/expense-report/src/reducers/wallet.d.ts.map +1 -0
  155. package/dist/document-models/expense-report/src/reducers/wallet.js +196 -0
  156. package/dist/document-models/expense-report/src/tests/document-model.test.d.ts +10 -0
  157. package/dist/document-models/expense-report/src/tests/document-model.test.d.ts.map +1 -0
  158. package/dist/document-models/expense-report/src/tests/document-model.test.js +104 -0
  159. package/dist/document-models/expense-report/src/tests/wallet.test.d.ts +6 -0
  160. package/dist/document-models/expense-report/src/tests/wallet.test.d.ts.map +1 -0
  161. package/dist/document-models/expense-report/src/tests/wallet.test.js +159 -0
  162. package/dist/document-models/expense-report/src/utils.d.ts +2 -0
  163. package/dist/document-models/expense-report/src/utils.d.ts.map +1 -0
  164. package/dist/document-models/expense-report/src/utils.js +1 -0
  165. package/dist/document-models/expense-report/utils.d.ts +14 -0
  166. package/dist/document-models/expense-report/utils.d.ts.map +1 -0
  167. package/dist/document-models/expense-report/utils.js +7 -0
  168. package/dist/document-models/index.d.ts +3 -0
  169. package/dist/document-models/index.d.ts.map +1 -0
  170. package/dist/document-models/index.js +2 -0
  171. package/dist/document-models/service-subscriptions/actions.d.ts +25 -0
  172. package/dist/document-models/service-subscriptions/actions.d.ts.map +1 -0
  173. package/dist/document-models/service-subscriptions/actions.js +9 -0
  174. package/dist/document-models/service-subscriptions/gen/actions.d.ts +8 -0
  175. package/dist/document-models/service-subscriptions/gen/actions.d.ts.map +1 -0
  176. package/dist/document-models/service-subscriptions/gen/actions.js +3 -0
  177. package/dist/document-models/service-subscriptions/gen/categories/actions.d.ts +16 -0
  178. package/dist/document-models/service-subscriptions/gen/categories/actions.d.ts.map +1 -0
  179. package/dist/document-models/service-subscriptions/gen/categories/actions.js +1 -0
  180. package/dist/document-models/service-subscriptions/gen/categories/creators.d.ts +6 -0
  181. package/dist/document-models/service-subscriptions/gen/categories/creators.d.ts.map +1 -0
  182. package/dist/document-models/service-subscriptions/gen/categories/creators.js +5 -0
  183. package/dist/document-models/service-subscriptions/gen/categories/error.d.ts +2 -0
  184. package/dist/document-models/service-subscriptions/gen/categories/error.d.ts.map +1 -0
  185. package/dist/document-models/service-subscriptions/gen/categories/error.js +1 -0
  186. package/dist/document-models/service-subscriptions/gen/categories/operations.d.ts +9 -0
  187. package/dist/document-models/service-subscriptions/gen/categories/operations.d.ts.map +1 -0
  188. package/dist/document-models/service-subscriptions/gen/categories/operations.js +3 -0
  189. package/dist/document-models/service-subscriptions/gen/creators.d.ts +7 -0
  190. package/dist/document-models/service-subscriptions/gen/creators.d.ts.map +1 -0
  191. package/dist/document-models/service-subscriptions/gen/creators.js +6 -0
  192. package/dist/document-models/service-subscriptions/gen/document-model.d.ts +3 -0
  193. package/dist/document-models/service-subscriptions/gen/document-model.d.ts.map +1 -0
  194. package/dist/document-models/service-subscriptions/gen/document-model.js +194 -0
  195. package/dist/document-models/service-subscriptions/gen/document-schema.d.ts +180 -0
  196. package/dist/document-models/service-subscriptions/gen/document-schema.d.ts.map +1 -0
  197. package/dist/document-models/service-subscriptions/gen/document-schema.js +33 -0
  198. package/dist/document-models/service-subscriptions/gen/document-type.d.ts +2 -0
  199. package/dist/document-models/service-subscriptions/gen/document-type.d.ts.map +1 -0
  200. package/dist/document-models/service-subscriptions/gen/document-type.js +1 -0
  201. package/dist/document-models/service-subscriptions/gen/index.d.ts +14 -0
  202. package/dist/document-models/service-subscriptions/gen/index.d.ts.map +1 -0
  203. package/dist/document-models/service-subscriptions/gen/index.js +13 -0
  204. package/dist/document-models/service-subscriptions/gen/ph-factories.d.ts +23 -0
  205. package/dist/document-models/service-subscriptions/gen/ph-factories.d.ts.map +1 -0
  206. package/dist/document-models/service-subscriptions/gen/ph-factories.js +45 -0
  207. package/dist/document-models/service-subscriptions/gen/reducer.d.ts +3 -0
  208. package/dist/document-models/service-subscriptions/gen/reducer.d.ts.map +1 -0
  209. package/dist/document-models/service-subscriptions/gen/reducer.js +67 -0
  210. package/dist/document-models/service-subscriptions/gen/schema/index.d.ts +3 -0
  211. package/dist/document-models/service-subscriptions/gen/schema/index.d.ts.map +1 -0
  212. package/dist/document-models/service-subscriptions/gen/schema/index.js +2 -0
  213. package/dist/document-models/service-subscriptions/gen/schema/types.d.ts +274 -0
  214. package/dist/document-models/service-subscriptions/gen/schema/types.d.ts.map +1 -0
  215. package/dist/document-models/service-subscriptions/gen/schema/types.js +1 -0
  216. package/dist/document-models/service-subscriptions/gen/schema/zod.d.ts +31 -0
  217. package/dist/document-models/service-subscriptions/gen/schema/zod.d.ts.map +1 -0
  218. package/dist/document-models/service-subscriptions/gen/schema/zod.js +199 -0
  219. package/dist/document-models/service-subscriptions/gen/subscriptions/actions.d.ts +32 -0
  220. package/dist/document-models/service-subscriptions/gen/subscriptions/actions.d.ts.map +1 -0
  221. package/dist/document-models/service-subscriptions/gen/subscriptions/actions.js +1 -0
  222. package/dist/document-models/service-subscriptions/gen/subscriptions/creators.d.ts +10 -0
  223. package/dist/document-models/service-subscriptions/gen/subscriptions/creators.d.ts.map +1 -0
  224. package/dist/document-models/service-subscriptions/gen/subscriptions/creators.js +9 -0
  225. package/dist/document-models/service-subscriptions/gen/subscriptions/error.d.ts +2 -0
  226. package/dist/document-models/service-subscriptions/gen/subscriptions/error.d.ts.map +1 -0
  227. package/dist/document-models/service-subscriptions/gen/subscriptions/error.js +1 -0
  228. package/dist/document-models/service-subscriptions/gen/subscriptions/operations.d.ts +13 -0
  229. package/dist/document-models/service-subscriptions/gen/subscriptions/operations.d.ts.map +1 -0
  230. package/dist/document-models/service-subscriptions/gen/subscriptions/operations.js +3 -0
  231. package/dist/document-models/service-subscriptions/gen/types.d.ts +12 -0
  232. package/dist/document-models/service-subscriptions/gen/types.d.ts.map +1 -0
  233. package/dist/document-models/service-subscriptions/gen/types.js +1 -0
  234. package/dist/document-models/service-subscriptions/gen/utils.d.ts +15 -0
  235. package/dist/document-models/service-subscriptions/gen/utils.d.ts.map +1 -0
  236. package/dist/document-models/service-subscriptions/gen/utils.js +53 -0
  237. package/dist/document-models/service-subscriptions/gen/vendors/actions.d.ts +16 -0
  238. package/dist/document-models/service-subscriptions/gen/vendors/actions.d.ts.map +1 -0
  239. package/dist/document-models/service-subscriptions/gen/vendors/actions.js +1 -0
  240. package/dist/document-models/service-subscriptions/gen/vendors/creators.d.ts +6 -0
  241. package/dist/document-models/service-subscriptions/gen/vendors/creators.d.ts.map +1 -0
  242. package/dist/document-models/service-subscriptions/gen/vendors/creators.js +5 -0
  243. package/dist/document-models/service-subscriptions/gen/vendors/error.d.ts +2 -0
  244. package/dist/document-models/service-subscriptions/gen/vendors/error.d.ts.map +1 -0
  245. package/dist/document-models/service-subscriptions/gen/vendors/error.js +1 -0
  246. package/dist/document-models/service-subscriptions/gen/vendors/operations.d.ts +9 -0
  247. package/dist/document-models/service-subscriptions/gen/vendors/operations.d.ts.map +1 -0
  248. package/dist/document-models/service-subscriptions/gen/vendors/operations.js +3 -0
  249. package/dist/document-models/service-subscriptions/hooks.d.ts +11 -0
  250. package/dist/document-models/service-subscriptions/hooks.d.ts.map +1 -0
  251. package/dist/document-models/service-subscriptions/hooks.js +26 -0
  252. package/dist/document-models/service-subscriptions/index.d.ts +10 -0
  253. package/dist/document-models/service-subscriptions/index.d.ts.map +1 -0
  254. package/dist/document-models/service-subscriptions/index.js +9 -0
  255. package/dist/document-models/service-subscriptions/module.d.ts +5 -0
  256. package/dist/document-models/service-subscriptions/module.d.ts.map +1 -0
  257. package/dist/document-models/service-subscriptions/module.js +10 -0
  258. package/dist/document-models/service-subscriptions/src/index.d.ts +2 -0
  259. package/dist/document-models/service-subscriptions/src/index.d.ts.map +1 -0
  260. package/dist/document-models/service-subscriptions/src/index.js +1 -0
  261. package/dist/document-models/service-subscriptions/src/reducers/categories.d.ts +3 -0
  262. package/dist/document-models/service-subscriptions/src/reducers/categories.d.ts.map +1 -0
  263. package/dist/document-models/service-subscriptions/src/reducers/categories.js +24 -0
  264. package/dist/document-models/service-subscriptions/src/reducers/subscriptions.d.ts +3 -0
  265. package/dist/document-models/service-subscriptions/src/reducers/subscriptions.d.ts.map +1 -0
  266. package/dist/document-models/service-subscriptions/src/reducers/subscriptions.js +114 -0
  267. package/dist/document-models/service-subscriptions/src/reducers/vendors.d.ts +3 -0
  268. package/dist/document-models/service-subscriptions/src/reducers/vendors.d.ts.map +1 -0
  269. package/dist/document-models/service-subscriptions/src/reducers/vendors.js +30 -0
  270. package/dist/document-models/service-subscriptions/src/tests/categories.test.d.ts +6 -0
  271. package/dist/document-models/service-subscriptions/src/tests/categories.test.d.ts.map +1 -0
  272. package/dist/document-models/service-subscriptions/src/tests/categories.test.js +39 -0
  273. package/dist/document-models/service-subscriptions/src/tests/document-model.test.d.ts +10 -0
  274. package/dist/document-models/service-subscriptions/src/tests/document-model.test.d.ts.map +1 -0
  275. package/dist/document-models/service-subscriptions/src/tests/document-model.test.js +104 -0
  276. package/dist/document-models/service-subscriptions/src/tests/subscriptions.test.d.ts +6 -0
  277. package/dist/document-models/service-subscriptions/src/tests/subscriptions.test.d.ts.map +1 -0
  278. package/dist/document-models/service-subscriptions/src/tests/subscriptions.test.js +79 -0
  279. package/dist/document-models/service-subscriptions/src/tests/vendors.test.d.ts +6 -0
  280. package/dist/document-models/service-subscriptions/src/tests/vendors.test.d.ts.map +1 -0
  281. package/dist/document-models/service-subscriptions/src/tests/vendors.test.js +39 -0
  282. package/dist/document-models/service-subscriptions/src/utils.d.ts +2 -0
  283. package/dist/document-models/service-subscriptions/src/utils.d.ts.map +1 -0
  284. package/dist/document-models/service-subscriptions/src/utils.js +1 -0
  285. package/dist/document-models/service-subscriptions/utils.d.ts +14 -0
  286. package/dist/document-models/service-subscriptions/utils.d.ts.map +1 -0
  287. package/dist/document-models/service-subscriptions/utils.js +7 -0
  288. package/dist/editors/builder-team-admin/components/CreateDocument.d.ts +6 -0
  289. package/dist/editors/builder-team-admin/components/CreateDocument.d.ts.map +1 -0
  290. package/dist/editors/builder-team-admin/components/CreateDocument.js +18 -0
  291. package/dist/editors/builder-team-admin/components/DriveContents.d.ts +6 -0
  292. package/dist/editors/builder-team-admin/components/DriveContents.d.ts.map +1 -0
  293. package/dist/editors/builder-team-admin/components/DriveContents.js +38 -0
  294. package/dist/editors/builder-team-admin/components/DriveExplorer.d.ts +7 -0
  295. package/dist/editors/builder-team-admin/components/DriveExplorer.d.ts.map +1 -0
  296. package/dist/editors/builder-team-admin/components/DriveExplorer.js +45 -0
  297. package/dist/editors/builder-team-admin/components/EmptyState.d.ts +3 -0
  298. package/dist/editors/builder-team-admin/components/EmptyState.d.ts.map +1 -0
  299. package/dist/editors/builder-team-admin/components/EmptyState.js +10 -0
  300. package/dist/editors/builder-team-admin/components/ExpenseReportsStats.d.ts +11 -0
  301. package/dist/editors/builder-team-admin/components/ExpenseReportsStats.d.ts.map +1 -0
  302. package/dist/editors/builder-team-admin/components/ExpenseReportsStats.js +137 -0
  303. package/dist/editors/builder-team-admin/components/Files.d.ts +3 -0
  304. package/dist/editors/builder-team-admin/components/Files.d.ts.map +1 -0
  305. package/dist/editors/builder-team-admin/components/Files.js +12 -0
  306. package/dist/editors/builder-team-admin/components/FolderTree.d.ts +14 -0
  307. package/dist/editors/builder-team-admin/components/FolderTree.d.ts.map +1 -0
  308. package/dist/editors/builder-team-admin/components/FolderTree.js +209 -0
  309. package/dist/editors/builder-team-admin/components/Folders.d.ts +3 -0
  310. package/dist/editors/builder-team-admin/components/Folders.d.ts.map +1 -0
  311. package/dist/editors/builder-team-admin/components/Folders.js +12 -0
  312. package/dist/editors/builder-team-admin/components/NavigationBreadcrumbs.d.ts +3 -0
  313. package/dist/editors/builder-team-admin/components/NavigationBreadcrumbs.d.ts.map +1 -0
  314. package/dist/editors/builder-team-admin/components/NavigationBreadcrumbs.js +6 -0
  315. package/dist/editors/builder-team-admin/components/expense-reports.d.ts +2 -0
  316. package/dist/editors/builder-team-admin/components/expense-reports.d.ts.map +1 -0
  317. package/dist/editors/builder-team-admin/components/expense-reports.js +250 -0
  318. package/dist/editors/builder-team-admin/components/overview/ProfileHeader.d.ts +10 -0
  319. package/dist/editors/builder-team-admin/components/overview/ProfileHeader.d.ts.map +1 -0
  320. package/dist/editors/builder-team-admin/components/overview/ProfileHeader.js +24 -0
  321. package/dist/editors/builder-team-admin/components/overview/SubscriptionsStats.d.ts +15 -0
  322. package/dist/editors/builder-team-admin/components/overview/SubscriptionsStats.d.ts.map +1 -0
  323. package/dist/editors/builder-team-admin/components/overview/SubscriptionsStats.js +61 -0
  324. package/dist/editors/builder-team-admin/components/overview/TeamMembersOverview.d.ts +10 -0
  325. package/dist/editors/builder-team-admin/components/overview/TeamMembersOverview.d.ts.map +1 -0
  326. package/dist/editors/builder-team-admin/components/overview/TeamMembersOverview.js +97 -0
  327. package/dist/editors/builder-team-admin/components/team-members.d.ts +2 -0
  328. package/dist/editors/builder-team-admin/components/team-members.d.ts.map +1 -0
  329. package/dist/editors/builder-team-admin/components/team-members.js +200 -0
  330. package/dist/editors/builder-team-admin/config.d.ts +4 -0
  331. package/dist/editors/builder-team-admin/config.d.ts.map +1 -0
  332. package/dist/editors/builder-team-admin/config.js +10 -0
  333. package/dist/editors/builder-team-admin/editor.d.ts +4 -0
  334. package/dist/editors/builder-team-admin/editor.d.ts.map +1 -0
  335. package/dist/editors/builder-team-admin/editor.js +11 -0
  336. package/dist/editors/builder-team-admin/module.d.ts +3 -0
  337. package/dist/editors/builder-team-admin/module.d.ts.map +1 -0
  338. package/dist/editors/builder-team-admin/module.js +10 -0
  339. package/dist/editors/builders/editor.d.ts +3 -0
  340. package/dist/editors/builders/editor.d.ts.map +1 -0
  341. package/dist/editors/builders/editor.js +204 -0
  342. package/dist/editors/builders/module.d.ts +4 -0
  343. package/dist/editors/builders/module.d.ts.map +1 -0
  344. package/dist/editors/builders/module.js +10 -0
  345. package/dist/editors/editors.d.ts +3 -0
  346. package/dist/editors/editors.d.ts.map +1 -0
  347. package/dist/editors/editors.js +8 -0
  348. package/dist/editors/expense-report/components/AddBillingStatementModal.d.ts +11 -0
  349. package/dist/editors/expense-report/components/AddBillingStatementModal.d.ts.map +1 -0
  350. package/dist/editors/expense-report/components/AddBillingStatementModal.js +195 -0
  351. package/dist/editors/expense-report/components/AggregatedExpensesTable.d.ts +11 -0
  352. package/dist/editors/expense-report/components/AggregatedExpensesTable.d.ts.map +1 -0
  353. package/dist/editors/expense-report/components/AggregatedExpensesTable.js +388 -0
  354. package/dist/editors/expense-report/components/ExpenseReportPDF.d.ts +10 -0
  355. package/dist/editors/expense-report/components/ExpenseReportPDF.d.ts.map +1 -0
  356. package/dist/editors/expense-report/components/ExpenseReportPDF.js +287 -0
  357. package/dist/editors/expense-report/components/ExpenseReportTransactionsTable.d.ts +14 -0
  358. package/dist/editors/expense-report/components/ExpenseReportTransactionsTable.d.ts.map +1 -0
  359. package/dist/editors/expense-report/components/ExpenseReportTransactionsTable.js +64 -0
  360. package/dist/editors/expense-report/components/WalletsTable.d.ts +12 -0
  361. package/dist/editors/expense-report/components/WalletsTable.d.ts.map +1 -0
  362. package/dist/editors/expense-report/components/WalletsTable.js +456 -0
  363. package/dist/editors/expense-report/config.d.ts +3 -0
  364. package/dist/editors/expense-report/config.d.ts.map +1 -0
  365. package/dist/editors/expense-report/config.js +3 -0
  366. package/dist/editors/expense-report/editor.d.ts +2 -0
  367. package/dist/editors/expense-report/editor.d.ts.map +1 -0
  368. package/dist/editors/expense-report/editor.js +107 -0
  369. package/dist/editors/expense-report/hooks/useSyncWallet.d.ts +5 -0
  370. package/dist/editors/expense-report/hooks/useSyncWallet.d.ts.map +1 -0
  371. package/dist/editors/expense-report/hooks/useSyncWallet.js +150 -0
  372. package/dist/editors/expense-report/hooks/useWalletSync.d.ts +9 -0
  373. package/dist/editors/expense-report/hooks/useWalletSync.d.ts.map +1 -0
  374. package/dist/editors/expense-report/hooks/useWalletSync.js +78 -0
  375. package/dist/editors/expense-report/module.d.ts +3 -0
  376. package/dist/editors/expense-report/module.d.ts.map +1 -0
  377. package/dist/editors/expense-report/module.js +9 -0
  378. package/dist/editors/index.d.ts +4 -0
  379. package/dist/editors/index.d.ts.map +1 -0
  380. package/dist/editors/index.js +3 -0
  381. package/dist/editors/service-subscriptions-editor/components/AddCategoryModal.d.ts +7 -0
  382. package/dist/editors/service-subscriptions-editor/components/AddCategoryModal.d.ts.map +1 -0
  383. package/dist/editors/service-subscriptions-editor/components/AddCategoryModal.js +39 -0
  384. package/dist/editors/service-subscriptions-editor/components/AddSubscriptionModal.d.ts +10 -0
  385. package/dist/editors/service-subscriptions-editor/components/AddSubscriptionModal.d.ts.map +1 -0
  386. package/dist/editors/service-subscriptions-editor/components/AddSubscriptionModal.js +64 -0
  387. package/dist/editors/service-subscriptions-editor/components/AddVendorModal.d.ts +7 -0
  388. package/dist/editors/service-subscriptions-editor/components/AddVendorModal.d.ts.map +1 -0
  389. package/dist/editors/service-subscriptions-editor/components/AddVendorModal.js +43 -0
  390. package/dist/editors/service-subscriptions-editor/components/CategoriesList.d.ts +8 -0
  391. package/dist/editors/service-subscriptions-editor/components/CategoriesList.d.ts.map +1 -0
  392. package/dist/editors/service-subscriptions-editor/components/CategoriesList.js +23 -0
  393. package/dist/editors/service-subscriptions-editor/components/EditName.d.ts +3 -0
  394. package/dist/editors/service-subscriptions-editor/components/EditName.d.ts.map +1 -0
  395. package/dist/editors/service-subscriptions-editor/components/EditName.js +31 -0
  396. package/dist/editors/service-subscriptions-editor/components/StatsOverview.d.ts +8 -0
  397. package/dist/editors/service-subscriptions-editor/components/StatsOverview.d.ts.map +1 -0
  398. package/dist/editors/service-subscriptions-editor/components/StatsOverview.js +32 -0
  399. package/dist/editors/service-subscriptions-editor/components/SubscriptionsList.d.ts +10 -0
  400. package/dist/editors/service-subscriptions-editor/components/SubscriptionsList.d.ts.map +1 -0
  401. package/dist/editors/service-subscriptions-editor/components/SubscriptionsList.js +88 -0
  402. package/dist/editors/service-subscriptions-editor/components/VendorsList.d.ts +8 -0
  403. package/dist/editors/service-subscriptions-editor/components/VendorsList.d.ts.map +1 -0
  404. package/dist/editors/service-subscriptions-editor/components/VendorsList.js +23 -0
  405. package/dist/editors/service-subscriptions-editor/editor.d.ts +2 -0
  406. package/dist/editors/service-subscriptions-editor/editor.d.ts.map +1 -0
  407. package/dist/editors/service-subscriptions-editor/editor.js +60 -0
  408. package/dist/editors/service-subscriptions-editor/module.d.ts +4 -0
  409. package/dist/editors/service-subscriptions-editor/module.d.ts.map +1 -0
  410. package/dist/editors/service-subscriptions-editor/module.js +10 -0
  411. package/dist/index.d.ts +5 -0
  412. package/dist/index.d.ts.map +1 -0
  413. package/dist/index.js +6 -0
  414. package/dist/package.json +119 -0
  415. package/dist/powerhouse.manifest.json +27 -0
  416. package/dist/processors/index.d.ts +2 -0
  417. package/dist/processors/index.d.ts.map +1 -0
  418. package/dist/processors/index.js +1 -0
  419. package/dist/style.css +3948 -0
  420. package/dist/subgraphs/index.d.ts +2 -0
  421. package/dist/subgraphs/index.d.ts.map +1 -0
  422. package/dist/subgraphs/index.js +1 -0
  423. package/dist/subgraphs/service-subscriptions/index.d.ts +11 -0
  424. package/dist/subgraphs/service-subscriptions/index.d.ts.map +1 -0
  425. package/dist/subgraphs/service-subscriptions/index.js +11 -0
  426. package/dist/subgraphs/service-subscriptions/resolvers.d.ts +3 -0
  427. package/dist/subgraphs/service-subscriptions/resolvers.d.ts.map +1 -0
  428. package/dist/subgraphs/service-subscriptions/resolvers.js +228 -0
  429. package/dist/subgraphs/service-subscriptions/schema.d.ts +3 -0
  430. package/dist/subgraphs/service-subscriptions/schema.d.ts.map +1 -0
  431. package/dist/subgraphs/service-subscriptions/schema.js +193 -0
  432. package/dist/vite.config.d.ts +3 -0
  433. package/dist/vite.config.d.ts.map +1 -0
  434. package/dist/vite.config.js +13 -0
  435. package/dist/vitest.config.d.ts +3 -0
  436. package/dist/vitest.config.d.ts.map +1 -0
  437. package/dist/vitest.config.js +15 -0
  438. package/package.json +119 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * This is a scaffold file meant for customization:
3
+ * - change it by adding new tests or modifying the existing ones
4
+ */
5
+ /**
6
+ * This is a scaffold file meant for customization:
7
+ * - change it by adding new tests or modifying the existing ones
8
+ */
9
+ import { describe, it, expect } from "vitest";
10
+ import { utils, initialGlobalState, initialLocalState, serviceSubscriptionsDocumentType, isServiceSubscriptionsDocument, assertIsServiceSubscriptionsDocument, isServiceSubscriptionsState, assertIsServiceSubscriptionsState, } from "@powerhousedao/builder-team-admin/document-models/service-subscriptions";
11
+ import { ZodError } from "zod";
12
+ describe("ServiceSubscriptions Document Model", () => {
13
+ it("should create a new ServiceSubscriptions document", () => {
14
+ const document = utils.createDocument();
15
+ expect(document).toBeDefined();
16
+ expect(document.header.documentType).toBe(serviceSubscriptionsDocumentType);
17
+ });
18
+ it("should create a new ServiceSubscriptions document with a valid initial state", () => {
19
+ const document = utils.createDocument();
20
+ expect(document.state.global).toStrictEqual(initialGlobalState);
21
+ expect(document.state.local).toStrictEqual(initialLocalState);
22
+ expect(isServiceSubscriptionsDocument(document)).toBe(true);
23
+ expect(isServiceSubscriptionsState(document.state)).toBe(true);
24
+ });
25
+ it("should reject a document that is not a ServiceSubscriptions document", () => {
26
+ const wrongDocumentType = utils.createDocument();
27
+ wrongDocumentType.header.documentType = "the-wrong-thing-1234";
28
+ try {
29
+ expect(assertIsServiceSubscriptionsDocument(wrongDocumentType)).toThrow();
30
+ expect(isServiceSubscriptionsDocument(wrongDocumentType)).toBe(false);
31
+ }
32
+ catch (error) {
33
+ expect(error).toBeInstanceOf(ZodError);
34
+ }
35
+ });
36
+ const wrongState = utils.createDocument();
37
+ // @ts-expect-error - we are testing the error case
38
+ wrongState.state.global = {
39
+ ...{ notWhat: "you want" },
40
+ };
41
+ try {
42
+ expect(isServiceSubscriptionsState(wrongState.state)).toBe(false);
43
+ expect(assertIsServiceSubscriptionsState(wrongState.state)).toThrow();
44
+ expect(isServiceSubscriptionsDocument(wrongState)).toBe(false);
45
+ expect(assertIsServiceSubscriptionsDocument(wrongState)).toThrow();
46
+ }
47
+ catch (error) {
48
+ expect(error).toBeInstanceOf(ZodError);
49
+ }
50
+ const wrongInitialState = utils.createDocument();
51
+ // @ts-expect-error - we are testing the error case
52
+ wrongInitialState.initialState.global = {
53
+ ...{ notWhat: "you want" },
54
+ };
55
+ try {
56
+ expect(isServiceSubscriptionsState(wrongInitialState.state)).toBe(false);
57
+ expect(assertIsServiceSubscriptionsState(wrongInitialState.state)).toThrow();
58
+ expect(isServiceSubscriptionsDocument(wrongInitialState)).toBe(false);
59
+ expect(assertIsServiceSubscriptionsDocument(wrongInitialState)).toThrow();
60
+ }
61
+ catch (error) {
62
+ expect(error).toBeInstanceOf(ZodError);
63
+ }
64
+ const missingIdInHeader = utils.createDocument();
65
+ // @ts-expect-error - we are testing the error case
66
+ delete missingIdInHeader.header.id;
67
+ try {
68
+ expect(isServiceSubscriptionsDocument(missingIdInHeader)).toBe(false);
69
+ expect(assertIsServiceSubscriptionsDocument(missingIdInHeader)).toThrow();
70
+ }
71
+ catch (error) {
72
+ expect(error).toBeInstanceOf(ZodError);
73
+ }
74
+ const missingNameInHeader = utils.createDocument();
75
+ // @ts-expect-error - we are testing the error case
76
+ delete missingNameInHeader.header.name;
77
+ try {
78
+ expect(isServiceSubscriptionsDocument(missingNameInHeader)).toBe(false);
79
+ expect(assertIsServiceSubscriptionsDocument(missingNameInHeader)).toThrow();
80
+ }
81
+ catch (error) {
82
+ expect(error).toBeInstanceOf(ZodError);
83
+ }
84
+ const missingCreatedAtUtcIsoInHeader = utils.createDocument();
85
+ // @ts-expect-error - we are testing the error case
86
+ delete missingCreatedAtUtcIsoInHeader.header.createdAtUtcIso;
87
+ try {
88
+ expect(isServiceSubscriptionsDocument(missingCreatedAtUtcIsoInHeader)).toBe(false);
89
+ expect(assertIsServiceSubscriptionsDocument(missingCreatedAtUtcIsoInHeader)).toThrow();
90
+ }
91
+ catch (error) {
92
+ expect(error).toBeInstanceOf(ZodError);
93
+ }
94
+ const missingLastModifiedAtUtcIsoInHeader = utils.createDocument();
95
+ // @ts-expect-error - we are testing the error case
96
+ delete missingLastModifiedAtUtcIsoInHeader.header.lastModifiedAtUtcIso;
97
+ try {
98
+ expect(isServiceSubscriptionsDocument(missingLastModifiedAtUtcIsoInHeader)).toBe(false);
99
+ expect(assertIsServiceSubscriptionsDocument(missingLastModifiedAtUtcIsoInHeader)).toThrow();
100
+ }
101
+ catch (error) {
102
+ expect(error).toBeInstanceOf(ZodError);
103
+ }
104
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This is a scaffold file meant for customization:
3
+ * - change it by adding new tests or modifying the existing ones
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=subscriptions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/service-subscriptions/src/tests/subscriptions.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * This is a scaffold file meant for customization:
3
+ * - change it by adding new tests or modifying the existing ones
4
+ */
5
+ import { describe, it, expect } from "vitest";
6
+ import { generateMock } from "@powerhousedao/codegen";
7
+ import { reducer, utils, isServiceSubscriptionsDocument, addSubscription, AddSubscriptionInputSchema, updateSubscription, UpdateSubscriptionInputSchema, updateSubscriptionStatus, UpdateSubscriptionStatusInputSchema, deleteSubscription, DeleteSubscriptionInputSchema, setTotalSeats, SetTotalSeatsInputSchema, assignMember, AssignMemberInputSchema, unassignMember, UnassignMemberInputSchema, } from "@powerhousedao/builder-team-admin/document-models/service-subscriptions";
8
+ describe("Subscriptions Operations", () => {
9
+ it("should handle addSubscription operation", () => {
10
+ const document = utils.createDocument();
11
+ const input = generateMock(AddSubscriptionInputSchema());
12
+ const updatedDocument = reducer(document, addSubscription(input));
13
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
14
+ expect(updatedDocument.operations.global).toHaveLength(1);
15
+ expect(updatedDocument.operations.global[0].action.type).toBe("ADD_SUBSCRIPTION");
16
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
17
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
18
+ });
19
+ it("should handle updateSubscription operation", () => {
20
+ const document = utils.createDocument();
21
+ const input = generateMock(UpdateSubscriptionInputSchema());
22
+ const updatedDocument = reducer(document, updateSubscription(input));
23
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
24
+ expect(updatedDocument.operations.global).toHaveLength(1);
25
+ expect(updatedDocument.operations.global[0].action.type).toBe("UPDATE_SUBSCRIPTION");
26
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
27
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
28
+ });
29
+ it("should handle updateSubscriptionStatus operation", () => {
30
+ const document = utils.createDocument();
31
+ const input = generateMock(UpdateSubscriptionStatusInputSchema());
32
+ const updatedDocument = reducer(document, updateSubscriptionStatus(input));
33
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
34
+ expect(updatedDocument.operations.global).toHaveLength(1);
35
+ expect(updatedDocument.operations.global[0].action.type).toBe("UPDATE_SUBSCRIPTION_STATUS");
36
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
37
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
38
+ });
39
+ it("should handle deleteSubscription operation", () => {
40
+ const document = utils.createDocument();
41
+ const input = generateMock(DeleteSubscriptionInputSchema());
42
+ const updatedDocument = reducer(document, deleteSubscription(input));
43
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
44
+ expect(updatedDocument.operations.global).toHaveLength(1);
45
+ expect(updatedDocument.operations.global[0].action.type).toBe("DELETE_SUBSCRIPTION");
46
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
47
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
48
+ });
49
+ it("should handle setTotalSeats operation", () => {
50
+ const document = utils.createDocument();
51
+ const input = generateMock(SetTotalSeatsInputSchema());
52
+ const updatedDocument = reducer(document, setTotalSeats(input));
53
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
54
+ expect(updatedDocument.operations.global).toHaveLength(1);
55
+ expect(updatedDocument.operations.global[0].action.type).toBe("SET_TOTAL_SEATS");
56
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
57
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
58
+ });
59
+ it("should handle assignMember operation", () => {
60
+ const document = utils.createDocument();
61
+ const input = generateMock(AssignMemberInputSchema());
62
+ const updatedDocument = reducer(document, assignMember(input));
63
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
64
+ expect(updatedDocument.operations.global).toHaveLength(1);
65
+ expect(updatedDocument.operations.global[0].action.type).toBe("ASSIGN_MEMBER");
66
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
67
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
68
+ });
69
+ it("should handle unassignMember operation", () => {
70
+ const document = utils.createDocument();
71
+ const input = generateMock(UnassignMemberInputSchema());
72
+ const updatedDocument = reducer(document, unassignMember(input));
73
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
74
+ expect(updatedDocument.operations.global).toHaveLength(1);
75
+ expect(updatedDocument.operations.global[0].action.type).toBe("UNASSIGN_MEMBER");
76
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
77
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
78
+ });
79
+ });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This is a scaffold file meant for customization:
3
+ * - change it by adding new tests or modifying the existing ones
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=vendors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendors.test.d.ts","sourceRoot":"","sources":["../../../../../document-models/service-subscriptions/src/tests/vendors.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * This is a scaffold file meant for customization:
3
+ * - change it by adding new tests or modifying the existing ones
4
+ */
5
+ import { describe, it, expect } from "vitest";
6
+ import { generateMock } from "@powerhousedao/codegen";
7
+ import { reducer, utils, isServiceSubscriptionsDocument, addVendor, AddVendorInputSchema, updateVendor, UpdateVendorInputSchema, deleteVendor, DeleteVendorInputSchema, } from "@powerhousedao/builder-team-admin/document-models/service-subscriptions";
8
+ describe("Vendors Operations", () => {
9
+ it("should handle addVendor operation", () => {
10
+ const document = utils.createDocument();
11
+ const input = generateMock(AddVendorInputSchema());
12
+ const updatedDocument = reducer(document, addVendor(input));
13
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
14
+ expect(updatedDocument.operations.global).toHaveLength(1);
15
+ expect(updatedDocument.operations.global[0].action.type).toBe("ADD_VENDOR");
16
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
17
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
18
+ });
19
+ it("should handle updateVendor operation", () => {
20
+ const document = utils.createDocument();
21
+ const input = generateMock(UpdateVendorInputSchema());
22
+ const updatedDocument = reducer(document, updateVendor(input));
23
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
24
+ expect(updatedDocument.operations.global).toHaveLength(1);
25
+ expect(updatedDocument.operations.global[0].action.type).toBe("UPDATE_VENDOR");
26
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
27
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
28
+ });
29
+ it("should handle deleteVendor operation", () => {
30
+ const document = utils.createDocument();
31
+ const input = generateMock(DeleteVendorInputSchema());
32
+ const updatedDocument = reducer(document, deleteVendor(input));
33
+ expect(isServiceSubscriptionsDocument(updatedDocument)).toBe(true);
34
+ expect(updatedDocument.operations.global).toHaveLength(1);
35
+ expect(updatedDocument.operations.global[0].action.type).toBe("DELETE_VENDOR");
36
+ expect(updatedDocument.operations.global[0].action.input).toStrictEqual(input);
37
+ expect(updatedDocument.operations.global[0].index).toEqual(0);
38
+ });
39
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../document-models/service-subscriptions/src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { ServiceSubscriptionsPHState } from "./gen/types.js";
2
+ /** Utils for the ServiceSubscriptions document model */
3
+ export declare const utils: {
4
+ fileExtension: string;
5
+ createState: import("document-model").CreateState<ServiceSubscriptionsPHState>;
6
+ createDocument: import("document-model").CreateDocument<ServiceSubscriptionsPHState>;
7
+ loadFromInput: import("document-model").LoadFromInput<ServiceSubscriptionsPHState>;
8
+ saveToFileHandle: import("document-model").SaveToFileHandle;
9
+ isStateOfType: import("document-model").IsStateOfType<ServiceSubscriptionsPHState>;
10
+ assertIsStateOfType: import("document-model").AssertIsStateOfType<ServiceSubscriptionsPHState>;
11
+ isDocumentOfType: import("document-model").IsDocumentOfType<ServiceSubscriptionsPHState>;
12
+ assertIsDocumentOfType: import("document-model").AssertIsDocumentOfType<ServiceSubscriptionsPHState>;
13
+ };
14
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../document-models/service-subscriptions/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAIlE,wDAAwD;AACxD,eAAO,MAAM,KAAK;;;;;;;;;;CAGyC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { utils as genUtils } from "./gen/utils.js";
2
+ import * as customUtils from "./src/utils.js";
3
+ /** Utils for the ServiceSubscriptions document model */
4
+ export const utils = {
5
+ ...genUtils,
6
+ ...customUtils,
7
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Document creation UI component.
3
+ * Displays available document types as clickable buttons.
4
+ */
5
+ export declare function CreateDocument(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=CreateDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateDocument.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/CreateDocument.tsx"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,cAAc,4CAsB7B"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { showCreateDocumentModal, useAllowedDocumentModelModules, } from "@powerhousedao/reactor-browser";
3
+ /**
4
+ * Document creation UI component.
5
+ * Displays available document types as clickable buttons.
6
+ */
7
+ export function CreateDocument() {
8
+ const allowedDocumentModelModules = useAllowedDocumentModelModules();
9
+ return (_jsxs("div", { children: [_jsx("h3", { className: "mb-3 mt-4 text-sm font-bold text-gray-600", children: "Create document" }), _jsx("div", { className: "flex w-full flex-wrap gap-4", children: allowedDocumentModelModules?.map((documentModelModule) => {
10
+ return (_jsx(CreateDocumentButton, { documentModelModule: documentModelModule }, documentModelModule.documentModel.global.id));
11
+ }) })] }));
12
+ }
13
+ function CreateDocumentButton({ documentModelModule }) {
14
+ const documentType = documentModelModule.documentModel.global.id;
15
+ const documentModelName = documentModelModule.documentModel.global.name || documentType;
16
+ const documentModelDescription = documentModelModule.documentModel.global.description;
17
+ return (_jsx("button", { className: "cursor-pointer rounded-md bg-gray-200 py-2 px-3 hover:bg-gray-300", title: documentModelName, "aria-description": documentModelDescription, onClick: () => showCreateDocumentModal(documentType), children: documentModelName }));
18
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Main overview dashboard showing aggregated data from all document types in the drive.
3
+ * Displays: Builder profile, team members, subscriptions stats, and expense reports stats.
4
+ */
5
+ export declare function DriveContents(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=DriveContents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DriveContents.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/DriveContents.tsx"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,aAAa,4CAoE5B"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { useDocumentsInSelectedDrive } from "@powerhousedao/reactor-browser";
4
+ import { ProfileHeader } from "./overview/ProfileHeader.js";
5
+ import { TeamMembersOverview } from "./overview/TeamMembersOverview.js";
6
+ import { SubscriptionsStats, SubscriptionsEmptyState, } from "./overview/SubscriptionsStats.js";
7
+ import { ExpenseReportsStats } from "./ExpenseReportsStats.js";
8
+ /**
9
+ * Main overview dashboard showing aggregated data from all document types in the drive.
10
+ * Displays: Builder profile, team members, subscriptions stats, and expense reports stats.
11
+ */
12
+ export function DriveContents() {
13
+ const documentsInDrive = useDocumentsInSelectedDrive();
14
+ // Extract builder profile document
15
+ const builderProfileDoc = useMemo(() => {
16
+ if (!documentsInDrive)
17
+ return null;
18
+ return (documentsInDrive.find((doc) => doc.header.documentType === "powerhouse/builder-profile") ?? null);
19
+ }, [documentsInDrive]);
20
+ // Extract service subscriptions document
21
+ const serviceSubscriptionsDoc = useMemo(() => {
22
+ if (!documentsInDrive)
23
+ return null;
24
+ return (documentsInDrive.find((doc) => doc.header.documentType === "powerhouse/service-subscriptions") ?? null);
25
+ }, [documentsInDrive]);
26
+ // Extract all expense report documents
27
+ const expenseReportDocs = useMemo(() => {
28
+ if (!documentsInDrive)
29
+ return [];
30
+ return documentsInDrive.filter((doc) => doc.header.documentType === "powerhouse/expense-report");
31
+ }, [documentsInDrive]);
32
+ // Get contributors from builder profile
33
+ const contributors = builderProfileDoc?.state.global.contributors;
34
+ // Get subscriptions from service subscriptions doc
35
+ const subscriptions = serviceSubscriptionsDoc?.state.global.subscriptions;
36
+ const hasExpenseReports = expenseReportDocs.length > 0;
37
+ return (_jsx("div", { className: "min-h-full bg-slate-50/50 px-6 py-6", children: _jsxs("div", { className: "mx-auto max-w-5xl space-y-8", children: [_jsx(ProfileHeader, { builderProfileDoc: builderProfileDoc }), _jsx(TeamMembersOverview, { contributors: contributors }), subscriptions ? (_jsx(SubscriptionsStats, { subscriptions: subscriptions })) : (_jsx(SubscriptionsEmptyState, {})), hasExpenseReports && (_jsxs("div", { className: "space-y-4", children: [_jsx("h2", { className: "text-lg font-semibold text-slate-900", children: "Expense Reports" }), _jsx(ExpenseReportsStats, { expenseReportDocuments: expenseReportDocs })] }))] }) }));
38
+ }
@@ -0,0 +1,7 @@
1
+ import type { EditorProps } from "document-model";
2
+ /**
3
+ * Main drive explorer component with sidebar navigation and content area.
4
+ * Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
5
+ */
6
+ export declare function DriveExplorer({ children }: EditorProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=DriveExplorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DriveExplorer.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/DriveExplorer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWlD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,2CA2GtD"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { FolderTree } from "./FolderTree.js";
3
+ import { DriveContents } from "./DriveContents.js";
4
+ import { ContributorsSection } from "./team-members.js";
5
+ import { useDocumentsInSelectedDrive, showCreateDocumentModal, } from "@powerhousedao/reactor-browser";
6
+ import { useMemo, useState } from "react";
7
+ import { ExpenseReports } from "./expense-reports.js";
8
+ /**
9
+ * Main drive explorer component with sidebar navigation and content area.
10
+ * Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
11
+ */
12
+ export function DriveExplorer({ children }) {
13
+ // if a document is selected then it's editor will be passed as children
14
+ const showDocumentEditor = !!children;
15
+ const documentsInSelectedDrive = useDocumentsInSelectedDrive();
16
+ const [customView, setCustomView] = useState(null);
17
+ // Check if builder profile document exists
18
+ const hasBuilderProfile = useMemo(() => {
19
+ if (!documentsInSelectedDrive)
20
+ return false;
21
+ return documentsInSelectedDrive.some((doc) => doc.header.documentType === "powerhouse/builder-profile");
22
+ }, [documentsInSelectedDrive]);
23
+ // If no builder profile exists, show only the intro dialog
24
+ if (!hasBuilderProfile) {
25
+ return (_jsx("div", { className: "flex h-full items-center justify-center px-4 py-12", children: _jsxs("div", { className: "relative w-full max-w-2xl overflow-hidden rounded-2xl border border-slate-200/50 bg-gradient-to-br from-slate-50 via-blue-50/30 to-indigo-50/40 p-12 shadow-xl shadow-slate-200/50 backdrop-blur-sm", children: [_jsx("div", { className: "absolute -right-20 -top-20 h-64 w-64 rounded-full bg-gradient-to-br from-blue-400/20 to-indigo-400/20 blur-3xl" }), _jsx("div", { className: "absolute -bottom-16 -left-16 h-48 w-48 rounded-full bg-gradient-to-br from-indigo-300/20 to-purple-300/20 blur-2xl" }), _jsxs("div", { className: "relative z-10 text-center", children: [_jsx("div", { className: "mb-6 inline-flex items-center justify-center rounded-full bg-gradient-to-r from-blue-500 to-indigo-600 p-3 shadow-lg shadow-blue-500/30", children: _jsx("svg", { className: "h-8 w-8 text-white", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" }) }) }), _jsx("h2", { className: "mb-4 text-3xl font-bold tracking-tight text-slate-900", children: "Create your Builder Team Profile" }), _jsx("p", { className: "mb-8 text-lg leading-relaxed text-slate-600", children: "Get started by creating your builder profile to manage your team, services, and build your presence in the Achra ecosystem." }), _jsxs("button", { className: "group relative overflow-hidden rounded-xl bg-gradient-to-r from-blue-600 to-indigo-600 px-8 py-4 text-base font-semibold text-white shadow-lg shadow-blue-500/40 transition-all duration-300 hover:scale-105 hover:shadow-xl hover:shadow-blue-500/50 active:scale-100", onClick: () => showCreateDocumentModal("powerhouse/builder-profile"), children: [_jsxs("span", { className: "relative z-10 flex items-center gap-2", children: [_jsx("span", { children: "Create Builder Profile" }), _jsx("svg", { className: "h-5 w-5 transition-transform duration-300 group-hover:translate-x-1", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M13 7l5 5m0 0l-5 5m5-5H6" }) })] }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-blue-700 to-indigo-700 opacity-0 transition-opacity duration-300 group-hover:opacity-100" })] })] })] }) }));
26
+ }
27
+ // Render the appropriate content based on state
28
+ const renderContent = () => {
29
+ // Document editor takes priority
30
+ if (showDocumentEditor) {
31
+ return children;
32
+ }
33
+ // Custom views
34
+ if (customView === "team-members") {
35
+ return _jsx(ContributorsSection, {});
36
+ }
37
+ if (customView === "expense-reports") {
38
+ return _jsx(ExpenseReports, {});
39
+ }
40
+ // Default: folder contents
41
+ return _jsx(DriveContents, {});
42
+ };
43
+ // Normal layout when builder profile exists
44
+ return (_jsxs("div", { className: "flex h-full", children: [_jsx(FolderTree, { onCustomViewChange: setCustomView }), _jsx("div", { className: "flex-1 overflow-y-auto p-4", children: renderContent() })] }));
45
+ }
@@ -0,0 +1,3 @@
1
+ /** Shows a message when the selected drive or folder is empty */
2
+ export declare function EmptyState(): import("react/jsx-runtime").JSX.Element | null;
3
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/EmptyState.tsx"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,wBAAgB,UAAU,mDAWzB"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useNodesInSelectedDriveOrFolder } from "@powerhousedao/reactor-browser";
3
+ /** Shows a message when the selected drive or folder is empty */
4
+ export function EmptyState() {
5
+ const nodes = useNodesInSelectedDriveOrFolder();
6
+ const hasNodes = nodes.length > 0;
7
+ if (hasNodes)
8
+ return null;
9
+ return (_jsxs("div", { className: "py-12 text-center text-gray-500", children: [_jsx("p", { className: "text-lg", children: "This folder is empty" }), _jsx("p", { className: "mt-2 text-sm", children: "Create your first document or folder below" })] }));
10
+ }
@@ -0,0 +1,11 @@
1
+ import type { ExpenseReportDocument } from "@powerhousedao/builder-team-admin/document-models/expense-report";
2
+ type ExpenseReportsStatsProps = {
3
+ expenseReportDocuments: ExpenseReportDocument[];
4
+ };
5
+ /**
6
+ * Displays statistics and a line chart for expense reports.
7
+ * Shows total count, date range, total amount, and actuals over time.
8
+ */
9
+ export declare function ExpenseReportsStats({ expenseReportDocuments, }: ExpenseReportsStatsProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=ExpenseReportsStats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpenseReportsStats.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/ExpenseReportsStats.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kEAAkE,CAAC;AAS9G,KAAK,wBAAwB,GAAG;IAC9B,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;CACjD,CAAC;AAwQF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,sBAAsB,GACvB,EAAE,wBAAwB,2CA8G1B"}
@@ -0,0 +1,137 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useMemo, useState } from "react";
3
+ /**
4
+ * Formats a number as USD currency
5
+ */
6
+ function formatCurrency(value) {
7
+ return new Intl.NumberFormat("en-US", {
8
+ style: "currency",
9
+ currency: "USD",
10
+ minimumFractionDigits: 0,
11
+ maximumFractionDigits: 0,
12
+ }).format(value);
13
+ }
14
+ /**
15
+ * Formats a date as "MMM YYYY" (e.g., "Jan 2025")
16
+ */
17
+ function formatPeriod(date) {
18
+ if (!date)
19
+ return "N/A";
20
+ return date.toLocaleDateString("en-US", { month: "short", year: "numeric" });
21
+ }
22
+ /**
23
+ * Simple SVG Line Chart component with hover tooltips
24
+ */
25
+ function LineChart({ data }) {
26
+ const [hoveredPoint, setHoveredPoint] = useState(null);
27
+ // Sort data by period start date
28
+ const sortedData = useMemo(() => {
29
+ return [...data]
30
+ .filter((d) => d.periodStart !== null)
31
+ .sort((a, b) => {
32
+ if (!a.periodStart || !b.periodStart)
33
+ return 0;
34
+ return a.periodStart.getTime() - b.periodStart.getTime();
35
+ });
36
+ }, [data]);
37
+ if (sortedData.length === 0) {
38
+ return (_jsx("div", { className: "flex items-center justify-center h-48 text-gray-400", children: "No data with valid periods to display" }));
39
+ }
40
+ // Chart dimensions - increased padding to prevent clipping
41
+ const width = 450;
42
+ const height = 240;
43
+ const padding = { top: 50, right: 50, bottom: 60, left: 50 };
44
+ const chartWidth = width - padding.left - padding.right;
45
+ const chartHeight = height - padding.top - padding.bottom;
46
+ // Calculate scales
47
+ const maxActuals = Math.max(...sortedData.map((d) => d.totalActuals), 1);
48
+ const minTime = sortedData[0]?.periodStart?.getTime() ?? 0;
49
+ const maxTime = sortedData[sortedData.length - 1]?.periodStart?.getTime() ?? 1;
50
+ const timeRange = maxTime - minTime || 1;
51
+ // Generate points for the line
52
+ const points = sortedData.map((d, i) => {
53
+ const x = sortedData.length === 1
54
+ ? chartWidth / 2 + padding.left
55
+ : padding.left +
56
+ ((d.periodStart.getTime() - minTime) / timeRange) * chartWidth;
57
+ const y = padding.top + chartHeight - (d.totalActuals / maxActuals) * chartHeight;
58
+ return { x, y, data: d, index: i };
59
+ });
60
+ // Create SVG path for the line
61
+ const linePath = points.length > 1
62
+ ? points.reduce((path, point, i) => {
63
+ return (path +
64
+ (i === 0 ? `M ${point.x},${point.y}` : ` L ${point.x},${point.y}`));
65
+ }, "")
66
+ : "";
67
+ // Create area path (for gradient fill under line)
68
+ const areaPath = points.length > 1
69
+ ? linePath +
70
+ ` L ${points[points.length - 1].x},${padding.top + chartHeight}` +
71
+ ` L ${points[0].x},${padding.top + chartHeight} Z`
72
+ : "";
73
+ return (_jsxs("svg", { viewBox: `0 0 ${width} ${height}`, className: "w-full max-w-md", style: { minHeight: "200px" }, children: [_jsx("defs", { children: _jsxs("linearGradient", { id: "areaGradient", x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: "0%", stopColor: "rgb(99, 102, 241)", stopOpacity: "0.3" }), _jsx("stop", { offset: "100%", stopColor: "rgb(99, 102, 241)", stopOpacity: "0.05" })] }) }), _jsx("line", { x1: padding.left, y1: padding.top, x2: padding.left, y2: padding.top + chartHeight, stroke: "#d1d5db", strokeWidth: "1" }), _jsx("line", { x1: padding.left, y1: padding.top + chartHeight, x2: width - 5, y2: padding.top + chartHeight, stroke: "#374151", strokeWidth: "1.5" }), _jsx("polygon", { points: `${width - 5},${padding.top + chartHeight - 4} ${width - 5},${padding.top + chartHeight + 4} ${width},${padding.top + chartHeight}`, fill: "#374151" }), areaPath && _jsx("path", { d: areaPath, fill: "url(#areaGradient)" }), linePath && (_jsx("path", { d: linePath, fill: "none", stroke: "rgb(99, 102, 241)", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" })), points.map((point, i) => (_jsxs("g", { children: [_jsx("circle", { cx: point.x, cy: point.y, r: "20", fill: "transparent", style: { cursor: "pointer" }, onMouseEnter: () => setHoveredPoint(i), onMouseLeave: () => setHoveredPoint(null) }), _jsx("circle", { cx: point.x, cy: point.y, r: hoveredPoint === i ? 6 : 4, fill: "white", stroke: "rgb(99, 102, 241)", strokeWidth: "2", style: { transition: "r 0.15s ease" } }), hoveredPoint === i && (_jsxs("g", { children: [_jsx("rect", { x: point.x - 45, y: point.y - 35, width: "90", height: "24", rx: "4", fill: "#1f2937" }), _jsx("polygon", { points: `${point.x - 5},${point.y - 11} ${point.x + 5},${point.y - 11} ${point.x},${point.y - 6}`, fill: "#1f2937" }), _jsx("text", { x: point.x, y: point.y - 18, fontSize: "12", fill: "white", textAnchor: "middle", fontWeight: "500", children: formatCurrency(point.data.totalActuals) })] }))] }, i))), sortedData.length > 0 && (_jsxs(_Fragment, { children: [_jsx("text", { x: points[0].x, y: padding.top + chartHeight + 20, fontSize: "11", fill: "#6b7280", textAnchor: "middle", children: formatPeriod(sortedData[0].periodStart) }), sortedData.length > 1 && (_jsx("text", { x: points[points.length - 1].x, y: padding.top + chartHeight + 20, fontSize: "11", fill: "#6b7280", textAnchor: "middle", children: formatPeriod(sortedData[sortedData.length - 1].periodStart) }))] })), _jsx("text", { x: padding.left - 5, y: padding.top - 10, fontSize: "14", fill: "#374151", fontWeight: "bold", children: "$" }), _jsx("text", { x: width / 2, y: 16, fontSize: "14", fill: "#374151", textAnchor: "middle", fontWeight: "600", children: "Actuals Over Time" }), _jsxs("g", { transform: `translate(${width / 2 - 50}, ${height - 10})`, children: [_jsx("circle", { cx: "0", cy: "-4", r: "4", fill: "rgb(99, 102, 241)" }), _jsx("text", { x: "10", y: "0", fontSize: "11", fill: "#6b7280", children: "Total Actuals (USD)" })] })] }));
74
+ }
75
+ /**
76
+ * Displays statistics and a line chart for expense reports.
77
+ * Shows total count, date range, total amount, and actuals over time.
78
+ */
79
+ export function ExpenseReportsStats({ expenseReportDocuments, }) {
80
+ // Extract and process data from expense report documents
81
+ const chartData = useMemo(() => {
82
+ return expenseReportDocuments.map((doc) => {
83
+ const state = doc.state.global;
84
+ // First try to get total actuals from group totals
85
+ let totalActuals = 0;
86
+ if (state.wallets) {
87
+ for (const wallet of state.wallets) {
88
+ // Try group totals first
89
+ if (wallet.totals) {
90
+ for (const groupTotal of wallet.totals) {
91
+ if (groupTotal?.totalActuals) {
92
+ totalActuals += groupTotal.totalActuals;
93
+ }
94
+ }
95
+ }
96
+ }
97
+ // If group totals are empty/zero, fall back to summing line item actuals
98
+ if (totalActuals === 0) {
99
+ for (const wallet of state.wallets) {
100
+ if (wallet.lineItems) {
101
+ for (const lineItem of wallet.lineItems) {
102
+ if (lineItem?.actuals) {
103
+ totalActuals += lineItem.actuals;
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ return {
111
+ periodStart: state.periodStart ? new Date(state.periodStart) : null,
112
+ periodEnd: state.periodEnd ? new Date(state.periodEnd) : null,
113
+ totalActuals,
114
+ documentName: doc.header.name,
115
+ };
116
+ });
117
+ }, [expenseReportDocuments]);
118
+ // Calculate summary stats
119
+ const stats = useMemo(() => {
120
+ const validPeriods = chartData.filter((d) => d.periodStart !== null);
121
+ const sortedByStart = [...validPeriods].sort((a, b) => {
122
+ if (!a.periodStart || !b.periodStart)
123
+ return 0;
124
+ return a.periodStart.getTime() - b.periodStart.getTime();
125
+ });
126
+ const earliestPeriod = sortedByStart[0]?.periodStart ?? null;
127
+ const latestPeriod = sortedByStart[sortedByStart.length - 1]?.periodStart ?? null;
128
+ const totalActualsSum = chartData.reduce((sum, d) => sum + d.totalActuals, 0);
129
+ return {
130
+ count: expenseReportDocuments.length,
131
+ earliestPeriod,
132
+ latestPeriod,
133
+ totalActualsSum,
134
+ };
135
+ }, [chartData, expenseReportDocuments.length]);
136
+ return (_jsx("div", { className: "bg-white rounded-xl p-6 mb-6 border border-gray-200 shadow-sm", children: _jsxs("div", { className: "flex flex-row items-center justify-between gap-8", children: [_jsxs("div", { className: "space-y-3 flex-shrink-0", children: [_jsx("h3", { className: "text-lg font-semibold text-gray-600 mb-4", children: "Some Stats :" }), _jsxs("div", { className: "space-y-2 text-gray-700", children: [_jsxs("p", { children: [_jsx("span", { className: "text-gray-500", children: "Total Expense Reports :" }), " ", _jsx("span", { className: "font-semibold text-xl text-gray-900", children: stats.count })] }), _jsxs("p", { children: [_jsx("span", { className: "text-gray-500", children: "Start Period :" }), " ", _jsx("span", { className: "font-medium text-gray-900", children: formatPeriod(stats.earliestPeriod) })] }), _jsxs("p", { children: [_jsx("span", { className: "text-gray-500", children: "Latest Period :" }), " ", _jsx("span", { className: "font-medium text-gray-900", children: formatPeriod(stats.latestPeriod) })] }), _jsxs("p", { children: [_jsx("span", { className: "text-gray-500", children: "Total Amount :" }), " ", _jsx("span", { className: "font-semibold text-xl text-indigo-600", children: formatCurrency(stats.totalActualsSum) })] })] })] }), _jsx("div", { className: "flex-1 max-w-md", children: _jsx(LineChart, { data: chartData }) })] }) }));
137
+ }
@@ -0,0 +1,3 @@
1
+ /** Shows the files in the selected drive or folder */
2
+ export declare function Files(): import("react/jsx-runtime").JSX.Element | null;
3
+ //# sourceMappingURL=Files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Files.d.ts","sourceRoot":"","sources":["../../../../editors/builder-team-admin/components/Files.tsx"],"names":[],"mappings":"AAMA,sDAAsD;AACtD,wBAAgB,KAAK,mDAiBpB"}