@almadar/std 14.26.0 → 14.28.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 (175) hide show
  1. package/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  2. package/behaviors/registry/app/atoms/std-approval-chain.orb +106 -0
  3. package/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  4. package/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  5. package/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  6. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  7. package/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  8. package/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  9. package/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  10. package/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  11. package/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  12. package/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  13. package/behaviors/registry/app/atoms/std-donor.orb +445 -135
  14. package/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  15. package/behaviors/registry/app/atoms/std-driver.orb +465 -480
  16. package/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  17. package/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  18. package/behaviors/registry/app/atoms/std-event.orb +465 -667
  19. package/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  20. package/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  21. package/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  22. package/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  23. package/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  24. package/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  25. package/behaviors/registry/app/atoms/std-lease.orb +506 -190
  26. package/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  27. package/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  28. package/behaviors/registry/app/atoms/std-matter.orb +486 -318
  29. package/behaviors/registry/app/atoms/std-membership.orb +512 -102
  30. package/behaviors/registry/app/atoms/std-menu.orb +775 -183
  31. package/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  32. package/behaviors/registry/app/atoms/std-multi-party-transaction.orb +130 -0
  33. package/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  34. package/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  35. package/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  36. package/behaviors/registry/app/atoms/std-pipeline.orb +139 -0
  37. package/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  38. package/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  39. package/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  40. package/behaviors/registry/app/atoms/std-recurring-schedule.orb +94 -0
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  45. package/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  47. package/behaviors/registry/app/atoms/std-segment.orb +360 -98
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  49. package/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  50. package/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  54. package/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  57. package/behaviors/registry/app/atoms/std-timeline.orb +108 -0
  58. package/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  59. package/behaviors/registry/app/atoms/std-trial.orb +410 -317
  60. package/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  63. package/behaviors/registry/app/atoms/std-wizard-branching.orb +129 -0
  64. package/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  65. package/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  66. package/behaviors/registry/app/molecules/std-application.orb +178 -263
  67. package/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  68. package/behaviors/registry/app/molecules/std-cart.orb +78 -72
  69. package/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  70. package/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  71. package/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  72. package/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  73. package/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  74. package/behaviors/registry/core/atoms/std-board.orb +1367 -0
  75. package/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  76. package/behaviors/registry/core/atoms/std-event-log.orb +777 -0
  77. package/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  78. package/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  79. package/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  80. package/behaviors/registry/core/atoms/std-multi-party-flow.orb +1313 -0
  81. package/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  82. package/behaviors/registry/core/atoms/std-recurrence.orb +937 -0
  83. package/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  84. package/behaviors/registry/core/atoms/std-step-flow.orb +1155 -0
  85. package/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  86. package/behaviors/registry/core/atoms/std-wizard.orb +1085 -0
  87. package/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  88. package/dist/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  89. package/dist/behaviors/registry/app/atoms/std-approval-chain.orb +106 -0
  90. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  91. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  92. package/dist/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  93. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  94. package/dist/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  95. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  96. package/dist/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  97. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  98. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  99. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  100. package/dist/behaviors/registry/app/atoms/std-donor.orb +445 -135
  101. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  102. package/dist/behaviors/registry/app/atoms/std-driver.orb +465 -480
  103. package/dist/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  104. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  105. package/dist/behaviors/registry/app/atoms/std-event.orb +465 -667
  106. package/dist/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  107. package/dist/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  108. package/dist/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  109. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  110. package/dist/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  111. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  112. package/dist/behaviors/registry/app/atoms/std-lease.orb +506 -190
  113. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  114. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  115. package/dist/behaviors/registry/app/atoms/std-matter.orb +486 -318
  116. package/dist/behaviors/registry/app/atoms/std-membership.orb +512 -102
  117. package/dist/behaviors/registry/app/atoms/std-menu.orb +775 -183
  118. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  119. package/dist/behaviors/registry/app/atoms/std-multi-party-transaction.orb +130 -0
  120. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  121. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  122. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  123. package/dist/behaviors/registry/app/atoms/std-pipeline.orb +139 -0
  124. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  125. package/dist/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  126. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  127. package/dist/behaviors/registry/app/atoms/std-recurring-schedule.orb +94 -0
  128. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  129. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  130. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  131. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  132. package/dist/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  133. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  134. package/dist/behaviors/registry/app/atoms/std-segment.orb +360 -98
  135. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  136. package/dist/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  137. package/dist/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  138. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  139. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  140. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  141. package/dist/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  142. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  143. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  144. package/dist/behaviors/registry/app/atoms/std-timeline.orb +108 -0
  145. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  146. package/dist/behaviors/registry/app/atoms/std-trial.orb +410 -317
  147. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  148. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  149. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  150. package/dist/behaviors/registry/app/atoms/std-wizard-branching.orb +129 -0
  151. package/dist/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  152. package/dist/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  153. package/dist/behaviors/registry/app/molecules/std-application.orb +178 -263
  154. package/dist/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  155. package/dist/behaviors/registry/app/molecules/std-cart.orb +78 -72
  156. package/dist/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  157. package/dist/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  158. package/dist/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  159. package/dist/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  160. package/dist/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  161. package/dist/behaviors/registry/core/atoms/std-board.orb +1367 -0
  162. package/dist/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  163. package/dist/behaviors/registry/core/atoms/std-event-log.orb +777 -0
  164. package/dist/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  165. package/dist/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  166. package/dist/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  167. package/dist/behaviors/registry/core/atoms/std-multi-party-flow.orb +1313 -0
  168. package/dist/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  169. package/dist/behaviors/registry/core/atoms/std-recurrence.orb +937 -0
  170. package/dist/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  171. package/dist/behaviors/registry/core/atoms/std-step-flow.orb +1155 -0
  172. package/dist/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  173. package/dist/behaviors/registry/core/atoms/std-wizard.orb +1085 -0
  174. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  175. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-waitlist",
