@almadar/std 14.26.0 → 14.27.0

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 (151) hide show
  1. package/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  2. package/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  3. package/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  4. package/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  5. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  6. package/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  7. package/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  8. package/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  9. package/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  10. package/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  11. package/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  12. package/behaviors/registry/app/atoms/std-donor.orb +445 -135
  13. package/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  14. package/behaviors/registry/app/atoms/std-driver.orb +465 -480
  15. package/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  16. package/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  17. package/behaviors/registry/app/atoms/std-event.orb +465 -667
  18. package/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  19. package/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  20. package/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  21. package/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  22. package/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  23. package/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  24. package/behaviors/registry/app/atoms/std-lease.orb +506 -190
  25. package/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  26. package/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  27. package/behaviors/registry/app/atoms/std-matter.orb +486 -318
  28. package/behaviors/registry/app/atoms/std-membership.orb +512 -102
  29. package/behaviors/registry/app/atoms/std-menu.orb +775 -183
  30. package/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  31. package/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  32. package/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  33. package/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  34. package/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  35. package/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  36. package/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  37. package/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  38. package/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  39. package/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  40. package/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  41. package/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  42. package/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  43. package/behaviors/registry/app/atoms/std-segment.orb +360 -98
  44. package/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  45. package/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  46. package/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  47. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  48. package/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  49. package/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  50. package/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  51. package/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  52. package/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  53. package/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  54. package/behaviors/registry/app/atoms/std-trial.orb +410 -317
  55. package/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  56. package/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  57. package/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  58. package/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  59. package/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  60. package/behaviors/registry/app/molecules/std-application.orb +178 -263
  61. package/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  62. package/behaviors/registry/app/molecules/std-cart.orb +78 -72
  63. package/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  64. package/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  65. package/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  66. package/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  67. package/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  68. package/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  69. package/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  70. package/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  71. package/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  72. package/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  73. package/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  74. package/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  75. package/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  76. package/dist/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  77. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  78. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  79. package/dist/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  80. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  81. package/dist/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  82. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  83. package/dist/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  84. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  85. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  86. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  87. package/dist/behaviors/registry/app/atoms/std-donor.orb +445 -135
  88. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  89. package/dist/behaviors/registry/app/atoms/std-driver.orb +465 -480
  90. package/dist/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  91. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  92. package/dist/behaviors/registry/app/atoms/std-event.orb +465 -667
  93. package/dist/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  94. package/dist/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  95. package/dist/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  96. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  97. package/dist/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  98. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  99. package/dist/behaviors/registry/app/atoms/std-lease.orb +506 -190
  100. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  101. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  102. package/dist/behaviors/registry/app/atoms/std-matter.orb +486 -318
  103. package/dist/behaviors/registry/app/atoms/std-membership.orb +512 -102
  104. package/dist/behaviors/registry/app/atoms/std-menu.orb +775 -183
  105. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  106. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  107. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  108. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  109. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  110. package/dist/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  111. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  112. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  113. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  114. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  115. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  116. package/dist/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  117. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  118. package/dist/behaviors/registry/app/atoms/std-segment.orb +360 -98
  119. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  120. package/dist/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  121. package/dist/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  122. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  123. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  124. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  125. package/dist/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  126. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  127. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  128. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  129. package/dist/behaviors/registry/app/atoms/std-trial.orb +410 -317
  130. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  131. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  132. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  133. package/dist/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  134. package/dist/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  135. package/dist/behaviors/registry/app/molecules/std-application.orb +178 -263
  136. package/dist/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  137. package/dist/behaviors/registry/app/molecules/std-cart.orb +78 -72
  138. package/dist/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  139. package/dist/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  140. package/dist/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  141. package/dist/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  142. package/dist/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  143. package/dist/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  144. package/dist/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  145. package/dist/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  146. package/dist/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  147. package/dist/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  148. package/dist/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  149. package/dist/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  150. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  151. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-donation-receipt",
3
3
  "version": "1.0.0",
