@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-response-collector",
3
- "version": "1.1.0",
4
- "description": "std-response-collector — survey per-respondent answer accumulator. Lists responses in `browsing`; opens detail in `viewing_single` with Resubmit / Delete actions. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-response-collector — survey per-respondent answer accumulator. Lists responses; detail offers Resubmit / Delete. Exposes Communication knobs (suppressionListEnabled, gdprConsentRequired, …) for the questionnaire.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "ResponseCollectorOrbital",
@@ -237,22 +237,22 @@
237
237
  "render-ui",
238
238
  "main",
239
239
  {
240
+ "align": "center",
240
241
  "className": "py-12",
241
- "type": "stack",
242
- "direction": "vertical",
243
242
  "children": [
244
243
  {
245
244
  "type": "spinner"
246
245
  },
247
246
  {
248
- "variant": "caption",
249
247
  "color": "muted",
248
+ "content": "Loading responses…",
250
249
  "type": "typography",
251
- "content": "Loading responses…"
250
+ "variant": "caption"
252
251
  }
253
252
  ],
254
- "gap": "md",
255
- "align": "center"
253
+ "type": "stack",
254
+ "direction": "vertical",
255
+ "gap": "md"
256
256
  }
257
257
  ]
258
258
  ]
@@ -266,35 +266,35 @@
266
266
  "render-ui",
267
267
  "main",
268
268
  {
269
- "type": "stack",
270
- "direction": "vertical",
271
269
  "gap": "md",
270
+ "direction": "vertical",
271
+ "type": "stack",
272
272
  "children": [
273
273
  {
274
- "align": "center",
275
274
  "type": "stack",
276
- "gap": "sm",
277
- "direction": "horizontal",
278
275
  "children": [
279
276
  {
280
- "type": "icon",
281
- "name": "clipboard-list"
277
+ "name": "clipboard-list",
278
+ "type": "icon"
282
279
  },
283
280
  {
284
- "type": "typography",
285
281
  "content": "@config.title",
282
+ "type": "typography",
286
283
  "variant": "h3"
287
284
  }
288
- ]
285
+ ],
286
+ "direction": "horizontal",
287
+ "gap": "sm",
288
+ "align": "center"
289
289
  },
290
290
  {
291
291
  "cols": 4.0,
292
292
  "children": [
293
293
  {
294
- "icon": "clipboard-list",
294
+ "label": "Total responses",
295
295
  "value": "@payload.data.length",
296
296
  "type": "stat-display",
297
- "label": "Total responses"
297
+ "icon": "clipboard-list"
298
298
  },
299
299
  {
300
300
  "type": "stat-display",
@@ -303,16 +303,16 @@
303
303
  "icon": "check-circle"
304
304
  },
305
305
  {
306
- "type": "stat-display",
307
- "value": "312",
308
306
  "label": "Respondents",
309
- "icon": "users"
307
+ "icon": "users",
308
+ "type": "stat-display",
309
+ "value": "312"
310
310
  },
311
311
  {
312
- "value": "6",
313
- "type": "stat-display",
314
312
  "icon": "file-text",
315
- "label": "Surveys"
313
+ "type": "stat-display",
314
+ "label": "Surveys",
315
+ "value": "6"
316
316
  }
317
317
  ],
318
318
  "type": "simple-grid"
@@ -321,11 +321,11 @@
321
321
  "type": "divider"
322
322
  },
323
323
  {
324
+ "entity": "@payload.data",
324
325
  "gap": "sm",
326
+ "type": "data-grid",
325
327
  "cols": 1.0,
326
328
  "itemActions": "@config.itemActions",
327
- "type": "data-grid",
328
- "entity": "@payload.data",
329
329
  "fields": "@config.fields"
330
330
  }
331
331
  ]
@@ -342,9 +342,9 @@
342
342
  "render-ui",
343
343
  "main",
344
344
  {
345
+ "variant": "error",
345
346
  "message": "@payload.error",
346
- "type": "alert",
347
- "variant": "error"
347
+ "type": "alert"
348
348
  }
349
349
  ]
350
350
  ]
@@ -388,33 +388,36 @@
388
388
  "render-ui",
389
389
  "main",
