@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-health-score",
3
- "version": "1.1.0",
4
- "description": "std-health-score — customer success health score primitive surfacing churn risk via composite usage/support/engagement signals. Lists health scores in `browsing`; opens detail in `viewing_single` with Recalculate / Assign CSM actions. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-health-score — customer success composite score (usage/support/engagement) with Recalculate / Assign CSM. Exposes CRM-pattern knobs (alert threshold, reminder cadence, archive policy, consent).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "HealthScoreOrbital",
@@ -292,8 +292,8 @@
292
292
  "HealthScore",
293
293
  {
294
294
  "emit": {
295
- "failure": "HealthScoreLoadFailed",
296
- "success": "HealthScoreLoaded"
295
+ "success": "HealthScoreLoaded",
296
+ "failure": "HealthScoreLoadFailed"
297
297
  }
298
298
  }
299
299
  ],
@@ -301,22 +301,22 @@
301
301
  "render-ui",
302
302
  "main",
303
303
  {
304
- "className": "py-12",
305
- "gap": "md",
306
- "align": "center",
307
- "type": "stack",
308
304
  "children": [
309
305
  {
310
306
  "type": "spinner"
311
307
  },
312
308
  {
313
- "type": "typography",
309
+ "content": "Loading health scores…",
314
310
  "color": "muted",
315
311
  "variant": "caption",
316
- "content": "Loading health scores…"
312
+ "type": "typography"
317
313
  }
318
314
  ],
319
- "direction": "vertical"
315
+ "type": "stack",
316
+ "gap": "md",
317
+ "align": "center",
318
+ "direction": "vertical",
319
+ "className": "py-12"
320
320
  }
321
321
  ]
322
322
  ]
@@ -330,69 +330,69 @@
330
330
  "render-ui",
331
331
  "main",
332
332
  {
333
- "type": "stack",
334
333
  "direction": "vertical",
335
334
  "gap": "md",
336
335
  "children": [
337
336
  {
338
- "gap": "sm",
337
+ "direction": "horizontal",
338
+ "align": "center",
339
339
  "children": [
340
340
  {
341
- "name": "activity",
342
- "type": "icon"
341
+ "type": "icon",
342
+ "name": "activity"
343
343
  },
344
344
  {
345
- "content": "@config.title",
346
345
  "type": "typography",
347
- "variant": "h3"
346
+ "variant": "h3",
347
+ "content": "@config.title"
348
348
  }
349
349
  ],
350
- "align": "center",
351
- "direction": "horizontal",
352
- "type": "stack"
350
+ "type": "stack",
351
+ "gap": "sm"
353
352
  },
354
353
  {
354
+ "cols": 4.0,
355
355
  "children": [
356
356
  {
357
- "value": "@payload.data.length",
358
357
  "icon": "users",
359
358
  "type": "stat-display",
360
- "label": "Total customers"
359
+ "label": "Total customers",
360
+ "value": "@payload.data.length"
361
361
  },
362
362
  {
363
- "icon": "smile",
364
363
  "label": "Green tier",
364
+ "icon": "smile",
365
365
  "type": "stat-display",
366
366
  "value": "62%"
367
367
  },
368
368
  {
369
- "value": "8",
370
- "label": "At risk (red)",
369
+ "type": "stat-display",
371
370
  "icon": "alert-triangle",
372
- "type": "stat-display"
371
+ "value": "8",
372
+ "label": "At risk (red)"
373
373
  },
374
374
  {
375
375
  "type": "stat-display",
376
- "icon": "trending-up",
376
+ "value": "+4.2%",
377
377
  "label": "30d trend",
378
- "value": "+4.2%"
378
+ "icon": "trending-up"
379
379
  }
380
380
  ],
381
- "cols": 4.0,
382
381
  "type": "simple-grid"
383
382
  },
384
383
  {
385
384
  "type": "divider"
386
385
  },
387
386
  {
388
- "type": "data-grid",
389
- "cols": 1.0,
390
- "entity": "@payload.data",
391
387
  "itemActions": "@config.itemActions",
388
+ "fields": "@config.fields",
389
+ "cols": 1.0,
390
+ "type": "data-grid",
392
391
  "gap": "sm",
393
- "fields": "@config.fields"
392
+ "entity": "@payload.data"
394
393
  }
395
- ]
394
+ ],
395
+ "type": "stack"
396
396
  }
