@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-approval-request",
3
3
  "version": "1.0.0",
4
- "description": "std-approval-request — Generic approval step primitive for routing a target (timesheet, expense, PTO, etc.) through requestor + approver decisions.",
4
+ "description": "std-approval-request — generic approval step for routing a target (timesheet, expense, PTO, etc.) through requestor + approver decisions. Lists requests in `browsing`; opens detail in `viewing_single` with Approve / Reject / Request Info / Withdraw actions.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "ApprovalRequestOrbital",
@@ -100,58 +100,7 @@
100
100
  "linkedEntity": "ApprovalRequest",
101
101
  "emits": [
102
102
  {
103
- "event": "VIEW",
104
- "payloadSchema": [
105
- {
106
- "name": "id",
107
- "type": "string",
108
- "required": true
109
- },
110
- {
111
- "name": "source",
112
- "type": "string"
113
- }
114
- ]
115
- },
116
- {
117
- "event": "EDIT",
118
- "payloadSchema": [
119
- {
120
- "name": "id",
121
- "type": "string",
122
- "required": true
123
- },
124
- {
125
- "name": "source",
126
- "type": "string"
127
- }
128
- ]
129
- },
130
- {
131
- "event": "CREATE",
132
- "payloadSchema": [
133
- {
134
- "name": "source",
135
- "type": "string"
136
- }
137
- ]
138
- },
139
- {
140
- "event": "REQUEST_DELETE",
141
- "payloadSchema": [
142
- {
143
- "name": "id",
144
- "type": "string",
145
- "required": true
146
- },
147
- {
148
- "name": "source",
149
- "type": "string"
150
- }
151
- ]
152
- },
153
- {
154
- "event": "APPROVE",
103
+ "event": "OPEN_REQUEST",
155
104
  "payloadSchema": [
156
105
  {
157
106
  "name": "id",
@@ -213,64 +162,25 @@
213
162
  ]
214
163
  },
215
164
  {
216
- "event": "REJECT",
165
+ "event": "CLOSE_REQUEST"
166
+ },
167
+ {
168
+ "event": "APPROVE",
217
169
  "payloadSchema": [
218
170
  {
219
171
  "name": "id",
220
172
  "type": "string",
221
173
  "required": true
222
- },
223
- {
224
- "name": "row.id",
225
- "type": "string",
226
- "required": true
227
- },
228
- {
229
- "name": "row.title",
230
- "type": "string",
231
- "required": true
232
- },
233
- {
234
- "name": "row.targetType",
235
- "type": "string"
236
- },
237
- {
238
- "name": "row.targetId",
239
- "type": "string",
240
- "required": true
241
- },
174
+ }
175
+ ]
176
+ },
177
+ {
178
+ "event": "REJECT",
179
+ "payloadSchema": [
242
180
  {
243
- "name": "row.requestedBy",
181
+ "name": "id",
244
182
  "type": "string",
245
183
  "required": true
246
- },
247
- {
248
- "name": "row.requestedAt",
249
- "type": "string"
250
- },
251
- {
252
- "name": "row.assignedApprover",
253
- "type": "string"
254
- },
255
- {
256
- "name": "row.approverDecision",
257
- "type": "string"
258
- },
259
- {
260
- "name": "row.decidedAt",
261
- "type": "string"
262
- },
263
- {
264
- "name": "row.comment",
265
- "type": "string"
266
- },
267
- {
268
- "name": "row.status",
269
- "type": "string"
270
- },
271
- {
272
- "name": "row.pendingId",
273
- "type": "string"
274
184
  }
275
185
  ]
276
186
  },
@@ -281,58 +191,6 @@
281
191
  "name": "id",
282
192
  "type": "string",
283
193
  "required": true
284
- },
285
- {
286
- "name": "row.id",
287
- "type": "string",
288
- "required": true
289
- },
290
- {
291
- "name": "row.title",
292
- "type": "string",
293
- "required": true
294
- },
295
- {
296
- "name": "row.targetType",
297
- "type": "string"
298
- },
299
- {
300
- "name": "row.targetId",
301
- "type": "string",
302
- "required": true
303
- },
304
- {
305
- "name": "row.requestedBy",
306
- "type": "string",
307
- "required": true
308
- },
309
- {
310
- "name": "row.requestedAt",
311
- "type": "string"
312
- },
313
- {
314
- "name": "row.assignedApprover",
315
- "type": "string"
316
- },
317
- {
318
- "name": "row.approverDecision",
319
- "type": "string"
320
- },
321
- {
322
- "name": "row.decidedAt",
323
- "type": "string"
324
- },
325
- {
326
- "name": "row.comment",
327
- "type": "string"
328
- },
329
- {
330
- "name": "row.status",
331
- "type": "string"
332
- },
333
- {
334
- "name": "row.pendingId",
335
- "type": "string"
336
194
  }
