@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-ticket-tier",
3
3
  "version": "1.0.0",
4
- "description": "std-ticket-tier — event ticket pricing tiers (VIP, general, early-bird) with quantity tracking. Owns a TicketTier entity (price, quantityTotal, quantitySold, status) and a single manage trait that loads tiers, browses them in a data-grid with Create / Update / Sell / Close actions, and persists each verdict back to the row.",
4
+ "description": "std-ticket-tier — event ticket pricing tiers (VIP, general, early-bird) with quantity tracking. Lists tiers in `browsing`; opens detail in `viewing_single` with Update / Sell / Close actions.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "TicketTierOrbital",
@@ -73,20 +73,10 @@
73
73
  "linkedEntity": "TicketTier",
74
74
  "emits": [
75
75
  {
76
- "event": "CREATE",
76
+ "event": "OPEN_TIER",
77
77
  "payloadSchema": [
78
78
  {
79
- "name": "data",
80
- "type": "object",
81
- "required": true
82
- }
83
- ]
84
- },
85
- {
86
- "event": "UPDATE",
87
- "payloadSchema": [
88
- {
89
- "name": "tierId",
79
+ "name": "id",
90
80
  "type": "string",
91
81
  "required": true
92
82
  },
@@ -135,16 +125,14 @@
135
125
  {
136
126
  "name": "row.status",
137
127
  "type": "string"
138
- },
139
- {
140
- "name": "data",
141
- "type": "object",
142
- "required": true
143
128
  }
144
129
  ]
145
130
  },
146
131
  {
147
- "event": "SELL",
132
+ "event": "CLOSE_VIEW"
133
+ },
134
+ {
135
+ "event": "UPDATE",
148
136
  "payloadSchema": [
149
137
  {
150
138
  "name": "tierId",
@@ -198,14 +186,14 @@
198
186
  "type": "string"
199
187
  },
200
188
  {
201
- "name": "qty",
202
- "type": "number",
189
+ "name": "data",
190
+ "type": "object",
203
191
  "required": true
204
192
  }
205
193
  ]
206
194
  },
207
195
  {
208
- "event": "CLOSE",
196
+ "event": "SELL",
209
197
  "payloadSchema": [
210
198
  {
211
199
  "name": "tierId",
@@ -257,136 +245,22 @@
257
245
  {
258
246
  "name": "row.status",
259
247
  "type": "string"
260
- }
261
- ]
262
- },
263
- {
264
- "event": "TicketTierLoaded",
265
- "payloadSchema": [
266
- {
267
- "name": "data",
268
- "type": "[TicketTier]"
269
- }
270
- ]
271
- },
272
- {
273
- "event": "TicketTierLoadFailed",
274
- "payloadSchema": [
275
- {
276
- "name": "error",
277
- "type": "string"
278
- },
279
- {
280
- "name": "code",
281
- "type": "string"
282
- }
283
- ]
284
- },
285
- {
286
- "event": "TicketTierCreated",
287
- "payloadSchema": [
288
- {
289
- "name": "row.id",
290
- "type": "string",
291
- "required": true
292
- },
293
- {
294
- "name": "row.eventId",
295
- "type": "string",
296
- "required": true
297
- },
298
- {
299
- "name": "row.name",
300
- "type": "string",
301
- "required": true
302
- },
303
- {
304
- "name": "row.price",
305
- "type": "number",
306
- "required": true
307
- },
308
- {
309
- "name": "row.currency",
310
- "type": "string"
311
- },
312
- {
313
- "name": "row.quantityTotal",
314
- "type": "number",
315
- "required": true
316
248
  },
317
249
  {
318
- "name": "row.quantitySold",
250
+ "name": "qty",
319
251
  "type": "number",
320
252
  "required": true
321
- },
322
- {
323
- "name": "row.availableFrom",
324
- "type": "string"
325
- },
326
- {
327
- "name": "row.availableUntil",
328
- "type": "string"
329
- },
330
- {
331
- "name": "row.status",
332
- "type": "string"
333
253
  }
334
254
  ]
335
255
  },
336
256
  {
337
- "event": "TicketTierUpdated",
257
+ "event": "CLOSE",
338
258
  "payloadSchema": [
339
259
  {
340
- "name": "row.id",
341
- "type": "string",
342
- "required": true
343
- },
344
- {
345
- "name": "row.eventId",
346
- "type": "string",
347
- "required": true
348
- },
349
- {
350
- "name": "row.name",
260
+ "name": "tierId",
351
261
  "type": "string",
352
262
  "required": true
353
263
  },
354
- {
355
- "name": "row.price",
356
- "type": "number",
357
- "required": true
358
- },
359
- {
360
- "name": "row.currency",
361
- "type": "string"
362
- },
363
- {
364
- "name": "row.quantityTotal",
365
- "type": "number",
366
- "required": true
367
- },
368
- {
369
- "name": "row.quantitySold",
370
- "type": "number",
371
- "required": true
372
- },
373
- {
374
- "name": "row.availableFrom",
375
- "type": "string"
376
- },
377
- {
378
- "name": "row.availableUntil",
379
- "type": "string"
380
- },
381
- {
382
- "name": "row.status",
383
- "type": "string"
384
- }
385
- ]
386
- },
387
- {
388
- "event": "TicketTierSold",
389
- "payloadSchema": [
390
264
  {
391
265
  "name": "row.id",
392
266
  "type": "string",
@@ -436,58 +310,16 @@
436
310
  ]
437
311
  },
438
312
  {
439
- "event": "TicketTierClosed",
313
+ "event": "TicketTierLoaded",
440
314
  "payloadSchema": [
441
315
  {
442
- "name": "row.id",
443
- "type": "string",
444
- "required": true
445
- },
446
- {
447
- "name": "row.eventId",
448
- "type": "string",
449
- "required": true
450
- },
451
- {
452
- "name": "row.name",
453
- "type": "string",
454
- "required": true
455
- },
456
- {
457
- "name": "row.price",
458
- "type": "number",
459
- "required": true
460
- },
461
- {
462
- "name": "row.currency",
463
- "type": "string"
464
- },
465
- {
466
- "name": "row.quantityTotal",
467
- "type": "number",
468
- "required": true
469
- },
470
- {
471
- "name": "row.quantitySold",
472
- "type": "number",
473
- "required": true
474
- },
475
- {
476
- "name": "row.availableFrom",
477
- "type": "string"
478
- },
479
- {
480
- "name": "row.availableUntil",
481
- "type": "string"
482
- },
483
- {
484
- "name": "row.status",
485
- "type": "string"
316
+ "name": "data",
317
+ "type": "[TicketTier]"
486
318
  }
487
319
  ]
488
320
  },
489
321
  {
490
- "event": "TicketTierWriteFailed",
322
+ "event": "TicketTierLoadFailed",
491
323
  "payloadSchema": [
492
324
  {
493
325
  "name": "error",
@@ -509,6 +341,9 @@
509
341
  {
510
342
  "name": "browsing"
511
343
  },
344
+ {
345
+ "name": "viewing_single"
346
+ },
512
347
  {
513
348
  "name": "error"
514
349
  }
@@ -543,13 +378,17 @@
543
378
  ]
544
379
  },
545
380
  {
546
- "key": "CREATE",
547
- "name": "Create",
381
+ "key": "OPEN_TIER",
382
+ "name": "Open Tier",
548
383
  "payloadSchema": [
549
384
  {
550
- "name": "data",
551
- "type": "object",
385
+ "name": "id",
386
+ "type": "string",
552
387
  "required": true
388
+ },
389
+ {
390
+ "name": "row",
391
+ "type": "TicketTier"
553
392
  }
554
393
  ]
555
394
  },
@@ -609,58 +448,8 @@
609
448
  ]
610
449
  },
611
450
  {
612
- "key": "TicketTierCreated",
613
- "name": "TicketTier created",
614
- "payloadSchema": [
615
- {
616
- "name": "row",
617
- "type": "TicketTier"
618
- }
619
- ]
620
- },
621
- {
622
- "key": "TicketTierUpdated",
623
- "name": "TicketTier updated",
624
- "payloadSchema": [
625
- {
626
- "name": "row",
627
- "type": "TicketTier"
628
- }
629
- ]
630
- },
631
- {
632
- "key": "TicketTierSold",
633
- "name": "TicketTier sold",
634
- "payloadSchema": [
635
- {
636
- "name": "row",
637
- "type": "TicketTier"
638
- }
639
- ]
640
- },
641
- {
642
- "key": "TicketTierClosed",
643
- "name": "TicketTier closed",
644
- "payloadSchema": [
645
- {
646
- "name": "row",
647
- "type": "TicketTier"
648
- }
649
- ]
650
- },
651
- {
652
- "key": "TicketTierWriteFailed",
653
- "name": "TicketTier write failed",
654
- "payloadSchema": [
655
- {
656
- "name": "error",
657
- "type": "string"
658
- },
659
- {
660
- "name": "code",
661
- "type": "string"
662
- }
663
- ]
451
+ "key": "CLOSE_VIEW",
452
+ "name": "Close View"
664
453
  }
665
454
  ],
666
455
  "transitions": [
@@ -683,22 +472,22 @@
683
472
  "render-ui",
684
473
  "main",
685
474
  {
686
- "direction": "vertical",
687
- "gap": "md",
688
- "type": "stack",
475
+ "align": "center",
689
476
  "children": [
690
477
  {
691
478
  "type": "spinner"
692
479
  },
693
480
  {
694
- "color": "muted",
695
481
  "variant": "caption",
696
- "type": "typography",
697
- "content": "Loading ticket tiers…"
482
+ "color": "muted",
483
+ "content": "Loading ticket tiers…",
484
+ "type": "typography"
698
485
  }
699
486
  ],
700
- "align": "center",
701
- "className": "py-12"
487
+ "className": "py-12",
488
+ "gap": "md",
489
+ "type": "stack",
490
+ "direction": "vertical"
702
491
  }
703
492
  ]
704
493
  ]
