@powerhousedao/contributor-billing 0.1.40 → 0.1.42

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 (307) hide show
  1. package/dist/document-models/document-models.d.ts.map +1 -1
  2. package/dist/document-models/document-models.js +2 -0
  3. package/dist/document-models/index.d.ts +1 -0
  4. package/dist/document-models/index.d.ts.map +1 -1
  5. package/dist/document-models/index.js +1 -0
  6. package/dist/document-models/resource-template/actions.d.ts +32 -0
  7. package/dist/document-models/resource-template/actions.d.ts.map +1 -0
  8. package/dist/document-models/resource-template/actions.js +12 -0
  9. package/dist/document-models/resource-template/gen/actions.d.ts +14 -0
  10. package/dist/document-models/resource-template/gen/actions.d.ts.map +1 -0
  11. package/dist/document-models/resource-template/gen/actions.js +6 -0
  12. package/dist/document-models/resource-template/gen/audience-management/actions.d.ts +12 -0
  13. package/dist/document-models/resource-template/gen/audience-management/actions.d.ts.map +1 -0
  14. package/dist/document-models/resource-template/gen/audience-management/actions.js +1 -0
  15. package/dist/document-models/resource-template/gen/audience-management/creators.d.ts +5 -0
  16. package/dist/document-models/resource-template/gen/audience-management/creators.d.ts.map +1 -0
  17. package/dist/document-models/resource-template/gen/audience-management/creators.js +4 -0
  18. package/dist/document-models/resource-template/gen/audience-management/error.d.ts +21 -0
  19. package/dist/document-models/resource-template/gen/audience-management/error.d.ts.map +1 -0
  20. package/dist/document-models/resource-template/gen/audience-management/error.js +20 -0
  21. package/dist/document-models/resource-template/gen/audience-management/operations.d.ts +8 -0
  22. package/dist/document-models/resource-template/gen/audience-management/operations.d.ts.map +1 -0
  23. package/dist/document-models/resource-template/gen/audience-management/operations.js +3 -0
  24. package/dist/document-models/resource-template/gen/creators.d.ts +13 -0
  25. package/dist/document-models/resource-template/gen/creators.d.ts.map +1 -0
  26. package/dist/document-models/resource-template/gen/creators.js +12 -0
  27. package/dist/document-models/resource-template/gen/document-model.d.ts +3 -0
  28. package/dist/document-models/resource-template/gen/document-model.d.ts.map +1 -0
  29. package/dist/document-models/resource-template/gen/document-model.js +410 -0
  30. package/dist/document-models/resource-template/gen/document-schema.d.ts +408 -0
  31. package/dist/document-models/resource-template/gen/document-schema.d.ts.map +1 -0
  32. package/dist/document-models/resource-template/gen/document-schema.js +33 -0
  33. package/dist/document-models/resource-template/gen/document-type.d.ts +2 -0
  34. package/dist/document-models/resource-template/gen/document-type.d.ts.map +1 -0
  35. package/dist/document-models/resource-template/gen/document-type.js +1 -0
  36. package/dist/document-models/resource-template/gen/facet-targeting/actions.d.ts +20 -0
  37. package/dist/document-models/resource-template/gen/facet-targeting/actions.d.ts.map +1 -0
  38. package/dist/document-models/resource-template/gen/facet-targeting/actions.js +1 -0
  39. package/dist/document-models/resource-template/gen/facet-targeting/creators.d.ts +7 -0
  40. package/dist/document-models/resource-template/gen/facet-targeting/creators.d.ts.map +1 -0
  41. package/dist/document-models/resource-template/gen/facet-targeting/creators.js +6 -0
  42. package/dist/document-models/resource-template/gen/facet-targeting/error.d.ts +28 -0
  43. package/dist/document-models/resource-template/gen/facet-targeting/error.d.ts.map +1 -0
  44. package/dist/document-models/resource-template/gen/facet-targeting/error.js +29 -0
  45. package/dist/document-models/resource-template/gen/facet-targeting/operations.d.ts +10 -0
  46. package/dist/document-models/resource-template/gen/facet-targeting/operations.d.ts.map +1 -0
  47. package/dist/document-models/resource-template/gen/facet-targeting/operations.js +3 -0
  48. package/dist/document-models/resource-template/gen/index.d.ts +17 -0
  49. package/dist/document-models/resource-template/gen/index.d.ts.map +1 -0
  50. package/dist/document-models/resource-template/gen/index.js +16 -0
  51. package/dist/document-models/resource-template/gen/option-group-management/actions.d.ts +16 -0
  52. package/dist/document-models/resource-template/gen/option-group-management/actions.d.ts.map +1 -0
  53. package/dist/document-models/resource-template/gen/option-group-management/actions.js +1 -0
  54. package/dist/document-models/resource-template/gen/option-group-management/creators.d.ts +6 -0
  55. package/dist/document-models/resource-template/gen/option-group-management/creators.d.ts.map +1 -0
  56. package/dist/document-models/resource-template/gen/option-group-management/creators.js +5 -0
  57. package/dist/document-models/resource-template/gen/option-group-management/error.d.ts +28 -0
  58. package/dist/document-models/resource-template/gen/option-group-management/error.d.ts.map +1 -0
  59. package/dist/document-models/resource-template/gen/option-group-management/error.js +29 -0
  60. package/dist/document-models/resource-template/gen/option-group-management/operations.d.ts +9 -0
  61. package/dist/document-models/resource-template/gen/option-group-management/operations.d.ts.map +1 -0
  62. package/dist/document-models/resource-template/gen/option-group-management/operations.js +3 -0
  63. package/dist/document-models/resource-template/gen/ph-factories.d.ts +23 -0
  64. package/dist/document-models/resource-template/gen/ph-factories.d.ts.map +1 -0
  65. package/dist/document-models/resource-template/gen/ph-factories.js +61 -0
  66. package/dist/document-models/resource-template/gen/reducer.d.ts +3 -0
  67. package/dist/document-models/resource-template/gen/reducer.d.ts.map +1 -0
  68. package/dist/document-models/resource-template/gen/reducer.js +98 -0
  69. package/dist/document-models/resource-template/gen/schema/index.d.ts +3 -0
  70. package/dist/document-models/resource-template/gen/schema/index.d.ts.map +1 -0
  71. package/dist/document-models/resource-template/gen/schema/index.js +2 -0
  72. package/dist/document-models/resource-template/gen/schema/types.d.ts +305 -0
  73. package/dist/document-models/resource-template/gen/schema/types.d.ts.map +1 -0
  74. package/dist/document-models/resource-template/gen/schema/types.js +1 -0
  75. package/dist/document-models/resource-template/gen/schema/zod.d.ts +37 -0
  76. package/dist/document-models/resource-template/gen/schema/zod.d.ts.map +1 -0
  77. package/dist/document-models/resource-template/gen/schema/zod.js +236 -0
  78. package/dist/document-models/resource-template/gen/service-category-management/actions.d.ts +12 -0
  79. package/dist/document-models/resource-template/gen/service-category-management/actions.d.ts.map +1 -0
  80. package/dist/document-models/resource-template/gen/service-category-management/actions.js +1 -0
  81. package/dist/document-models/resource-template/gen/service-category-management/creators.d.ts +5 -0
  82. package/dist/document-models/resource-template/gen/service-category-management/creators.d.ts.map +1 -0
  83. package/dist/document-models/resource-template/gen/service-category-management/creators.js +4 -0
  84. package/dist/document-models/resource-template/gen/service-category-management/error.d.ts +2 -0
  85. package/dist/document-models/resource-template/gen/service-category-management/error.d.ts.map +1 -0
  86. package/dist/document-models/resource-template/gen/service-category-management/error.js +1 -0
  87. package/dist/document-models/resource-template/gen/service-category-management/operations.d.ts +8 -0
  88. package/dist/document-models/resource-template/gen/service-category-management/operations.d.ts.map +1 -0
  89. package/dist/document-models/resource-template/gen/service-category-management/operations.js +3 -0
  90. package/dist/document-models/resource-template/gen/service-management/actions.d.ts +24 -0
  91. package/dist/document-models/resource-template/gen/service-management/actions.d.ts.map +1 -0
  92. package/dist/document-models/resource-template/gen/service-management/actions.js +1 -0
  93. package/dist/document-models/resource-template/gen/service-management/creators.d.ts +8 -0
  94. package/dist/document-models/resource-template/gen/service-management/creators.d.ts.map +1 -0
  95. package/dist/document-models/resource-template/gen/service-management/creators.js +7 -0
  96. package/dist/document-models/resource-template/gen/service-management/error.d.ts +52 -0
  97. package/dist/document-models/resource-template/gen/service-management/error.d.ts.map +1 -0
  98. package/dist/document-models/resource-template/gen/service-management/error.js +61 -0
  99. package/dist/document-models/resource-template/gen/service-management/operations.d.ts +11 -0
  100. package/dist/document-models/resource-template/gen/service-management/operations.d.ts.map +1 -0
  101. package/dist/document-models/resource-template/gen/service-management/operations.js +3 -0
  102. package/dist/document-models/resource-template/gen/template-management/actions.d.ts +20 -0
  103. package/dist/document-models/resource-template/gen/template-management/actions.d.ts.map +1 -0
  104. package/dist/document-models/resource-template/gen/template-management/actions.js +1 -0
  105. package/dist/document-models/resource-template/gen/template-management/creators.d.ts +7 -0
  106. package/dist/document-models/resource-template/gen/template-management/creators.d.ts.map +1 -0
  107. package/dist/document-models/resource-template/gen/template-management/creators.js +6 -0
  108. package/dist/document-models/resource-template/gen/template-management/error.d.ts +2 -0
  109. package/dist/document-models/resource-template/gen/template-management/error.d.ts.map +1 -0
  110. package/dist/document-models/resource-template/gen/template-management/error.js +1 -0
  111. package/dist/document-models/resource-template/gen/template-management/operations.d.ts +10 -0
  112. package/dist/document-models/resource-template/gen/template-management/operations.d.ts.map +1 -0
  113. package/dist/document-models/resource-template/gen/template-management/operations.js +3 -0
  114. package/dist/document-models/resource-template/gen/types.d.ts +12 -0
  115. package/dist/document-models/resource-template/gen/types.d.ts.map +1 -0
  116. package/dist/document-models/resource-template/gen/types.js +1 -0
  117. package/dist/document-models/resource-template/gen/utils.d.ts +15 -0
  118. package/dist/document-models/resource-template/gen/utils.d.ts.map +1 -0
  119. package/dist/document-models/resource-template/gen/utils.js +65 -0
  120. package/dist/document-models/resource-template/hooks.d.ts +11 -0
  121. package/dist/document-models/resource-template/hooks.d.ts.map +1 -0
  122. package/dist/document-models/resource-template/hooks.js +26 -0
  123. package/dist/document-models/resource-template/index.d.ts +10 -0
  124. package/dist/document-models/resource-template/index.d.ts.map +1 -0
  125. package/dist/document-models/resource-template/index.js +9 -0
  126. package/dist/document-models/resource-template/module.d.ts +5 -0
  127. package/dist/document-models/resource-template/module.d.ts.map +1 -0
  128. package/dist/document-models/resource-template/module.js +10 -0
  129. package/dist/document-models/resource-template/reducers/audience-management.d.ts +3 -0
  130. package/dist/document-models/resource-template/reducers/audience-management.d.ts.map +1 -0
  131. package/dist/document-models/resource-template/reducers/audience-management.js +17 -0
  132. package/dist/document-models/resource-template/reducers/facet-preset-management.d.ts +59 -0
  133. package/dist/document-models/resource-template/reducers/facet-preset-management.d.ts.map +1 -0
  134. package/dist/document-models/resource-template/reducers/facet-preset-management.js +52 -0
  135. package/dist/document-models/resource-template/reducers/facet-targeting.d.ts +3 -0
  136. package/dist/document-models/resource-template/reducers/facet-targeting.d.ts.map +1 -0
  137. package/dist/document-models/resource-template/reducers/facet-targeting.js +47 -0
  138. package/dist/document-models/resource-template/reducers/option-group-management.d.ts +3 -0
  139. package/dist/document-models/resource-template/reducers/option-group-management.d.ts.map +1 -0
  140. package/dist/document-models/resource-template/reducers/option-group-management.js +44 -0
  141. package/dist/document-models/resource-template/reducers/service-category-management.d.ts +3 -0
  142. package/dist/document-models/resource-template/reducers/service-category-management.d.ts.map +1 -0
  143. package/dist/document-models/resource-template/reducers/service-category-management.js +10 -0
  144. package/dist/document-models/resource-template/reducers/service-management.d.ts +3 -0
  145. package/dist/document-models/resource-template/reducers/service-management.d.ts.map +1 -0
  146. package/dist/document-models/resource-template/reducers/service-management.js +71 -0
  147. package/dist/document-models/resource-template/reducers/template-management.d.ts +3 -0
  148. package/dist/document-models/resource-template/reducers/template-management.d.ts.map +1 -0
  149. package/dist/document-models/resource-template/reducers/template-management.js +32 -0
  150. package/dist/document-models/resource-template/src/index.d.ts +2 -0
  151. package/dist/document-models/resource-template/src/index.d.ts.map +1 -0
  152. package/dist/document-models/resource-template/src/index.js +1 -0
  153. package/dist/document-models/resource-template/src/reducers/audience-management.d.ts +3 -0
  154. package/dist/document-models/resource-template/src/reducers/audience-management.d.ts.map +1 -0
  155. package/dist/document-models/resource-template/src/reducers/audience-management.js +17 -0
  156. package/dist/document-models/resource-template/src/reducers/facet-targeting.d.ts +3 -0
  157. package/dist/document-models/resource-template/src/reducers/facet-targeting.d.ts.map +1 -0
  158. package/dist/document-models/resource-template/src/reducers/facet-targeting.js +46 -0
  159. package/dist/document-models/resource-template/src/reducers/option-group-management.d.ts +3 -0
  160. package/dist/document-models/resource-template/src/reducers/option-group-management.d.ts.map +1 -0
  161. package/dist/document-models/resource-template/src/reducers/option-group-management.js +42 -0
  162. package/dist/document-models/resource-template/src/reducers/service-category-management.d.ts +3 -0
  163. package/dist/document-models/resource-template/src/reducers/service-category-management.d.ts.map +1 -0
  164. package/dist/document-models/resource-template/src/reducers/service-category-management.js +10 -0
  165. package/dist/document-models/resource-template/src/reducers/service-management.d.ts +3 -0
  166. package/dist/document-models/resource-template/src/reducers/service-management.d.ts.map +1 -0
  167. package/dist/document-models/resource-template/src/reducers/service-management.js +68 -0
  168. package/dist/document-models/resource-template/src/reducers/template-management.d.ts +3 -0
  169. package/dist/document-models/resource-template/src/reducers/template-management.d.ts.map +1 -0
  170. package/dist/document-models/resource-template/src/reducers/template-management.js +32 -0
  171. package/dist/document-models/resource-template/src/tests/audience-management.test.d.ts +6 -0
  172. package/dist/document-models/resource-template/src/tests/audience-management.test.d.ts.map +1 -0
  173. package/dist/document-models/resource-template/src/tests/audience-management.test.js +29 -0
  174. package/dist/document-models/resource-template/src/tests/document-model.test.d.ts +10 -0
  175. package/dist/document-models/resource-template/src/tests/document-model.test.d.ts.map +1 -0
  176. package/dist/document-models/resource-template/src/tests/document-model.test.js +104 -0
  177. package/dist/document-models/resource-template/src/tests/facet-targeting.test.d.ts +6 -0
  178. package/dist/document-models/resource-template/src/tests/facet-targeting.test.d.ts.map +1 -0
  179. package/dist/document-models/resource-template/src/tests/facet-targeting.test.js +49 -0
  180. package/dist/document-models/resource-template/src/tests/option-group-management.test.d.ts +6 -0
  181. package/dist/document-models/resource-template/src/tests/option-group-management.test.d.ts.map +1 -0
  182. package/dist/document-models/resource-template/src/tests/option-group-management.test.js +39 -0
  183. package/dist/document-models/resource-template/src/tests/service-category-management.test.d.ts +6 -0
  184. package/dist/document-models/resource-template/src/tests/service-category-management.test.d.ts.map +1 -0
  185. package/dist/document-models/resource-template/src/tests/service-category-management.test.js +29 -0
  186. package/dist/document-models/resource-template/src/tests/service-management.test.d.ts +6 -0
  187. package/dist/document-models/resource-template/src/tests/service-management.test.d.ts.map +1 -0
  188. package/dist/document-models/resource-template/src/tests/service-management.test.js +59 -0
  189. package/dist/document-models/resource-template/src/tests/template-management.test.d.ts +6 -0
  190. package/dist/document-models/resource-template/src/tests/template-management.test.d.ts.map +1 -0
  191. package/dist/document-models/resource-template/src/tests/template-management.test.js +49 -0
  192. package/dist/document-models/resource-template/src/utils.d.ts +2 -0
  193. package/dist/document-models/resource-template/src/utils.d.ts.map +1 -0
  194. package/dist/document-models/resource-template/src/utils.js +1 -0
  195. package/dist/document-models/resource-template/utils.d.ts +14 -0
  196. package/dist/document-models/resource-template/utils.d.ts.map +1 -0
  197. package/dist/document-models/resource-template/utils.js +7 -0
  198. package/dist/document-models/service-offering/actions.d.ts +2 -0
  199. package/dist/document-models/service-offering/actions.d.ts.map +1 -1
  200. package/dist/document-models/service-offering/gen/document-model.d.ts.map +1 -1
  201. package/dist/document-models/service-offering/gen/document-model.js +51 -6
  202. package/dist/document-models/service-offering/gen/document-schema.d.ts +35 -16
  203. package/dist/document-models/service-offering/gen/document-schema.d.ts.map +1 -1
  204. package/dist/document-models/service-offering/gen/offering-management/actions.d.ts +10 -2
  205. package/dist/document-models/service-offering/gen/offering-management/actions.d.ts.map +1 -1
  206. package/dist/document-models/service-offering/gen/offering-management/creators.d.ts +4 -2
  207. package/dist/document-models/service-offering/gen/offering-management/creators.d.ts.map +1 -1
  208. package/dist/document-models/service-offering/gen/offering-management/creators.js +3 -1
  209. package/dist/document-models/service-offering/gen/offering-management/error.d.ts +20 -1
  210. package/dist/document-models/service-offering/gen/offering-management/error.d.ts.map +1 -1
  211. package/dist/document-models/service-offering/gen/offering-management/error.js +25 -0
  212. package/dist/document-models/service-offering/gen/offering-management/operations.d.ts +3 -1
  213. package/dist/document-models/service-offering/gen/offering-management/operations.d.ts.map +1 -1
  214. package/dist/document-models/service-offering/gen/ph-factories.d.ts.map +1 -1
  215. package/dist/document-models/service-offering/gen/ph-factories.js +1 -0
  216. package/dist/document-models/service-offering/gen/reducer.d.ts.map +1 -1
  217. package/dist/document-models/service-offering/gen/reducer.js +9 -1
  218. package/dist/document-models/service-offering/gen/schema/types.d.ts +24 -11
  219. package/dist/document-models/service-offering/gen/schema/types.d.ts.map +1 -1
  220. package/dist/document-models/service-offering/gen/schema/zod.d.ts +3 -1
  221. package/dist/document-models/service-offering/gen/schema/zod.d.ts.map +1 -1
  222. package/dist/document-models/service-offering/gen/schema/zod.js +17 -0
  223. package/dist/document-models/service-offering/gen/utils.d.ts.map +1 -1
  224. package/dist/document-models/service-offering/gen/utils.js +1 -0
  225. package/dist/document-models/service-offering/src/reducers/offering-management.d.ts.map +1 -1
  226. package/dist/document-models/service-offering/src/reducers/offering-management.js +22 -4
  227. package/dist/document-models/service-offering/src/reducers/service-management.d.ts.map +1 -1
  228. package/dist/document-models/service-offering/src/reducers/service-management.js +5 -0
  229. package/dist/document-models/service-offering/src/tests/offering-management.test.js +1 -81
  230. package/dist/document-models/service-offering/src/tests/tier-management.test.d.ts +4 -0
  231. package/dist/document-models/service-offering/src/tests/tier-management.test.d.ts.map +1 -1
  232. package/dist/document-models/service-offering/src/tests/tier-management.test.js +109 -1
  233. package/dist/editors/builder-team-admin/components/DriveExplorer.d.ts.map +1 -1
  234. package/dist/editors/builder-team-admin/components/DriveExplorer.js +4 -0
  235. package/dist/editors/builder-team-admin/components/FolderTree.d.ts +1 -1
  236. package/dist/editors/builder-team-admin/components/FolderTree.d.ts.map +1 -1
  237. package/dist/editors/builder-team-admin/components/FolderTree.js +134 -9
  238. package/dist/editors/builder-team-admin/components/ResourcesServices.d.ts +8 -0
  239. package/dist/editors/builder-team-admin/components/ResourcesServices.d.ts.map +1 -0
  240. package/dist/editors/builder-team-admin/components/ResourcesServices.js +76 -0
  241. package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.d.ts +27 -0
  242. package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.d.ts.map +1 -0
  243. package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.js +123 -0
  244. package/dist/editors/index.d.ts +1 -0
  245. package/dist/editors/index.d.ts.map +1 -1
  246. package/dist/editors/index.js +1 -0
  247. package/dist/editors/resource-template-editor/components/FacetTargeting.d.ts +9 -0
  248. package/dist/editors/resource-template-editor/components/FacetTargeting.d.ts.map +1 -0
  249. package/dist/editors/resource-template-editor/components/FacetTargeting.js +958 -0
  250. package/dist/editors/resource-template-editor/components/TemplateInfo.d.ts +9 -0
  251. package/dist/editors/resource-template-editor/components/TemplateInfo.d.ts.map +1 -0
  252. package/dist/editors/resource-template-editor/components/TemplateInfo.js +1288 -0
  253. package/dist/editors/resource-template-editor/editor.d.ts +2 -0
  254. package/dist/editors/resource-template-editor/editor.d.ts.map +1 -0
  255. package/dist/editors/resource-template-editor/editor.js +149 -0
  256. package/dist/editors/resource-template-editor/module.d.ts +4 -0
  257. package/dist/editors/resource-template-editor/module.d.ts.map +1 -0
  258. package/dist/editors/resource-template-editor/module.js +10 -0
  259. package/dist/editors/service-offering-editor/components/EditName.js +1 -1
  260. package/dist/editors/service-offering-editor/components/OfferingInfo.d.ts +1 -1
  261. package/dist/editors/service-offering-editor/components/OfferingInfo.d.ts.map +1 -1
  262. package/dist/editors/service-offering-editor/components/OfferingProgress.d.ts +10 -0
  263. package/dist/editors/service-offering-editor/components/OfferingProgress.d.ts.map +1 -0
  264. package/dist/editors/service-offering-editor/components/OfferingProgress.js +240 -0
  265. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.d.ts +9 -0
  266. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.d.ts.map +1 -0
  267. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.js +1157 -0
  268. package/dist/editors/service-offering-editor/components/ScopeAndFacets.d.ts +1 -1
  269. package/dist/editors/service-offering-editor/components/ScopeAndFacets.d.ts.map +1 -1
  270. package/dist/editors/service-offering-editor/components/ServiceCatalog.d.ts +1 -1
  271. package/dist/editors/service-offering-editor/components/ServiceCatalog.d.ts.map +1 -1
  272. package/dist/editors/service-offering-editor/components/ServiceCatalog.js +318 -1
  273. package/dist/editors/service-offering-editor/components/ServicesList.d.ts +1 -1
  274. package/dist/editors/service-offering-editor/components/ServicesList.d.ts.map +1 -1
  275. package/dist/editors/service-offering-editor/components/TabNavigation.d.ts.map +1 -1
  276. package/dist/editors/service-offering-editor/components/TabNavigation.js +17 -3
  277. package/dist/editors/service-offering-editor/components/TheMatrix.d.ts +1 -1
  278. package/dist/editors/service-offering-editor/components/TheMatrix.d.ts.map +1 -1
  279. package/dist/editors/service-offering-editor/components/TheMatrix.js +823 -29
  280. package/dist/editors/service-offering-editor/components/TierDefinition.d.ts +1 -1
  281. package/dist/editors/service-offering-editor/components/TierDefinition.d.ts.map +1 -1
  282. package/dist/editors/service-offering-editor/components/TierDefinition.js +406 -4
  283. package/dist/editors/service-offering-editor/components/TiersList.d.ts +1 -1
  284. package/dist/editors/service-offering-editor/components/TiersList.d.ts.map +1 -1
  285. package/dist/editors/service-offering-editor/editor.d.ts.map +1 -1
  286. package/dist/editors/service-offering-editor/editor.js +4 -4
  287. package/dist/index.d.ts +1 -1
  288. package/dist/index.d.ts.map +1 -1
  289. package/dist/powerhouse.manifest.json +18 -0
  290. package/dist/style.css +25 -0
  291. package/dist/subgraphs/index.d.ts +1 -0
  292. package/dist/subgraphs/index.d.ts.map +1 -1
  293. package/dist/subgraphs/index.js +1 -0
  294. package/dist/subgraphs/resource-template/index.d.ts +11 -0
  295. package/dist/subgraphs/resource-template/index.d.ts.map +1 -0
  296. package/dist/subgraphs/resource-template/index.js +11 -0
  297. package/dist/subgraphs/resource-template/resolvers.d.ts +3 -0
  298. package/dist/subgraphs/resource-template/resolvers.d.ts.map +1 -0
  299. package/dist/subgraphs/resource-template/resolvers.js +312 -0
  300. package/dist/subgraphs/resource-template/schema.d.ts +3 -0
  301. package/dist/subgraphs/resource-template/schema.d.ts.map +1 -0
  302. package/dist/subgraphs/resource-template/schema.js +262 -0
  303. package/dist/subgraphs/service-offering/resolvers.d.ts.map +1 -1
  304. package/dist/subgraphs/service-offering/resolvers.js +24 -0
  305. package/dist/subgraphs/service-offering/schema.d.ts.map +1 -1
  306. package/dist/subgraphs/service-offering/schema.js +21 -0
  307. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { DocumentDispatch } from "@powerhousedao/reactor-browser";