337
195
  ]
338
196
  },
@@ -343,58 +201,6 @@
343
201
  "name": "id",
344
202
  "type": "string",
345
203
  "required": true
346
- },
347
- {
348
- "name": "row.id",
349
- "type": "string",
350
- "required": true
351
- },
352
- {
353
- "name": "row.title",
354
- "type": "string",
355
- "required": true
356
- },
357
- {
358
- "name": "row.targetType",
359
- "type": "string"
360
- },
361
- {
362
- "name": "row.targetId",
363
- "type": "string",
364
- "required": true
365
- },
366
- {
367
- "name": "row.requestedBy",
368
- "type": "string",
369
- "required": true
370
- },
371
- {
372
- "name": "row.requestedAt",
373
- "type": "string"
374
- },
375
- {
376
- "name": "row.assignedApprover",
377
- "type": "string"
378
- },
379
- {
380
- "name": "row.approverDecision",
381
- "type": "string"
382
- },
383
- {
384
- "name": "row.decidedAt",
385
- "type": "string"
386
- },
387
- {
388
- "name": "row.comment",
389
- "type": "string"
390
- },
391
- {
392
- "name": "row.status",
393
- "type": "string"
394
- },
395
- {
396
- "name": "row.pendingId",
397
- "type": "string"
398
204
  }
399
205
  ]
400
206
  },
@@ -428,7 +234,10 @@
428
234
  "isInitial": true
429
235
  },
430
236
  {
431
- "name": "viewing"
237
+ "name": "browsing"
238
+ },
239
+ {
240
+ "name": "viewing_single"
432
241
  },
433
242
  {
434
243
  "name": "error"
@@ -464,69 +273,23 @@
464
273
  ]
465
274
  },
466
275
  {
467
- "key": "REFRESH",
468
- "name": "Refresh",
469
- "payloadSchema": [
470
- {
471
- "name": "source",
472
- "type": "string"
473
- }
474
- ]
475
- },
476
- {
477
- "key": "SEARCH",
478
- "name": "Search",
479
- "payloadSchema": [
480
- {
481
- "name": "query",
482
- "type": "string"
483
- }
484
- ]
485
- },
486
- {
487
- "key": "FILTER_STATUS",
488
- "name": "Filter Status",
489
- "payloadSchema": [
490
- {
491
- "name": "status",
492
- "type": "string"
493
- }
494
- ]
495
- },
496
- {
497
- "key": "FILTER_TYPE",
498
- "name": "Filter Type",
499
- "payloadSchema": [
500
- {
501
- "name": "targetType",
502
- "type": "string"
503
- }
504
- ]
505
- },
506
- {
507
- "key": "CREATE",
508
- "name": "Create",
509
- "payloadSchema": [
510
- {
511
- "name": "source",
512
- "type": "string"
513
- }
514
- ]
515
- },
516
- {
517
- "key": "VIEW",
518
- "name": "View",
276
+ "key": "OPEN_REQUEST",
277
+ "name": "Open Request",
519
278
  "payloadSchema": [
520
279
  {
521
280
  "name": "id",
522
281
  "type": "string",
523
282
  "required": true
283
+ },
284
+ {
285
+ "name": "row",
286
+ "type": "ApprovalRequest"
524
287
  }
525
288
  ]
526
289
  },
527
290
  {
528
- "key": "EDIT",
529
- "name": "Edit",
291
+ "key": "WITHDRAW",
292
+ "name": "Withdraw",
530
293
  "payloadSchema": [
531
294
  {
532
295
  "name": "id",
@@ -535,6 +298,10 @@
535
298
  }
536
299
  ]
537
300
  },
301
+ {
302
+ "key": "CLOSE_REQUEST",
303
+ "name": "Close Request"
304
+ },
538
305
  {
539
306
  "key": "APPROVE",
540
307
  "name": "Approve",
@@ -567,31 +334,9 @@
567
334
  "required": true
568
335
  }
569
336
  ]