3
3
  "version": "1.0.0",
4
- "description": "std-waitlist — sorted queue with auto-promote-on-cancel. Owns a WaitlistEntry entity (one row per (targetId, userId)); JOIN appends a waiting entry, PROMOTE flips status to promoted, CANCEL flips status to cancelled and emits WaitlistEntryCancelled so a parent molecule can promote the next waiting entry.",
4
+ "description": "std-waitlist — sorted queue with auto-promote-on-cancel. Lists waitlist entries in `browsing`; opens detail in `viewing_single` with Promote / Cancel actions.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "WaitlistOrbital",
@@ -67,25 +67,10 @@
67
67
  "linkedEntity": "WaitlistEntry",
68
68
  "emits": [
69
69
  {
70
- "event": "JOIN",
70
+ "event": "OPEN_ENTRY",
71
71
  "payloadSchema": [
72
72
  {
73
- "name": "targetId",
74
- "type": "string",
75
- "required": true
76
- },
77
- {
78
- "name": "userId",
79
- "type": "string",
80
- "required": true
81
- }
82
- ]
83
- },
84
- {
85
- "event": "PROMOTE",
86
- "payloadSchema": [
87
- {
88
- "name": "entryId",
73
+ "name": "id",
89
74
  "type": "string",
90
75
  "required": true
91
76
  },
@@ -133,7 +118,10 @@
133
118
  ]
134
119
  },
135
120
  {
136
- "event": "CANCEL",
121
+ "event": "CLOSE_VIEW"
122
+ },
123
+ {
124
+ "event": "PROMOTE",
137
125
  "payloadSchema": [
138
126
  {
139
127
  "name": "entryId",
@@ -184,76 +172,13 @@
184
172
  ]
185
173
  },
186
174
  {
187
- "event": "WaitlistEntryLoaded",
188
- "payloadSchema": [
189
- {
190
- "name": "data",
191
- "type": "[WaitlistEntry]"
192
- }
193
- ]
194
- },
195
- {
196
- "event": "WaitlistEntryLoadFailed",
197
- "payloadSchema": [
198
- {
199
- "name": "error",
200
- "type": "string"
201
- },
202
- {
203
- "name": "code",
204
- "type": "string"
205
- }
206
- ]
207
- },
208
- {
209
- "event": "WaitlistEntryJoined",
175
+ "event": "CANCEL",
210
176
  "payloadSchema": [
211
177
  {
212
- "name": "row.id",
213
- "type": "string",
214
- "required": true
215
- },
216
- {
217
- "name": "row.targetId",
218
- "type": "string",
219
- "required": true
220
- },
221
- {
222
- "name": "row.targetType",
223
- "type": "string",
224
- "required": true
225
- },
226
- {
227
- "name": "row.userId",
178
+ "name": "entryId",
228
179
  "type": "string",
229
180
  "required": true
230
181
  },
231
- {
232
- "name": "row.position",
233
- "type": "number",
234
- "required": true
235
- },
236
- {
237
- "name": "row.status",
238
- "type": "string"
239
- },
240
- {
241
- "name": "row.joinedAt",
242
- "type": "string"
243
- },
244
- {
245
- "name": "row.promotedAt",
246
- "type": "string"
247
- },
248
- {
249
- "name": "row.notifiedAt",
250
- "type": "string"
251
- }
252
- ]
253
- },
254
- {
255
- "event": "WaitlistEntryPromoted",
256
- "payloadSchema": [
257
182
  {
258
183
  "name": "row.id",
259
184
  "type": "string",
@@ -298,53 +223,16 @@
298
223
  ]
299
224
  },
300
225
  {
301
- "event": "WaitlistEntryCancelled",
226
+ "event": "WaitlistEntryLoaded",
302
227
  "payloadSchema": [
303
228
  {
304
- "name": "row.id",
305
- "type": "string",
306
- "required": true
307
- },
308
- {
309
- "name": "row.targetId",
310
- "type": "string",
311
- "required": true
312
- },
313
- {
314
- "name": "row.targetType",
315
- "type": "string",
316
- "required": true
317
- },
318
- {
319
- "name": "row.userId",
320
- "type": "string",
321
- "required": true
322
- },
323
- {
324
- "name": "row.position",
325
- "type": "number",
326
- "required": true
327
- },
328
- {
329
- "name": "row.status",
330
- "type": "string"
331
- },
332
- {
333
- "name": "row.joinedAt",
334
- "type": "string"
335
- },
336
- {
337
- "name": "row.promotedAt",
338
- "type": "string"
339
- },
340
- {
341
- "name": "row.notifiedAt",
342
- "type": "string"
229
+ "name": "data",
230
+ "type": "[WaitlistEntry]"
343
231
  }
344
232
  ]
345
233
  },
346
234
  {
347
- "event": "WaitlistEntryFailed",
235
+ "event": "WaitlistEntryLoadFailed",
348
236
  "payloadSchema": [
349
237
  {
350
238
  "name": "error",
@@ -366,6 +254,9 @@
366
254
  {
367
255
  "name": "browsing"
368
256
  },
257
+ {
258
+ "name": "viewing_single"
259
+ },
369
260
  {
370
261
  "name": "error"
371
262
  }
@@ -400,27 +291,11 @@
400
291
  ]
401
292
  },
402
293
  {
403
- "key": "JOIN",
404
- "name": "Join",
405
- "payloadSchema": [
406
- {
407
- "name": "targetId",
408
- "type": "string",
409
- "required": true
410
- },
411
- {
412
- "name": "userId",
413
- "type": "string",
414
- "required": true
415
- }
416
- ]
417
- },
418
- {
419
- "key": "PROMOTE",
420
- "name": "Promote",
294
+ "key": "OPEN_ENTRY",
295
+ "name": "Open Entry",
421
296
  "payloadSchema": [
422
297
  {
423
- "name": "entryId",
298
+ "name": "id",
424
299
  "type": "string",
425
300
  "required": true
426
301
  },
@@ -446,48 +321,23 @@
446
321
  ]
447
322
  },
448
323
  {
449
- "key": "WaitlistEntryJoined",
450
- "name": "WaitlistEntry joined",
451
- "payloadSchema": [
452
- {
453
- "name": "row",
454
- "type": "WaitlistEntry"
455
- }
456
- ]
324
+ "key": "CLOSE_VIEW",
325
+ "name": "Close View"
457
326
  },
458
327
  {
459
- "key": "WaitlistEntryPromoted",
460
- "name": "WaitlistEntry promoted",
328
+ "key": "PROMOTE",
329
+ "name": "Promote",
461
330
  "payloadSchema": [
462
331
  {
463
- "name": "row",
464
- "type": "WaitlistEntry"
465
- }
466
- ]
467
- },
468
- {
469
- "key": "WaitlistEntryCancelled",
470
- "name": "WaitlistEntry cancelled",
471
- "payloadSchema": [
332
+ "name": "entryId",
333
+ "type": "string",
334
+ "required": true
335
+ },
472
336
  {
473
337
  "name": "row",
474
338
  "type": "WaitlistEntry"
475
339
  }
476
340
  ]
477
- },
478
- {
479
- "key": "WaitlistEntryFailed",
480
- "name": "WaitlistEntry failed",
481
- "payloadSchema": [
482
- {
483
- "name": "error",
484
- "type": "string"
485
- },
486
- {
487
- "name": "code",
488
- "type": "string"
489
- }
490
- ]
491
341
  }
492
342
  ],
493
343
  "transitions": [
@@ -513,6 +363,7 @@
513
363
  "direction": "vertical",
514
364
  "gap": "md",
515
365
  "className": "py-12",
366
+ "type": "stack",
516
367
  "children": [
517
368
  {
518
369
  "type": "spinner"
@@ -520,11 +371,10 @@
520
371
  {
521
372
  "color": "muted",
522
373
  "type": "typography",
523
- "content": "Loading waitlist…",
524
- "variant": "caption"
374
+ "variant": "caption",
375
+ "content": "Loading waitlist…"
525
376
  }
526
377
  ],
527
- "type": "stack",
528
378
  "align": "center"
529
379
  }
530
380
  ]
@@ -539,14 +389,13 @@
539
389
  "render-ui",
540
390
  "main",
541
391
  {
542
- "gap": "md",
543
392
  "direction": "vertical",
393
+ "gap": "md",
544
394
  "type": "stack",
545
395
  "children": [
546
396
  {
397
+ "align": "center",
547
398
  "type": "stack",
548
- "direction": "horizontal",
549
- "gap": "sm",
550
399
  "children": [
551
400
  {
552
401
  "type": "icon",
@@ -554,8 +403,40 @@
554
403
  },
555
404
  {
556
405
  "type": "typography",
557
- "content": "@config.title",
558
- "variant": "h3"
406
+ "variant": "h3",
407
+ "content": "@config.title"
408
+ }
409
+ ],
410
+ "gap": "sm",
411
+ "direction": "horizontal"
412
+ },
413
+ {
414
+ "cols": 4.0,
415
+ "type": "simple-grid",
416
+ "children": [
417
+ {
418
+ "type": "stat-display",
419
+ "label": "Total entries",
420
+ "value": "@payload.data.length",
421
+ "icon": "users"
422
+ },
423
+ {
424
+ "type": "stat-display",
425
+ "value": "126",
426
+ "icon": "hourglass",
427
+ "label": "Waiting"
428
+ },
429
+ {
430
+ "label": "Promoted 7d",
431
+ "icon": "arrow-up",
432
+ "type": "stat-display",
433
+ "value": "24"
434
+ },
435
+ {
436
+ "type": "stat-display",
437
+ "label": "Avg wait time",
438
+ "icon": "clock",
439
+ "value": "3d"
559
440
  }
560
441
  ]
561
442
  },
@@ -564,11 +445,28 @@
564
445
  },
565
446
  {
566
447
  "gap": "sm",
448
+ "itemActions": [
449
+ {
450
+ "label": "Open",
451
+ "event": "OPEN_ENTRY",
452
+ "variant": "primary",
453
+ "icon": "arrow-right"
454
+ },
455
+ {
456
+ "icon": "x",
457
+ "event": "CANCEL",
458
+ "label": "Cancel",
459
+ "variant": "danger"
460
+ }
461
+ ],
462
+ "cols": 1.0,
463
+ "type": "data-grid",
464
+ "entity": "@payload.data",
567
465
  "fields": [
568
466
  {
569
- "variant": "badge",
467
+ "label": "#",
570
468
  "name": "position",
571
- "label": "#"
469
+ "variant": "badge"
572
470
  },
573
471
  {
574
472
  "label": "User",
@@ -577,44 +475,20 @@
577
475
  },
578
476
  {
579
477
  "label": "Type",
580
- "name": "targetType",
581
- "variant": "badge"
478
+ "variant": "badge",
479
+ "name": "targetType"
582
480
  },
583
481
  {
584
- "label": "Status",
482
+ "variant": "badge",
585
483
  "name": "status",
586
- "variant": "badge"
484
+ "label": "Status"
587
485
  },
588
486
  {
589
- "variant": "caption",
590
487
  "name": "joinedAt",
591
- "label": "Joined"
488
+ "label": "Joined",
489
+ "variant": "caption"
592
490
  }
593
- ],
594
- "itemActions": [
595
- {
596
- "variant": "primary",
597
- "label": "Promote",
598
- "event": "PROMOTE",
599
- "icon": "arrow-up"
600
- },
601
- {
602
- "event": "CANCEL",
603
- "icon": "x",
604
- "variant": "danger",
605
- "label": "Cancel"
606
- }
607
- ],
608
- "entity": "@payload.data",
609
- "cols": 1.0,
610
- "type": "data-grid"
611
- },
612
- {
613
- "icon": "user-plus",
614
- "type": "button",
615
- "variant": "secondary",
616
- "label": "Join Waitlist",
617
- "action": "JOIN"
491
+ ]
618
492
  }
619
493
  ]
620
494
  }
