@almadar/std 15.15.0 → 15.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  2. package/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  3. package/behaviors/registry/app/atoms/std-application.orb +300 -188
  4. package/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  5. package/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  6. package/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  7. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  8. package/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  9. package/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  10. package/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  11. package/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  12. package/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  13. package/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  14. package/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  15. package/behaviors/registry/app/atoms/std-donor.orb +191 -156
  16. package/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  17. package/behaviors/registry/app/atoms/std-driver.orb +440 -202
  18. package/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  19. package/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  20. package/behaviors/registry/app/atoms/std-event.orb +309 -178
  21. package/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  22. package/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  23. package/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  24. package/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  25. package/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  26. package/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  27. package/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  28. package/behaviors/registry/app/atoms/std-lease.orb +411 -178
  29. package/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  30. package/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  31. package/behaviors/registry/app/atoms/std-matter.orb +415 -189
  32. package/behaviors/registry/app/atoms/std-membership.orb +387 -167
  33. package/behaviors/registry/app/atoms/std-menu.orb +232 -175
  34. package/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  35. package/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  36. package/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  37. package/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  38. package/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  39. package/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  40. package/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  45. package/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  47. package/behaviors/registry/app/atoms/std-segment.orb +173 -139
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  49. package/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  50. package/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  54. package/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  57. package/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  58. package/behaviors/registry/app/atoms/std-trial.orb +401 -183
  59. package/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  60. package/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  63. package/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  64. package/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  65. package/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  66. package/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  67. package/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  68. package/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  69. package/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  70. package/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  71. package/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  72. package/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  73. package/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  74. package/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  75. package/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  76. package/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  77. package/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  78. package/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  79. package/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  80. package/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  81. package/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  82. package/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  83. package/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  84. package/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  85. package/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  86. package/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  87. package/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  88. package/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  89. package/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  90. package/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  91. package/dist/behaviors/behaviors-registry.json +2913 -156
  92. package/dist/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  93. package/dist/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  94. package/dist/behaviors/registry/app/atoms/std-application.orb +300 -188
  95. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  96. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  97. package/dist/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  98. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  99. package/dist/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  100. package/dist/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  101. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  102. package/dist/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  103. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  104. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  105. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  106. package/dist/behaviors/registry/app/atoms/std-donor.orb +191 -156
  107. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  108. package/dist/behaviors/registry/app/atoms/std-driver.orb +440 -202
  109. package/dist/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  110. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  111. package/dist/behaviors/registry/app/atoms/std-event.orb +309 -178
  112. package/dist/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  113. package/dist/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  114. package/dist/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  115. package/dist/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  116. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  117. package/dist/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  118. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  119. package/dist/behaviors/registry/app/atoms/std-lease.orb +411 -178
  120. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  121. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  122. package/dist/behaviors/registry/app/atoms/std-matter.orb +415 -189
  123. package/dist/behaviors/registry/app/atoms/std-membership.orb +387 -167
  124. package/dist/behaviors/registry/app/atoms/std-menu.orb +232 -175
  125. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  126. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  127. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  128. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  129. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  130. package/dist/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  131. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  132. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  133. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  134. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  135. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  136. package/dist/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  137. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  138. package/dist/behaviors/registry/app/atoms/std-segment.orb +173 -139
  139. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  140. package/dist/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  141. package/dist/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  142. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  143. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  144. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  145. package/dist/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  146. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  147. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  148. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  149. package/dist/behaviors/registry/app/atoms/std-trial.orb +401 -183
  150. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  151. package/dist/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  152. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  153. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  154. package/dist/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  155. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  156. package/dist/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  157. package/dist/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  158. package/dist/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  159. package/dist/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  160. package/dist/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  161. package/dist/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  162. package/dist/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  163. package/dist/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  164. package/dist/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  165. package/dist/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  166. package/dist/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  167. package/dist/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  168. package/dist/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  169. package/dist/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  170. package/dist/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  171. package/dist/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  172. package/dist/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  173. package/dist/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  174. package/dist/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  175. package/dist/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  176. package/dist/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  177. package/dist/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  178. package/dist/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  179. package/dist/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  180. package/dist/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  181. package/dist/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  182. package/dist/behaviors-registry.json +2913 -156
  183. package/dist/registry/app/atoms/std-ap-bill.orb +423 -171
  184. package/dist/registry/app/atoms/std-applicant.orb +207 -165
  185. package/dist/registry/app/atoms/std-application.orb +300 -188
  186. package/dist/registry/app/atoms/std-approval-request.orb +370 -215
  187. package/dist/registry/app/atoms/std-campaign-goal.orb +382 -167
  188. package/dist/registry/app/atoms/std-change-order.orb +458 -194
  189. package/dist/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  190. package/dist/registry/app/atoms/std-checkin.orb +215 -151
  191. package/dist/registry/app/atoms/std-checkout-terminal.orb +322 -133
  192. package/dist/registry/app/atoms/std-class-roster.orb +343 -170
  193. package/dist/registry/app/atoms/std-class-session.orb +321 -190
  194. package/dist/registry/app/atoms/std-court-deadline.orb +353 -182
  195. package/dist/registry/app/atoms/std-customer-account.orb +376 -157
  196. package/dist/registry/app/atoms/std-donation-receipt.orb +214 -143
  197. package/dist/registry/app/atoms/std-donor.orb +191 -156
  198. package/dist/registry/app/atoms/std-drip-sequence.orb +409 -170
  199. package/dist/registry/app/atoms/std-driver.orb +440 -202
  200. package/dist/registry/app/atoms/std-dunning.orb +431 -167
  201. package/dist/registry/app/atoms/std-email-broadcast.orb +386 -143
  202. package/dist/registry/app/atoms/std-event.orb +309 -178
  203. package/dist/registry/app/atoms/std-form-builder.orb +353 -220
  204. package/dist/registry/app/atoms/std-health-score.orb +218 -183
  205. package/dist/registry/app/atoms/std-help-article.orb +425 -162
  206. package/dist/registry/app/atoms/std-help-category.orb +409 -166
  207. package/dist/registry/app/atoms/std-interview-slot.orb +311 -138
  208. package/dist/registry/app/atoms/std-invoice.orb +349 -211
  209. package/dist/registry/app/atoms/std-kitchen-display.orb +308 -184
  210. package/dist/registry/app/atoms/std-lease.orb +411 -178
  211. package/dist/registry/app/atoms/std-ledger-entry.orb +266 -195
  212. package/dist/registry/app/atoms/std-maintenance-request.orb +396 -177
  213. package/dist/registry/app/atoms/std-matter.orb +415 -189
  214. package/dist/registry/app/atoms/std-membership.orb +387 -167
  215. package/dist/registry/app/atoms/std-menu.orb +232 -175
  216. package/dist/registry/app/atoms/std-modifier-group.orb +224 -167
  217. package/dist/registry/app/atoms/std-nps-survey.orb +390 -138
  218. package/dist/registry/app/atoms/std-offer-letter.orb +242 -133
  219. package/dist/registry/app/atoms/std-payout-ledger.orb +428 -176
  220. package/dist/registry/app/atoms/std-question-bank.orb +211 -145
  221. package/dist/registry/app/atoms/std-receipt.orb +248 -177
  222. package/dist/registry/app/atoms/std-recurring-charge.orb +421 -149
  223. package/dist/registry/app/atoms/std-renewal-risk.orb +382 -153
  224. package/dist/registry/app/atoms/std-rent-charge.orb +476 -176
  225. package/dist/registry/app/atoms/std-reorder-rule.orb +246 -176
  226. package/dist/registry/app/atoms/std-response-collector.orb +213 -150
  227. package/dist/registry/app/atoms/std-rfi.orb +365 -210
  228. package/dist/registry/app/atoms/std-route-optimize.orb +195 -146
  229. package/dist/registry/app/atoms/std-segment.orb +173 -139
  230. package/dist/registry/app/atoms/std-stock-level.orb +205 -135
  231. package/dist/registry/app/atoms/std-submittal.orb +323 -166
  232. package/dist/registry/app/atoms/std-table-map.orb +187 -63
  233. package/dist/registry/app/atoms/std-technician-dispatch.orb +290 -202
  234. package/dist/registry/app/atoms/std-telematics-event.orb +156 -128
  235. package/dist/registry/app/atoms/std-template-editor.orb +255 -189
  236. package/dist/registry/app/atoms/std-tenant.orb +375 -147
  237. package/dist/registry/app/atoms/std-ticket-tier.orb +463 -150
  238. package/dist/registry/app/atoms/std-time-entry.orb +259 -150
  239. package/dist/registry/app/atoms/std-timesheet.orb +292 -183
  240. package/dist/registry/app/atoms/std-trial.orb +401 -183
  241. package/dist/registry/app/atoms/std-vehicle.orb +447 -205
  242. package/dist/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  243. package/dist/registry/app/atoms/std-waitlist.orb +308 -177
  244. package/dist/registry/app/atoms/std-warehouse.orb +211 -141
  245. package/dist/registry/app/atoms/std-work-order.orb +374 -219
  246. package/dist/registry/app/organisms/std-subscription-billing.orb +282 -195
  247. package/dist/registry/core/atoms/std-approval-gate.orb +703 -0
  248. package/dist/registry/core/atoms/std-audit-capture.orb +150 -64
  249. package/dist/registry/core/atoms/std-data-erasure.orb +546 -0
  250. package/dist/registry/core/atoms/std-lifecycle.orb +343 -0
  251. package/dist/registry/core/atoms/std-notify-on-event.orb +132 -46
  252. package/dist/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  253. package/dist/registry/marketing/atoms/std-marketing-article.orb +96 -0
  254. package/dist/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  255. package/dist/registry/marketing/atoms/std-marketing-community.orb +134 -0
  256. package/dist/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  257. package/dist/registry/marketing/atoms/std-marketing-features.orb +193 -0
  258. package/dist/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  259. package/dist/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  260. package/dist/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  261. package/dist/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  262. package/dist/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  263. package/dist/registry/marketing/atoms/std-marketing-split.orb +135 -0
  264. package/dist/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  265. package/dist/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  266. package/dist/registry/marketing/atoms/std-marketing-team.orb +192 -0
  267. package/dist/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  268. package/dist/registry/marketing/molecules/std-about-page.orb +440 -0
  269. package/dist/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  270. package/dist/registry/marketing/molecules/std-landing-page.orb +521 -0
  271. package/dist/registry/marketing/molecules/std-pricing-page.orb +406 -0
  272. package/dist/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  273. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-campaign-goal",