570
- },
571
- {
572
- "key": "WITHDRAW",
573
- "name": "Withdraw",
574
- "payloadSchema": [
575
- {
576
- "name": "id",
577
- "type": "string",
578
- "required": true
579
- }
580
- ]
581
- },
582
- {
583
- "key": "REQUEST_DELETE",
584
- "name": "Request Delete",
585
- "payloadSchema": [
586
- {
587
- "name": "id",
588
- "type": "string",
589
- "required": true
590
- }
591
- ]
592
- }
593
- ],
594
- "transitions": [
337
+ }
338
+ ],
339
+ "transitions": [
595
340
  {
596
341
  "from": "loading",
597
342
  "to": "loading",
@@ -602,8 +347,8 @@
602
347
  "ApprovalRequest",
603
348
  {
604
349
  "emit": {
605
- "failure": "ApprovalRequestLoadFailed",
606
- "success": "ApprovalRequestLoaded"
350
+ "success": "ApprovalRequestLoaded",
351
+ "failure": "ApprovalRequestLoadFailed"
607
352
  }
608
353
  }
609
354
  ],
@@ -611,41 +356,43 @@
611
356
  "render-ui",
612
357
  "main",
613
358
  {
614
- "className": "py-12",
615
- "gap": "md",
616
359
  "children": [
617
360
  {
618
361
  "type": "spinner"
619
362
  },
620
363
  {
364
+ "variant": "caption",
621
365
  "content": "Loading approval requests…",
622
- "type": "typography",
623
366
  "color": "muted",
624
- "variant": "caption"
367
+ "type": "typography"
625
368
  }
626
369
  ],
627
370
  "direction": "vertical",
628
371
  "type": "stack",
629
- "align": "center"
372
+ "align": "center",
373
+ "className": "py-12",
374
+ "gap": "md"
630
375
  }
631
376
  ]
632
377
  ]
633
378
  },