4
- "description": "std-donation-receipt — tax-deductible donation receipt atom. Owns a DonationReceipt entity with IRS-compliance fields (taxYear, taxDeductible, nonprofitEin). Browses receipts in a data-grid with Email / Void actions.",
4
+ "description": "std-donation-receipt — tax-deductible donation receipt with IRS-compliance fields (taxYear, taxDeductible, nonprofitEin). Lists receipts in `browsing`; opens detail in `viewing_single` with Email / Void actions.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "DonationReceiptOrbital",
@@ -73,6 +73,67 @@
73
73
  "category": "interaction",
74
74
  "linkedEntity": "DonationReceipt",
75
75
  "emits": [
76
+ {
77
+ "event": "OPEN_RECEIPT",
78
+ "payloadSchema": [
79
+ {
80
+ "name": "id",
81
+ "type": "string",
82
+ "required": true
83
+ },
84
+ {
85
+ "name": "row.id",
86
+ "type": "string",
87
+ "required": true
88
+ },
89
+ {
90
+ "name": "row.receiptNumber",
91
+ "type": "string",
92
+ "required": true
93
+ },
94
+ {
95
+ "name": "row.donorId",
96
+ "type": "string",
97
+ "required": true
98
+ },
99
+ {
100
+ "name": "row.donorName",
101
+ "type": "string"
102
+ },
103
+ {
104
+ "name": "row.campaignId",
105
+ "type": "string"
106
+ },
107
+ {
108
+ "name": "row.amount",
109
+ "type": "number"
110
+ },
111
+ {
112
+ "name": "row.donationDate",
113
+ "type": "string",
114
+ "required": true
115
+ },
116
+ {
117
+ "name": "row.taxYear",
118
+ "type": "number"
119
+ },
120
+ {
121
+ "name": "row.taxDeductible",
122
+ "type": "boolean"
123
+ },
124
+ {
125
+ "name": "row.nonprofitEin",
126
+ "type": "string"
127
+ },
128
+ {
129
+ "name": "row.isEmailed",
130
+ "type": "boolean"
131
+ }
132
+ ]
133
+ },
134
+ {
135
+ "event": "CLOSE_VIEW"
136
+ },
76
137
  {
77
138
  "event": "EMAIL_RECEIPT",
78
139
  "payloadSchema": [
@@ -125,6 +186,9 @@
125
186
  {
126
187
  "name": "browsing"
127
188
  },
189
+ {
190
+ "name": "viewing_single"
191
+ },
128
192
  {
129
193
  "name": "error"
130
194
  }
@@ -159,13 +223,17 @@
159
223
  ]
160
224
  },
161
225
  {
162
- "key": "EMAIL_RECEIPT",
163
- "name": "Email Receipt",
226
+ "key": "OPEN_RECEIPT",
227
+ "name": "Open Receipt",
164
228
  "payloadSchema": [
165
229
  {
166
230
  "name": "id",
167
231
  "type": "string",
168
232
  "required": true
233
+ },
234
+ {
235
+ "name": "row",
236
+ "type": "DonationReceipt"
169
237
  }
170
238
  ]
171
239
  },
@@ -179,6 +247,21 @@
179
247
  "required": true
180
248
  }
181
249
  ]
250
+ },
251
+ {
252
+ "key": "CLOSE_VIEW",
253
+ "name": "Close View"
254
+ },
255
+ {
256
+ "key": "EMAIL_RECEIPT",
257
+ "name": "Email Receipt",
258
+ "payloadSchema": [
259
+ {
260
+ "name": "id",
261
+ "type": "string",
262
+ "required": true
263
+ }
264
+ ]
182
265
  }
183
266
  ],