397
397
  ]
398
398
  ]
@@ -406,9 +406,9 @@
406
406
  "render-ui",
407
407
  "main",
408
408
  {
409
+ "variant": "error",
409
410
  "message": "@payload.message",
410
- "type": "alert",
411
- "variant": "error"
411
+ "type": "alert"
412
412
  }
413
413
  ]
414
414
  ]
@@ -478,19 +478,19 @@
478
478
  "main",
479
479
  {
480
480
  "type": "stack",
481
- "direction": "vertical",
482
481
  "gap": "md",
482
+ "direction": "vertical",
483
483
  "children": [
484
484
  {
485
485
  "align": "center",
486
486
  "gap": "sm",
487
- "type": "stack",
488
487
  "direction": "horizontal",
488
+ "type": "stack",
489
489
  "children": [
490
490
  {
491
- "type": "button",
492
491
  "action": "CLOSE_VIEW",
493
492
  "variant": "ghost",
493
+ "type": "button",
494
494
  "label": "Back"
495
495
  },
496
496
  {
@@ -498,19 +498,19 @@
498
498
  "name": "activity"
499
499
  },
500
500
  {
501
- "type": "typography",
502
501
  "content": "@entity.customerName",
503
- "variant": "h3"
502
+ "variant": "h3",
503
+ "type": "typography"
504
504
  },
505
505
  {
506
+ "label": "@entity.tier",
506
507
  "type": "badge",
507
- "variant": "primary",
508
- "label": "@entity.tier"
508
+ "variant": "primary"
509
509
  },
510
510
  {
511
- "type": "badge",
512
511
  "label": "@entity.trend",
513
- "variant": "default"
512
+ "variant": "default",
513
+ "type": "badge"
514
514
  }
515
515
  ]
516
516
  },
@@ -518,106 +518,106 @@
518
518
  "type": "divider"
519
519
  },
520
520
  {
521
- "gap": "sm",
522
- "type": "stack",
521
+ "direction": "vertical",
523
522
  "children": [
524
523
  {
525
524
  "gap": "md",
525
+ "type": "stack",
526
526
  "children": [
527
527
  {
528
- "type": "typography",
529
528
  "content": "Customer ID",
530
- "variant": "caption",
531
- "color": "muted"
529
+ "color": "muted",
530
+ "type": "typography",
531
+ "variant": "caption"
532
532
  },
533
533
  {
534
- "type": "typography",
534
+ "variant": "body",
535
535
  "content": "@entity.customerId",
536
- "variant": "body"
536
+ "type": "typography"
537
537
  }
538
538
  ],
539
- "type": "stack",
540
539
  "direction": "horizontal"
541
540
  },
542
541
  {
542
+ "gap": "md",
543
+ "direction": "horizontal",
543
544
  "children": [
544
545
  {
545
- "color": "muted",
546
- "type": "typography",
546
+ "content": "Assigned CSM",
547
547
  "variant": "caption",
548
- "content": "Assigned CSM"
548
+ "color": "muted",
549
+ "type": "typography"
549
550
  },
550
551
  {
551
- "content": "@entity.assignedCsm",
552
552
  "type": "typography",
553
- "variant": "body"
553
+ "variant": "body",
554
+ "content": "@entity.assignedCsm"
554
555
  }
555
556
  ],
556
- "gap": "md",
557
- "direction": "horizontal",
558
557
  "type": "stack"
559
558
  }
560
559
  ],
561
- "direction": "vertical"
560
+ "type": "stack",
561
+ "gap": "sm"
562
562
  },
563
563
  {
564
564
  "type": "divider"
565
565
  },
566
566
  {
567
+ "cols": 4.0,
568
+ "type": "simple-grid",
567
569
  "children": [
568
570
  {
569
- "icon": "activity",
570
571
  "value": "@entity.score",
571
572
  "type": "stat-display",
572
- "label": "Composite"
573
+ "label": "Composite",
574
+ "icon": "activity"
573
575
  },
574
576
  {
575
- "icon": "bar-chart",
577
+ "label": "Usage",
576
578
  "type": "stat-display",
577
579
  "value": "@entity.usageScore",
578
- "label": "Usage"
580
+ "icon": "bar-chart"
579
581
  },
580
582
  {
581
- "value": "@entity.supportScore",
582
- "icon": "life-buoy",
583
583
  "type": "stat-display",
584
- "label": "Support"
584
+ "label": "Support",
585
+ "value": "@entity.supportScore",
586
+ "icon": "life-buoy"
585
587
  },
586
588
  {
587
- "label": "Engagement",
588
589
  "icon": "users",
589
- "value": "@entity.engagementScore",
590
- "type": "stat-display"
590
+ "type": "stat-display",
591
+ "label": "Engagement",
592
+ "value": "@entity.engagementScore"
591
593
  }
592
- ],
593
- "type": "simple-grid",
594
- "cols": 4.0
594
+ ]
595
595
  },