2
- import type { ServiceOfferingDocument, ServiceOfferingAction } from "../../../document-models/service-offering/gen/types.js";
2
+ import type { ServiceOfferingDocument, ServiceOfferingAction } from "@powerhousedao/contributor-billing/document-models/service-offering";
3
3
  interface ScopeAndFacetsProps {
4
4
  document: ServiceOfferingDocument;
5
5
  dispatch: DocumentDispatch<ServiceOfferingAction>;
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeAndFacets.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/ScopeAndFacets.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,wDAAwD,CAAC;AAehE,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;CACnD;AAgED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CA8sBzE"}
1
+ {"version":3,"file":"ScopeAndFacets.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/ScopeAndFacets.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,qEAAqE,CAAC;AAe7E,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;CACnD;AAgED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CA8sBzE"}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import type { DocumentDispatch } from "@powerhousedao/reactor-browser";
3
- import type { ServiceOfferingDocument, ServiceOfferingAction } from "../../../document-models/service-offering/gen/types.js";
3
+ import type { ServiceOfferingDocument, ServiceOfferingAction } from "@powerhousedao/contributor-billing/document-models/service-offering";
4
4
  export interface GroupMetadata {
5
5
  isSetupFormation: boolean;
6
6
  setupFee: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceCatalog.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/ServiceCatalog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAGtB,MAAM,wDAAwD,CAAC;AAiBhE,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7C,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAC9B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CACpD,CAAC;CACH;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,EAAE,mBAAmB,2CAwyBrB"}
1
+ {"version":3,"file":"ServiceCatalog.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/ServiceCatalog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAGtB,MAAM,qEAAqE,CAAC;AA0I7E,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7C,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAC9B,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CACpD,CAAC;CACH;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,gBAAgB,GACjB,EAAE,mBAAmB,2CA+6BrB"}
@@ -2,6 +2,118 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import React, { useState, useMemo, useEffect } from "react";
3
3
  import { generateId } from "document-model/core";
4
4
  import { addService, updateService, deleteService, addOptionGroup, updateOptionGroup, deleteOptionGroup, addServiceLevel, removeServiceLevel, } from "../../../document-models/service-offering/gen/creators.js";
5
+ const SERVICE_TEMPLATES = {
6
+ "Setup & Formation": [
7
+ {
8
+ title: "Entity Formation",
9
+ description: "Legal entity registration and setup",
10
+ category: "setup",
11
+ icon: "🏛️",
12
+ },
13
+ {
14
+ title: "Registered Agent",
15
+ description: "Registered agent designation for one year",
16
+ category: "setup",
17
+ icon: "📋",
18
+ },
19
+ {
20
+ title: "Operating Agreement",
21
+ description: "Custom operating agreement drafting",
22
+ category: "setup",
23
+ icon: "📄",
24
+ },
25
+ {
26
+ title: "EIN Application",
27
+ description: "Federal tax ID number application",
28
+ category: "setup",
29
+ icon: "🔢",
30
+ },
31
+ {
32
+ title: "Banking Resolution",
33
+ description: "Corporate banking resolution documents",
34
+ category: "setup",
35
+ icon: "🏦",
36
+ },
37
+ ],
38
+ "Compliance & Governance": [
39
+ {
40
+ title: "Annual Compliance Review",
41
+ description: "Yearly compliance status check and filings",
42
+ category: "recurring",
43
+ icon: "✓",
44
+ },
45
+ {
46
+ title: "Board Meeting Minutes",
47
+ description: "Professional minute-taking for board meetings",
48
+ category: "recurring",
49
+ icon: "📝",
50
+ },
51
+ {
52
+ title: "Regulatory Filing Support",
53
+ description: "Assistance with regulatory submissions",
54
+ category: "recurring",
55
+ icon: "📊",
56
+ },
57
+ {
58
+ title: "Corporate Record Maintenance",
59
+ description: "Ongoing corporate record keeping",
60
+ category: "recurring",
61
+ icon: "🗂️",
62
+ },
63
+ ],
64
+ "Accounting & Finance": [
65
+ {
66
+ title: "Bookkeeping",
67
+ description: "Monthly transaction recording and reconciliation",
68
+ category: "recurring",
69
+ icon: "📚",
70
+ },
71
+ {
72
+ title: "Financial Reporting",
73
+ description: "Monthly/quarterly financial statements",
74
+ category: "recurring",
75
+ icon: "📈",
76
+ },
77
+ {
78
+ title: "Tax Preparation",
79
+ description: "Annual tax return preparation and filing",
80
+ category: "recurring",
81
+ icon: "💰",
82
+ },
83
+ {
84
+ title: "Payroll Processing",
85
+ description: "Employee payroll and tax withholding",
86
+ category: "recurring",
87
+ icon: "💳",
88
+ },
89
+ ],
90
+ "Advisory & Support": [
91
+ {
92
+ title: "Dedicated Account Manager",
93
+ description: "Single point of contact for all services",
94
+ category: "addon",
95
+ icon: "👤",
96
+ },
97
+ {
98
+ title: "Priority Support",
99
+ description: "24/7 priority support line access",
100
+ category: "addon",
101
+ icon: "⭐",
102
+ },
103
+ {
104
+ title: "Strategic Consulting",
105
+ description: "Quarterly strategic review sessions",
106
+ category: "addon",
107
+ icon: "🎯",
108
+ },
109
+ {
110
+ title: "Legal Document Review",
111
+ description: "Contract and agreement review services",
112
+ category: "addon",
113
+ icon: "⚖️",
114
+ },
115
+ ],
116
+ };
5
117
  export function ServiceCatalog({ document, dispatch, groupMetadata, setGroupMetadata, }) {
6
118
  const { state } = document;
7
119
  const services = state.global.services ?? [];
@@ -21,6 +133,8 @@ export function ServiceCatalog({ document, dispatch, groupMetadata, setGroupMeta
21
133
  const [editGroupName, setEditGroupName] = useState("");
22
134
  const [editGroupType, setEditGroupType] = useState("recurring");
23
135
  const [editGroupSetupFee, setEditGroupSetupFee] = useState("");
136
+ // Service templates quick-add state
137
+ const [showServiceTemplates, setShowServiceTemplates] = useState(false);
24
138
  // Initialize metadata from existing services in groups when optionGroups change
25
139
  useEffect(() => {
26
140
  const metadata = {};
@@ -170,6 +284,34 @@ export function ServiceCatalog({ document, dispatch, groupMetadata, setGroupMeta
170
284
  setSelectedTierIds(new Set());
171
285
  setIsAddingService(false);
172
286
  };
287
+ // Quick-add service from template (reduces activation energy)
288
+ const handleAddFromTemplate = (template) => {
289
+ if (!selectedGroupId)
290
+ return;
291
+ const serviceId = generateId();
292
+ const now = new Date().toISOString();
293
+ const isSetupFormation = groupMetadata[selectedGroupId]?.isSetupFormation ?? false;
294
+ dispatch(addService({
295
+ id: serviceId,
296
+ title: template.title,
297
+ description: template.description,
298
+ isSetupFormation,
299
+ optionGroupId: selectedGroupId,
300
+ lastModified: now,
301
+ }));
302
+ // Auto-include in all tiers for convenience (can be changed later)
303
+ tiers.forEach((tier) => {
304
+ dispatch(addServiceLevel({
305
+ serviceLevelId: generateId(),
306
+ serviceId,
307
+ tierId: tier.id,
308
+ level: "INCLUDED",
309
+ optionGroupId: selectedGroupId,
310
+ lastModified: now,
311
+ }));
312
+ });
313
+ setShowServiceTemplates(false);
314
+ };
173
315
  const handleUpdateService = (service, updates) => {
174
316
  dispatch(updateService({
175
317
  id: service.id,
@@ -265,7 +407,13 @@ export function ServiceCatalog({ document, dispatch, groupMetadata, setGroupMeta
265
407
  setNewGroupName("");
266
408
  setNewGroupType("recurring");
267
409
  setNewGroupSetupFee("");
268
- }, className: "catalog__btn catalog__btn--secondary", children: "Cancel" })] })] })), _jsxs("div", { className: "catalog__groups", children: [setupGroups.length > 0 && (_jsx(GroupSection, { title: "Setup & Formation", color: "amber", groups: setupGroups, selectedGroupId: selectedGroupId, groupMetadata: groupMetadata, getServicesForGroup: getServicesForGroup, onSelect: setSelectedGroupId, onEdit: handleOpenEditGroup, onDelete: handleDeleteGroup })), regularGroups.length > 0 && (_jsx(GroupSection, { title: "Recurring Services", color: "emerald", groups: regularGroups, selectedGroupId: selectedGroupId, groupMetadata: groupMetadata, getServicesForGroup: getServicesForGroup, onSelect: setSelectedGroupId, onEdit: handleOpenEditGroup, onDelete: handleDeleteGroup })), addonGroups.length > 0 && (_jsx(GroupSection, { title: "Optional Add-ons", color: "violet", groups: addonGroups, selectedGroupId: selectedGroupId, groupMetadata: groupMetadata, getServicesForGroup: getServicesForGroup, onSelect: setSelectedGroupId, onEdit: handleOpenEditGroup, onDelete: handleDeleteGroup })), ungroupedServices.length > 0 && (_jsx("div", { className: "catalog__section", children: _jsxs("button", { onClick: () => setSelectedGroupId(null), className: `catalog__ungrouped-btn ${selectedGroupId === null ? "catalog__ungrouped-btn--active" : ""}`, children: [_jsx("span", { className: "catalog__ungrouped-name", children: "Ungrouped Services" }), _jsxs("span", { className: "catalog__ungrouped-count", children: [ungroupedServices.length, " services"] })] }) })), optionGroups.length === 0 && ungroupedServices.length === 0 && (_jsxs("div", { className: "catalog__empty", children: [_jsx("p", { className: "catalog__empty-title", children: "No service groups yet" }), _jsx("p", { className: "catalog__empty-text", children: "Click + to create a group" })] }))] })] }), _jsxs("main", { className: "catalog__main", children: [_jsxs("div", { className: "catalog__main-header", children: [_jsxs("div", { className: "catalog__main-info", children: [_jsx("h2", { className: "catalog__main-title", children: selectedGroup?.name || "Ungrouped Services" }), _jsx("p", { className: "catalog__main-subtitle", children: selectedGroupMeta?.isSetupFormation ? (_jsxs("span", { className: "catalog__main-meta", children: [_jsx("span", { className: "catalog__badge catalog__badge--amber", children: "Setup & Formation" }), selectedGroupMeta.setupFee && (_jsxs("span", { className: "catalog__fee-display", children: ["$", selectedGroupMeta.setupFee, " one-time fee"] }))] })) : selectedGroup?.isAddOn ? ("Optional add-on group") : selectedGroup ? ("Included in subscription") : ("Services not assigned to any group") })] }), selectedGroupId && (_jsxs("button", { onClick: () => setIsAddingService(true), className: "catalog__btn catalog__btn--primary", children: [_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M12 4v16m8-8H4" }) }), "Add Service"] }))] }), !selectedGroupId && (_jsxs("div", { className: "catalog__notice catalog__notice--info", children: [_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M12 16v-4m0-4h.01" })] }), _jsx("p", { children: "Select a service group from the sidebar to add services. Services must belong to a group to be properly managed." })] })), isAddingService && selectedGroupId && (_jsxs("div", { className: "catalog__add-service-form", children: [_jsxs("div", { className: "catalog__field", children: [_jsx("label", { className: "catalog__label", children: "Service Name" }), _jsx("input", { type: "text", value: newService.title, onChange: (e) => setNewService({ ...newService, title: e.target.value }), placeholder: "Enter service name...", className: "catalog__input", autoFocus: true })] }), _jsxs("div", { className: "catalog__field", children: [_jsx("label", { className: "catalog__label", children: "Description" }), _jsx("textarea", { value: newService.description, onChange: (e) => setNewService({
410
+ }, className: "catalog__btn catalog__btn--secondary", children: "Cancel" })] })] })), _jsxs("div", { className: "catalog__groups", children: [setupGroups.length > 0 && (_jsx(GroupSection, { title: "Setup & Formation", color: "amber", groups: setupGroups, selectedGroupId: selectedGroupId, groupMetadata: groupMetadata, getServicesForGroup: getServicesForGroup, onSelect: setSelectedGroupId, onEdit: handleOpenEditGroup, onDelete: handleDeleteGroup })), regularGroups.length > 0 && (_jsx(GroupSection, { title: "Recurring Services", color: "emerald", groups: regularGroups, selectedGroupId: selectedGroupId, groupMetadata: groupMetadata, getServicesForGroup: getServicesForGroup, onSelect: setSelectedGroupId, onEdit: handleOpenEditGroup, onDelete: handleDeleteGroup })), addonGroups.length > 0 && (_jsx(GroupSection, { title: "Optional Add-ons", color: "violet", groups: addonGroups, selectedGroupId: selectedGroupId, groupMetadata: groupMetadata, getServicesForGroup: getServicesForGroup, onSelect: setSelectedGroupId, onEdit: handleOpenEditGroup, onDelete: handleDeleteGroup })), ungroupedServices.length > 0 && (_jsx("div", { className: "catalog__section", children: _jsxs("button", { onClick: () => setSelectedGroupId(null), className: `catalog__ungrouped-btn ${selectedGroupId === null ? "catalog__ungrouped-btn--active" : ""}`, children: [_jsx("span", { className: "catalog__ungrouped-name", children: "Ungrouped Services" }), _jsxs("span", { className: "catalog__ungrouped-count", children: [ungroupedServices.length, " services"] })] }) })), optionGroups.length === 0 && ungroupedServices.length === 0 && (_jsxs("div", { className: "catalog__empty", children: [_jsx("p", { className: "catalog__empty-title", children: "No service groups yet" }), _jsx("p", { className: "catalog__empty-text", children: "Click + to create a group" })] }))] })] }), _jsxs("main", { className: "catalog__main", children: [_jsxs("div", { className: "catalog__main-header", children: [_jsxs("div", { className: "catalog__main-info", children: [_jsx("h2", { className: "catalog__main-title", children: selectedGroup?.name || "Ungrouped Services" }), _jsx("p", { className: "catalog__main-subtitle", children: selectedGroupMeta?.isSetupFormation ? (_jsxs("span", { className: "catalog__main-meta", children: [_jsx("span", { className: "catalog__badge catalog__badge--amber", children: "Setup & Formation" }), selectedGroupMeta.setupFee && (_jsxs("span", { className: "catalog__fee-display", children: ["$", selectedGroupMeta.setupFee, " one-time fee"] }))] })) : selectedGroup?.isAddOn ? ("Optional add-on group") : selectedGroup ? ("Included in subscription") : ("Services not assigned to any group") })] }), selectedGroupId && (_jsxs("div", { className: "catalog__header-actions", children: [_jsxs("button", { onClick: () => setShowServiceTemplates(!showServiceTemplates), className: "catalog__btn catalog__btn--secondary", title: "Quick-add from templates", children: [_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" }) }), "Templates"] }), _jsxs("button", { onClick: () => setIsAddingService(true), className: "catalog__btn catalog__btn--primary", children: [_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M12 4v16m8-8H4" }) }), "Add Service"] })] }))] }), showServiceTemplates && selectedGroupId && (_jsxs("div", { className: "catalog__templates-panel", children: [_jsxs("div", { className: "catalog__templates-header", children: [_jsx("h3", { className: "catalog__templates-title", children: "Quick Add from Templates" }), _jsx("button", { onClick: () => setShowServiceTemplates(false), className: "catalog__templates-close", children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M6 18L18 6M6 6l12 12" }) }) })] }), _jsx("p", { className: "catalog__templates-hint", children: "Click any template to instantly add it to this group. Services will be included in all tiers by default." }), _jsx("div", { className: "catalog__templates-grid", children: Object.entries(SERVICE_TEMPLATES).map(([category, templates]) => (_jsxs("div", { className: "catalog__template-category", children: [_jsx("h4", { className: "catalog__template-category-title", children: category }), _jsx("div", { className: "catalog__template-items", children: templates.map((template, idx) => {
411
+ // Check if service already exists
412
+ const alreadyExists = services.some((s) => s.title.toLowerCase() ===
413
+ template.title.toLowerCase());
414
+ return (_jsxs("button", { onClick: () => !alreadyExists &&
415
+ handleAddFromTemplate(template), disabled: alreadyExists, className: `catalog__template-item ${alreadyExists ? "catalog__template-item--exists" : ""}`, children: [_jsx("span", { className: "catalog__template-icon", children: template.icon }), _jsxs("div", { className: "catalog__template-info", children: [_jsx("span", { className: "catalog__template-name", children: template.title }), _jsx("span", { className: "catalog__template-desc", children: template.description })] }), alreadyExists && (_jsx("span", { className: "catalog__template-badge", children: "Added" }))] }, idx));
416
+ }) })] }, category))) })] })), !selectedGroupId && (_jsxs("div", { className: "catalog__notice catalog__notice--info", children: [_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M12 16v-4m0-4h.01" })] }), _jsx("p", { children: "Select a service group from the sidebar to add services. Services must belong to a group to be properly managed." })] })), isAddingService && selectedGroupId && (_jsxs("div", { className: "catalog__add-service-form", children: [_jsxs("div", { className: "catalog__field", children: [_jsx("label", { className: "catalog__label", children: "Service Name" }), _jsx("input", { type: "text", value: newService.title, onChange: (e) => setNewService({ ...newService, title: e.target.value }), placeholder: "Enter service name...", className: "catalog__input", autoFocus: true })] }), _jsxs("div", { className: "catalog__field", children: [_jsx("label", { className: "catalog__label", children: "Description" }), _jsx("textarea", { value: newService.description, onChange: (e) => setNewService({
269
417
  ...newService,
270
418
  description: e.target.value,
271
419
  }), placeholder: "Enter description...", rows: 2, className: "catalog__textarea" })] }), tiers.length > 0 && (_jsxs("div", { className: "catalog__field", children: [_jsx("label", { className: "catalog__label", children: "Include in Tiers" }), _jsx("div", { className: "catalog__tier-grid", children: tiers.map((tier) => {
@@ -1376,4 +1524,173 @@ const styles = `
1376
1524
  flex-direction: column;
1377
1525
  gap: 8px;
1378
1526
  }
1527
+
1528
+ /* Header Actions */
1529
+ .catalog__header-actions {
1530
+ display: flex;
1531
+ gap: 8px;
1532
+ }
1533
+
1534
+ /* Service Templates Panel */
1535
+ .catalog__templates-panel {
1536
+ background: linear-gradient(135deg, var(--so-violet-50) 0%, var(--so-slate-50) 100%);
1537
+ border: 1px solid var(--so-violet-200);
1538
+ border-radius: var(--so-radius-lg);
1539
+ padding: 20px;
1540
+ margin-bottom: 24px;
1541
+ animation: so-scale-in var(--so-transition-fast) ease-out;
1542
+ }
1543
+
1544
+ .catalog__templates-header {
1545
+ display: flex;
1546
+ align-items: center;
1547
+ justify-content: space-between;
1548
+ margin-bottom: 8px;
1549
+ }
1550
+
1551
+ .catalog__templates-title {
1552
+ font-size: 1rem;
1553
+ font-weight: 600;
1554
+ color: var(--so-slate-800);
1555
+ margin: 0;
1556
+ display: flex;
1557
+ align-items: center;
1558
+ gap: 8px;
1559
+ }
1560
+
1561
+ .catalog__templates-title::before {
1562
+ content: "⚡";
1563
+ }
1564
+
1565
+ .catalog__templates-close {
1566
+ width: 28px;
1567
+ height: 28px;
1568
+ border-radius: var(--so-radius-sm);
1569
+ background: transparent;
1570
+ border: none;
1571
+ color: var(--so-slate-400);
1572
+ cursor: pointer;
1573
+ display: flex;
1574
+ align-items: center;
1575
+ justify-content: center;
1576
+ transition: all var(--so-transition-fast);
1577
+ }
1578
+
1579
+ .catalog__templates-close:hover {
1580
+ background: white;
1581
+ color: var(--so-slate-600);
1582
+ }
1583
+
1584
+ .catalog__templates-close svg {
1585
+ width: 16px;
1586
+ height: 16px;
1587
+ }
1588
+
1589
+ .catalog__templates-hint {
1590
+ font-size: 0.8125rem;
1591
+ color: var(--so-slate-500);
1592
+ margin: 0 0 16px;
1593
+ }
1594
+
1595
+ .catalog__templates-grid {
1596
+ display: grid;
1597
+ grid-template-columns: repeat(2, 1fr);
1598
+ gap: 16px;
1599
+ }
1600
+
1601
+ .catalog__template-category {
1602
+ display: flex;
1603
+ flex-direction: column;
1604
+ gap: 8px;
1605
+ }
1606
+
1607
+ .catalog__template-category-title {
1608
+ font-size: 0.6875rem;
1609
+ font-weight: 700;
1610
+ text-transform: uppercase;
1611
+ letter-spacing: 0.06em;
1612
+ color: var(--so-slate-500);
1613
+ margin: 0;
1614
+ padding-left: 4px;
1615
+ }
1616
+
1617
+ .catalog__template-items {
1618
+ display: flex;
1619
+ flex-direction: column;
1620
+ gap: 4px;
1621
+ }
1622
+
1623
+ .catalog__template-item {
1624
+ display: flex;
1625
+ align-items: center;
1626
+ gap: 10px;
1627
+ padding: 10px 12px;
1628
+ background: white;
1629
+ border: 1px solid var(--so-slate-200);
1630
+ border-radius: var(--so-radius-md);
1631
+ cursor: pointer;
1632
+ text-align: left;
1633
+ transition: all var(--so-transition-fast);
1634
+ }
1635
+
1636
+ .catalog__template-item:hover:not(:disabled) {
1637
+ border-color: var(--so-violet-300);
1638
+ background: white;
1639
+ box-shadow: 0 2px 8px rgba(124, 58, 237, 0.1);
1640
+ transform: translateX(2px);
1641
+ }
1642
+
1643
+ .catalog__template-item:active:not(:disabled) {
1644
+ transform: translateX(0);
1645
+ }
1646
+
1647
+ .catalog__template-item--exists {
1648
+ opacity: 0.6;
1649
+ cursor: not-allowed;
1650
+ }
1651
+
1652
+ .catalog__template-icon {
1653
+ font-size: 1.25rem;
1654
+ flex-shrink: 0;
1655
+ }
1656
+
1657
+ .catalog__template-info {
1658
+ flex: 1;
1659
+ min-width: 0;
1660
+ display: flex;
1661
+ flex-direction: column;
1662
+ gap: 2px;
1663
+ }
1664
+
1665
+ .catalog__template-name {
1666
+ font-size: 0.8125rem;
1667
+ font-weight: 500;
1668
+ color: var(--so-slate-800);
1669
+ }
1670
+
1671
+ .catalog__template-desc {
1672
+ font-size: 0.6875rem;
1673
+ color: var(--so-slate-500);
1674
+ white-space: nowrap;
1675
+ overflow: hidden;
1676
+ text-overflow: ellipsis;
1677
+ }
1678
+
1679
+ .catalog__template-badge {
1680
+ padding: 2px 8px;
1681
+ font-size: 0.5625rem;
1682
+ font-weight: 700;
1683
+ text-transform: uppercase;
1684
+ letter-spacing: 0.04em;
1685
+ background: var(--so-emerald-100);
1686
+ color: var(--so-emerald-700);
1687
+ border-radius: 4px;
1688
+ flex-shrink: 0;
1689
+ }
1690
+
1691
+ @media (max-width: 900px) {
1692
+ .catalog__templates-grid {
1693
+ grid-template-columns: 1fr;
1694
+ }
1695
+ }
1379
1696
  `;
@@ -1,5 +1,5 @@
1
1
  import type { DocumentDispatch } from "@powerhousedao/reactor-browser";
2
- import type { ServiceOfferingDocument, ServiceOfferingAction } from "../../../document-models/service-offering/gen/types.js";
2
+ import type { ServiceOfferingDocument, ServiceOfferingAction } from "@powerhousedao/contributor-billing/document-models/service-offering";
3
3
  interface ServicesListProps {
4
4
  document: ServiceOfferingDocument;
5
5
  dispatch: DocumentDispatch<ServiceOfferingAction>;
@@ -1 +1 @@
1
- {"version":3,"file":"ServicesList.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/ServicesList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,wDAAwD,CAAC;AAShE,UAAU,iBAAiB;IACzB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;CACnD;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA8QrE"}
1
+ {"version":3,"file":"ServicesList.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/ServicesList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAEtB,MAAM,qEAAqE,CAAC;AAS7E,UAAU,iBAAiB;IACzB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;CACnD;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA8QrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabNavigation.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/TabNavigation.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GACb,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,YAAY,CAAC;AAgFjB,UAAU,kBAAkB;IAC1B,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,WAAW,EACX,aAAkB,GACnB,EAAE,kBAAkB,2CAsDpB"}
1
+ {"version":3,"file":"TabNavigation.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/TabNavigation.tsx"],"names":[],"mappings":"AAEA,MAAM,MAAM,KAAK,GACb,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,YAAY,CAAC;AA6EjB,UAAU,kBAAkB;IAC1B,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,WAAW,EACX,aAAkB,GACnB,EAAE,kBAAkB,2CAsDpB"}
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  const tabs = [
3
3
  {
4
4
  id: "scope-facets",
5
- label: "Scope & Facets",
6
- accentColor: "violet",
7
- icon: (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", children: [_jsx("circle", { cx: "12", cy: "8", r: "3" }), _jsx("circle", { cx: "6", cy: "16", r: "3" }), _jsx("circle", { cx: "18", cy: "16", r: "3" }), _jsx("path", { d: "M12 11v2M9 14l-1.5 1M15 14l1.5 1" })] })),
5
+ label: "Resource Template",
6
+ accentColor: "teal",
7
+ icon: (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", children: _jsx("path", { d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" }) })),
8
8
  },
9
9
  {
10
10
  id: "tier-definition",
@@ -199,6 +199,20 @@ const styles = `
199
199
  font-weight: 600;
200
200
  }
201
201
 
202
+ .so-tabs__item--active[data-accent="teal"] .so-tabs__icon-ring {
203
+ background: #ccfbf1;
204
+ box-shadow: 0 0 0 4px #f0fdfa, 0 4px 12px rgba(20, 184, 166, 0.25);
205
+ }
206
+
207
+ .so-tabs__item--active[data-accent="teal"] .so-tabs__icon {
208
+ color: #0d9488;
209
+ }
210
+
211
+ .so-tabs__item--active[data-accent="teal"] .so-tabs__label {
212
+ color: #0f766e;
213
+ font-weight: 600;
214
+ }
215
+
202
216
  .so-tabs__item--active[data-accent="emerald"] .so-tabs__icon-ring {
203
217
  background: var(--so-emerald-100);
204
218
  box-shadow: 0 0 0 4px var(--so-emerald-50), 0 4px 12px rgba(16, 185, 129, 0.25);
@@ -1,5 +1,5 @@
1
1
  import type { DocumentDispatch } from "@powerhousedao/reactor-browser";
2
- import type { ServiceOfferingDocument, ServiceOfferingAction } from "../../../document-models/service-offering/gen/types.js";
2
+ import type { ServiceOfferingDocument, ServiceOfferingAction } from "@powerhousedao/contributor-billing/document-models/service-offering";
3
3
  interface TheMatrixProps {
4
4
  document: ServiceOfferingDocument;
5
5
  dispatch: DocumentDispatch<ServiceOfferingAction>;
@@ -1 +1 @@
1
- {"version":3,"file":"TheMatrix.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/TheMatrix.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAOtB,MAAM,wDAAwD,CAAC;AAUhE,UAAU,cAAc;IACtB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAChD;AA2uCD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,QAAQ,EACR,cAAmB,GACpB,EAAE,cAAc,2CAgsBhB"}
1
+ {"version":3,"file":"TheMatrix.d.ts","sourceRoot":"","sources":["../../../../editors/service-offering-editor/components/TheMatrix.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EAOtB,MAAM,qEAAqE,CAAC;AAW7E,UAAU,cAAc;IACtB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CAChD;AA4pDD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,QAAQ,EACR,cAAmB,GACpB,EAAE,cAAc,2CA46ChB"}