390
390
  {
391
+ "type": "stack",
392
+ "direction": "vertical",
393
+ "gap": "md",
391
394
  "children": [
392
395
  {
396
+ "type": "stack",
393
397
  "align": "center",
394
398
  "children": [
395
399
  {
396
- "type": "button",
397
- "variant": "ghost",
400
+ "label": "Back",
398
401
  "action": "CLOSE_VIEW",
399
- "label": "Back"
402
+ "type": "button",
403
+ "variant": "ghost"
400
404
  },
401
405
  {
402
- "type": "icon",
403
- "name": "clipboard-list"
406
+ "name": "clipboard-list",
407
+ "type": "icon"
404
408
  },
405
409
  {
406
- "type": "typography",
410
+ "content": "@entity.respondentId",
407
411
  "variant": "h3",
408
- "content": "@entity.respondentId"
412
+ "type": "typography"
409
413
  },
410
414
  {
415
+ "variant": "success",
411
416
  "label": "Submitted",
412
- "type": "badge",
413
- "variant": "success"
417
+ "type": "badge"
414
418
  }
415
419
  ],
416
420
  "gap": "sm",
417
- "type": "stack",
418
421
  "direction": "horizontal"
419
422
  },
420
423
  {
@@ -423,57 +426,57 @@
423
426
  {
424
427
  "children": [
425
428
  {
426
- "direction": "horizontal",
429
+ "type": "stack",
427
430
  "children": [
428
431
  {
429
- "color": "muted",
432
+ "variant": "caption",
430
433
  "type": "typography",
431
434
  "content": "Survey",
432
- "variant": "caption"
435
+ "color": "muted"
433
436
  },
434
437
  {
435
- "variant": "body",
438
+ "type": "typography",
436
439
  "content": "@entity.surveyId",
437
- "type": "typography"
440
+ "variant": "body"
438
441
  }
439
442
  ],
440
- "gap": "md",
441
- "type": "stack"
443
+ "direction": "horizontal",
444
+ "gap": "md"
442
445
  },
443
446
  {
444
447
  "type": "stack",
445
448
  "gap": "md",
449
+ "direction": "horizontal",
446
450
  "children": [
447
451
  {
448
- "type": "typography",
449
- "color": "muted",
450
452
  "variant": "caption",
451
- "content": "Question"
453
+ "content": "Question",
454
+ "color": "muted",
455
+ "type": "typography"
452
456
  },
453
457
  {
454
458
  "variant": "body",
455
- "content": "@entity.questionId",
456
- "type": "typography"
459
+ "type": "typography",
460
+ "content": "@entity.questionId"
457
461
  }
458
- ],
459
- "direction": "horizontal"
462
+ ]
460
463
  },
461
464
  {
465
+ "type": "stack",
462
466
  "children": [
463
467
  {
464
- "type": "typography",
465
- "content": "Answer",
466
468
  "variant": "caption",
467
- "color": "muted"
469
+ "content": "Answer",
470
+ "color": "muted",
471
+ "type": "typography"
468
472
  },
469
473
  {
470
- "content": "@entity.answerJson",
471
474
  "type": "typography",
472
- "variant": "body"
475
+ "variant": "body",
476
+ "content": "@entity.answerJson"
473
477
  }
474
478
  ],
475
479
  "gap": "md",
476
- "type": "stack",
477
480
  "direction": "horizontal"
478
481
  }
479
482
  ],
@@ -485,53 +488,50 @@
485
488
  "type": "divider"
486
489
  },
487
490
  {
491
+ "cols": 2.0,
488
492
  "children": [
489
493
  {
490
- "icon": "user",
491
- "type": "stat-display",
494
+ "value": "@entity.respondentId",
492
495
  "label": "Respondent",
493
- "value": "@entity.respondentId"
496
+ "type": "stat-display",
497
+ "icon": "user"
494
498
  },
495
499
  {
496
- "label": "Submitted",
497
- "icon": "calendar",
498
500
  "type": "stat-display",
501
+ "icon": "calendar",
502
+ "label": "Submitted",
499
503
  "value": "@entity.submittedAt"
500
504
  }
501
505
  ],
502
- "type": "simple-grid",
503
- "cols": 2.0
506
+ "type": "simple-grid"
504
507
  },
505
508
  {
506
- "type": "stack",
507
- "gap": "sm",
508
509
  "align": "center",
509
510
  "direction": "horizontal",
511
+ "type": "stack",
510
512
  "children": [
511
513
  {
512
- "label": "Resubmit",
513
514
  "type": "button",
514
- "variant": "primary",
515
+ "label": "Resubmit",
515
516
  "action": "RESUBMIT",
517
+ "variant": "primary",
516
518
  "actionPayload": {
517
519
  "id": "@entity.id"
518
520
  }
519
521
  },
520
522
  {
521
- "variant": "danger",
523
+ "type": "button",
524
+ "label": "Delete",
525
+ "action": "DELETE_RESPONSE",
522
526
  "actionPayload": {
523
527
  "id": "@entity.id"
524
528
  },
525
- "type": "button",
526
- "action": "DELETE_RESPONSE",
527
- "label": "Delete"
529
+ "variant": "danger"
528
530
  }
529
- ]
531
+ ],
532
+ "gap": "sm"
530
533
  }
531
- ],
532
- "type": "stack",
533
- "direction": "vertical",
534
- "gap": "md"
534
+ ]
535
535
  }