3
- "version": "1.1.0",
4
- "description": "std-campaign-goal — nonprofit fundraising campaign with target / raised / donor count / deadline / status. Lists campaigns in `browsing`; opens campaign detail in `viewing_single` with Launch / End actions. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-campaign-goal — nonprofit fundraising campaign with Launch / End actions. Listens for SET_STATUS so std-lifecycle can drive automated transitions. Exposes CRM-pattern knobs.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "CampaignGoalOrbital",
@@ -161,6 +161,62 @@
161
161
  "type": "string"
162
162
  }
163
163
  ]
164
+ },
165
+ {
166
+ "event": "CampaignGoalUpdated",
167
+ "payloadSchema": [
168
+ {
169
+ "name": "row.id",
170
+ "type": "string",
171
+ "required": true
172
+ },
173
+ {
174
+ "name": "row.name",
175
+ "type": "string",
176
+ "required": true
177
+ },
178
+ {
179
+ "name": "row.description",
180
+ "type": "string"
181
+ },
182
+ {
183
+ "name": "row.targetAmount",
184
+ "type": "number"
185
+ },
186
+ {
187
+ "name": "row.raisedAmount",
188
+ "type": "number"
189
+ },
190
+ {
191
+ "name": "row.donorCount",
192
+ "type": "number"
193
+ },
194
+ {
195
+ "name": "row.startDate",
196
+ "type": "string"
197
+ },
198
+ {
199
+ "name": "row.endDate",
200
+ "type": "string"
201
+ },
202
+ {
203
+ "name": "row.status",
204
+ "type": "string"
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ "event": "CampaignGoalUpdateFailed",
210
+ "payloadSchema": [
211
+ {
212
+ "name": "error",
213
+ "type": "string"
214
+ },
215
+ {
216
+ "name": "code",
217
+ "type": "string"
218
+ }
219
+ ]
164
220
  }
165
221
  ],
166
222
  "stateMachine": {
@@ -234,6 +290,46 @@
234
290
  }
235
291
  ]