634
379
  {
635
380
  "from": "loading",
636
- "to": "viewing",
381
+ "to": "browsing",
637
382
  "event": "ApprovalRequestLoaded",
638
383
  "effects": [
639
384
  [
640
385
  "render-ui",
641
386
  "main",
642
387
  {
643
- "type": "stack",
644
388
  "direction": "vertical",
645
389
  "gap": "md",
390
+ "type": "stack",
646
391
  "children": [
647
392
  {
393
+ "direction": "horizontal",
648
394
  "type": "stack",
395
+ "gap": "sm",
649
396
  "align": "center",
650
397
  "children": [
651
398
  {
@@ -653,204 +400,99 @@
653
400
  "type": "icon"
654
401
  },
655
402
  {
656
- "content": "@config.title",
657
403
  "variant": "h3",
658
- "type": "typography"
659
- },
660
- {
661
- "variant": "primary",
662
- "type": "button",
663
- "label": "New Approval Request",
664
- "action": "CREATE"
665
- }
666
- ],
667
- "direction": "horizontal",
668
- "gap": "sm"
669
- },
670
- {
671
- "currentStep": 1.0,
672
- "type": "wizard-progress",
673
- "steps": [
674
- {
675
- "title": "Submitted",
676
- "id": "submitted"
677
- },
678
- {
679
- "title": "Review",
680
- "id": "review"
681
- },
682
- {
683
- "title": "Decision",
684
- "id": "decision"
685
- },
686
- {
687
- "title": "Closed",
688
- "id": "closed"
404
+ "type": "typography",
405
+ "content": "@config.title"
689
406
  }
690
407
  ]
691
408
  },
692
409
  {
693
- "type": "stack",
694
- "align": "center",
695
- "direction": "horizontal",
696
410
  "children": [
697
411
  {
698
- "maxTurns": 4.0,
699
- "currentTurn": 2.0,
700
- "phase": "Review",
701
- "type": "turn-indicator",
702
- "activeTeam": "Approver",
703
- "size": "md"
704
- },
705
- {
706
- "type": "trend-indicator",
707
- "value": 12.5,
708
- "direction": "up",
709
- "label": "Approval rate trend",
710
- "size": "md",
711
- "showValue": true
712
- }
713
- ],
714
- "gap": "md"
715
- },
716
- {
717
- "phase": "Review",
718
- "actions": [
719
- {
720
- "label": "Approve",
721
- "event": "APPROVE"
722
- },
723
- {
724
- "label": "Reject",
725
- "event": "REJECT"
726
- }
727
- ],
728
- "currentTurn": 2.0,
729
- "maxTurns": 4.0,
730
- "type": "turn-panel",
731
- "activeTeam": "Approver"
732
- },
733
- {
734
- "type": "timeline",
735
- "title": "Approval Chronology",
736
- "items": [
737
- {
738
- "title": "Submitted",
739
- "id": "submitted",
740
- "description": "Request submitted",
741
- "status": "complete",
742
- "date": "2026-05-08"
412
+ "icon": "inbox",
413
+ "value": "@payload.data.length",
414
+ "type": "stat-display",
415
+ "label": "Total requests"
743
416
  },
744
417
  {
745
- "date": "2026-05-09",
746
- "status": "complete",
747
- "title": "Assigned",
748
- "description": "Approver assigned",
749
- "id": "assigned"
418
+ "value": "14",
419
+ "icon": "clock",
420
+ "type": "stat-display",
421
+ "label": "Pending"
750
422
  },
751
423
  {
752
- "date": "2026-05-11",
753
- "title": "Review",
754
- "id": "review",
755
- "status": "active",
756
- "description": "Approver reviewing"
424
+ "icon": "check-circle",
425
+ "type": "stat-display",
426
+ "label": "Approved",
427
+ "value": "82%"
757
428
  },
758
429
  {
759
- "title": "Decision",
760
- "date": "2026-05-12",
761
- "description": "Pending decision",
762
- "status": "pending",
763
- "id": "decision"
430
+ "label": "Avg cycle",
431
+ "value": "1.4 days",
432
+ "type": "stat-display",
433
+ "icon": "timer"
764
434
  }
765
435
  ],
766
- "fields": [
767
- "title",
768
- "date",
769
- "status",
770
- "description"
771
- ]
436
+ "type": "simple-grid",
437
+ "cols": 4.0
772
438
  },
773
439
  {
774
440
  "type": "divider"
775
441
  },
776
442
  {
777
443
  "cols": 1.0,
778
- "gap": "sm",
779
- "type": "data-grid",
780
444
  "fields": [
781
445
  {
782
446
  "label": "Title",
783
- "variant": "caption",
784
- "name": "title"
447
+ "name": "title",
448
+ "variant": "caption"
785
449
  },
786
450
  {
787
- "label": "Target",
788
451
  "name": "targetType",
452
+ "label": "Target",
789
453
  "variant": "badge"
790
454
  },
791
455
  {
456
+ "label": "Requested By",
792
457
  "variant": "caption",
793
- "name": "requestedBy",
794
- "label": "Requested By"
458
+ "name": "requestedBy"
795
459
  },
796
460
  {
797
- "variant": "caption",
798
461
  "name": "assignedApprover",
462
+ "variant": "caption",
799
463
  "label": "Approver"
800
464
  },
801
465
  {
802
- "label": "Decision",
803
466
  "name": "approverDecision",
804
- "variant": "badge"
467
+ "variant": "badge",
468
+ "label": "Decision"
805
469
  },
806
470
  {
807
- "name": "status",
471
+ "label": "Status",
808
472
  "variant": "badge",
809
- "label": "Status"
473
+ "name": "status"
810
474
  },
811
475
  {
812
- "name": "decidedAt",
476
+ "label": "Decided",
813
477
  "variant": "caption",
814
- "label": "Decided"
478
+ "name": "decidedAt"
815
479
  }
816
480
  ],
481
+ "gap": "sm",
817
482
  "itemActions": [
818
483
  {
819
- "variant": "secondary",
820
- "label": "View",
821
- "event": "VIEW"
822
- },
823
- {
824
- "label": "Edit",
825
- "event": "EDIT",
826
- "variant": "secondary"
827
- },
828
- {
829
- "event": "APPROVE",
830
- "label": "Approve",
484
+ "label": "Open",
485
+ "icon": "arrow-right",
486
+ "event": "OPEN_REQUEST",
831
487
  "variant": "primary"
832
488
  },
833
489
  {
834
- "variant": "danger",
835
- "event": "REJECT",
836
- "label": "Reject"
837
- },
838
- {
839
- "label": "Request Info",
840
- "event": "REQUEST_INFO",
841
- "variant": "ghost"
842
- },
843
- {
490
+ "event": "WITHDRAW",
844
491
  "label": "Withdraw",
845
- "variant": "ghost",
846
- "event": "WITHDRAW"
847
- },
848
- {
849
- "event": "REQUEST_DELETE",
850
- "label": "Delete",
851
492
  "variant": "danger"
852
493
  }
853
494
  ],
495
+ "type": "data-grid",
854
496
  "entity": "@payload.data"
855
497
  }
856
498
  ]
@@ -875,56 +517,280 @@
875
517
  ]
876
518
  },
877
519
  {
878
- "from": "viewing",
879
- "to": "loading",
880
- "event": "REFRESH",
520
+ "from": "browsing",
521
+ "to": "viewing_single",
522
+ "event": "OPEN_REQUEST",
881
523
  "effects": [
882
524
  [
883
- "fetch",
884
- "ApprovalRequest",
885
- {
886
- "emit": {
887
- "success": "ApprovalRequestLoaded",
888
- "failure": "ApprovalRequestLoadFailed"
889
- }
890
- }
525
+ "set",
526
+ "@entity.id",
527
+ "@payload.row.id"
528
+ ],
529
+ [
530
+ "set",
531
+ "@entity.title",
532
+ "@payload.row.title"
533
+ ],
534
+ [
535
+ "set",
536
+ "@entity.targetType",
537
+ "@payload.row.targetType"
538
+ ],
539
+ [
540
+ "set",
541
+ "@entity.targetId",
542
+ "@payload.row.targetId"
543
+ ],
544
+ [
545
+ "set",
546
+ "@entity.requestedBy",
547
+ "@payload.row.requestedBy"
548
+ ],
549
+ [
550
+ "set",
551
+ "@entity.requestedAt",
552
+ "@payload.row.requestedAt"
553
+ ],
554
+ [
555
+ "set",
556
+ "@entity.assignedApprover",
557
+ "@payload.row.assignedApprover"
558
+ ],
559
+ [
560
+ "set",
561
+ "@entity.approverDecision",
562
+ "@payload.row.approverDecision"
563
+ ],
564
+ [
565
+ "set",
566
+ "@entity.decidedAt",
567
+ "@payload.row.decidedAt"
568
+ ],
569
+ [
570
+ "set",
571
+ "@entity.comment",
572
+ "@payload.row.comment"
573
+ ],
574
+ [
575
+ "set",
576
+ "@entity.status",
577
+ "@payload.row.status"
891
578
  ],
892
579
  [
893
580
  "render-ui",
894
581
  "main",
895
582
  {
896
- "gap": "md",
897
583
  "type": "stack",
898
- "className": "py-12",
899
- "direction": "vertical",
900
- "align": "center",
901
584
  "children": [
902
585
  {
903
- "type": "spinner"
586
+ "children": [
587
+ {
588
+ "variant": "ghost",
589
+ "type": "button",
590
+ "label": "Back",
591
+ "action": "CLOSE_REQUEST"
592
+ },
593
+ {
594
+ "name": "check-circle",
595
+ "type": "icon"
596
+ },
597
+ {
598
+ "variant": "h3",
599
+ "type": "typography",
600
+ "content": "@entity.title"
601
+ },
602
+ {
603
+ "type": "badge",
604
+ "variant": "default",
605
+ "label": "@entity.status"
606
+ },
607
+ {
608
+ "variant": "primary",
609
+ "label": "@entity.approverDecision",
610
+ "type": "badge"
611
+ }
612
+ ],
613
+ "direction": "horizontal",
614
+ "gap": "sm",
615
+ "align": "center",
616
+ "type": "stack"
904
617
  },
905
618
  {
906
- "variant": "caption",
907
- "content": "Refreshing approval requests…",
908
- "type": "typography",
909
- "color": "muted"
619
+ "type": "divider"
620
+ },
621
+ {
622
+ "gap": "sm",
623
+ "direction": "vertical",
624
+ "type": "stack",
625
+ "children": [
626
+ {
627
+ "children": [
628
+ {
629
+ "type": "typography",
630
+ "variant": "caption",
631
+ "content": "Target",
632
+ "color": "muted"
633
+ },
634
+ {
635
+ "content": "@entity.targetType",
636
+ "type": "typography",
637
+ "variant": "body"
638
+ },
639
+ {
640
+ "content": "@entity.targetId",
641
+ "type": "typography",
642
+ "variant": "body"
643
+ }
644
+ ],
645
+ "direction": "horizontal",
646
+ "type": "stack",
647
+ "gap": "md"
648
+ },
649
+ {
650
+ "direction": "horizontal",
651
+ "type": "stack",
652
+ "children": [
653
+ {
654
+ "type": "typography",
655
+ "variant": "caption",
656
+ "content": "Requested by",
657
+ "color": "muted"
658
+ },
659
+ {
660
+ "type": "typography",
661
+ "variant": "body",
662
+ "content": "@entity.requestedBy"
663
+ }
664
+ ],
665
+ "gap": "md"
666
+ },
667
+ {
668
+ "direction": "horizontal",
669
+ "gap": "md",
670
+ "type": "stack",
671
+ "children": [
672
+ {
673
+ "variant": "caption",
674
+ "type": "typography",
675
+ "color": "muted",
676
+ "content": "Approver"
677
+ },
678
+ {
679
+ "content": "@entity.assignedApprover",
680
+ "variant": "body",
681
+ "type": "typography"
682
+ }
683
+ ]
684
+ },
685
+ {
686
+ "type": "stack",
687
+ "direction": "horizontal",
688
+ "gap": "md",
689
+ "children": [
690
+ {
691
+ "variant": "caption",
692
+ "color": "muted",
693
+ "type": "typography",
694
+ "content": "Comment"
695
+ },
696
+ {
697
+ "variant": "body",
698
+ "type": "typography",
699
+ "content": "@entity.comment"
700
+ }
701
+ ]
702
+ }
703
+ ]
704
+ },
705
+ {
706
+ "type": "divider"
707
+ },
708
+ {
709
+ "children": [
710
+ {
711
+ "icon": "calendar",
712
+ "type": "stat-display",
713
+ "label": "Requested at",
714
+ "value": "@entity.requestedAt"
715
+ },
716
+ {
717
+ "label": "Decided at",
718
+ "icon": "calendar-check",
719
+ "type": "stat-display",
720
+ "value": "@entity.decidedAt"
721
+ }
722
+ ],
723
+ "type": "simple-grid",
724
+ "cols": 2.0
725
+ },
726
+ {
727
+ "align": "center",
728
+ "type": "stack",
729
+ "gap": "sm",
730
+ "direction": "horizontal",
731
+ "children": [
732
+ {
733
+ "label": "Approve",
734
+ "type": "button",
735
+ "action": "APPROVE",
736
+ "variant": "primary",
737
+ "actionPayload": {
738
+ "id": "@entity.id"
739
+ }
740
+ },
741
+ {
742
+ "type": "button",
743
+ "actionPayload": {
744
+ "id": "@entity.id"
745
+ },
746
+ "action": "REJECT",
747
+ "variant": "danger",
748
+ "label": "Reject"
749
+ },
750
+ {
751
+ "actionPayload": {
752
+ "id": "@entity.id"
753
+ },
754
+ "action": "REQUEST_INFO",
755
+ "label": "Request Info",
756
+ "type": "button",
757
+ "variant": "secondary"
758
+ },
759
+ {
760
+ "action": "WITHDRAW",
761
+ "type": "button",
762
+ "label": "Withdraw",
763
+ "actionPayload": {
764
+ "id": "@entity.id"
765
+ },
766
+ "variant": "ghost"
767
+ }
768
+ ]
910
769
  }
911
- ]
770
+ ],
771
+ "gap": "md",
772
+ "direction": "vertical"
912
773
  }
913
774
  ]
914
775
  ]
915
776
  },
916
777
  {
917
- "from": "viewing",
778
+ "from": "browsing",
918
779
  "to": "loading",
919
- "event": "SEARCH",
780
+ "event": "WITHDRAW",
920
781
  "effects": [
782
+ [
783
+ "set",
784
+ "@entity.id",
785
+ "@payload.id"
786
+ ],
921
787
  [
922
788
  "fetch",
923
789
  "ApprovalRequest",
924
790
  {
925
791
  "emit": {
926
- "success": "ApprovalRequestLoaded",
927
- "failure": "ApprovalRequestLoadFailed"
792
+ "failure": "ApprovalRequestLoadFailed",
793
+ "success": "ApprovalRequestLoaded"
928
794
  }
929
795
  }
930
796
  ],
@@ -932,30 +798,30 @@
932
798
  "render-ui",
933
799
  "main",
934
800
  {
935
- "type": "stack",
936
- "gap": "md",
937
- "className": "py-12",
801
+ "direction": "vertical",
938
802
  "children": [
939
803
  {
940
804
  "type": "spinner"
941
805
  },
942
806
  {
943
- "type": "typography",
944
807
  "color": "muted",
808
+ "content": "Withdrawing request…",
945
809
  "variant": "caption",
946
- "content": "Searching approval requests…"
810
+ "type": "typography"
947
811
  }
948
812
  ],
813
+ "className": "py-12",
949
814
  "align": "center",
950
- "direction": "vertical"
815
+ "gap": "md",
816
+ "type": "stack"
951
817
  }
952
818
  ]
953
819
  ]
954
820
  },