184
267
  "transitions": [
@@ -201,22 +284,22 @@
201
284
  "render-ui",
202
285
  "main",
203
286
  {
204
- "type": "stack",
205
- "align": "center",
206
287
  "gap": "md",
207
- "className": "py-12",
208
288
  "children": [
209
289
  {
210
290
  "type": "spinner"
211
291
  },
212
292
  {
213
- "color": "muted",
293
+ "variant": "caption",
214
294
  "type": "typography",
215
295
  "content": "Loading donation receipts…",
216
- "variant": "caption"
296
+ "color": "muted"
217
297
  }
218
298
  ],
219
- "direction": "vertical"
299
+ "type": "stack",
300
+ "className": "py-12",
301
+ "direction": "vertical",
302
+ "align": "center"
220
303
  }
221
304
  ]
222
305
  ]
@@ -230,42 +313,54 @@
230
313
  "render-ui",
231
314
  "main",
232
315
  {
316
+ "type": "stack",
317
+ "gap": "md",
318
+ "direction": "vertical",
233
319
  "children": [
234
320
  {
235
- "gap": "sm",
236
321
  "children": [
237
322
  {
238
- "type": "icon",
239
- "name": "receipt"
323
+ "name": "receipt",
324
+ "type": "icon"
240
325
  },
241
326
  {
242
- "type": "typography",
327
+ "content": "@config.title",
243
328
  "variant": "h3",
244
- "content": "@config.title"
329
+ "type": "typography"
245
330
  }
246
331
  ],
247
332
  "type": "stack",
248
- "direction": "horizontal"
333
+ "gap": "sm",
334
+ "direction": "horizontal",
335
+ "align": "center"
249
336
  },
250
337
  {
251
- "type": "stats-grid",
252
- "columns": 4.0,
253
- "stats": [
338
+ "type": "simple-grid",
339
+ "cols": 4.0,
340
+ "children": [
254
341
  {
255
- "value": "1,248",
256
- "label": "Receipts issued"
342
+ "value": "@payload.data.length",
343
+ "icon": "receipt",
344
+ "type": "stat-display",
345
+ "label": "Receipts"
257
346
  },
258
347
  {
259
348
  "value": "$482,300",
349
+ "type": "stat-display",
350
+ "icon": "dollar-sign",
260
351
  "label": "Total deductible"
261
352
  },
262
353
  {
263
- "label": "Tax year",
264
- "value": "2025"
354
+ "type": "stat-display",
355
+ "value": "2025",
356
+ "icon": "calendar",
357
+ "label": "Tax year"
265
358
  },
266
359
  {
360
+ "icon": "send",
361
+ "label": "Emailed",
267
362
  "value": "94%",
268
- "label": "Emailed"
363
+ "type": "stat-display"
269
364
  }
270
365
  ]
271
366
  },
@@ -274,26 +369,29 @@
274
369
  },
275
370
  {
276
371
  "type": "data-grid",
372
+ "gap": "sm",
373
+ "cols": 1.0,
374
+ "entity": "@payload.data",
277
375
  "fields": [
278
376
  {
279
- "name": "receiptNumber",
280
377
  "label": "Receipt #",
378
+ "name": "receiptNumber",
281
379
  "variant": "caption"
282
380
  },
283
381
  {
382
+ "label": "Donor",
284
383
  "variant": "caption",
285
- "name": "donorName",
286
- "label": "Donor"
384
+ "name": "donorName"
287
385
  },
288
386
  {
387
+ "label": "Amount",
289
388
  "name": "amount",
290
- "variant": "caption",
291
- "label": "Amount"
389
+ "variant": "caption"
292
390
  },
293
391
  {
294
- "variant": "caption",
295
392
  "name": "donationDate",
296
- "label": "Date"
393
+ "label": "Date",
394
+ "variant": "caption"
297
395
  },
298
396
  {
299
397
  "name": "taxYear",
@@ -302,30 +400,25 @@
302
400
  },
303
401
  {
304
402
  "name": "isEmailed",
305
- "label": "Emailed",
306
- "variant": "badge"
403
+ "variant": "badge",
404
+ "label": "Emailed"
307
405
  }
308
406
  ],
309
- "cols": 1.0,
310
- "gap": "sm",
311
407
  "itemActions": [
312
408
  {
409
+ "label": "Open",
410
+ "event": "OPEN_RECEIPT",
313
411
  "variant": "primary",
314
- "event": "EMAIL_RECEIPT",
315
- "label": "Email"
412
+ "icon": "arrow-right"
316
413
  },
317
414
  {
318
415
  "label": "Void",
319
416
  "event": "VOID_RECEIPT",
320
417
  "variant": "danger"
321
418
  }
322
- ],
323
- "entity": "@payload.data"
419
+ ]
324
420
  }
325
- ],
326
- "gap": "md",
327
- "type": "stack",
328
- "direction": "vertical"
421
+ ]
329
422
  }