236
292
  },
293
+ {
294
+ "key": "SET_STATUS",
295
+ "name": "Set Status",
296
+ "payloadSchema": [
297
+ {
298
+ "name": "entityId",
299
+ "type": "string",
300
+ "required": true
301
+ },
302
+ {
303
+ "name": "newStatus",
304
+ "type": "string",
305
+ "required": true
306
+ }
307
+ ]
308
+ },
309
+ {
310
+ "key": "CampaignGoalUpdated",
311
+ "name": "CampaignGoal updated",
312
+ "payloadSchema": [
313
+ {
314
+ "name": "row",
315
+ "type": "CampaignGoal"
316
+ }
317
+ ]
318
+ },
319
+ {
320
+ "key": "CampaignGoalUpdateFailed",
321
+ "name": "CampaignGoal update failed",
322
+ "payloadSchema": [
323
+ {
324
+ "name": "error",
325
+ "type": "string"
326
+ },
327
+ {
328
+ "name": "code",
329
+ "type": "string"
330
+ }
331
+ ]
332
+ },
237
333
  {
238
334
  "key": "CLOSE_VIEW",
239
335
  "name": "Close View"
@@ -261,8 +357,8 @@
261
357
  "CampaignGoal",
262
358
  {
263
359
  "emit": {
264
- "success": "CampaignGoalLoaded",
265
- "failure": "CampaignGoalLoadFailed"
360
+ "failure": "CampaignGoalLoadFailed",
361
+ "success": "CampaignGoalLoaded"
266
362
  }
267
363
  }
268
364
  ],