955
821
  {
956
- "from": "viewing",
822
+ "from": "viewing_single",
957
823
  "to": "loading",
958
- "event": "FILTER_STATUS",
824
+ "event": "CLOSE_REQUEST",
959
825
  "effects": [
960
826
  [
961
827
  "fetch",
@@ -971,31 +837,36 @@
971
837
  "render-ui",
972
838
  "main",
973
839
  {
974
- "align": "center",
840
+ "type": "stack",
975
841
  "className": "py-12",
976
- "gap": "md",
842
+ "direction": "vertical",
843
+ "align": "center",
977
844
  "children": [
978
845
  {
979
846
  "type": "spinner"
980
847
  },
981
848
  {
982
- "content": "Filtering approval requests…",
983
- "variant": "caption",
849
+ "content": "Loading approval requests…",
984
850
  "type": "typography",
985
- "color": "muted"
851
+ "color": "muted",
852
+ "variant": "caption"
986
853
  }
987
854
  ],
988
- "type": "stack",
989
- "direction": "vertical"
855
+ "gap": "md"
990
856
  }
991
857
  ]
992
858
  ]
993
859
  },
994
860
  {
995
- "from": "viewing",
861
+ "from": "viewing_single",
996
862
  "to": "loading",
997
- "event": "FILTER_TYPE",
863
+ "event": "APPROVE",
998
864
  "effects": [
865
+ [
866
+ "set",
867
+ "@entity.id",
868
+ "@payload.id"
869
+ ],
999
870
  [
1000
871
  "fetch",
1001
872
  "ApprovalRequest",
@@ -1010,67 +881,30 @@
1010
881
  "render-ui",
1011
882
  "main",
1012
883
  {
1013
- "align": "center",
1014
- "direction": "vertical",
1015
- "className": "py-12",
1016
884
  "children": [
1017
885
  {
1018
886
  "type": "spinner"
1019
887
  },
1020
888
  {
1021
- "content": "Filtering approval requests…",
1022
889
  "type": "typography",
1023
- "color": "muted",
1024
- "variant": "caption"
890
+ "content": "Recording approval…",
891
+ "variant": "caption",
892
+ "color": "muted"
1025
893
  }
1026
894
  ],
895
+ "type": "stack",
1027
896
  "gap": "md",
1028
- "type": "stack"
1029
- }
1030
- ]
1031
- ]
1032
- },
1033
- {
1034
- "from": "viewing",
1035
- "to": "viewing",
1036
- "event": "CREATE",
1037
- "effects": [
1038
- [
1039
- "render-ui",
1040
- "main",
1041
- {
1042
- "variant": "info",
1043
- "type": "alert",
1044
- "message": "Creating new approval request"
1045
- }
1046
- ]
1047
- ]
1048
- },
1049
- {
1050
- "from": "viewing",
1051
- "to": "viewing",
1052
- "event": "VIEW",
1053
- "effects": [
1054
- [
1055
- "set",
1056
- "@entity.id",
1057
- "@payload.id"
1058
- ],
1059
- [
1060
- "render-ui",
1061
- "main",
1062
- {
1063
- "type": "alert",
1064
- "variant": "info",
1065
- "message": "Viewing approval request"
897
+ "align": "center",
898
+ "className": "py-12",
899
+ "direction": "vertical"
1066
900
  }
1067
901
  ]
1068
902
  ]
1069
903
  },