536
536
  ]
537
537
  ]
@@ -560,22 +560,22 @@
560
560
  "render-ui",
561
561
  "main",
562
562
  {
563
+ "type": "stack",
564
+ "align": "center",
563
565
  "children": [
564
566
  {
565
567
  "type": "spinner"
566
568
  },
567
569
  {
568
- "color": "muted",
569
- "content": "Resubmitting response…",
570
+ "type": "typography",
570
571
  "variant": "caption",
571
- "type": "typography"
572
+ "color": "muted",
573
+ "content": "Resubmitting response…"
572
574
  }
573
575
  ],
574
- "className": "py-12",
575
- "align": "center",
576
- "type": "stack",
576
+ "gap": "md",
577
577
  "direction": "vertical",
578
- "gap": "md"
578
+ "className": "py-12"
579
579
  }
580
580
  ]
581
581
  ]
@@ -595,8 +595,8 @@
595
595
  "Response",
596
596
  {
597
597
  "emit": {
598
- "failure": "ResponseLoadFailed",
599
- "success": "ResponseLoaded"
598
+ "success": "ResponseLoaded",
599
+ "failure": "ResponseLoadFailed"
600
600
  }
601
601
  }
602
602
  ],
@@ -604,10 +604,8 @@
604
604
  "render-ui",
605
605
  "main",
606
606
  {
607
- "type": "stack",
608
607
  "direction": "vertical",
609
608
  "align": "center",
610
- "gap": "md",
611
609
  "children": [
612
610
  {
613
611
  "type": "spinner"
@@ -619,6 +617,8 @@
619
617
  "color": "muted"
620
618
  }
621
619
  ],
620
+ "gap": "md",
621
+ "type": "stack",
622
622
  "className": "py-12"
623
623
  }
624
624
  ]
@@ -634,8 +634,8 @@
634
634
  "Response",
635
635
  {
636
636
  "emit": {
637
- "success": "ResponseLoaded",
638
- "failure": "ResponseLoadFailed"
637
+ "failure": "ResponseLoadFailed",
638
+ "success": "ResponseLoaded"
639
639
  }
640
640
  }
641
641
  ],
@@ -643,22 +643,22 @@
643
643
  "render-ui",
644
644
  "main",
645
645
  {
646
- "gap": "md",
647
- "type": "stack",
648
- "direction": "vertical",
649
646
  "children": [
650
647
  {
651
648
  "type": "spinner"
652
649
  },
653
650
  {
654
- "variant": "caption",
655
- "color": "muted",
656
651
  "type": "typography",
657
- "content": "Loading responses…"
652
+ "content": "Loading responses…",
653
+ "variant": "caption",
654
+ "color": "muted"
658
655
  }
659
656
  ],
660
- "align": "center",
661
- "className": "py-12"
657
+ "className": "py-12",
658
+ "direction": "vertical",
659
+ "type": "stack",
660
+ "gap": "md",
661
+ "align": "center"
662
662
  }
663
663
  ]
664
664
  ]
@@ -678,8 +678,8 @@
678
678
  "Response",
679
679
  {
680
680
  "emit": {
681
- "success": "ResponseLoaded",
682
- "failure": "ResponseLoadFailed"
681
+ "failure": "ResponseLoadFailed",
682
+ "success": "ResponseLoaded"
683
683
  }
684
684
  }