@@ -270,22 +366,22 @@
270
366
  "render-ui",
271
367
  "main",
272
368
  {
273
- "direction": "vertical",
274
- "className": "py-12",
275
- "type": "stack",
276
369
  "children": [
277
370
  {
278
371
  "type": "spinner"
279
372
  },
280
373
  {
281
374
  "variant": "caption",
282
- "color": "muted",
375
+ "content": "Loading campaigns…",
283
376
  "type": "typography",
284
- "content": "Loading campaigns…"
377
+ "color": "muted"
285
378
  }
286
379
  ],
287
- "align": "center",
288
- "gap": "md"
380
+ "direction": "vertical",
381
+ "className": "py-12",
382
+ "type": "stack",
383
+ "gap": "md",
384
+ "align": "center"
289
385
  }
290
386
  ]
291
387
  ]
@@ -299,10 +395,9 @@
299
395
  "render-ui",
300
396
  "main",
301
397
  {
302
- "type": "stack",
398
+ "gap": "md",
303
399
  "children": [
304
400
  {
305
- "gap": "sm",
306
401
  "align": "center",
307
402
  "direction": "horizontal",
308
403
  "type": "stack",
@@ -312,39 +407,40 @@
312
407
  "name": "target"
313
408
  },
314
409
  {
315
- "type": "typography",
316
410
  "content": "@config.title",
411
+ "type": "typography",
317
412
  "variant": "h3"
318
413
  }
319
- ]
414
+ ],
415
+ "gap": "sm"
320
416
  },
321
417
  {
322
418
  "cols": 4.0,
323
419
  "type": "simple-grid",
324
420
  "children": [
325
421
  {
326
- "label": "Campaigns",
327
422
  "type": "stat-display",
328
- "value": "@payload.data.length",
329
- "icon": "target"
423
+ "label": "Campaigns",
424
+ "icon": "target",
425
+ "value": "@payload.data.length"
330
426
  },
331
427
  {
332
428
  "icon": "play-circle",
333
- "label": "Active",
334
429
  "type": "stat-display",
430
+ "label": "Active",
335
431
  "value": "6"
336
432
  },
337
433
  {
338
- "label": "Total raised",
339
434
  "type": "stat-display",
340
435
  "value": "$482K",
341
- "icon": "dollar-sign"
436
+ "icon": "dollar-sign",
437
+ "label": "Total raised"
342
438
  },
343
439
  {
344
- "value": "1,240",
440
+ "icon": "users",
345
441
  "type": "stat-display",
346
442
  "label": "Donors",
347
- "icon": "users"
443
+ "value": "1,240"
348
444
  }
349
445
  ]
350
446
  },
@@ -352,16 +448,16 @@
352
448
  "type": "divider"
353
449
  },
354
450
  {
355
- "type": "data-grid",
356
451
  "cols": 1.0,
357
452
  "itemActions": "@config.itemActions",
358
- "gap": "sm",
453
+ "type": "data-grid",
454
+ "entity": "@payload.data",
359
455
  "fields": "@config.fields",
360
- "entity": "@payload.data"
456
+ "gap": "sm"
361
457
  }
362
458
  ],
363
- "gap": "md",
364
- "direction": "vertical"
459
+ "direction": "vertical",
460
+ "type": "stack"
365
461
  }
366
462
  ]
367
463
  ]
@@ -375,9 +471,9 @@
375
471
  "render-ui",
376
472
  "main",
377
473
  {
378
- "message": "@payload.error",
474
+ "variant": "error",
379
475
  "type": "alert",
380
- "variant": "error"
476
+ "message": "@payload.error"
381
477
  }