330
423
  ]
331
424
  ]
@@ -339,16 +432,320 @@
339
432
  "render-ui",
340
433
  "main",
341
434
  {
342
- "message": "@payload.error",
343
435
  "type": "alert",
344
- "variant": "error"
436
+ "variant": "error",
437
+ "message": "@payload.error"
345
438
  }
346
439
  ]
347
440
  ]
348
441
  },
349
442
  {
350
443
  "from": "browsing",
351
- "to": "browsing",
444
+ "to": "viewing_single",
445
+ "event": "OPEN_RECEIPT",
446
+ "effects": [
447
+ [
448
+ "set",
449
+ "@entity.id",
450
+ "@payload.row.id"
451
+ ],
452
+ [
453
+ "set",
454
+ "@entity.receiptNumber",
455
+ "@payload.row.receiptNumber"
456
+ ],
457
+ [
458
+ "set",
459
+ "@entity.donorId",
460
+ "@payload.row.donorId"
461
+ ],
462
+ [
463
+ "set",
464
+ "@entity.donorName",
465
+ "@payload.row.donorName"
466
+ ],
467
+ [
468
+ "set",
469
+ "@entity.campaignId",
470
+ "@payload.row.campaignId"
471
+ ],
472
+ [
473
+ "set",
474
+ "@entity.amount",
475
+ "@payload.row.amount"
476
+ ],
477
+ [
478
+ "set",
479
+ "@entity.donationDate",
480
+ "@payload.row.donationDate"
481
+ ],
482
+ [
483
+ "set",
484
+ "@entity.taxYear",
485
+ "@payload.row.taxYear"
486
+ ],
487
+ [
488
+ "set",
489
+ "@entity.nonprofitEin",
490
+ "@payload.row.nonprofitEin"
491
+ ],
492
+ [
493
+ "render-ui",
494
+ "main",
495
+ {
496
+ "gap": "md",
497
+ "children": [
498
+ {
499
+ "direction": "horizontal",
500
+ "align": "center",
501
+ "gap": "sm",
502
+ "type": "stack",
503
+ "children": [
504
+ {
505
+ "variant": "ghost",
506
+ "action": "CLOSE_VIEW",
507
+ "label": "Back",
508
+ "type": "button"
509
+ },
510
+ {
511
+ "type": "icon",
512
+ "name": "receipt"
513
+ },
514
+ {
515
+ "type": "typography",
516
+ "content": "@entity.receiptNumber",
517
+ "variant": "h3"
518
+ }
519
+ ]
520
+ },
521
+ {
522
+ "type": "divider"
523
+ },
524
+ {
525
+ "gap": "sm",
526
+ "children": [
527
+ {
528
+ "gap": "md",
529
+ "children": [
530
+ {
531
+ "content": "Donor",
532
+ "type": "typography",
533
+ "variant": "caption",
534
+ "color": "muted"
535
+ },
536
+ {
537
+ "variant": "body",
538
+ "type": "typography",
539
+ "content": "@entity.donorName"
540
+ }
541
+ ],
542
+ "type": "stack",
543
+ "direction": "horizontal"
544
+ },
545
+ {
546
+ "direction": "horizontal",
547
+ "children": [
548
+ {
549
+ "variant": "caption",
550
+ "type": "typography",
551
+ "color": "muted",
552
+ "content": "Donor ID"
553
+ },
554
+ {
555
+ "content": "@entity.donorId",
556
+ "type": "typography",
557
+ "variant": "body"
558
+ }
559
+ ],
560
+ "gap": "md",
561
+ "type": "stack"
562
+ },
563
+ {
564
+ "type": "stack",
565
+ "direction": "horizontal",
566
+ "children": [
567
+ {
568
+ "variant": "caption",
569
+ "color": "muted",
570
+ "content": "Campaign",
571
+ "type": "typography"
572
+ },
573
+ {
574
+ "variant": "body",
575
+ "type": "typography",
576
+ "content": "@entity.campaignId"
577
+ }
578
+ ],
579
+ "gap": "md"
580
+ },
581
+ {
582
+ "gap": "md",
583
+ "direction": "horizontal",
584
+ "type": "stack",
585
+ "children": [
586
+ {
587
+ "color": "muted",
588
+ "content": "Nonprofit EIN",
589
+ "type": "typography",
590
+ "variant": "caption"
591
+ },
592
+ {
593
+ "variant": "body",
594
+ "content": "@entity.nonprofitEin",
595
+ "type": "typography"
596
+ }
597
+ ]
598
+ }
599
+ ],
600
+ "direction": "vertical",
601
+ "type": "stack"
602
+ },
603
+ {
604
+ "type": "divider"
605
+ },
606
+ {
607
+ "type": "simple-grid",
608
+ "cols": 3.0,
609
+ "children": [
610
+ {
611
+ "icon": "dollar-sign",
612
+ "value": "@entity.amount",
613
+ "type": "stat-display",
614
+ "label": "Amount"
615
+ },
616
+ {
617
+ "value": "@entity.donationDate",
618
+ "type": "stat-display",
619
+ "label": "Date",
620
+ "icon": "calendar"
621
+ },
622
+ {
623
+ "icon": "file-text",
624
+ "label": "Tax year",
625
+ "type": "stat-display",
626
+ "value": "@entity.taxYear"
627
+ }
628
+ ]
629
+ },
630
+ {
631
+ "direction": "horizontal",
632
+ "gap": "sm",
633
+ "children": [
634
+ {
635
+ "label": "Email Receipt",
636
+ "action": "EMAIL_RECEIPT",
637
+ "type": "button",
638
+ "actionPayload": {
639
+ "id": "@entity.id"
640
+ },
641
+ "variant": "primary"
642
+ },
643
+ {
644
+ "variant": "danger",
645
+ "label": "Void",
646
+ "actionPayload": {
647
+ "id": "@entity.id"
648
+ },
649
+ "type": "button",
650
+ "action": "VOID_RECEIPT"
651
+ }
652
+ ],
653
+ "align": "center",
654
+ "type": "stack"
655
+ }
656
+ ],
657
+ "direction": "vertical",
658
+ "type": "stack"
659
+ }
660
+ ]
661
+ ]
662
+ },
663
+ {
664
+ "from": "browsing",
665
+ "to": "loading",
666
+ "event": "VOID_RECEIPT",
667
+ "effects": [
668
+ [
669
+ "set",
670
+ "@entity.id",
671
+ "@payload.id"
672
+ ],
673
+ [
674
+ "fetch",
675
+ "DonationReceipt",
676
+ {
677
+ "emit": {
678
+ "failure": "DonationReceiptLoadFailed",
679
+ "success": "DonationReceiptLoaded"
680
+ }
681
+ }
682
+ ],
683
+ [
684
+ "render-ui",
685
+ "main",
686
+ {
687
+ "direction": "vertical",
688
+ "gap": "md",
689
+ "type": "stack",
690
+ "align": "center",
691
+ "className": "py-12",
692
+ "children": [
693
+ {
694
+ "type": "spinner"
695
+ },
696
+ {
697
+ "type": "typography",
698
+ "color": "muted",
699
+ "content": "Voiding receipt…",
700
+ "variant": "caption"
701
+ }
702
+ ]
703
+ }
704
+ ]
705
+ ]
706
+ },
707
+ {
708
+ "from": "viewing_single",
709
+ "to": "loading",
710
+ "event": "CLOSE_VIEW",
711
+ "effects": [
712
+ [
713
+ "fetch",
714
+ "DonationReceipt",
715
+ {
716
+ "emit": {
717
+ "failure": "DonationReceiptLoadFailed",
718
+ "success": "DonationReceiptLoaded"
719
+ }
720
+ }
721
+ ],
722
+ [
723
+ "render-ui",
724
+ "main",
725
+ {
726
+ "gap": "md",
727
+ "align": "center",
728
+ "direction": "vertical",
729
+ "type": "stack",
730
+ "className": "py-12",
731
+ "children": [
732
+ {
733
+ "type": "spinner"
734
+ },
735
+ {
736
+ "variant": "caption",
737
+ "type": "typography",
738
+ "content": "Loading receipts…",
739
+ "color": "muted"
740
+ }
741
+ ]
742
+ }
743
+ ]
744
+ ]
745
+ },
746
+ {
747
+ "from": "viewing_single",
748
+ "to": "loading",
352
749
  "event": "EMAIL_RECEIPT",
353
750
  "effects": [
354
751
  [
@@ -356,20 +753,43 @@
356
753
  "@entity.id",
357
754
  "@payload.id"
358
755
  ],
756
+ [
757
+ "fetch",
758
+ "DonationReceipt",
759
+ {
760
+ "emit": {
761
+ "failure": "DonationReceiptLoadFailed",
762
+ "success": "DonationReceiptLoaded"
763
+ }
764
+ }
765
+ ],
359
766
  [
360
767
  "render-ui",
361
768
  "main",
362
769
  {
363
- "message": "Receipt emailed",
364
- "variant": "success",
365
- "type": "alert"
770
+ "direction": "vertical",
771
+ "type": "stack",
772
+ "className": "py-12",
773
+ "children": [
774
+ {
775
+ "type": "spinner"
776
+ },
777
+ {
778
+ "variant": "caption",
779
+ "type": "typography",
780
+ "color": "muted",
781
+ "content": "Emailing receipt…"
782
+ }
783
+ ],
784
+ "align": "center",
785
+ "gap": "md"
366
786
  }
367
787
  ]
368
788
  ]
369
789
  },