1070
904
  {
1071
- "from": "viewing",
1072
- "to": "viewing",
1073
- "event": "EDIT",
905
+ "from": "viewing_single",
906
+ "to": "loading",
907
+ "event": "REJECT",
1074
908
  "effects": [
1075
909
  [
1076
910
  "set",
@@ -1078,41 +912,43 @@
1078
912
  "@payload.id"
1079
913
  ],
1080
914
  [
1081
- "render-ui",
1082
- "main",
915
+ "fetch",
916
+ "ApprovalRequest",
1083
917
  {
1084
- "variant": "info",
1085
- "type": "alert",
1086
- "message": "Editing approval request"
918
+ "emit": {
919
+ "failure": "ApprovalRequestLoadFailed",
920
+ "success": "ApprovalRequestLoaded"
921
+ }
1087
922
  }
1088
- ]
1089
- ]
1090
- },
1091
- {
1092
- "from": "viewing",
1093
- "to": "viewing",
1094
- "event": "APPROVE",
1095
- "effects": [
1096
- [
1097
- "set",
1098
- "@entity.id",
1099
- "@payload.id"
1100
923
  ],
1101
924
  [
1102
925
  "render-ui",
1103
926
  "main",
1104
927
  {
1105
- "variant": "success",
1106
- "message": "Approval recorded",
1107
- "type": "alert"
928
+ "className": "py-12",
929
+ "children": [
930
+ {
931
+ "type": "spinner"
932
+ },
933
+ {
934
+ "variant": "caption",
935
+ "content": "Recording rejection…",
936
+ "color": "muted",
937
+ "type": "typography"
938
+ }
939
+ ],
940
+ "direction": "vertical",
941
+ "gap": "md",
942
+ "type": "stack",
943
+ "align": "center"
1108
944
  }
1109
945
  ]
1110
946
  ]
1111
947
  },