382
478
  ]
383
479
  ]
@@ -436,124 +532,124 @@
436
532
  "render-ui",
437
533
  "main",
438
534
  {
535
+ "direction": "vertical",
439
536
  "children": [
440
537
  {
441
- "gap": "sm",
442
- "direction": "horizontal",
443
- "type": "stack",
444
- "align": "center",
445
538
  "children": [
446
539
  {
447
- "type": "button",
448
540
  "label": "Back",
449
541
  "action": "CLOSE_VIEW",
542
+ "type": "button",
450
543
  "variant": "ghost"
451
544
  },
452
545
  {
453
- "type": "icon",
454
- "name": "target"
546
+ "name": "target",
547
+ "type": "icon"
455
548
  },
456
549
  {
550
+ "type": "typography",
457
551
  "content": "@entity.name",
458
- "variant": "h3",
459
- "type": "typography"
552
+ "variant": "h3"
460
553
  },
461
554
  {
462
- "label": "@entity.status",
463
555
  "variant": "default",
464
- "type": "badge"
556
+ "type": "badge",
557
+ "label": "@entity.status"
465
558
  }
466
- ]
559
+ ],
560
+ "direction": "horizontal",
561
+ "align": "center",
562
+ "type": "stack",
563
+ "gap": "sm"
467
564
  },
468
565
  {
469
566
  "type": "divider"
470
567
  },
471
568
  {
569
+ "gap": "sm",
570
+ "direction": "vertical",
472
571
  "type": "stack",
473
572
  "children": [
474
573
  {
475
- "type": "stack",
476
- "gap": "md",
477
- "direction": "horizontal",
478
574
  "children": [
479
575
  {
480
- "content": "Description",
481
576
  "type": "typography",
482
577
  "color": "muted",
578
+ "content": "Description",
483
579
  "variant": "caption"
484
580
  },
485
581
  {
486
- "type": "typography",
487
582
  "variant": "body",
583
+ "type": "typography",
488
584
  "content": "@entity.description"
489
585
  }
490
- ]
586
+ ],
587
+ "gap": "md",
588
+ "type": "stack",
589
+ "direction": "horizontal"
491
590
  }
492
- ],
493
- "gap": "sm",
494
- "direction": "vertical"
591
+ ]
495
592
  },
496
593
  {
497
594
  "type": "divider"
498
595
  },
499
596
  {
597
+ "type": "simple-grid",
598
+ "cols": 4.0,
500
599
  "children": [
501
600
  {
502
- "value": "@entity.targetAmount",
503
- "type": "stat-display",
601
+ "icon": "target",
504
602
  "label": "Target",
505
- "icon": "target"
603
+ "type": "stat-display",
604
+ "value": "@entity.targetAmount"
506
605
  },
507
606
  {
508
607
  "icon": "dollar-sign",
608
+ "value": "@entity.raisedAmount",
509
609
  "label": "Raised",
510
- "type": "stat-display",
511
- "value": "@entity.raisedAmount"
610
+ "type": "stat-display"
512
611
  },
513
612
  {
514
- "type": "stat-display",
613
+ "label": "Donors",
515
614
  "icon": "users",
516
615
  "value": "@entity.donorCount",
517
- "label": "Donors"
616
+ "type": "stat-display"
518
617
  },
519
618
  {
520
619
  "label": "Ends",
620
+ "type": "stat-display",
521
621
  "value": "@entity.endDate",
522
- "icon": "calendar",
523
- "type": "stat-display"
622
+ "icon": "calendar"
524
623
  }
525
- ],
526
- "type": "simple-grid",
527
- "cols": 4.0
624
+ ]
528
625
  },
529
626
  {
530
627
  "type": "stack",
531
- "direction": "horizontal",
532
- "gap": "sm",
533
628
  "align": "center",
629
+ "gap": "sm",
534
630
  "children": [
535
631
  {
536
- "variant": "primary",
537
- "action": "LAUNCH_CAMPAIGN",
538
632
  "actionPayload": {
539
633
  "id": "@entity.id"
540
634
  },
541
- "type": "button",
542
- "label": "Launch"
635
+ "label": "Launch",
636
+ "action": "LAUNCH_CAMPAIGN",
637
+ "variant": "primary",
638
+ "type": "button"
543
639
  },
544
640
  {
545
- "type": "button",
546
641
  "label": "End",
547
- "action": "END_CAMPAIGN",
548
642
  "actionPayload": {
549
643
  "id": "@entity.id"
550
644
  },
645
+ "type": "button",
646
+ "action": "END_CAMPAIGN",
551
647
  "variant": "danger"
552
648
  }
553
- ]
649
+ ],
650
+ "direction": "horizontal"
554
651
  }