685
685
  ],
@@ -687,22 +687,22 @@
687
687
  "render-ui",
688
688
  "main",
689
689
  {
690
- "direction": "vertical",
691
- "className": "py-12",
692
- "type": "stack",
693
690
  "align": "center",
691
+ "type": "stack",
692
+ "className": "py-12",
693
+ "direction": "vertical",
694
+ "gap": "md",
694
695
  "children": [
695
696
  {
696
697
  "type": "spinner"
697
698
  },
698
699
  {
700
+ "color": "muted",
699
701
  "variant": "caption",
700
- "content": "Resubmitting response…",
701
702
  "type": "typography",
702
- "color": "muted"
703
+ "content": "Resubmitting response…"
703
704
  }
704
- ],
705
- "gap": "md"
705
+ ]
706
706
  }
707
707
  ]
708
708
  ]
@@ -722,8 +722,8 @@
722
722
  "Response",
723
723
  {
724
724
  "emit": {
725
- "failure": "ResponseLoadFailed",
726
- "success": "ResponseLoaded"
725
+ "success": "ResponseLoaded",
726
+ "failure": "ResponseLoadFailed"
727
727
  }
728
728
  }
729
729
  ],
@@ -731,22 +731,22 @@
731
731
  "render-ui",
732
732
  "main",
733
733
  {
734
- "gap": "md",
735
- "type": "stack",
736
- "direction": "vertical",
737
- "align": "center",
738
734
  "className": "py-12",
739
735
  "children": [
740
736
  {
741
737
  "type": "spinner"
742
738
  },
743
739
  {
744
- "variant": "caption",
745
- "color": "muted",
746
740
  "content": "Deleting response…",
747
- "type": "typography"
741
+ "color": "muted",
742
+ "type": "typography",
743
+ "variant": "caption"
748
744
  }
749
- ]
745
+ ],
746
+ "gap": "md",
747
+ "direction": "vertical",
748
+ "align": "center",
749
+ "type": "stack"
750
750
  }
751
751
  ]
752
752
  ]
@@ -761,8 +761,8 @@
761
761
  "Response",
762
762
  {
763
763
  "emit": {
764
- "failure": "ResponseLoadFailed",
765
- "success": "ResponseLoaded"
764
+ "success": "ResponseLoaded",
765
+ "failure": "ResponseLoadFailed"
766
766
  }
767
767
  }
768
768
  ],
@@ -785,12 +785,12 @@
785
785
  {
786
786
  "variant": "primary",
787
787
  "label": "Open",
788
- "icon": "arrow-right",
789
- "event": "OPEN_RESPONSE"
788
+ "event": "OPEN_RESPONSE",
789
+ "icon": "arrow-right"
790
790
  },
791
791
  {
792
- "event": "DELETE_RESPONSE",
793
792
  "label": "Delete",
793
+ "event": "DELETE_RESPONSE",
794
794
  "variant": "danger"
795
795
  }
796
796
  ],
