@powerhousedao/contributor-billing 0.1.39 → 0.1.41

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 (260) hide show
  1. package/dist/document-models/index.d.ts +1 -0
  2. package/dist/document-models/index.d.ts.map +1 -1
  3. package/dist/document-models/index.js +1 -0
  4. package/dist/document-models/resource-template/actions.d.ts +32 -0
  5. package/dist/document-models/resource-template/actions.d.ts.map +1 -0
  6. package/dist/document-models/resource-template/actions.js +12 -0
  7. package/dist/document-models/resource-template/gen/actions.d.ts +14 -0
  8. package/dist/document-models/resource-template/gen/actions.d.ts.map +1 -0
  9. package/dist/document-models/resource-template/gen/actions.js +6 -0
  10. package/dist/document-models/resource-template/gen/audience-management/actions.d.ts +12 -0
  11. package/dist/document-models/resource-template/gen/audience-management/actions.d.ts.map +1 -0
  12. package/dist/document-models/resource-template/gen/audience-management/actions.js +1 -0
  13. package/dist/document-models/resource-template/gen/audience-management/creators.d.ts +5 -0
  14. package/dist/document-models/resource-template/gen/audience-management/creators.d.ts.map +1 -0
  15. package/dist/document-models/resource-template/gen/audience-management/creators.js +4 -0
  16. package/dist/document-models/resource-template/gen/audience-management/error.d.ts +21 -0
  17. package/dist/document-models/resource-template/gen/audience-management/error.d.ts.map +1 -0
  18. package/dist/document-models/resource-template/gen/audience-management/error.js +20 -0
  19. package/dist/document-models/resource-template/gen/audience-management/operations.d.ts +8 -0
  20. package/dist/document-models/resource-template/gen/audience-management/operations.d.ts.map +1 -0
  21. package/dist/document-models/resource-template/gen/audience-management/operations.js +3 -0
  22. package/dist/document-models/resource-template/gen/creators.d.ts +13 -0
  23. package/dist/document-models/resource-template/gen/creators.d.ts.map +1 -0
  24. package/dist/document-models/resource-template/gen/creators.js +12 -0
  25. package/dist/document-models/resource-template/gen/document-model.d.ts +3 -0
  26. package/dist/document-models/resource-template/gen/document-model.d.ts.map +1 -0
  27. package/dist/document-models/resource-template/gen/document-model.js +410 -0
  28. package/dist/document-models/resource-template/gen/document-schema.d.ts +408 -0
  29. package/dist/document-models/resource-template/gen/document-schema.d.ts.map +1 -0
  30. package/dist/document-models/resource-template/gen/document-schema.js +33 -0
  31. package/dist/document-models/resource-template/gen/document-type.d.ts +2 -0
  32. package/dist/document-models/resource-template/gen/document-type.d.ts.map +1 -0
  33. package/dist/document-models/resource-template/gen/document-type.js +1 -0
  34. package/dist/document-models/resource-template/gen/facet-targeting/actions.d.ts +20 -0
  35. package/dist/document-models/resource-template/gen/facet-targeting/actions.d.ts.map +1 -0
  36. package/dist/document-models/resource-template/gen/facet-targeting/actions.js +1 -0
  37. package/dist/document-models/resource-template/gen/facet-targeting/creators.d.ts +7 -0
  38. package/dist/document-models/resource-template/gen/facet-targeting/creators.d.ts.map +1 -0
  39. package/dist/document-models/resource-template/gen/facet-targeting/creators.js +6 -0
  40. package/dist/document-models/resource-template/gen/facet-targeting/error.d.ts +28 -0
  41. package/dist/document-models/resource-template/gen/facet-targeting/error.d.ts.map +1 -0
  42. package/dist/document-models/resource-template/gen/facet-targeting/error.js +29 -0
  43. package/dist/document-models/resource-template/gen/facet-targeting/operations.d.ts +10 -0
  44. package/dist/document-models/resource-template/gen/facet-targeting/operations.d.ts.map +1 -0
  45. package/dist/document-models/resource-template/gen/facet-targeting/operations.js +3 -0
  46. package/dist/document-models/resource-template/gen/index.d.ts +17 -0
  47. package/dist/document-models/resource-template/gen/index.d.ts.map +1 -0
  48. package/dist/document-models/resource-template/gen/index.js +16 -0
  49. package/dist/document-models/resource-template/gen/option-group-management/actions.d.ts +16 -0
  50. package/dist/document-models/resource-template/gen/option-group-management/actions.d.ts.map +1 -0
  51. package/dist/document-models/resource-template/gen/option-group-management/actions.js +1 -0
  52. package/dist/document-models/resource-template/gen/option-group-management/creators.d.ts +6 -0
  53. package/dist/document-models/resource-template/gen/option-group-management/creators.d.ts.map +1 -0
  54. package/dist/document-models/resource-template/gen/option-group-management/creators.js +5 -0
  55. package/dist/document-models/resource-template/gen/option-group-management/error.d.ts +28 -0
  56. package/dist/document-models/resource-template/gen/option-group-management/error.d.ts.map +1 -0
  57. package/dist/document-models/resource-template/gen/option-group-management/error.js +29 -0
  58. package/dist/document-models/resource-template/gen/option-group-management/operations.d.ts +9 -0
  59. package/dist/document-models/resource-template/gen/option-group-management/operations.d.ts.map +1 -0
  60. package/dist/document-models/resource-template/gen/option-group-management/operations.js +3 -0
  61. package/dist/document-models/resource-template/gen/ph-factories.d.ts +23 -0
  62. package/dist/document-models/resource-template/gen/ph-factories.d.ts.map +1 -0
  63. package/dist/document-models/resource-template/gen/ph-factories.js +61 -0
  64. package/dist/document-models/resource-template/gen/reducer.d.ts +3 -0
  65. package/dist/document-models/resource-template/gen/reducer.d.ts.map +1 -0
  66. package/dist/document-models/resource-template/gen/reducer.js +98 -0
  67. package/dist/document-models/resource-template/gen/schema/index.d.ts +3 -0
  68. package/dist/document-models/resource-template/gen/schema/index.d.ts.map +1 -0
  69. package/dist/document-models/resource-template/gen/schema/index.js +2 -0
  70. package/dist/document-models/resource-template/gen/schema/types.d.ts +305 -0
  71. package/dist/document-models/resource-template/gen/schema/types.d.ts.map +1 -0
  72. package/dist/document-models/resource-template/gen/schema/types.js +1 -0
  73. package/dist/document-models/resource-template/gen/schema/zod.d.ts +37 -0
  74. package/dist/document-models/resource-template/gen/schema/zod.d.ts.map +1 -0
  75. package/dist/document-models/resource-template/gen/schema/zod.js +236 -0
  76. package/dist/document-models/resource-template/gen/service-category-management/actions.d.ts +12 -0
  77. package/dist/document-models/resource-template/gen/service-category-management/actions.d.ts.map +1 -0
  78. package/dist/document-models/resource-template/gen/service-category-management/actions.js +1 -0
  79. package/dist/document-models/resource-template/gen/service-category-management/creators.d.ts +5 -0
  80. package/dist/document-models/resource-template/gen/service-category-management/creators.d.ts.map +1 -0
  81. package/dist/document-models/resource-template/gen/service-category-management/creators.js +4 -0
  82. package/dist/document-models/resource-template/gen/service-category-management/error.d.ts +2 -0
  83. package/dist/document-models/resource-template/gen/service-category-management/error.d.ts.map +1 -0
  84. package/dist/document-models/resource-template/gen/service-category-management/error.js +1 -0
  85. package/dist/document-models/resource-template/gen/service-category-management/operations.d.ts +8 -0
  86. package/dist/document-models/resource-template/gen/service-category-management/operations.d.ts.map +1 -0
  87. package/dist/document-models/resource-template/gen/service-category-management/operations.js +3 -0
  88. package/dist/document-models/resource-template/gen/service-management/actions.d.ts +24 -0
  89. package/dist/document-models/resource-template/gen/service-management/actions.d.ts.map +1 -0
  90. package/dist/document-models/resource-template/gen/service-management/actions.js +1 -0
  91. package/dist/document-models/resource-template/gen/service-management/creators.d.ts +8 -0
  92. package/dist/document-models/resource-template/gen/service-management/creators.d.ts.map +1 -0
  93. package/dist/document-models/resource-template/gen/service-management/creators.js +7 -0
  94. package/dist/document-models/resource-template/gen/service-management/error.d.ts +52 -0
  95. package/dist/document-models/resource-template/gen/service-management/error.d.ts.map +1 -0
  96. package/dist/document-models/resource-template/gen/service-management/error.js +61 -0
  97. package/dist/document-models/resource-template/gen/service-management/operations.d.ts +11 -0
  98. package/dist/document-models/resource-template/gen/service-management/operations.d.ts.map +1 -0
  99. package/dist/document-models/resource-template/gen/service-management/operations.js +3 -0
  100. package/dist/document-models/resource-template/gen/template-management/actions.d.ts +20 -0
  101. package/dist/document-models/resource-template/gen/template-management/actions.d.ts.map +1 -0
  102. package/dist/document-models/resource-template/gen/template-management/actions.js +1 -0
  103. package/dist/document-models/resource-template/gen/template-management/creators.d.ts +7 -0
  104. package/dist/document-models/resource-template/gen/template-management/creators.d.ts.map +1 -0
  105. package/dist/document-models/resource-template/gen/template-management/creators.js +6 -0
  106. package/dist/document-models/resource-template/gen/template-management/error.d.ts +2 -0
  107. package/dist/document-models/resource-template/gen/template-management/error.d.ts.map +1 -0
  108. package/dist/document-models/resource-template/gen/template-management/error.js +1 -0
  109. package/dist/document-models/resource-template/gen/template-management/operations.d.ts +10 -0
  110. package/dist/document-models/resource-template/gen/template-management/operations.d.ts.map +1 -0
  111. package/dist/document-models/resource-template/gen/template-management/operations.js +3 -0
  112. package/dist/document-models/resource-template/gen/types.d.ts +12 -0
  113. package/dist/document-models/resource-template/gen/types.d.ts.map +1 -0
  114. package/dist/document-models/resource-template/gen/types.js +1 -0
  115. package/dist/document-models/resource-template/gen/utils.d.ts +15 -0
  116. package/dist/document-models/resource-template/gen/utils.d.ts.map +1 -0
  117. package/dist/document-models/resource-template/gen/utils.js +65 -0
  118. package/dist/document-models/resource-template/hooks.d.ts +11 -0
  119. package/dist/document-models/resource-template/hooks.d.ts.map +1 -0
  120. package/dist/document-models/resource-template/hooks.js +26 -0
  121. package/dist/document-models/resource-template/index.d.ts +10 -0
  122. package/dist/document-models/resource-template/index.d.ts.map +1 -0
  123. package/dist/document-models/resource-template/index.js +9 -0
  124. package/dist/document-models/resource-template/module.d.ts +5 -0
  125. package/dist/document-models/resource-template/module.d.ts.map +1 -0
  126. package/dist/document-models/resource-template/module.js +10 -0
  127. package/dist/document-models/resource-template/src/index.d.ts +2 -0
  128. package/dist/document-models/resource-template/src/index.d.ts.map +1 -0
  129. package/dist/document-models/resource-template/src/index.js +1 -0
  130. package/dist/document-models/resource-template/src/reducers/audience-management.d.ts +3 -0
  131. package/dist/document-models/resource-template/src/reducers/audience-management.d.ts.map +1 -0
  132. package/dist/document-models/resource-template/src/reducers/audience-management.js +17 -0
  133. package/dist/document-models/resource-template/src/reducers/facet-targeting.d.ts +3 -0
  134. package/dist/document-models/resource-template/src/reducers/facet-targeting.d.ts.map +1 -0
  135. package/dist/document-models/resource-template/src/reducers/facet-targeting.js +46 -0
  136. package/dist/document-models/resource-template/src/reducers/option-group-management.d.ts +3 -0
  137. package/dist/document-models/resource-template/src/reducers/option-group-management.d.ts.map +1 -0
  138. package/dist/document-models/resource-template/src/reducers/option-group-management.js +42 -0
  139. package/dist/document-models/resource-template/src/reducers/service-category-management.d.ts +3 -0
  140. package/dist/document-models/resource-template/src/reducers/service-category-management.d.ts.map +1 -0
  141. package/dist/document-models/resource-template/src/reducers/service-category-management.js +10 -0
  142. package/dist/document-models/resource-template/src/reducers/service-management.d.ts +3 -0
  143. package/dist/document-models/resource-template/src/reducers/service-management.d.ts.map +1 -0
  144. package/dist/document-models/resource-template/src/reducers/service-management.js +68 -0
  145. package/dist/document-models/resource-template/src/reducers/template-management.d.ts +3 -0
  146. package/dist/document-models/resource-template/src/reducers/template-management.d.ts.map +1 -0
  147. package/dist/document-models/resource-template/src/reducers/template-management.js +32 -0
  148. package/dist/document-models/resource-template/src/tests/audience-management.test.d.ts +6 -0
  149. package/dist/document-models/resource-template/src/tests/audience-management.test.d.ts.map +1 -0
  150. package/dist/document-models/resource-template/src/tests/audience-management.test.js +29 -0
  151. package/dist/document-models/resource-template/src/tests/document-model.test.d.ts +10 -0
  152. package/dist/document-models/resource-template/src/tests/document-model.test.d.ts.map +1 -0
  153. package/dist/document-models/resource-template/src/tests/document-model.test.js +104 -0
  154. package/dist/document-models/resource-template/src/tests/facet-targeting.test.d.ts +6 -0
  155. package/dist/document-models/resource-template/src/tests/facet-targeting.test.d.ts.map +1 -0
  156. package/dist/document-models/resource-template/src/tests/facet-targeting.test.js +49 -0
  157. package/dist/document-models/resource-template/src/tests/option-group-management.test.d.ts +6 -0
  158. package/dist/document-models/resource-template/src/tests/option-group-management.test.d.ts.map +1 -0
  159. package/dist/document-models/resource-template/src/tests/option-group-management.test.js +39 -0
  160. package/dist/document-models/resource-template/src/tests/service-category-management.test.d.ts +6 -0
  161. package/dist/document-models/resource-template/src/tests/service-category-management.test.d.ts.map +1 -0
  162. package/dist/document-models/resource-template/src/tests/service-category-management.test.js +29 -0
  163. package/dist/document-models/resource-template/src/tests/service-management.test.d.ts +6 -0
  164. package/dist/document-models/resource-template/src/tests/service-management.test.d.ts.map +1 -0
  165. package/dist/document-models/resource-template/src/tests/service-management.test.js +59 -0
  166. package/dist/document-models/resource-template/src/tests/template-management.test.d.ts +6 -0
  167. package/dist/document-models/resource-template/src/tests/template-management.test.d.ts.map +1 -0
  168. package/dist/document-models/resource-template/src/tests/template-management.test.js +49 -0
  169. package/dist/document-models/resource-template/src/utils.d.ts +2 -0
  170. package/dist/document-models/resource-template/src/utils.d.ts.map +1 -0
  171. package/dist/document-models/resource-template/src/utils.js +1 -0
  172. package/dist/document-models/resource-template/utils.d.ts +14 -0
  173. package/dist/document-models/resource-template/utils.d.ts.map +1 -0
  174. package/dist/document-models/resource-template/utils.js +7 -0
  175. package/dist/document-models/service-offering/actions.d.ts +2 -0
  176. package/dist/document-models/service-offering/actions.d.ts.map +1 -1
  177. package/dist/document-models/service-offering/gen/document-model.d.ts.map +1 -1
  178. package/dist/document-models/service-offering/gen/document-model.js +47 -2
  179. package/dist/document-models/service-offering/gen/document-schema.d.ts +35 -16
  180. package/dist/document-models/service-offering/gen/document-schema.d.ts.map +1 -1
  181. package/dist/document-models/service-offering/gen/offering-management/actions.d.ts +10 -2
  182. package/dist/document-models/service-offering/gen/offering-management/actions.d.ts.map +1 -1
  183. package/dist/document-models/service-offering/gen/offering-management/creators.d.ts +4 -2
  184. package/dist/document-models/service-offering/gen/offering-management/creators.d.ts.map +1 -1
  185. package/dist/document-models/service-offering/gen/offering-management/creators.js +3 -1
  186. package/dist/document-models/service-offering/gen/offering-management/error.d.ts +20 -1
  187. package/dist/document-models/service-offering/gen/offering-management/error.d.ts.map +1 -1
  188. package/dist/document-models/service-offering/gen/offering-management/error.js +25 -0
  189. package/dist/document-models/service-offering/gen/offering-management/operations.d.ts +3 -1
  190. package/dist/document-models/service-offering/gen/offering-management/operations.d.ts.map +1 -1
  191. package/dist/document-models/service-offering/gen/ph-factories.d.ts.map +1 -1
  192. package/dist/document-models/service-offering/gen/ph-factories.js +1 -0
  193. package/dist/document-models/service-offering/gen/reducer.d.ts +1 -1
  194. package/dist/document-models/service-offering/gen/reducer.d.ts.map +1 -1
  195. package/dist/document-models/service-offering/gen/reducer.js +9 -1
  196. package/dist/document-models/service-offering/gen/schema/types.d.ts +21 -11
  197. package/dist/document-models/service-offering/gen/schema/types.d.ts.map +1 -1
  198. package/dist/document-models/service-offering/gen/schema/zod.d.ts +3 -1
  199. package/dist/document-models/service-offering/gen/schema/zod.d.ts.map +1 -1
  200. package/dist/document-models/service-offering/gen/schema/zod.js +14 -0
  201. package/dist/document-models/service-offering/gen/utils.d.ts.map +1 -1
  202. package/dist/document-models/service-offering/gen/utils.js +1 -0
  203. package/dist/document-models/service-offering/src/reducers/offering-management.d.ts.map +1 -1
  204. package/dist/document-models/service-offering/src/reducers/offering-management.js +22 -4
  205. package/dist/document-models/service-offering/src/reducers/option-group-management.d.ts.map +1 -1
  206. package/dist/document-models/service-offering/src/reducers/option-group-management.js +8 -11
  207. package/dist/document-models/service-offering/src/reducers/service-management.d.ts.map +1 -1
  208. package/dist/document-models/service-offering/src/reducers/service-management.js +12 -15
  209. package/dist/document-models/service-offering/src/reducers/tier-management.d.ts.map +1 -1
  210. package/dist/document-models/service-offering/src/reducers/tier-management.js +19 -21
  211. package/dist/document-models/service-offering/src/tests/offering-management.test.js +1 -81
  212. package/dist/document-models/service-offering/src/tests/tier-management.test.d.ts +4 -0
  213. package/dist/document-models/service-offering/src/tests/tier-management.test.d.ts.map +1 -1
  214. package/dist/document-models/service-offering/src/tests/tier-management.test.js +109 -1
  215. package/dist/editors/accounts-editor/components/AccountForm.d.ts.map +1 -1
  216. package/dist/editors/builder-team-admin/components/DriveExplorer.d.ts.map +1 -1
  217. package/dist/editors/builder-team-admin/components/DriveExplorer.js +4 -0
  218. package/dist/editors/builder-team-admin/components/FolderTree.d.ts +1 -1
  219. package/dist/editors/builder-team-admin/components/FolderTree.d.ts.map +1 -1
  220. package/dist/editors/builder-team-admin/components/FolderTree.js +134 -9
  221. package/dist/editors/builder-team-admin/components/ResourcesServices.d.ts +8 -0
  222. package/dist/editors/builder-team-admin/components/ResourcesServices.d.ts.map +1 -0
  223. package/dist/editors/builder-team-admin/components/ResourcesServices.js +76 -0
  224. package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.d.ts +27 -0
  225. package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.d.ts.map +1 -0
  226. package/dist/editors/builder-team-admin/hooks/useResourcesServicesAutoPlacement.js +123 -0
  227. package/dist/editors/index.d.ts +1 -0
  228. package/dist/editors/index.d.ts.map +1 -1
  229. package/dist/editors/index.js +1 -0
  230. package/dist/editors/resource-template-editor/components/FacetTargeting.d.ts +9 -0
  231. package/dist/editors/resource-template-editor/components/FacetTargeting.d.ts.map +1 -0
  232. package/dist/editors/resource-template-editor/components/FacetTargeting.js +451 -0
  233. package/dist/editors/resource-template-editor/components/TemplateInfo.d.ts +9 -0
  234. package/dist/editors/resource-template-editor/components/TemplateInfo.d.ts.map +1 -0
  235. package/dist/editors/resource-template-editor/components/TemplateInfo.js +988 -0
  236. package/dist/editors/resource-template-editor/editor.d.ts +2 -0
  237. package/dist/editors/resource-template-editor/editor.d.ts.map +1 -0
  238. package/dist/editors/resource-template-editor/editor.js +149 -0
  239. package/dist/editors/resource-template-editor/module.d.ts +4 -0
  240. package/dist/editors/resource-template-editor/module.d.ts.map +1 -0
  241. package/dist/editors/resource-template-editor/module.js +10 -0
  242. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.d.ts +9 -0
  243. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.d.ts.map +1 -0
  244. package/dist/editors/service-offering-editor/components/ResourceTemplateSelector.js +1050 -0
  245. package/dist/editors/service-offering-editor/components/ServicesList.d.ts.map +1 -1
  246. package/dist/editors/service-offering-editor/components/ServicesList.js +1 -1
  247. package/dist/editors/service-offering-editor/components/TabNavigation.d.ts.map +1 -1
  248. package/dist/editors/service-offering-editor/components/TabNavigation.js +17 -3
  249. package/dist/editors/service-offering-editor/components/TheMatrix.d.ts.map +1 -1
  250. package/dist/editors/service-offering-editor/components/TheMatrix.js +284 -25
  251. package/dist/editors/service-offering-editor/editor.d.ts.map +1 -1
  252. package/dist/editors/service-offering-editor/editor.js +2 -2
  253. package/dist/index.d.ts +1 -1
  254. package/dist/index.d.ts.map +1 -1
  255. package/dist/style.css +25 -0
  256. package/dist/subgraphs/budget-statements/resolvers.d.ts.map +1 -1
  257. package/dist/subgraphs/budget-statements/resolvers.js +76 -11
  258. package/dist/subgraphs/budget-statements/schema.d.ts.map +1 -1
  259. package/dist/subgraphs/budget-statements/schema.js +2 -1
  260. package/package.json +1 -1