596
596
  {
597
- "gap": "sm",
598
- "type": "stack",
599
- "align": "center",
600
- "direction": "horizontal",
601
597
  "children": [
602
598
  {
603
- "actionPayload": {
604
- "id": "@entity.id"
605
- },
599
+ "action": "RECALCULATE",
606
600
  "label": "Recalculate",
601
+ "type": "button",
607
602
  "variant": "primary",
608
- "action": "RECALCULATE",
609
- "type": "button"
603
+ "actionPayload": {
604
+ "id": "@entity.id"
605
+ }
610
606
  },
611
607
  {
612
- "variant": "secondary",
613
- "action": "ASSIGN_CSM",
614
- "label": "Assign CSM",
615
- "type": "button",
616
608
  "actionPayload": {
617
609
  "id": "@entity.id"
618
- }
610
+ },
611
+ "label": "Assign CSM",
612
+ "variant": "secondary",
613
+ "action": "ASSIGN_CSM",
614
+ "type": "button"
619
615
  }
620
- ]
616
+ ],
617
+ "gap": "sm",
618
+ "direction": "horizontal",
619
+ "type": "stack",
620
+ "align": "center"
621
621
  }
622
622
  ]
623
623
  }
@@ -639,8 +639,8 @@
639
639
  "HealthScore",
640
640
  {
641
641
  "emit": {
642
- "success": "HealthScoreLoaded",
643
- "failure": "HealthScoreLoadFailed"
642
+ "failure": "HealthScoreLoadFailed",
643
+ "success": "HealthScoreLoaded"
644
644
  }
645
645
  }
646
646
  ],
@@ -648,7 +648,6 @@
648
648
  "render-ui",
649
649
  "main",
650
650
  {
651
- "align": "center",
652
651
  "gap": "md",
653
652
  "className": "py-12",
654
653
  "children": [
@@ -656,13 +655,14 @@
656
655
  "type": "spinner"
657
656
  },
658
657
  {
659
- "variant": "caption",
660
658
  "color": "muted",
659
+ "variant": "caption",
661
660
  "type": "typography",
662
661
  "content": "Recalculating health score…"
663
662
  }
664
663
  ],
665
664
  "type": "stack",
665
+ "align": "center",
666
666
  "direction": "vertical"
667
667
  }
668
668
  ]
@@ -687,18 +687,18 @@
687
687
  "render-ui",
688
688
  "main",
689
689
  {
690
+ "className": "py-12",
690
691
  "children": [
691
692
  {
692
693
  "type": "spinner"
693
694
  },
694
695
  {
695
- "color": "muted",
696
- "type": "typography",
697
696
  "variant": "caption",
698
- "content": "Loading health scores…"
697
+ "color": "muted",
698
+ "content": "Loading health scores…",
699
+ "type": "typography"
699
700
  }
700
701
  ],
701
- "className": "py-12",
702
702
  "direction": "vertical",
703
703
  "type": "stack",
704
704
  "gap": "md",
@@ -722,8 +722,8 @@
722
722
  "HealthScore",
723
723
  {
724
724
  "emit": {
725
- "success": "HealthScoreLoaded",
726
- "failure": "HealthScoreLoadFailed"
725
+ "failure": "HealthScoreLoadFailed",
726
+ "success": "HealthScoreLoaded"
727
727
  }
728
728
  }
729
729
  ],
@@ -731,22 +731,22 @@
731
731
  "render-ui",
732
732
  "main",