555
652
  ],
556
- "direction": "vertical",
557
653
  "gap": "md",
558
654
  "type": "stack"
559
655
  }
@@ -584,26 +680,110 @@
584
680
  "render-ui",
585
681
  "main",
586
682
  {
683
+ "align": "center",
587
684
  "className": "py-12",
685
+ "gap": "md",
686
+ "direction": "vertical",
687
+ "type": "stack",
588
688
  "children": [
589
689
  {
590
690
  "type": "spinner"
591
691
  },
592
692
  {
593
- "variant": "caption",
693
+ "type": "typography",
594
694
  "color": "muted",
595
695
  "content": "Ending campaign…",
596
- "type": "typography"
696
+ "variant": "caption"
597
697
  }
598
- ],
599
- "direction": "vertical",
698
+ ]
699
+ }
700
+ ]
701
+ ]
702
+ },
703
+ {
704
+ "from": "browsing",
705
+ "to": "loading",
706
+ "event": "SET_STATUS",
707
+ "effects": [
708
+ [
709
+ "set",
710
+ "@entity.id",
711
+ "@payload.entityId"
712
+ ],
713
+ [
714
+ "set",
715
+ "@entity.status",
716
+ "@payload.newStatus"
717
+ ],
718
+ [
719
+ "persist",
720
+ "update",
721
+ "CampaignGoal",
722
+ "@entity",
723
+ {
724
+ "emit": {
725
+ "failure": "CampaignGoalUpdateFailed",
726
+ "success": "CampaignGoalUpdated"
727
+ }
728
+ }
729
+ ],
730
+ [
731
+ "render-ui",
732
+ "main",
733
+ {
600
734
  "type": "stack",
735
+ "children": [
736
+ {
737
+ "type": "spinner"
738
+ },
739
+ {
740
+ "variant": "caption",
741
+ "color": "muted",
742
+ "type": "typography",
743
+ "content": "Updating campaign status…"
744
+ }
745
+ ],
601
746
  "gap": "md",
747
+ "className": "py-12",
748
+ "direction": "vertical",
602
749
  "align": "center"
603
750
  }
604
751
  ]
605
752
  ]
606
753
  },
754
+ {
755
+ "from": "browsing",
756
+ "to": "loading",
757
+ "event": "CampaignGoalUpdated",
758
+ "effects": [
759
+ [
760
+ "fetch",
761
+ "CampaignGoal",
762
+ {
763
+ "emit": {
764
+ "success": "CampaignGoalLoaded",
765
+ "failure": "CampaignGoalLoadFailed"
766
+ }
767
+ }
768
+ ]
769
+ ]
770
+ },
771
+ {
772
+ "from": "browsing",
773
+ "to": "browsing",
774
+ "event": "CampaignGoalUpdateFailed",
775
+ "effects": [
776
+ [
777
+ "render-ui",
778
+ "main",
779
+ {
780
+ "message": "@payload.error",
781
+ "variant": "error",
782
+ "type": "alert"
783
+ }
784
+ ]
785
+ ]
786
+ },
607
787
  {
608
788
  "from": "viewing_single",
609
789
  "to": "loading",
@@ -623,10 +803,6 @@
623
803
  "render-ui",
624
804
  "main",
625
805
  {
626
- "type": "stack",
627
- "align": "center",
628
- "gap": "md",
629
- "className": "py-12",
630
806
  "children": [
631
807
  {
632
808
  "type": "spinner"
@@ -634,11 +810,15 @@
634
810
  {
635
811
  "color": "muted",
636
812
  "variant": "caption",
637
- "content": "Loading campaigns…",
638
- "type": "typography"
813
+ "type": "typography",
814
+ "content": "Loading campaigns…"
639
815
  }
640
816
  ],
641
- "direction": "vertical"
817
+ "gap": "md",
818
+ "type": "stack",
819
+ "direction": "vertical",
820
+ "align": "center",
821
+ "className": "py-12"
642
822
  }
643
823
  ]
644
824
  ]
@@ -672,17 +852,17 @@
672
852
  "type": "spinner"
673
853
  },