@@ -712,19 +501,18 @@
712
501
  "render-ui",
713
502
  "main",
714
503
  {
715
- "type": "stack",
716
- "gap": "md",
717
504
  "children": [
718
505
  {
506
+ "align": "center",
719
507
  "children": [
720
508
  {
721
- "type": "icon",
722
- "name": "ticket"
509
+ "name": "ticket",
510
+ "type": "icon"
723
511
  },
724
512
  {
725
513
  "type": "typography",
726
- "variant": "h3",
727
- "content": "@config.title"
514
+ "content": "@config.title",
515
+ "variant": "h3"
728
516
  }
729
517
  ],
730
518
  "type": "stack",
@@ -732,51 +520,59 @@
732
520
  "direction": "horizontal"
733
521
  },
734
522
  {
735
- "type": "divider"
736
- },
737
- {
738
- "entity": "@payload.data",
739
- "cols": 1.0,
740
- "itemActions": [
523
+ "type": "simple-grid",
524
+ "cols": 4.0,
525
+ "children": [
741
526
  {
742
- "label": "Update",
743
- "variant": "secondary",
744
- "icon": "edit",
745
- "event": "UPDATE"
527
+ "label": "Total tiers",
528
+ "type": "stat-display",
529
+ "value": "@payload.data.length",
530
+ "icon": "ticket"
746
531
  },
747
532
  {
748
- "icon": "shopping-cart",
749
- "variant": "primary",
750
- "label": "Sell",
751
- "event": "SELL"
533
+ "label": "Gross sales",
534
+ "value": "$184,200",
535
+ "icon": "dollar-sign",
536
+ "type": "stat-display"
752
537
  },
753
538
  {
754
- "variant": "danger",
755
- "event": "CLOSE",
756
- "label": "Close",
757
- "icon": "x"
539
+ "label": "Sold seats",
540
+ "icon": "users",
541
+ "type": "stat-display",
542
+ "value": "2,840"
543
+ },
544
+ {
545
+ "label": "Sell-through",
546
+ "icon": "trending-up",
547
+ "value": "73%",
548
+ "type": "stat-display"
758
549
  }
759
- ],
550
+ ]
551
+ },
552
+ {
553
+ "type": "divider"
554
+ },
555
+ {
760
556
  "fields": [
761
557
  {
558
+ "label": "Tier",
762
559
  "variant": "badge",
763
- "name": "name",
764
- "label": "Tier"
560
+ "name": "name"
765
561
  },
766
562
  {
767
- "name": "price",
768
563
  "label": "Price",
564
+ "name": "price",
769
565
  "variant": "caption"
770
566
  },
771
567
  {
772
- "variant": "badge",
773
568
  "name": "currency",
569
+ "variant": "badge",
774
570
  "label": "Currency"
775
571
  },
776
572
  {
777
573
  "variant": "caption",
778
- "label": "Total",
779
- "name": "quantityTotal"
574
+ "name": "quantityTotal",
575
+ "label": "Total"
780
576
  },
781
577
  {
782
578
  "name": "quantitySold",
@@ -784,22 +580,33 @@
784
580
  "variant": "caption"
785
581
  },
786
582
  {
787
- "label": "Status",
788
583
  "variant": "badge",
789
- "name": "status"
584
+ "name": "status",
585
+ "label": "Status"
790
586
  }
791
587
  ],
792
588
  "type": "data-grid",
793
- "gap": "sm"
794
- },
795
- {
796
- "label": "New Tier",
797
- "action": "CREATE",
798
- "icon": "plus",
799
- "type": "button",
800
- "variant": "primary"
589
+ "gap": "sm",
590
+ "itemActions": [
591
+ {
592
+ "label": "Open",
593
+ "event": "OPEN_TIER",
594
+ "icon": "arrow-right",
595
+ "variant": "primary"
596
+ },
597
+ {
598
+ "variant": "danger",
599
+ "label": "Close",
600
+ "event": "CLOSE",
601
+ "icon": "x"
602
+ }
603
+ ],
604
+ "cols": 1.0,
605
+ "entity": "@payload.data"
801
606
  }
802
607
  ],
608
+ "gap": "md",
609
+ "type": "stack",
803
610
  "direction": "vertical"
804
611
  }