733
733
  {
734
- "type": "stack",
735
- "gap": "md",
736
- "align": "center",
737
- "direction": "vertical",
734
+ "className": "py-12",
738
735
  "children": [
739
736
  {
740
737
  "type": "spinner"
741
738
  },
742
739
  {
743
- "type": "typography",
744
- "color": "muted",
745
740
  "content": "Recalculating health score…",
746
- "variant": "caption"
741
+ "type": "typography",
742
+ "variant": "caption",
743
+ "color": "muted"
747
744
  }
748
745
  ],
749
- "className": "py-12"
746
+ "direction": "vertical",
747
+ "align": "center",
748
+ "type": "stack",
749
+ "gap": "md"
750
750
  }
751
751
  ]
752
752
  ]
@@ -766,8 +766,8 @@
766
766
  "HealthScore",
767
767
  {
768
768
  "emit": {
769
- "failure": "HealthScoreLoadFailed",
770
- "success": "HealthScoreLoaded"
769
+ "success": "HealthScoreLoaded",
770
+ "failure": "HealthScoreLoadFailed"
771
771
  }
772
772
  }
773
773
  ],
@@ -775,20 +775,20 @@
775
775
  "render-ui",
776
776
  "main",
777
777
  {
778
- "direction": "vertical",
779
- "gap": "md",
778
+ "className": "py-12",
780
779
  "type": "stack",
780
+ "gap": "md",
781
781
  "align": "center",
782
- "className": "py-12",
782
+ "direction": "vertical",
783
783
  "children": [
784
784
  {
785
785
  "type": "spinner"
786
786
  },
787
787
  {
788
+ "variant": "caption",
788
789
  "type": "typography",
789
- "content": "Assigning CSM…",
790
790
  "color": "muted",
791
- "variant": "caption"
791
+ "content": "Assigning CSM…"
792
792
  }
793
793
  ]
794
794
  }
@@ -814,8 +814,8 @@
814
814
  "render-ui",
815
815
  "main",
816
816
  {
817
- "size": "sm",
818
- "type": "spinner"
817
+ "type": "spinner",
818
+ "size": "sm"
819
819
  }
820
820
  ]
821
821
  ]
@@ -823,30 +823,81 @@
823
823
  ]
824
824
  },