@@ -800,8 +800,13 @@
800
800
  "items": {
801
801
  "type": "object",
802
802
  "properties": {
803
- "variant": {
804
- "name": "variant",
803
+ "event": {
804
+ "name": "event",
805
+ "type": "string",
806
+ "required": true
807
+ },
808
+ "icon": {
809
+ "name": "icon",
805
810
  "type": "string",
806
811
  "required": false
807
812
  },
@@ -810,13 +815,8 @@
810
815
  "type": "string",
811
816
  "required": true
812
817
  },
813
- "event": {
814
- "name": "event",
815
- "type": "string",
816
- "required": true
817
- },
818
- "icon": {
819
- "name": "icon",
818
+ "variant": {
819
+ "name": "variant",
820
820
  "type": "string",
821
821
  "required": false
822
822
  }
@@ -830,13 +830,62 @@
830
830
  "description": "Heading shown above the survey response list",
831
831
  "tier": "customization"
832
832
  },
833
+ "trackClicks": {
834
+ "type": "boolean",
835
+ "default": false,
836
+ "label": "Track clicks",
837
+ "description": "Wrap survey links for click attribution on reminder mailings.",
838
+ "tier": "advanced"
839
+ },
840
+ "includeUnsubscribeLink": {
841
+ "type": "boolean",
842
+ "default": true,
843
+ "label": "Include unsubscribe link",
844
+ "description": "Append a CAN-SPAM/GDPR-compliant unsubscribe link to every follow-up.",
845
+ "tier": "essential"
846
+ },
847
+ "suppressionListEnabled": {
848
+ "type": "boolean",
849
+ "default": true,
850
+ "label": "Honor suppression list",
851
+ "description": "Skip respondents on the global suppression / bounce list when dispatching follow-ups.",
852
+ "tier": "customization"
853
+ },
854
+ "physicalAddressFooter": {
855
+ "type": "string",
856
+ "default": "",
857
+ "label": "Physical address footer",
858
+ "description": "CAN-SPAM-required postal address appended to every follow-up.",
859
+ "tier": "essential"
860
+ },
861
+ "trackOpens": {
862
+ "type": "boolean",
863
+ "default": false,
864
+ "label": "Track opens",
865
+ "description": "Embed a tracking pixel on outbound survey reminders.",
866
+ "tier": "advanced"
867
+ },
868
+ "sendsPerHour": {
869
+ "type": "number",
870
+ "default": 500.0,
871
+ "label": "Sends per hour",
872
+ "description": "Cap on follow-up dispatch volume per hour. v1.2 declarative.",
873
+ "tier": "customization"
874
+ },
875
+ "respectQuietHours": {
876
+ "type": "boolean",
877
+ "default": true,
878
+ "label": "Respect quiet hours",
879
+ "description": "Suppress follow-up sends during recipient-local quiet hours.",
880
+ "tier": "customization"
881
+ },
833
882
  "fields": {
834
883
  "type": "[FieldSpec]",
835
884
  "default": [
836
885
  {
886
+ "label": "Question",
837
887
  "name": "questionId",
838
- "variant": "caption",
839
- "label": "Question"
888
+ "variant": "caption"
840
889
  },
841
890
  {
842
891
  "label": "Respondent",
@@ -844,19 +893,19 @@
844
893
  "variant": "caption"
845
894
  },
846
895
  {
847
- "variant": "caption",
848
896
  "name": "surveyId",
897
+ "variant": "caption",
849
898
  "label": "Survey"
850
899
  },
851
900
  {
901
+ "variant": "caption",
852
902
  "label": "Answer",
853
- "name": "answerJson",
854
- "variant": "caption"
903
+ "name": "answerJson"
855
904
  },
856
905
  {
857
906
  "variant": "caption",
858
- "label": "Submitted",
859
- "name": "submittedAt"
907
+ "name": "submittedAt",
908
+ "label": "Submitted"
860
909
  }
861
910
  ],
862
911
  "label": "Columns to show",
@@ -880,28 +929,42 @@
880
929
  "type": "string",
881
930
  "required": false
882
931
  },
932
+ "variant": {
933
+ "name": "variant",
934
+ "type": "string",
935
+ "required": false
936
+ },
883
937
  "name": {
884
938
  "name": "name",
885
939
  "type": "string",
886
940
  "required": true
887
941
  },
888
- "label": {
889
- "name": "label",
890
- "type": "string",
891
- "required": false
892
- },
893
- "variant": {
894
- "name": "variant",
942
+ "icon": {
943
+ "name": "icon",
895
944
  "type": "string",
896
945
  "required": false
897
946
  },
898
- "icon": {
899
- "name": "icon",
947
+ "label": {
948
+ "name": "label",
900
949
  "type": "string",
901
950
  "required": false
902
951
  }
903
952
  }
904
953
  }
954
+ },
955
+ "gdprConsentRequired": {
956
+ "type": "boolean",
957
+ "default": true,
958
+ "label": "GDPR consent required",
959
+ "description": "Require survey consent before recording or following up with EU/UK respondents.",
960
+ "tier": "customization"
961
+ },
962
+ "frequencyCapPerWeek": {
963
+ "type": "number",
964
+ "default": 2.0,
965
+ "label": "Frequency cap (per week)",
966
+ "description": "Max survey-related touches per respondent per 7-day window.",
967
+ "tier": "customization"
905
968
  }
906
969
  },
907
970
  "scope": "collection"
@@ -920,4 +983,4 @@
920
983
  ]
921
984
  }
922
985
  ]
923
- }
986
+ }