805
612
  ]
@@ -814,41 +621,22 @@
814
621
  "render-ui",
815
622
  "main",
816
623
  {
817
- "message": "@payload.error",
624
+ "variant": "error",
818
625
  "type": "alert",
819
- "variant": "error"
820
- }
821
- ]
822
- ]
823
- },
824
- {
825
- "from": "browsing",
826
- "to": "loading",
827
- "event": "CREATE",
828
- "effects": [
829
- [
830
- "persist",
831
- "create",
832
- "TicketTier",
833
- "@payload.data",
834
- {
835
- "emit": {
836
- "success": "TicketTierCreated",
837
- "failure": "TicketTierWriteFailed"
838
- }
626
+ "message": "@payload.error"
839
627
  }
840
628
  ]
841
629
  ]
842
630
  },
843
631
  {
844
632
  "from": "browsing",
845
- "to": "loading",
846
- "event": "UPDATE",
633
+ "to": "viewing_single",
634
+ "event": "OPEN_TIER",
847
635
  "effects": [
848
636
  [
849
637
  "set",
850
638
  "@entity.id",
851
- "@payload.tierId"
639
+ "@payload.row.id"
852
640
  ],
853
641
  [
854
642
  "set",
@@ -896,15 +684,179 @@
896
684
  "@payload.row.status"
897
685
  ],
898
686
  [
899
- "persist",
900
- "update",
901
- "TicketTier",
902
- "@entity",
687
+ "render-ui",
688
+ "main",
903
689
  {
904
- "emit": {
905
- "success": "TicketTierUpdated",
906
- "failure": "TicketTierWriteFailed"
907
- }
690
+ "children": [
691
+ {
692
+ "gap": "sm",
693
+ "direction": "horizontal",
694
+ "type": "stack",
695
+ "align": "center",
696
+ "children": [
697
+ {
698
+ "type": "button",
699
+ "label": "Back",
700
+ "action": "CLOSE_VIEW",
701
+ "variant": "ghost"
702
+ },
703
+ {
704
+ "type": "icon",
705
+ "name": "ticket"
706
+ },
707
+ {
708
+ "content": "@entity.name",
709
+ "variant": "h3",
710
+ "type": "typography"
711
+ },
712
+ {
713
+ "type": "badge",
714
+ "label": "@entity.status",
715
+ "variant": "primary"
716
+ }
717
+ ]
718
+ },
719
+ {
720
+ "type": "divider"
721
+ },
722
+ {
723
+ "gap": "sm",
724
+ "children": [
725
+ {
726
+ "type": "stack",
727
+ "gap": "md",
728
+ "children": [
729
+ {
730
+ "variant": "caption",
731
+ "color": "muted",
732
+ "content": "Event",
733
+ "type": "typography"
734
+ },
735
+ {
736
+ "type": "typography",
737
+ "variant": "body",
738
+ "content": "@entity.eventId"
739
+ }
740
+ ],
741
+ "direction": "horizontal"
742
+ },
743
+ {
744
+ "direction": "horizontal",
745
+ "children": [
746
+ {
747
+ "variant": "caption",
748
+ "type": "typography",
749
+ "content": "Available from",
750
+ "color": "muted"
751
+ },
752
+ {
753
+ "content": "@entity.availableFrom",
754
+ "type": "typography",
755
+ "variant": "body"
756
+ }
757
+ ],
758
+ "type": "stack",
759
+ "gap": "md"
760
+ },
761
+ {
762
+ "type": "stack",
763
+ "children": [
764
+ {
765
+ "content": "Available until",
766
+ "type": "typography",
767
+ "variant": "caption",
768
+ "color": "muted"
769
+ },
770
+ {
771
+ "variant": "body",
772
+ "type": "typography",
773
+ "content": "@entity.availableUntil"
774
+ }
775
+ ],
776
+ "gap": "md",
777
+ "direction": "horizontal"
778
+ }
779
+ ],
780
+ "direction": "vertical",
781
+ "type": "stack"
782
+ },
783
+ {
784
+ "type": "divider"
785
+ },
786
+ {
787
+ "type": "simple-grid",
788
+ "cols": 4.0,
789
+ "children": [
790
+ {
791
+ "icon": "dollar-sign",
792
+ "label": "Price",
793
+ "value": "@entity.price",
794
+ "type": "stat-display"
795
+ },
796
+ {
797
+ "type": "stat-display",
798
+ "value": "@entity.currency",
799
+ "icon": "globe",
800
+ "label": "Currency"
801
+ },
802
+ {
803
+ "icon": "users",
804
+ "type": "stat-display",
805
+ "label": "Total seats",
806
+ "value": "@entity.quantityTotal"
807
+ },
808
+ {
809
+ "icon": "check-circle",
810
+ "type": "stat-display",
811
+ "label": "Sold",
812
+ "value": "@entity.quantitySold"
813
+ }
814
+ ]
815
+ },
816
+ {
817
+ "type": "stack",
818
+ "gap": "sm",
819
+ "align": "center",
820
+ "children": [
821
+ {
822
+ "type": "button",
823
+ "variant": "primary",
824
+ "actionPayload": {
825
+ "row": "@entity",
826
+ "tierId": "@entity.id",
827
+ "data": {}
828
+ },
829
+ "action": "UPDATE",
830
+ "label": "Update"
831
+ },
832
+ {
833
+ "label": "Sell",
834
+ "variant": "secondary",
835
+ "actionPayload": {
836
+ "row": "@entity",
837
+ "tierId": "@entity.id",
838
+ "qty": 1.0
839
+ },
840
+ "type": "button",
841
+ "action": "SELL"
842
+ },
843
+ {
844
+ "action": "CLOSE",
845
+ "label": "Close",
846
+ "actionPayload": {
847
+ "row": "@entity",
848
+ "tierId": "@entity.id"
849
+ },
850
+ "variant": "danger",
851
+ "type": "button"
852
+ }
853
+ ],
854
+ "direction": "horizontal"
855
+ }
856
+ ],
857
+ "type": "stack",
858
+ "gap": "md",
859
+ "direction": "vertical"
908
860
  }
909
861
  ]
910
862
  ]
@@ -912,7 +864,7 @@
912
864
  {
913
865
  "from": "browsing",
914
866
  "to": "loading",
915
- "event": "SELL",
867
+ "event": "UPDATE",
916
868
  "effects": [
917
869
  [
918
870
  "set",
@@ -920,89 +872,43 @@
920
872
  "@payload.tierId"
921
873
  ],
922
874
  [
923
- "set",
924
- "@entity.eventId",
925
- "@payload.row.eventId"
926
- ],
927
- [
928
- "set",
929
- "@entity.name",
930
- "@payload.row.name"
931
- ],
932
- [
933
- "set",
934
- "@entity.price",
935
- "@payload.row.price"
936
- ],
937
- [
938
- "set",
939
- "@entity.currency",
940
- "@payload.row.currency"
941
- ],
942
- [
943
- "set",
944
- "@entity.quantityTotal",
945
- "@payload.row.quantityTotal"
946
- ],
947
- [
948
- "set",
949
- "@entity.quantitySold",
950
- [
951
- "+",
952
- "@payload.row.quantitySold",
953
- "@payload.qty"
954
- ]
955
- ],
956
- [
957
- "set",
958
- "@entity.availableFrom",
959
- "@payload.row.availableFrom"
960
- ],
961
- [
962
- "set",
963
- "@entity.availableUntil",
964
- "@payload.row.availableUntil"
965
- ],
966
- [
967
- "set",
968
- "@entity.status",
969
- [
970
- "if",
971
- [
972
- ">=",
973
- [
974
- "+",
975
- "@payload.row.quantitySold",
976
- "@payload.qty"
977
- ],
978
- [
979
- "+",
980
- "@payload.row.quantityTotal",
981
- 0.0
982
- ]
983
- ],
984
- "sold-out",
985
- "available"
986
- ]
987
- ],
988
- [
989
- "persist",
990
- "update",
875
+ "fetch",
991
876
  "TicketTier",
992
- "@entity",
993
877
  {
994
878
  "emit": {
995
- "success": "TicketTierSold",
996
- "failure": "TicketTierWriteFailed"
879
+ "success": "TicketTierLoaded",
880
+ "failure": "TicketTierLoadFailed"
997
881
  }
998
882
  }
883
+ ],
884
+ [
885
+ "render-ui",
886
+ "main",
887
+ {
888
+ "type": "stack",
889
+ "children": [
890
+ {
891
+ "type": "spinner"
892
+ },
893
+ {
894
+ "type": "typography",
895
+ "variant": "caption",
896
+ "color": "muted",
897
+ "content": "Updating tier…"
898
+ }
899
+ ],
900
+ "direction": "vertical",
901
+ "align": "center",
902
+ "className": "py-12",
903
+ "gap": "md"
904
+ }
999
905
  ]
1000
906
  ]
1001
907
  },
1002
908
  {
1003
909
  "from": "browsing",
1004
910
  "to": "loading",
1005
- "event": "CLOSE",
911
+ "event": "SELL",
1006
912
  "effects": [
1007
913
  [
1008
914
  "set",
@@ -1010,69 +916,49 @@
1010
916
  "@payload.tierId"
1011
917
  ],
1012
918
  [
1013
- "set",
1014
- "@entity.eventId",
1015
- "@payload.row.eventId"
1016
- ],
1017
- [
1018
- "set",
1019
- "@entity.name",
1020
- "@payload.row.name"
1021
- ],
1022
- [
1023
- "set",
1024
- "@entity.price",
1025
- "@payload.row.price"
1026
- ],
1027
- [
1028
- "set",
1029
- "@entity.currency",
1030
- "@payload.row.currency"
1031
- ],
1032
- [
1033
- "set",
1034
- "@entity.quantityTotal",
1035
- "@payload.row.quantityTotal"
1036
- ],
1037
- [
1038
- "set",
1039
- "@entity.quantitySold",
1040
- "@payload.row.quantitySold"
1041
- ],
1042
- [
1043
- "set",
1044
- "@entity.availableFrom",
1045
- "@payload.row.availableFrom"
1046
- ],
1047
- [
1048
- "set",
1049
- "@entity.availableUntil",
1050
- "@payload.row.availableUntil"
1051
- ],
1052
- [
1053
- "set",
1054
- "@entity.status",
1055
- "closed"
1056
- ],
1057
- [
1058
- "persist",
1059
- "update",
919
+ "fetch",
1060
920
  "TicketTier",
1061
- "@entity",
1062
921
  {
1063
922
  "emit": {
1064
- "failure": "TicketTierWriteFailed",
1065
- "success": "TicketTierClosed"
923
+ "failure": "TicketTierLoadFailed",
924
+ "success": "TicketTierLoaded"
1066
925
  }
1067
926
  }
927
+ ],
928
+ [
929
+ "render-ui",
930
+ "main",
931
+ {
932
+ "children": [
933
+ {
934
+ "type": "spinner"
935
+ },
936
+ {
937
+ "color": "muted",
938
+ "content": "Selling tickets…",
939
+ "type": "typography",
940
+ "variant": "caption"
941
+ }
942
+ ],
943
+ "type": "stack",
944
+ "align": "center",
945
+ "gap": "md",
946
+ "direction": "vertical",
947
+ "className": "py-12"
948
+ }
1068
949
  ]
1069
950
  ]
1070
951
  },
1071
952
  {
1072
953
  "from": "browsing",
1073
954
  "to": "loading",
1074
- "event": "TicketTierCreated",
955
+ "event": "CLOSE",
1075
956
  "effects": [
957
+ [
958
+ "set",
959
+ "@entity.id",
960
+ "@payload.tierId"
961
+ ],
1076
962
  [
1077
963
  "fetch",
1078
964
  "TicketTier",
@@ -1082,13 +968,35 @@
1082
968
  "success": "TicketTierLoaded"
1083
969
  }
1084
970
  }
971
+ ],
972
+ [
973
+ "render-ui",
974
+ "main",
975
+ {
976
+ "gap": "md",
977
+ "align": "center",
978
+ "className": "py-12",
979
+ "direction": "vertical",
980
+ "type": "stack",
981
+ "children": [
982
+ {
983
+ "type": "spinner"
984
+ },
985
+ {
986
+ "type": "typography",
987
+ "content": "Closing tier…",
988
+ "variant": "caption",
989
+ "color": "muted"
990
+ }
991
+ ]
992
+ }
1085
993
  ]
1086
994
  ]