825
825
  "config": {
826
- "title": {
827
- "type": "string",
828
- "default": "Customer Health Scores",
829
- "label": "Section title",
830
- "description": "Heading shown above the customer health dashboard",
826
+ "healthScoreThresholdAlert": {
827
+ "type": "number",
828
+ "default": 40.0,
829
+ "label": "Health score threshold",
830
+ "description": "Scores below this trigger CSM alert. Default lines up with the green/yellow/red tier transition. Declarative; wire via sibling std-notify.",
831
831
  "tier": "customization"
832
832
  },
833
+ "itemActions": {
834
+ "type": "[ItemAction]",
835
+ "default": [
836
+ {
837
+ "icon": "arrow-right",
838
+ "event": "OPEN_SCORE",
839
+ "variant": "primary",
840
+ "label": "Open"
841
+ },
842
+ {
843
+ "label": "Recalculate",
844
+ "variant": "secondary",
845
+ "event": "RECALCULATE"
846
+ }
847
+ ],
848
+ "label": "Row actions",
849
+ "description": "Buttons users can click on each customer row",
850
+ "tier": "customization",
851
+ "items": {
852
+ "type": "object",
853
+ "properties": {
854
+ "icon": {
855
+ "name": "icon",
856
+ "type": "string",
857
+ "required": false
858
+ },
859
+ "label": {
860
+ "name": "label",
861
+ "type": "string",
862
+ "required": true
863
+ },
864
+ "event": {
865
+ "name": "event",
866
+ "type": "string",
867
+ "required": true
868
+ },
869
+ "variant": {
870
+ "name": "variant",
871
+ "type": "string",
872
+ "required": false
873
+ }
874
+ }
875
+ }
876
+ },
877
+ "archiveInactiveAfterDays": {
878
+ "type": "number",
879
+ "default": 365.0,
880
+ "label": "Archive inactive after (days)",
881
+ "description": "Days a health score may go without recalculation before being archived. Declarative; wire via sibling std-lifecycle.",
882
+ "tier": "advanced"
883
+ },
833
884
  "fields": {
834
885
  "type": "[FieldSpec]",
835
886
  "default": [
836
887
  {
837
- "name": "customerName",
838
888
  "label": "Customer",
839
- "variant": "caption"
889
+ "variant": "caption",
890
+ "name": "customerName"
840
891
  },
841
892
  {
842
- "name": "score",
843
893
  "variant": "badge",
894
+ "name": "score",
844
895
  "label": "Score"
845
896
  },
846
897
  {
847
- "variant": "badge",
848
898
  "label": "Tier",
849
- "name": "tier"
899
+ "name": "tier",
900
+ "variant": "badge"
850
901
  },
851
902
  {
852
903
  "label": "Usage",
@@ -855,13 +906,13 @@
855
906
  },
856
907
  {
857
908
  "label": "Support",
858
- "name": "supportScore",
859
- "variant": "caption"
909
+ "variant": "caption",
910
+ "name": "supportScore"
860
911
  },
861
912
  {
862
- "name": "trend",
863
913
  "label": "Trend",
864
- "variant": "badge"
914
+ "variant": "badge",
915
+ "name": "trend"
865
916
  },
866
917
  {
867
918
  "label": "CSM",
@@ -875,35 +926,35 @@
875
926
  "items": {
876
927
  "type": "object",
877
928
  "properties": {
878
- "label": {
879
- "name": "label",
929
+ "variant": {
930
+ "name": "variant",
880
931
  "type": "string",
881
932
  "required": false
882
933
  },
883
- "format": {
884
- "name": "format",
934
+ "key": {
935
+ "name": "key",
885
936
  "type": "string",
886
937
  "required": false
887
938
  },
888
- "header": {
889
- "name": "header",
939
+ "label": {
940
+ "name": "label",
890
941
  "type": "string",
891
942
  "required": false
892
943
  },
893
- "variant": {
894
- "name": "variant",
944
+ "name": {
945
+ "name": "name",
895
946
  "type": "string",
896
- "required": false
947
+ "required": true
897
948
  },
898
- "key": {
899
- "name": "key",
949
+ "format": {
950
+ "name": "format",
900
951
  "type": "string",
901
952
  "required": false
902
953
  },
903
- "name": {
904
- "name": "name",
954
+ "header": {
955
+ "name": "header",
905
956
  "type": "string",
906
- "required": true
957
+ "required": false
907
958
  },
908
959
  "icon": {
909
960
  "name": "icon",
@@ -913,49 +964,33 @@
913
964
  }
914
965
  }
915
966
  },
916
- "itemActions": {
917
- "type": "[ItemAction]",
967
+ "consentTrackingEnabled": {
968
+ "type": "boolean",
969
+ "default": false,
970
+ "label": "Track consent",
971
+ "description": "Whether composite score includes only consented signals. Declarative.",
972
+ "tier": "customization"
973
+ },
974
+ "renewalReminderDaysBefore": {
975
+ "type": "[number]",
918
976
  "default": [
919
- {
920
- "event": "OPEN_SCORE",
921
- "variant": "primary",
922
- "icon": "arrow-right",
923
- "label": "Open"
924
- },
925
- {
926
- "variant": "secondary",
927
- "event": "RECALCULATE",
928
- "label": "Recalculate"
929
- }
977
+ 30.0,
978
+ 7.0,
979
+ 1.0
930
980
  ],
931
- "label": "Row actions",
932
- "description": "Buttons users can click on each customer row",
981
+ "label": "Renewal reminder days-before",
982
+ "description": "Days before subscription renewal to send health-score-driven check-ins. Declarative; wire via sibling std-reminder-scheduler.",
933
983
  "tier": "customization",
934
984
  "items": {
935
- "type": "object",
936
- "properties": {
937
- "variant": {
938
- "name": "variant",
939
- "type": "string",
940
- "required": false
941
- },
942
- "label": {
943
- "name": "label",
944
- "type": "string",
945
- "required": true
946
- },
947
- "event": {
948
- "name": "event",
949
- "type": "string",
950
- "required": true
951
- },
952
- "icon": {
953
- "name": "icon",
954
- "type": "string",
955
- "required": false
956
- }
957
- }
985
+ "type": "number"
958
986
  }
987
+ },
988
+ "title": {
989
+ "type": "string",
990
+ "default": "Customer Health Scores",
991
+ "label": "Section title",
992
+ "description": "Heading shown above the customer health dashboard",
993
+ "tier": "customization"
959
994
  }
960
995
  },
961
996
  "scope": "collection"
@@ -974,4 +1009,4 @@
974
1009
  ]
975
1010
  }
976
1011
  ]
977
- }
1012
+ }