@@ -639,58 +513,198 @@
639
513
  },
640
514
  {
641
515
  "from": "browsing",
642
- "to": "loading",
643
- "event": "JOIN",
516
+ "to": "viewing_single",
517
+ "event": "OPEN_ENTRY",
644
518
  "effects": [
519
+ [
520
+ "set",
521
+ "@entity.id",
522
+ "@payload.row.id"
523
+ ],
645
524
  [
646
525
  "set",
647
526
  "@entity.targetId",
648
- "@payload.targetId"
527
+ "@payload.row.targetId"
649
528
  ],
650
529
  [
651
530
  "set",
652
- "@entity.userId",
653
- "@payload.userId"
531
+ "@entity.targetType",
532
+ "@payload.row.targetType"
654
533
  ],
655
534
  [
656
- "persist",
657
- "create",
658
- "WaitlistEntry",
659
- "@entity",
660
- {
661
- "emit": {
662
- "success": "WaitlistEntryJoined",
663
- "failure": "WaitlistEntryFailed"
664
- }
665
- }
666
- ]
667
- ]
668
- },
669
- {
670
- "from": "browsing",
671
- "to": "loading",
672
- "event": "PROMOTE",
673
- "effects": [
535
+ "set",
536
+ "@entity.userId",
537
+ "@payload.row.userId"
538
+ ],
674
539
  [
675
540
  "set",
676
- "@entity.id",
677
- "@payload.entryId"
541
+ "@entity.position",
542
+ "@payload.row.position"
678
543
  ],
679
544
  [
680
545
  "set",
681
546
  "@entity.status",
682
- "promoted"
547
+ "@payload.row.status"
683
548
  ],
684
549
  [
685
- "persist",
686
- "update",
687
- "WaitlistEntry",
688
- "@entity",
550
+ "set",
551
+ "@entity.joinedAt",
552
+ "@payload.row.joinedAt"
553
+ ],
554
+ [
555
+ "set",
556
+ "@entity.promotedAt",
557
+ "@payload.row.promotedAt"
558
+ ],
559
+ [
560
+ "set",
561
+ "@entity.notifiedAt",
562
+ "@payload.row.notifiedAt"
563
+ ],
564
+ [
565
+ "render-ui",
566
+ "main",
689
567
  {
690
- "emit": {
691
- "failure": "WaitlistEntryFailed",
692
- "success": "WaitlistEntryPromoted"
693
- }
568
+ "type": "stack",
569
+ "direction": "vertical",
570
+ "children": [
571
+ {
572
+ "direction": "horizontal",
573
+ "type": "stack",
574
+ "align": "center",
575
+ "children": [
576
+ {
577
+ "type": "button",
578
+ "action": "CLOSE_VIEW",
579
+ "label": "Back",
580
+ "variant": "ghost"
581
+ },
582
+ {
583
+ "type": "icon",
584
+ "name": "users"
585
+ },
586
+ {
587
+ "type": "typography",
588
+ "variant": "h3",
589
+ "content": "@entity.userId"
590
+ },
591
+ {
592
+ "label": "@entity.status",
593
+ "type": "badge",
594
+ "variant": "primary"
595
+ }
596
+ ],
597
+ "gap": "sm"
598
+ },
599
+ {
600
+ "type": "divider"
601
+ },
602
+ {
603
+ "direction": "vertical",
604
+ "children": [
605
+ {
606
+ "type": "stack",
607
+ "direction": "horizontal",
608
+ "children": [
609
+ {
610
+ "variant": "caption",
611
+ "color": "muted",
612
+ "content": "Target",
613
+ "type": "typography"
614
+ },
615
+ {
616
+ "variant": "body",
617
+ "content": "@entity.targetId",
618
+ "type": "typography"
619
+ }
620
+ ],
621
+ "gap": "md"
622
+ },
623
+ {
624
+ "gap": "md",
625
+ "type": "stack",
626
+ "direction": "horizontal",
627
+ "children": [
628
+ {
629
+ "content": "Target type",
630
+ "variant": "caption",
631
+ "type": "typography",
632
+ "color": "muted"
633
+ },
634
+ {
635
+ "type": "typography",
636
+ "variant": "body",
637
+ "content": "@entity.targetType"
638
+ }
639
+ ]
640
+ }
641
+ ],
642
+ "gap": "sm",
643
+ "type": "stack"
644
+ },
645
+ {
646
+ "type": "divider"
647
+ },
648
+ {
649
+ "children": [
650
+ {
651
+ "type": "stat-display",
652
+ "value": "@entity.position",
653
+ "label": "Position",
654
+ "icon": "hash"
655
+ },
656
+ {
657
+ "value": "@entity.joinedAt",
658
+ "type": "stat-display",
659
+ "label": "Joined",
660
+ "icon": "calendar"
661
+ },
662
+ {
663
+ "type": "stat-display",
664
+ "label": "Promoted",
665
+ "icon": "arrow-up",
666
+ "value": "@entity.promotedAt"
667
+ },
668
+ {
669
+ "type": "stat-display",
670
+ "label": "Notified",
671
+ "icon": "bell",
672
+ "value": "@entity.notifiedAt"
673
+ }
674
+ ],
675
+ "cols": 4.0,
676
+ "type": "simple-grid"
677
+ },
678
+ {
679
+ "align": "center",
680
+ "type": "stack",
681
+ "children": [
682
+ {
683
+ "action": "PROMOTE",
684
+ "actionPayload": {
685
+ "row": "@entity",
686
+ "entryId": "@entity.id"
687
+ },
688
+ "type": "button",
689
+ "variant": "primary",
690
+ "label": "Promote"
691
+ },
692
+ {
693
+ "label": "Cancel",
694
+ "type": "button",
695
+ "actionPayload": {
696
+ "entryId": "@entity.id",
697
+ "row": "@entity"
698
+ },
699
+ "action": "CANCEL",
700
+ "variant": "danger"
701
+ }
702
+ ],
703
+ "gap": "sm",
704
+ "direction": "horizontal"
705
+ }
706
+ ],
707
+ "gap": "md"
694
708
  }
695
709
  ]
696
710
  ]