1087
995
  },
1088
996
  {
1089
- "from": "browsing",
997
+ "from": "viewing_single",
1090
998
  "to": "loading",
1091
- "event": "TicketTierUpdated",
999
+ "event": "CLOSE_VIEW",
1092
1000
  "effects": [
1093
1001
  [
1094
1002
  "fetch",
@@ -1099,31 +1007,85 @@
1099
1007
  "failure": "TicketTierLoadFailed"
1100
1008
  }
1101
1009
  }
1010
+ ],
1011
+ [
1012
+ "render-ui",
1013
+ "main",
1014
+ {
1015
+ "type": "stack",
1016
+ "className": "py-12",
1017
+ "direction": "vertical",
1018
+ "align": "center",
1019
+ "gap": "md",
1020
+ "children": [
1021
+ {
1022
+ "type": "spinner"
1023
+ },
1024
+ {
1025
+ "variant": "caption",
1026
+ "color": "muted",
1027
+ "type": "typography",
1028
+ "content": "Loading ticket tiers…"
1029
+ }
1030
+ ]
1031
+ }
1102
1032
  ]
1103
1033
  ]
1104
1034
  },
1105
1035
  {
1106
- "from": "browsing",
1036
+ "from": "viewing_single",
1107
1037
  "to": "loading",
1108
- "event": "TicketTierSold",
1038
+ "event": "UPDATE",
1109
1039
  "effects": [
1040
+ [
1041
+ "set",
1042
+ "@entity.id",
1043
+ "@payload.tierId"
1044
+ ],
1110
1045
  [
1111
1046
  "fetch",
1112
1047
  "TicketTier",
1113
1048
  {
1114
1049
  "emit": {
1115
- "failure": "TicketTierLoadFailed",
1116
- "success": "TicketTierLoaded"
1050
+ "success": "TicketTierLoaded",
1051
+ "failure": "TicketTierLoadFailed"
1117
1052
  }
1118
1053
  }
1054
+ ],
1055
+ [
1056
+ "render-ui",
1057
+ "main",
1058
+ {
1059
+ "type": "stack",
1060
+ "direction": "vertical",
1061
+ "align": "center",
1062
+ "gap": "md",
1063
+ "className": "py-12",
1064
+ "children": [
1065
+ {
1066
+ "type": "spinner"
1067
+ },
1068
+ {
1069
+ "content": "Updating tier…",
1070
+ "variant": "caption",
1071
+ "type": "typography",
1072
+ "color": "muted"
1073
+ }
1074
+ ]
1075
+ }
1119
1076
  ]
1120
1077
  ]
1121
1078
  },