1112
948
  {
1113
- "from": "viewing",
1114
- "to": "viewing",
1115
- "event": "REJECT",
949
+ "from": "viewing_single",
950
+ "to": "loading",
951
+ "event": "REQUEST_INFO",
1116
952
  "effects": [
1117
953
  [
1118
954
  "set",
@@ -1120,40 +956,42 @@
1120
956
  "@payload.id"
1121
957
  ],
1122
958
  [
1123
- "render-ui",
1124
- "main",
959
+ "fetch",
960
+ "ApprovalRequest",
1125
961
  {
1126
- "type": "alert",
1127
- "variant": "warning",
1128
- "message": "Rejection recorded"
962
+ "emit": {
963
+ "success": "ApprovalRequestLoaded",
964
+ "failure": "ApprovalRequestLoadFailed"
965
+ }
1129
966
  }
1130
- ]
1131
- ]
1132
- },
1133
- {
1134
- "from": "viewing",
1135
- "to": "viewing",
1136
- "event": "REQUEST_INFO",
1137
- "effects": [
1138
- [
1139
- "set",
1140
- "@entity.id",
1141
- "@payload.id"
1142
967
  ],
1143
968
  [
1144
969
  "render-ui",
1145
970
  "main",
1146
971
  {
1147
- "message": "More information requested",
1148
- "type": "alert",
1149
- "variant": "info"
972
+ "children": [
973
+ {
974
+ "type": "spinner"
975
+ },
976
+ {
977
+ "variant": "caption",
978
+ "content": "Requesting more info…",
979
+ "type": "typography",
980
+ "color": "muted"
981
+ }
982
+ ],
983
+ "className": "py-12",
984
+ "gap": "md",
985
+ "type": "stack",
986
+ "align": "center",
987
+ "direction": "vertical"
1150
988
  }
1151
989
  ]
1152
990
  ]
1153
991
  },