@@ -706,46 +720,88 @@
706
720
  "@payload.entryId"
707
721
  ],
708
722
  [
709
- "set",
710
- "@entity.status",
711
- "cancelled"
712
- ],
713
- [
714
- "persist",
715
- "update",
723
+ "fetch",
716
724
  "WaitlistEntry",
717
- "@entity",
718
725
  {
719
726
  "emit": {
720
- "failure": "WaitlistEntryFailed",
721
- "success": "WaitlistEntryCancelled"
727
+ "success": "WaitlistEntryLoaded",
728
+ "failure": "WaitlistEntryLoadFailed"
722
729
  }
723
730
  }
731
+ ],
732
+ [
733
+ "render-ui",
734
+ "main",
735
+ {
736
+ "type": "stack",
737
+ "align": "center",
738
+ "className": "py-12",
739
+ "children": [
740
+ {
741
+ "type": "spinner"
742
+ },
743
+ {
744
+ "variant": "caption",
745
+ "content": "Cancelling entry…",
746
+ "color": "muted",
747
+ "type": "typography"
748
+ }
749
+ ],
750
+ "direction": "vertical",
751
+ "gap": "md"
752
+ }
724
753
  ]
725
754
  ]
726
755
  },
727
756
  {
728
- "from": "browsing",
757
+ "from": "viewing_single",
729
758
  "to": "loading",
730
- "event": "WaitlistEntryJoined",
759
+ "event": "CLOSE_VIEW",
731
760
  "effects": [
732
761
  [
733
762
  "fetch",
734
763
  "WaitlistEntry",
735
764
  {
736
765
  "emit": {
737
- "success": "WaitlistEntryLoaded",
738
- "failure": "WaitlistEntryLoadFailed"
766
+ "failure": "WaitlistEntryLoadFailed",
767
+ "success": "WaitlistEntryLoaded"
739
768
  }
740
769
  }
770
+ ],
771
+ [
772
+ "render-ui",
773
+ "main",
774
+ {
775
+ "type": "stack",
776
+ "direction": "vertical",
777
+ "className": "py-12",
778
+ "children": [
779
+ {
780
+ "type": "spinner"
781
+ },
782
+ {
783
+ "color": "muted",
784
+ "content": "Loading waitlist…",
785
+ "variant": "caption",
786
+ "type": "typography"
787
+ }
788
+ ],
789
+ "gap": "md",
790
+ "align": "center"
791
+ }
741
792
  ]
742
793
  ]
743
794
  },