1122
1079
  {
1123
- "from": "browsing",
1080
+ "from": "viewing_single",
1124
1081
  "to": "loading",
1125
- "event": "TicketTierClosed",
1082
+ "event": "SELL",
1126
1083
  "effects": [
1084
+ [
1085
+ "set",
1086
+ "@entity.id",
1087
+ "@payload.tierId"
1088
+ ],
1127
1089
  [
1128
1090
  "fetch",
1129
1091
  "TicketTier",
@@ -1133,21 +1095,71 @@
1133
1095
  "failure": "TicketTierLoadFailed"
1134
1096
  }
1135
1097
  }
1098
+ ],
1099
+ [
1100
+ "render-ui",
1101
+ "main",
1102
+ {
1103
+ "children": [
1104
+ {
1105
+ "type": "spinner"
1106
+ },
1107
+ {
1108
+ "content": "Selling tickets…",
1109
+ "color": "muted",
1110
+ "type": "typography",
1111
+ "variant": "caption"
1112
+ }
1113
+ ],
1114
+ "type": "stack",
1115
+ "align": "center",
1116
+ "className": "py-12",
1117
+ "gap": "md",
1118
+ "direction": "vertical"
1119
+ }
1136
1120
  ]
1137
1121
  ]
1138
1122
  },