674
854
  {
675
- "type": "typography",
676
- "variant": "caption",
677
855
  "color": "muted",
856
+ "variant": "caption",
857
+ "type": "typography",
678
858
  "content": "Launching campaign…"
679
859
  }
680
860
  ],
681
- "direction": "vertical",
861
+ "type": "stack",
682
862
  "align": "center",
683
- "gap": "md",
684
863
  "className": "py-12",
685
- "type": "stack"
864
+ "direction": "vertical",
865
+ "gap": "md"
686
866
  }
687
867
  ]
688
868
  ]
@@ -702,8 +882,8 @@
702
882
  "CampaignGoal",
703
883
  {
704
884
  "emit": {
705
- "failure": "CampaignGoalLoadFailed",
706
- "success": "CampaignGoalLoaded"
885
+ "success": "CampaignGoalLoaded",
886
+ "failure": "CampaignGoalLoadFailed"
707
887
  }
708
888
  }
709
889
  ],
@@ -711,22 +891,22 @@
711
891
  "render-ui",
712
892
  "main",
713
893
  {
714
- "direction": "vertical",
715
- "align": "center",
716
- "type": "stack",
717
- "gap": "md",
718
- "className": "py-12",
719
894
  "children": [
720
895
  {
721
896
  "type": "spinner"
722
897
  },
723
898
  {
724
- "type": "typography",
725
- "color": "muted",
726
899
  "content": "Ending campaign…",
727
- "variant": "caption"
900
+ "variant": "caption",
901
+ "type": "typography",
902
+ "color": "muted"
728
903
  }
729
- ]
904
+ ],
905
+ "type": "stack",
906
+ "direction": "vertical",
907
+ "className": "py-12",
908
+ "gap": "md",
909
+ "align": "center"
730
910
  }
731
911
  ]
732
912
  ]
@@ -741,8 +921,8 @@
741
921
  "CampaignGoal",
742
922
  {
743
923
  "emit": {
744
- "success": "CampaignGoalLoaded",
745
- "failure": "CampaignGoalLoadFailed"
924
+ "failure": "CampaignGoalLoadFailed",
925
+ "success": "CampaignGoalLoaded"
746
926
  }
747
927
  }
748
928
  ],
@@ -759,73 +939,72 @@
759
939
  ]
760
940
  },