744
795
  {
745
- "from": "browsing",
796
+ "from": "viewing_single",
746
797
  "to": "loading",
747
- "event": "WaitlistEntryPromoted",
798
+ "event": "PROMOTE",
748
799
  "effects": [
800
+ [
801
+ "set",
802
+ "@entity.id",
803
+ "@payload.entryId"
804
+ ],
749
805
  [
750
806
  "fetch",
751
807
  "WaitlistEntry",
@@ -755,38 +811,71 @@
755
811
  "failure": "WaitlistEntryLoadFailed"
756
812
  }
757
813
  }
814
+ ],
815
+ [
816
+ "render-ui",
817
+ "main",
818
+ {
819
+ "gap": "md",
820
+ "type": "stack",
821
+ "direction": "vertical",
822
+ "children": [
823
+ {
824
+ "type": "spinner"
825
+ },
826
+ {
827
+ "content": "Promoting entry…",
828
+ "variant": "caption",
829
+ "type": "typography",
830
+ "color": "muted"
831
+ }
832
+ ],
833
+ "align": "center",
834
+ "className": "py-12"
835
+ }
758
836
  ]
759
837
  ]
760
838
  },
761
839
  {
762
- "from": "browsing",
840
+ "from": "viewing_single",
763
841
  "to": "loading",
764
- "event": "WaitlistEntryCancelled",
842
+ "event": "CANCEL",
765
843
  "effects": [
844
+ [
845
+ "set",
846
+ "@entity.id",
847
+ "@payload.entryId"
848
+ ],
766
849
  [
767
850
  "fetch",
768
851
  "WaitlistEntry",
769
852
  {
770
853
  "emit": {
771
- "failure": "WaitlistEntryLoadFailed",
772
- "success": "WaitlistEntryLoaded"
854
+ "success": "WaitlistEntryLoaded",
855
+ "failure": "WaitlistEntryLoadFailed"
773
856
  }
774
857
  }
775
- ]
776
- ]
777
- },
778
- {
779
- "from": "browsing",
780
- "to": "browsing",
781
- "event": "WaitlistEntryFailed",
782
- "effects": [
858
+ ],
783
859
  [
784
860
  "render-ui",
785
861
  "main",
786
862
  {
787
- "type": "alert",
788
- "variant": "error",
789
- "message": "@payload.error"
863
+ "children": [
864
+ {
865
+ "type": "spinner"
866
+ },
867
+ {
868
+ "type": "typography",
869
+ "color": "muted",
870
+ "content": "Cancelling entry…",
871
+ "variant": "caption"
872
+ }
873
+ ],
874
+ "type": "stack",
875
+ "direction": "vertical",
876
+ "gap": "md",
877
+ "align": "center",
878
+ "className": "py-12"
790
879
  }
791
880
  ]
792
881
  ]