1154
992
  {
1155
- "from": "viewing",
1156
- "to": "viewing",
993
+ "from": "viewing_single",
994
+ "to": "loading",
1157
995
  "event": "WITHDRAW",
1158
996
  "effects": [
1159
997
  [
@@ -1162,33 +1000,35 @@
1162
1000
  "@payload.id"
1163
1001
  ],
1164
1002
  [
1165
- "render-ui",
1166
- "main",
1003
+ "fetch",
1004
+ "ApprovalRequest",
1167
1005
  {
1168
- "type": "alert",
1169
- "variant": "info",
1170
- "message": "Request withdrawn"
1006
+ "emit": {
1007
+ "failure": "ApprovalRequestLoadFailed",
1008
+ "success": "ApprovalRequestLoaded"
1009
+ }
1171
1010
  }
1172
- ]
1173
- ]
1174
- },
1175
- {
1176
- "from": "viewing",
1177
- "to": "viewing",
1178
- "event": "REQUEST_DELETE",
1179
- "effects": [
1180
- [
1181
- "set",
1182
- "@entity.id",
1183
- "@payload.id"
1184
1011
  ],
1185
1012
  [
1186
1013
  "render-ui",
1187
1014
  "main",
1188
1015
  {
1189
- "type": "alert",
1190
- "message": "Delete requested",
1191
- "variant": "warning"
1016
+ "children": [
1017
+ {
1018
+ "type": "spinner"
1019
+ },
1020
+ {
1021
+ "color": "muted",
1022
+ "content": "Withdrawing request…",
1023
+ "type": "typography",
1024
+ "variant": "caption"
1025
+ }
1026
+ ],
1027
+ "direction": "vertical",
1028
+ "className": "py-12",
1029
+ "type": "stack",
1030
+ "gap": "md",
1031
+ "align": "center"
1192
1032
  }
1193
1033
  ]
1194
1034
  ]