761
941
  "config": {
762
- "fields": {
763
- "type": "[FieldSpec]",
942
+ "healthScoreThresholdAlert": {
943
+ "type": "number",
944
+ "default": 25.0,
945
+ "label": "Health score threshold (% of target)",
946
+ "description": "Alert when raisedAmount/targetAmount drops below this with deadline approaching. Declarative; wire via sibling std-notify.",
947
+ "tier": "customization"
948
+ },
949
+ "renewalReminderDaysBefore": {
950
+ "type": "[number]",
951
+ "default": [
952
+ 30.0,
953
+ 7.0,
954
+ 1.0
955
+ ],
956
+ "label": "Reminder days-before endDate",
957
+ "description": "Days before campaign endDate to ping major donors / followers. Declarative; wire via sibling std-reminder-scheduler.",
958
+ "tier": "customization",
959
+ "items": {
960
+ "type": "number"
961
+ }
962
+ },
963
+ "consentTrackingEnabled": {
964
+ "type": "boolean",
965
+ "default": true,
966
+ "label": "Track consent",
967
+ "description": "Whether donor outreach honors opt-in consent records. Declarative.",
968
+ "tier": "customization"
969
+ },
970
+ "itemActions": {
971
+ "type": "[ItemAction]",
764
972
  "default": [
765
973
  {
766
- "variant": "caption",
767
- "name": "name",
768
- "label": "Name"
769
- },
770
- {
771
- "variant": "caption",
772
- "name": "targetAmount",
773
- "label": "Target"
774
- },
775
- {
776
- "label": "Raised",
777
- "name": "raisedAmount",
778
- "variant": "caption"
779
- },
780
- {
781
- "variant": "caption",
782
- "name": "donorCount",
783
- "label": "Donors"
974
+ "event": "OPEN_CAMPAIGN",
975
+ "label": "Open",
976
+ "variant": "primary",
977
+ "icon": "arrow-right"
784
978
  },
785
979
  {
786
- "variant": "badge",
787
- "name": "status",
788
- "label": "Status"
980
+ "label": "End",
981
+ "variant": "danger",
982
+ "event": "END_CAMPAIGN"
789
983
  }
790
984
  ],
791
- "label": "Columns to show",
792
- "description": "Each column maps to one field on the Campaign entity",
985
+ "label": "Row actions",
986
+ "description": "Buttons users can click on each campaign row",
793
987
  "tier": "customization",
794
988
  "items": {
795
989
  "type": "object",
796
990
  "properties": {
797
- "name": {
798
- "name": "name",
991
+ "event": {
992
+ "name": "event",
799
993
  "type": "string",
800
994
  "required": true
801
995
  },
802
- "format": {
803
- "name": "format",
804
- "type": "string",
805
- "required": false
806
- },
807
- "key": {
808
- "name": "key",
809
- "type": "string",
810
- "required": false
811
- },
812
- "header": {
813
- "name": "header",
814
- "type": "string",
815
- "required": false
816
- },
817
996
  "label": {
818
997
  "name": "label",
819
998
  "type": "string",
820
- "required": false
999
+ "required": true
821
1000
  },
822
- "variant": {
823
- "name": "variant",
1001
+ "icon": {
1002
+ "name": "icon",
824
1003
  "type": "string",
825
1004
  "required": false
826
1005
  },
827
- "icon": {
828
- "name": "icon",
1006
+ "variant": {
1007
+ "name": "variant",
829
1008
  "type": "string",
830
1009
  "required": false
831
1010
  }
@@ -839,32 +1018,48 @@
839
1018
  "description": "Heading shown above the fundraising campaign list",
840
1019
  "tier": "customization"
841
1020
  },
842
- "itemActions": {
843
- "type": "[ItemAction]",
1021
+ "archiveInactiveAfterDays": {
1022
+ "type": "number",
1023
+ "default": 180.0,
1024
+ "label": "Archive after end (days)",
1025
+ "description": "Days after endDate before an ended campaign is archived. Declarative; wire via sibling std-lifecycle.",
1026
+ "tier": "advanced"
1027
+ },
1028
+ "fields": {
1029
+ "type": "[FieldSpec]",
844
1030
  "default": [
845
1031
  {
846
- "label": "Open",
847
- "icon": "arrow-right",
848
- "variant": "primary",
849
- "event": "OPEN_CAMPAIGN"
1032
+ "name": "name",
1033
+ "variant": "caption",
1034
+ "label": "Name"
850
1035
  },
851
1036
  {
852
- "event": "END_CAMPAIGN",
853
- "label": "End",
854
- "variant": "danger"
1037
+ "name": "targetAmount",
1038
+ "label": "Target",
1039
+ "variant": "caption"
1040
+ },
1041
+ {
1042
+ "name": "raisedAmount",
1043
+ "label": "Raised",
1044
+ "variant": "caption"
1045
+ },
1046
+ {
1047
+ "name": "donorCount",
1048
+ "variant": "caption",
1049
+ "label": "Donors"
1050
+ },
1051
+ {
1052
+ "variant": "badge",
1053
+ "label": "Status",
1054
+ "name": "status"
855
1055
  }
856
1056
  ],
857
- "label": "Row actions",
858
- "description": "Buttons users can click on each campaign row",
1057
+ "label": "Columns to show",
1058
+ "description": "Each column maps to one field on the Campaign entity",
859
1059
  "tier": "customization",
860
1060
  "items": {
861
1061
  "type": "object",
862
1062
  "properties": {
863
- "event": {
864
- "name": "event",
865
- "type": "string",
866
- "required": true
867
- },
868
1063
  "variant": {
869
1064
  "name": "variant",
870
1065
  "type": "string",
@@ -875,10 +1070,30 @@
875
1070
  "type": "string",
876
1071
  "required": false
877
1072
  },
1073
+ "format": {
1074
+ "name": "format",
1075
+ "type": "string",
1076
+ "required": false
1077
+ },
1078
+ "key": {
1079
+ "name": "key",
1080
+ "type": "string",
1081
+ "required": false
1082
+ },
1083
+ "name": {
1084
+ "name": "name",
1085
+ "type": "string",
1086
+ "required": true
1087
+ },
1088
+ "header": {
1089
+ "name": "header",
1090
+ "type": "string",
1091
+ "required": false
1092
+ },
878
1093
  "label": {
879
1094
  "name": "label",
880
1095
  "type": "string",
881
- "required": true
1096
+ "required": false
882
1097
  }
883
1098
  }
884
1099
  }
@@ -900,4 +1115,4 @@
900
1115
  ]
901
1116
  }
902
1117
  ]
903
- }
1118
+ }