370
790
  {
371
- "from": "browsing",
372
- "to": "browsing",
791
+ "from": "viewing_single",
792
+ "to": "loading",
373
793
  "event": "VOID_RECEIPT",
374
794
  "effects": [
375
795
  [
@@ -377,13 +797,36 @@
377
797
  "@entity.id",
378
798
  "@payload.id"
379
799
  ],
800
+ [
801
+ "fetch",
802
+ "DonationReceipt",
803
+ {
804
+ "emit": {
805
+ "failure": "DonationReceiptLoadFailed",
806
+ "success": "DonationReceiptLoaded"
807
+ }
808
+ }
809
+ ],
380
810
  [
381
811
  "render-ui",
382
812
  "main",
383
813
  {
384
- "variant": "info",
385
- "message": "Receipt voided",
386
- "type": "alert"
814
+ "gap": "md",
815
+ "align": "center",
816
+ "children": [
817
+ {
818
+ "type": "spinner"
819
+ },
820
+ {
821
+ "color": "muted",
822
+ "type": "typography",
823
+ "variant": "caption",
824
+ "content": "Voiding receipt…"
825
+ }
826
+ ],
827
+ "className": "py-12",
828
+ "type": "stack",
829
+ "direction": "vertical"
387
830
  }
388
831
  ]
389
832
  ]
@@ -407,8 +850,8 @@
407
850
  "render-ui",
408
851
  "main",
409
852
  {
410
- "size": "sm",
411
- "type": "spinner"
853
+ "type": "spinner",
854
+ "size": "sm"
412
855
  }
413
856
  ]
414
857
  ]