@@ -0,0 +1,451 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState, useCallback } from "react";
3
+ import { generateId } from "document-model/core";
4
+ import { setFacetTarget, removeFacetTarget, addFacetOption, removeFacetOption, } from "../../../document-models/resource-template/gen/creators.js";
5
+ export function FacetTargeting({ document, dispatch }) {
6
+ const facetTargets = document.state.global.facetTargets;
7
+ const [showAddCategory, setShowAddCategory] = useState(false);
8
+ const [newCategoryLabel, setNewCategoryLabel] = useState("");
9
+ const [editingOptionFor, setEditingOptionFor] = useState(null);
10
+ const [newOptionId, setNewOptionId] = useState("");
11
+ const handleAddCategory = useCallback(() => {
12
+ if (!newCategoryLabel.trim())
13
+ return;
14
+ const label = newCategoryLabel.trim();
15
+ const key = label.toLowerCase().replace(/\s+/g, "-");
16
+ dispatch(setFacetTarget({
17
+ id: generateId(),
18
+ categoryKey: key,
19
+ categoryLabel: label,
20
+ selectedOptions: [],
21
+ lastModified: new Date().toISOString(),
22
+ }));
23
+ setNewCategoryLabel("");
24
+ setShowAddCategory(false);
25
+ }, [newCategoryLabel, dispatch]);
26
+ const handleRemoveCategory = useCallback((categoryKey) => {
27
+ if (window.confirm("Are you sure you want to remove this facet category and all its options?")) {
28
+ dispatch(removeFacetTarget({
29
+ categoryKey,
30
+ lastModified: new Date().toISOString(),
31
+ }));
32
+ }
33
+ }, [dispatch]);
34
+ const handleAddOption = useCallback((categoryKey) => {
35
+ if (!newOptionId.trim())
36
+ return;
37
+ dispatch(addFacetOption({
38
+ categoryKey,
39
+ optionId: newOptionId.trim(),
40
+ lastModified: new Date().toISOString(),
41
+ }));
42
+ setNewOptionId("");
43
+ setEditingOptionFor(null);
44
+ }, [newOptionId, dispatch]);
45
+ const handleRemoveOption = useCallback((categoryKey, optionId) => {
46
+ dispatch(removeFacetOption({
47
+ categoryKey,
48
+ optionId,
49
+ lastModified: new Date().toISOString(),
50
+ }));
51
+ }, [dispatch]);
52
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: styles }), _jsxs("section", { className: "facet-targeting", children: [_jsxs("div", { className: "facet-targeting__header", children: [_jsxs("div", { className: "facet-targeting__header-content", children: [_jsx("div", { className: "facet-targeting__icon", children: _jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.75", children: [_jsx("path", { d: "M9.568 3H5.25A2.25 2.25 0 003 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 005.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 009.568 3z" }), _jsx("path", { d: "M6 6h.008v.008H6V6z" })] }) }), _jsxs("div", { children: [_jsx("h3", { className: "facet-targeting__title", children: "Facet Targeting" }), _jsx("p", { className: "facet-targeting__subtitle", children: "Define configuration dimensions and their available options for this resource" })] })] }), _jsxs("button", { type: "button", className: "facet-targeting__add-btn", onClick: () => setShowAddCategory(true), children: [_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M12 5v14M5 12h14" }) }), "Add Category"] })] }), showAddCategory && (_jsx("div", { className: "facet-targeting__new-category", children: _jsxs("div", { className: "facet-targeting__new-category-form", children: [_jsxs("div", { className: "facet-targeting__form-group", children: [_jsx("label", { className: "facet-targeting__label", children: "Category Name" }), _jsx("input", { type: "text", value: newCategoryLabel, onChange: (e) => setNewCategoryLabel(e.target.value), placeholder: "e.g., Region, Environment, Storage Type", className: "facet-targeting__input", autoFocus: true, onKeyDown: (e) => {
53
+ if (e.key === "Enter")
54
+ handleAddCategory();
55
+ if (e.key === "Escape")
56
+ setShowAddCategory(false);
57
+ } })] }), _jsxs("div", { className: "facet-targeting__form-actions", children: [_jsx("button", { type: "button", className: "facet-targeting__btn facet-targeting__btn--secondary", onClick: () => {
58
+ setShowAddCategory(false);
59
+ setNewCategoryLabel("");
60
+ }, children: "Cancel" }), _jsx("button", { type: "button", className: "facet-targeting__btn facet-targeting__btn--primary", onClick: handleAddCategory, disabled: !newCategoryLabel.trim(), children: "Add Category" })] })] }) })), facetTargets.length === 0 && !showAddCategory ? (_jsxs("div", { className: "facet-targeting__empty", children: [_jsx("div", { className: "facet-targeting__empty-icon", children: _jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [_jsx("path", { d: "M9.568 3H5.25A2.25 2.25 0 003 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 005.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 009.568 3z" }), _jsx("path", { d: "M6 6h.008v.008H6V6z" })] }) }), _jsx("p", { className: "facet-targeting__empty-text", children: "No facet categories defined. Add categories like Region, Environment, or Storage Type to organize your resource options." }), _jsxs("button", { type: "button", className: "facet-targeting__btn facet-targeting__btn--primary", onClick: () => setShowAddCategory(true), children: [_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M12 5v14M5 12h14" }) }), "Add First Category"] })] })) : (_jsx("div", { className: "facet-targeting__categories", children: facetTargets.map((target) => (_jsxs("div", { className: "facet-category", children: [_jsxs("div", { className: "facet-category__header", children: [_jsxs("div", { className: "facet-category__info", children: [_jsx("span", { className: "facet-category__label", children: target.categoryLabel }), _jsx("span", { className: "facet-category__key", children: target.categoryKey })] }), _jsxs("div", { className: "facet-category__actions", children: [_jsx("button", { type: "button", className: "facet-category__btn", onClick: () => setEditingOptionFor(editingOptionFor === target.categoryKey
61
+ ? null
62
+ : target.categoryKey), title: "Add option", children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M12 5v14M5 12h14" }) }) }), _jsx("button", { type: "button", className: "facet-category__btn facet-category__btn--danger", onClick: () => handleRemoveCategory(target.categoryKey), title: "Remove category", children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" }) }) })] })] }), editingOptionFor === target.categoryKey && (_jsxs("div", { className: "facet-category__add-option", children: [_jsx("input", { type: "text", value: newOptionId, onChange: (e) => setNewOptionId(e.target.value), placeholder: "Enter option value...", className: "facet-targeting__input facet-targeting__input--sm", autoFocus: true, onKeyDown: (e) => {
63
+ if (e.key === "Enter")
64
+ handleAddOption(target.categoryKey);
65
+ if (e.key === "Escape") {
66
+ setEditingOptionFor(null);
67
+ setNewOptionId("");
68
+ }
69
+ } }), _jsx("button", { type: "button", className: "facet-targeting__btn facet-targeting__btn--primary facet-targeting__btn--sm", onClick: () => handleAddOption(target.categoryKey), disabled: !newOptionId.trim(), children: "Add" })] })), _jsx("div", { className: "facet-category__options", children: target.selectedOptions.length === 0 ? (_jsx("p", { className: "facet-category__no-options", children: "No options added yet" })) : (target.selectedOptions.map((optionId) => (_jsxs("div", { className: "facet-option", children: [_jsx("span", { className: "facet-option__label", children: optionId }), _jsx("button", { type: "button", className: "facet-option__remove", onClick: () => handleRemoveOption(target.categoryKey, optionId), title: "Remove option", children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: _jsx("path", { d: "M18 6L6 18M6 6l12 12", strokeWidth: "2" }) }) })] }, optionId)))) })] }, target.categoryKey))) }))] })] }));
70
+ }
71
+ const styles = `
72
+ .facet-targeting {
73
+ background: var(--te-surface, #ffffff);
74
+ border-radius: 16px;
75
+ padding: 24px;
76
+ box-shadow: 0 1px 3px rgba(26, 31, 54, 0.04), 0 4px 16px rgba(26, 31, 54, 0.06);
77
+ }
78
+
79
+ .facet-targeting__header {
80
+ display: flex;
81
+ align-items: flex-start;
82
+ justify-content: space-between;
83
+ margin-bottom: 20px;
84
+ }
85
+
86
+ .facet-targeting__header-content {
87
+ display: flex;
88
+ align-items: flex-start;
89
+ gap: 14px;
90
+ }
91
+
92
+ .facet-targeting__icon {
93
+ width: 40px;
94
+ height: 40px;
95
+ border-radius: 10px;
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ flex-shrink: 0;
100
+ background: #f5f3ff;
101
+ color: #7c5cff;
102
+ }
103
+
104
+ .facet-targeting__icon svg {
105
+ width: 20px;
106
+ height: 20px;
107
+ }
108
+
109
+ .facet-targeting__title {
110
+ font-size: 1rem;
111
+ font-weight: 600;
112
+ color: var(--te-ink, #1a1f36);
113
+ margin: 0 0 2px;
114
+ }
115
+
116
+ .facet-targeting__subtitle {
117
+ font-size: 0.8125rem;
118
+ color: var(--te-ink-muted, #8792a8);
119
+ margin: 0;
120
+ }
121
+
122
+ .facet-targeting__add-btn {
123
+ display: inline-flex;
124
+ align-items: center;
125
+ gap: 6px;
126
+ padding: 8px 16px;
127
+ font-family: inherit;
128
+ font-size: 0.875rem;
129
+ font-weight: 500;
130
+ color: white;
131
+ background: #14b8a6;
132
+ border: none;
133
+ border-radius: 8px;
134
+ cursor: pointer;
135
+ transition: background 0.15s ease;
136
+ }
137
+
138
+ .facet-targeting__add-btn:hover {
139
+ background: #0d9488;
140
+ }
141
+
142
+ .facet-targeting__add-btn svg {
143
+ width: 16px;
144
+ height: 16px;
145
+ }
146
+
147
+ .facet-targeting__new-category {
148
+ background: var(--te-surface-raised, #fafbfc);
149
+ border: 1.5px solid var(--te-border, #e4e8f0);
150
+ border-radius: 12px;
151
+ padding: 16px;
152
+ margin-bottom: 16px;
153
+ }
154
+
155
+ .facet-targeting__new-category-form {
156
+ display: flex;
157
+ flex-direction: column;
158
+ gap: 12px;
159
+ }
160
+
161
+ .facet-targeting__form-row {
162
+ display: grid;
163
+ grid-template-columns: 1fr 1fr;
164
+ gap: 12px;
165
+ }
166
+
167
+ .facet-targeting__form-group {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: 6px;
171
+ }
172
+
173
+ .facet-targeting__label {
174
+ font-size: 0.75rem;
175
+ font-weight: 600;
176
+ color: var(--te-ink-muted, #8792a8);
177
+ text-transform: uppercase;
178
+ letter-spacing: 0.05em;
179
+ }
180
+
181
+ .facet-targeting__input {
182
+ width: 100%;
183
+ padding: 10px 14px;
184
+ font-family: inherit;
185
+ font-size: 0.875rem;
186
+ border: 1.5px solid var(--te-border, #e4e8f0);
187
+ border-radius: 8px;
188
+ background: var(--te-surface, #ffffff);
189
+ color: var(--te-ink, #1a1f36);
190
+ transition: all 0.15s ease;
191
+ box-sizing: border-box;
192
+ }
193
+
194
+ .facet-targeting__input:focus {
195
+ outline: none;
196
+ border-color: #14b8a6;
197
+ box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.1);
198
+ }
199
+
200
+ .facet-targeting__input--sm {
201
+ padding: 8px 12px;
202
+ font-size: 0.8125rem;
203
+ }
204
+
205
+ .facet-targeting__form-actions {
206
+ display: flex;
207
+ justify-content: flex-end;
208
+ gap: 8px;
209
+ }
210
+
211
+ .facet-targeting__btn {
212
+ display: inline-flex;
213
+ align-items: center;
214
+ justify-content: center;
215
+ gap: 6px;
216
+ padding: 8px 16px;
217
+ font-family: inherit;
218
+ font-size: 0.875rem;
219
+ font-weight: 500;
220
+ border-radius: 8px;
221
+ cursor: pointer;
222
+ transition: all 0.15s ease;
223
+ border: none;
224
+ }
225
+
226
+ .facet-targeting__btn svg {
227
+ width: 16px;
228
+ height: 16px;
229
+ }
230
+
231
+ .facet-targeting__btn--primary {
232
+ background: #14b8a6;
233
+ color: white;
234
+ }
235
+
236
+ .facet-targeting__btn--primary:hover:not(:disabled) {
237
+ background: #0d9488;
238
+ }
239
+
240
+ .facet-targeting__btn--primary:disabled {
241
+ opacity: 0.5;
242
+ cursor: not-allowed;
243
+ }
244
+
245
+ .facet-targeting__btn--secondary {
246
+ background: var(--te-surface-raised, #fafbfc);
247
+ color: var(--te-ink-light, #4a5578);
248
+ border: 1px solid var(--te-border, #e4e8f0);
249
+ }
250
+
251
+ .facet-targeting__btn--secondary:hover {
252
+ background: var(--te-border-light, #f0f2f7);
253
+ }
254
+
255
+ .facet-targeting__btn--sm {
256
+ padding: 6px 12px;
257
+ font-size: 0.8125rem;
258
+ }
259
+
260
+ .facet-targeting__empty {
261
+ padding: 40px 24px;
262
+ text-align: center;
263
+ background: var(--te-surface-raised, #fafbfc);
264
+ border: 2px dashed var(--te-border, #e4e8f0);
265
+ border-radius: 12px;
266
+ }
267
+
268
+ .facet-targeting__empty-icon {
269
+ width: 48px;
270
+ height: 48px;
271
+ margin: 0 auto 12px;
272
+ color: var(--te-border, #e4e8f0);
273
+ }
274
+
275
+ .facet-targeting__empty-icon svg {
276
+ width: 100%;
277
+ height: 100%;
278
+ }
279
+
280
+ .facet-targeting__empty-text {
281
+ font-size: 0.875rem;
282
+ color: var(--te-ink-muted, #8792a8);
283
+ margin: 0 0 16px;
284
+ max-width: 400px;
285
+ margin-left: auto;
286
+ margin-right: auto;
287
+ }
288
+
289
+ .facet-targeting__categories {
290
+ display: flex;
291
+ flex-direction: column;
292
+ gap: 16px;
293
+ }
294
+
295
+ .facet-category {
296
+ background: var(--te-surface-raised, #fafbfc);
297
+ border: 1px solid var(--te-border-light, #f0f2f7);
298
+ border-radius: 12px;
299
+ padding: 16px;
300
+ transition: border-color 0.15s ease;
301
+ }
302
+
303
+ .facet-category:hover {
304
+ border-color: var(--te-border, #e4e8f0);
305
+ }
306
+
307
+ .facet-category__header {
308
+ display: flex;
309
+ align-items: center;
310
+ justify-content: space-between;
311
+ margin-bottom: 12px;
312
+ }
313
+
314
+ .facet-category__info {
315
+ display: flex;
316
+ align-items: center;
317
+ gap: 10px;
318
+ }
319
+
320
+ .facet-category__label {
321
+ font-size: 0.9375rem;
322
+ font-weight: 600;
323
+ color: var(--te-ink, #1a1f36);
324
+ }
325
+
326
+ .facet-category__key {
327
+ font-size: 0.75rem;
328
+ font-family: 'DM Mono', monospace;
329
+ color: var(--te-ink-muted, #8792a8);
330
+ background: var(--te-border-light, #f0f2f7);
331
+ padding: 2px 8px;
332
+ border-radius: 4px;
333
+ }
334
+
335
+ .facet-category__actions {
336
+ display: flex;
337
+ gap: 4px;
338
+ }
339
+
340
+ .facet-category__btn {
341
+ width: 32px;
342
+ height: 32px;
343
+ padding: 0;
344
+ display: flex;
345
+ align-items: center;
346
+ justify-content: center;
347
+ background: transparent;
348
+ border: none;
349
+ border-radius: 6px;
350
+ color: var(--te-ink-muted, #8792a8);
351
+ cursor: pointer;
352
+ transition: all 0.15s ease;
353
+ }
354
+
355
+ .facet-category__btn:hover {
356
+ background: var(--te-border-light, #f0f2f7);
357
+ color: var(--te-ink-light, #4a5578);
358
+ }
359
+
360
+ .facet-category__btn--danger:hover {
361
+ background: #fee2e2;
362
+ color: #dc2626;
363
+ }
364
+
365
+ .facet-category__btn svg {
366
+ width: 16px;
367
+ height: 16px;
368
+ }
369
+
370
+ .facet-category__add-option {
371
+ display: flex;
372
+ gap: 8px;
373
+ margin-bottom: 12px;
374
+ }
375
+
376
+ .facet-category__add-option .facet-targeting__input {
377
+ flex: 1;
378
+ }
379
+
380
+ .facet-category__options {
381
+ display: flex;
382
+ flex-wrap: wrap;
383
+ gap: 8px;
384
+ }
385
+
386
+ .facet-category__no-options {
387
+ font-size: 0.8125rem;
388
+ color: var(--te-ink-muted, #8792a8);
389
+ margin: 0;
390
+ font-style: italic;
391
+ }
392
+
393
+ .facet-option {
394
+ display: inline-flex;
395
+ align-items: center;
396
+ gap: 6px;
397
+ padding: 6px 10px 6px 12px;
398
+ background: var(--te-surface, #ffffff);
399
+ border: 1px solid var(--te-border, #e4e8f0);
400
+ border-radius: 6px;
401
+ font-size: 0.8125rem;
402
+ color: var(--te-ink, #1a1f36);
403
+ transition: all 0.15s ease;
404
+ }
405
+
406
+ .facet-option:hover {
407
+ border-color: var(--te-ink-muted, #8792a8);
408
+ }
409
+
410
+ .facet-option__label {
411
+ font-weight: 500;
412
+ }
413
+
414
+ .facet-option__remove {
415
+ display: flex;
416
+ align-items: center;
417
+ justify-content: center;
418
+ width: 18px;
419
+ height: 18px;
420
+ padding: 0;
421
+ background: transparent;
422
+ border: none;
423
+ border-radius: 4px;
424
+ color: var(--te-ink-muted, #8792a8);
425
+ cursor: pointer;
426
+ opacity: 0.6;
427
+ transition: all 0.15s ease;
428
+ }
429
+
430
+ .facet-option__remove:hover {
431
+ opacity: 1;
432
+ color: #dc2626;
433
+ background: #fee2e2;
434
+ }
435
+
436
+ .facet-option__remove svg {
437
+ width: 12px;
438
+ height: 12px;
439
+ }
440
+
441
+ @media (max-width: 640px) {
442
+ .facet-targeting__header {
443
+ flex-direction: column;
444
+ gap: 16px;
445
+ }
446
+
447
+ .facet-targeting__form-row {
448
+ grid-template-columns: 1fr;
449
+ }
450
+ }
451
+ `;
@@ -0,0 +1,9 @@
1
+ import type { DocumentDispatch } from "@powerhousedao/reactor-browser";
2
+ import type { ResourceTemplateDocument, ResourceTemplateAction } from "../../../document-models/resource-template/gen/types.js";
3
+ interface TemplateInfoProps {
4
+ document: ResourceTemplateDocument;
5
+ dispatch: DocumentDispatch<ResourceTemplateAction>;
6
+ }
7
+ export declare function TemplateInfo({ document, dispatch }: TemplateInfoProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=TemplateInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateInfo.d.ts","sourceRoot":"","sources":["../../../../editors/resource-template-editor/components/TemplateInfo.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EAEvB,MAAM,yDAAyD,CAAC;AAWjE,UAAU,iBAAiB;IACzB,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;CACpD;AAkBD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAikBrE"}