1139
1123
  {
1140
- "from": "browsing",
1141
- "to": "browsing",
1142
- "event": "TicketTierWriteFailed",
1124
+ "from": "viewing_single",
1125
+ "to": "loading",
1126
+ "event": "CLOSE",
1143
1127
  "effects": [
1128
+ [
1129
+ "set",
1130
+ "@entity.id",
1131
+ "@payload.tierId"
1132
+ ],
1133
+ [
1134
+ "fetch",
1135
+ "TicketTier",
1136
+ {
1137
+ "emit": {
1138
+ "success": "TicketTierLoaded",
1139
+ "failure": "TicketTierLoadFailed"
1140
+ }
1141
+ }
1142
+ ],
1144
1143
  [
1145
1144
  "render-ui",
1146
1145
  "main",
1147
1146
  {
1148
- "type": "alert",
1149
- "variant": "error",
1150
- "message": "@payload.error"
1147
+ "type": "stack",
1148
+ "gap": "md",
1149
+ "align": "center",
1150
+ "className": "py-12",
1151
+ "direction": "vertical",
1152
+ "children": [
1153
+ {
1154
+ "type": "spinner"
1155
+ },
1156
+ {
1157
+ "variant": "caption",
1158
+ "content": "Closing tier…",
1159
+ "color": "muted",
1160
+ "type": "typography"
1161
+ }
1162
+ ]
1151
1163
  }
1152
1164
  ]
1153
1165
  ]