@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-vehicle",
3
3
  "version": "1.0.0",
4
- "description": "std-vehicle — fleet vehicle primitive tracking make/model/year, VIN, license plate, odometer, status, and assigned driver.",
4
+ "description": "std-vehicle — fleet vehicle primitive. Lists vehicles in `browsing` with fleet stats + map view; opens vehicle detail in `viewing_single` (VIN, plate, make/model, odometer, status, driver) with Assign Driver / Maintenance / Retire actions.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "VehicleOrbital",
@@ -98,58 +98,7 @@
98
98
  "linkedEntity": "Vehicle",
99
99
  "emits": [
100
100
  {
101
- "event": "VIEW",
102
- "payloadSchema": [
103
- {
104
- "name": "id",
105
- "type": "string",
106
- "required": true
107
- },
108
- {
109
- "name": "source",
110
- "type": "string"
111
- }
112
- ]
113
- },
114
- {
115
- "event": "EDIT",
116
- "payloadSchema": [
117
- {
118
- "name": "id",
119
- "type": "string",
120
- "required": true
121
- },
122
- {
123
- "name": "source",
124
- "type": "string"
125
- }
126
- ]
127
- },
128
- {
129
- "event": "CREATE",
130
- "payloadSchema": [
131
- {
132
- "name": "source",
133
- "type": "string"
134
- }
135
- ]
136
- },
137
- {
138
- "event": "REQUEST_DELETE",
139
- "payloadSchema": [
140
- {
141
- "name": "id",
142
- "type": "string",
143
- "required": true
144
- },
145
- {
146
- "name": "source",
147
- "type": "string"
148
- }
149
- ]
150
- },
151
- {
152
- "event": "RETIRE",
101
+ "event": "OPEN_VEHICLE",
153
102
  "payloadSchema": [
154
103
  {
155
104
  "name": "id",
@@ -210,124 +159,35 @@
210
159
  ]
211
160
  },
212
161
  {
213
- "event": "MARK_MAINTENANCE",
162
+ "event": "CLOSE_VEHICLE"
163
+ },
164
+ {
165
+ "event": "ASSIGN_DRIVER",
214
166
  "payloadSchema": [
215
167
  {
216
168
  "name": "id",
217
169
  "type": "string",
218
170
  "required": true
219
- },
220
- {
221
- "name": "row.id",
222
- "type": "string",
223
- "required": true
224
- },
225
- {
226
- "name": "row.vin",
227
- "type": "string",
228
- "required": true
229
- },
230
- {
231
- "name": "row.licensePlate",
232
- "type": "string",
233
- "required": true
234
- },
235
- {
236
- "name": "row.make",
237
- "type": "string"
238
- },
239
- {
240
- "name": "row.model",
241
- "type": "string"
242
- },
243
- {
244
- "name": "row.year",
245
- "type": "number"
246
- },
247
- {
248
- "name": "row.vehicleType",
249
- "type": "string"
250
- },
251
- {
252
- "name": "row.odometer",
253
- "type": "number"
254
- },
255
- {
256
- "name": "row.fuelType",
257
- "type": "string"
258
- },
259
- {
260
- "name": "row.status",
261
- "type": "string"
262
- },
263
- {
264
- "name": "row.assignedDriverId",
265
- "type": "string"
266
- },
267
- {
268
- "name": "row.pendingId",
269
- "type": "string"
270
171
  }
271
172
  ]
272
173
  },
273
174
  {
274
- "event": "ASSIGN_DRIVER",
175
+ "event": "MARK_MAINTENANCE",
275
176
  "payloadSchema": [
276
177
  {
277
178
  "name": "id",
278
179
  "type": "string",
279
180
  "required": true
280
- },
281
- {
282
- "name": "row.id",
283
- "type": "string",
284
- "required": true
285
- },
286
- {
287
- "name": "row.vin",
288
- "type": "string",
289
- "required": true
290
- },
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "event": "RETIRE",
186
+ "payloadSchema": [
291
187
  {
292
- "name": "row.licensePlate",
188
+ "name": "id",
293
189
  "type": "string",
294
190
  "required": true
295
- },
296
- {
297
- "name": "row.make",
298
- "type": "string"
299
- },
300
- {
301
- "name": "row.model",
302
- "type": "string"
303
- },
304
- {
305
- "name": "row.year",
306
- "type": "number"
307
- },
308
- {
309
- "name": "row.vehicleType",
310
- "type": "string"
311
- },
312
- {
313
- "name": "row.odometer",
314
- "type": "number"
315
- },
316
- {
317
- "name": "row.fuelType",
318
- "type": "string"
319
- },
320
- {
321
- "name": "row.status",
322
- "type": "string"
323
- },
324
- {
325
- "name": "row.assignedDriverId",
326
- "type": "string"
327
- },
328
- {
329
- "name": "row.pendingId",
330
- "type": "string"
331
191
  }
332
192
  ]
333
193
  },
@@ -365,7 +225,10 @@
365
225
  "isInitial": true
366
226
  },
367
227
  {
368
- "name": "viewing"
228
+ "name": "browsing"
229
+ },
230
+ {
231
+ "name": "viewing_single"
369
232
  },
370
233
  {
371
234
  "name": "error"
@@ -405,42 +268,17 @@
405
268
  ]
406
269
  },
407
270
  {
408
- "key": "REFRESH",
409
- "name": "Refresh",
410
- "payloadSchema": [
411
- {
412
- "name": "source",
413
- "type": "string"
414
- }
415
- ]
416
- },
417
- {
418
- "key": "SEARCH",
419
- "name": "Search",
420
- "payloadSchema": [
421
- {
422
- "name": "query",
423
- "type": "string"
424
- }
425
- ]
426
- },
427
- {
428
- "key": "FILTER_STATUS",
429
- "name": "Filter Status",
271
+ "key": "OPEN_VEHICLE",
272
+ "name": "Open Vehicle",
430
273
  "payloadSchema": [
431
274
  {
432
- "name": "status",
433
- "type": "string"
434
- }
435
- ]
436
- },
437
- {
438
- "key": "FILTER_TYPE",
439
- "name": "Filter Type",
440
- "payloadSchema": [
275
+ "name": "id",
276
+ "type": "string",
277
+ "required": true
278
+ },
441
279
  {
442
- "name": "vehicleType",
443
- "type": "string"
280
+ "name": "row",
281
+ "type": "Vehicle"
444
282
  }
445
283
  ]
446
284
  },
@@ -456,15 +294,8 @@
456
294
  ]
457
295
  },
458
296
  {
459
- "key": "MARK_MAINTENANCE",
460
- "name": "Mark Maintenance",
461
- "payloadSchema": [
462
- {
463
- "name": "id",
464
- "type": "string",
465
- "required": true
466
- }
467
- ]
297
+ "key": "CLOSE_VEHICLE",
298
+ "name": "Close Vehicle"
468
299
  },
469
300
  {
470
301
  "key": "ASSIGN_DRIVER",
@@ -478,40 +309,8 @@
478
309
  ]
479
310
  },
480
311
  {
481
- "key": "CREATE",
482
- "name": "Create",
483
- "payloadSchema": [
484
- {
485
- "name": "source",
486
- "type": "string"
487
- }
488
- ]
489
- },
490
- {
491
- "key": "VIEW",
492
- "name": "View",
493
- "payloadSchema": [
494
- {
495
- "name": "id",
496
- "type": "string",
497
- "required": true
498
- }
499
- ]
500
- },
501
- {
502
- "key": "EDIT",
503
- "name": "Edit",
504
- "payloadSchema": [
505
- {
506
- "name": "id",
507
- "type": "string",
508
- "required": true
509
- }
510
- ]
511
- },
512
- {
513
- "key": "REQUEST_DELETE",
514
- "name": "Request Delete",
312
+ "key": "MARK_MAINTENANCE",
313
+ "name": "Mark Maintenance",
515
314
  "payloadSchema": [
516
315
  {
517
316
  "name": "id",
@@ -541,29 +340,29 @@
541
340
  "render-ui",
542
341
  "main",
543
342
  {
544
- "className": "py-12",
545
- "align": "center",
546
343
  "children": [
547
344
  {
548
345
  "type": "spinner"
549
346
  },
550
347
  {
551
348
  "variant": "caption",
552
- "content": "Loading vehicles…",
553
349
  "color": "muted",
350
+ "content": "Loading vehicles…",
554
351
  "type": "typography"
555
352
  }
556
353
  ],
557
354
  "type": "stack",
558
355
  "gap": "md",
559
- "direction": "vertical"
356
+ "align": "center",
357
+ "direction": "vertical",
358
+ "className": "py-12"
560
359
  }
561
360
  ]
562
361
  ]
563
362
  },
564
363
  {
565
364
  "from": "loading",
566
- "to": "viewing",
365
+ "to": "browsing",
567
366
  "event": "VehicleLoaded",
568
367
  "effects": [
569
368
  [
@@ -571,175 +370,85 @@
571
370
  "main",
572
371
  {
573
372
  "type": "stack",
574
- "direction": "vertical",
575
373
  "children": [
576
374
  {
577
- "type": "breadcrumb",
578
- "items": [
579
- {
580
- "href": "/",
581
- "label": "Fleet"
582
- },
375
+ "children": [
583
376
  {
584
- "label": "Region"
377
+ "type": "icon",
378
+ "name": "truck"
585
379
  },
586
380
  {
587
- "label": "Vehicles"
381
+ "content": "@config.title",
382
+ "variant": "h3",
383
+ "type": "typography"
588
384
  }
589
- ]
385
+ ],
386
+ "align": "center",
387
+ "type": "stack",
388
+ "direction": "horizontal",
389
+ "gap": "sm"
590
390
  },
591
391
  {
592
- "orientation": "horizontal",
593
- "type": "navigation",
594
- "items": [
392
+ "type": "simple-grid",
393
+ "children": [
394
+ {
395
+ "type": "stat-display",
396
+ "value": "@payload.data.length",
397
+ "label": "Total vehicles",
398
+ "icon": "truck"
399
+ },
595
400
  {
596
- "label": "Vehicles",
597
- "id": "vehicles",
598
- "isActive": true,
599
- "href": "/vehicles"
401
+ "value": "18",
402
+ "type": "stat-display",
403
+ "label": "Active",
404
+ "icon": "check-circle"
600
405
  },
601
406
  {
602
- "href": "/drivers",
603
- "id": "drivers",
604
- "label": "Drivers"
407
+ "label": "In maintenance",
408
+ "value": "3",
409
+ "icon": "wrench",
410
+ "type": "stat-display"
605
411
  },
606
412
  {
607
- "id": "events",
608
- "label": "Events",
609
- "href": "/telematics-events"
413
+ "icon": "gauge",
414
+ "value": "62,401 mi",
415
+ "label": "Avg odometer",
416
+ "type": "stat-display"
610
417
  }
611
- ]
612
- },
613
- {
614
- "type": "stack",
615
- "direction": "horizontal",
616
- "children": [
617
- {
618
- "type": "icon",
619
- "name": "truck"
620
- },
621
- {
622
- "content": "@config.title",
623
- "variant": "h3",
624
- "type": "typography"
625
- },
626
- {
627
- "type": "button",
628
- "label": "New Vehicle",
629
- "action": "CREATE",
630
- "variant": "primary"
631
- }
632
- ],
633
- "gap": "sm",
634
- "align": "center"
635
- },
636
- {
637
- "type": "divider"
418
+ ],
419
+ "cols": 4.0
638
420
  },
639
421
  {
422
+ "height": "240px",
640
423
  "markers": [],
641
424
  "zoom": 10.0,
642
- "type": "map-view",
643
- "height": "240px"
425
+ "type": "map-view"
644
426
  },
645
427
  {
646
- "children": [
647
- {
648
- "type": "mini-map",
649
- "tiles": [],
650
- "units": [],
651
- "mapHeight": 1000.0,
652
- "width": 120.0,
653
- "mapWidth": 1000.0,
654
- "height": 80.0
655
- },
656
- {
657
- "direction": "horizontal",
658
- "children": [
659
- {
660
- "label": "Depot",
661
- "type": "waypoint-marker",
662
- "size": "md",
663
- "active": true
664
- },
665
- {
666
- "type": "waypoint-marker",
667
- "size": "sm",
668
- "label": "Stop 1"
669
- },
670
- {
671
- "label": "Stop 2",
672
- "size": "sm",
673
- "type": "waypoint-marker"
674
- },
675
- {
676
- "completed": true,
677
- "type": "waypoint-marker",
678
- "size": "md",
679
- "label": "Destination"
680
- }
681
- ],
682
- "align": "center",
683
- "type": "stack",
684
- "gap": "sm"
685
- }
686
- ],
687
- "align": "center",
688
- "gap": "md",
689
- "direction": "horizontal",
690
- "type": "stack"
691
- },
692
- {
693
- "connectionDensity": 0.5,
694
- "nodes": 6.0,
695
- "radius": 40.0,
696
- "type": "svg-mesh",
697
- "color": "primary",
698
- "cx": 100.0,
699
- "cy": 60.0
428
+ "type": "divider"
700
429
  },
701
430
  {
702
431
  "type": "data-grid",
703
- "cols": 1.0,
704
432
  "entity": "@payload.data",
433
+ "cols": 1.0,
705
434
  "itemActions": [
706
435
  {
707
- "label": "View",
708
- "variant": "secondary",
709
- "event": "VIEW"
710
- },
711
- {
712
- "variant": "secondary",
713
- "label": "Edit",
714
- "event": "EDIT"
715
- },
716
- {
717
- "event": "ASSIGN_DRIVER",
436
+ "event": "OPEN_VEHICLE",
718
437
  "variant": "primary",
719
- "label": "Assign Driver"
720
- },
721
- {
722
- "label": "Maintenance",
723
- "event": "MARK_MAINTENANCE",
724
- "variant": "secondary"
438
+ "icon": "arrow-right",
439
+ "label": "Open"
725
440
  },
726
441
  {
727
- "variant": "ghost",
728
442
  "label": "Retire",
729
- "event": "RETIRE"
730
- },
731
- {
732
- "variant": "danger",
733
- "label": "Delete",
734
- "event": "REQUEST_DELETE"
443
+ "event": "RETIRE",
444
+ "variant": "danger"
735
445
  }
736
446
  ],
737
- "gap": "sm",
738
447
  "fields": [
739
448
  {
449
+ "name": "licensePlate",
740
450
  "label": "Plate",
741
- "variant": "caption",
742
- "name": "licensePlate"
451
+ "variant": "caption"
743
452
  },
744
453
  {
745
454
  "name": "make",
@@ -752,60 +461,31 @@
752
461
  "variant": "caption"
753
462
  },
754
463
  {
755
- "variant": "caption",
464
+ "label": "Year",
756
465
  "name": "year",
757
- "label": "Year"
466
+ "variant": "caption"
758
467
  },
759
468
  {
760
- "label": "Type",
761
469
  "variant": "badge",
762
- "name": "vehicleType"
470
+ "name": "vehicleType",
471
+ "label": "Type"
763
472
  },
764
473
  {
765
- "label": "Odometer",
474
+ "name": "odometer",
766
475
  "variant": "caption",
767
- "name": "odometer"
476
+ "label": "Odometer"
768
477
  },
769
478
  {
770
- "variant": "badge",
771
479
  "label": "Status",
480
+ "variant": "badge",
772
481
  "name": "status"
773
- },
774
- {
775
- "name": "assignedDriverId",
776
- "variant": "caption",
777
- "label": "Driver"
778
- }
779
- ]
780
- },
781
- {
782
- "type": "drawer",
783
- "title": "Vehicle Detail",
784
- "width": "md",
785
- "position": "right",
786
- "children": [
787
- {
788
- "gap": "sm",
789
- "type": "stack",
790
- "children": [
791
- {
792
- "type": "typography",
793
- "content": "Selected vehicle",
794
- "variant": "caption"
795
- },
796
- {
797
- "content": "View detail",
798
- "type": "typography",
799
- "variant": "body"
800
- }
801
- ],
802
- "direction": "vertical"
803
482
  }
804
483
  ],
805
- "isOpen": false
484
+ "gap": "sm"
806
485
  }
807
486
  ],
808
- "gap": "md"
487
+ "gap": "md",
488
+ "direction": "vertical"
809
489
  }
810
490
  ]
811
491
  ]
@@ -819,64 +499,268 @@
819
499
  "render-ui",
820
500
  "main",
821
501
  {
822
- "type": "alert",
823
502
  "variant": "error",
503
+ "type": "alert",
824
504
  "message": "@payload.error"
825
505
  }
826
506
  ]
827
507
  ]
828
508
  },
829
509
  {
830
- "from": "viewing",
831
- "to": "loading",
832
- "event": "REFRESH",
510
+ "from": "browsing",
511
+ "to": "viewing_single",
512
+ "event": "OPEN_VEHICLE",
833
513
  "effects": [
834
514
  [
835
- "fetch",
836
- "Vehicle",
837
- {
838
- "emit": {
839
- "failure": "VehicleLoadFailed",
840
- "success": "VehicleLoaded"
841
- }
842
- }
515
+ "set",
516
+ "@entity.id",
517
+ "@payload.row.id"
518
+ ],
519
+ [
520
+ "set",
521
+ "@entity.vin",
522
+ "@payload.row.vin"
523
+ ],
524
+ [
525
+ "set",
526
+ "@entity.licensePlate",
527
+ "@payload.row.licensePlate"
528
+ ],
529
+ [
530
+ "set",
531
+ "@entity.make",
532
+ "@payload.row.make"
533
+ ],
534
+ [
535
+ "set",
536
+ "@entity.model",
537
+ "@payload.row.model"
538
+ ],
539
+ [
540
+ "set",
541
+ "@entity.year",
542
+ "@payload.row.year"
543
+ ],
544
+ [
545
+ "set",
546
+ "@entity.vehicleType",
547
+ "@payload.row.vehicleType"
548
+ ],
549
+ [
550
+ "set",
551
+ "@entity.odometer",
552
+ "@payload.row.odometer"
553
+ ],
554
+ [
555
+ "set",
556
+ "@entity.fuelType",
557
+ "@payload.row.fuelType"
558
+ ],
559
+ [
560
+ "set",
561
+ "@entity.status",
562
+ "@payload.row.status"
563
+ ],
564
+ [
565
+ "set",
566
+ "@entity.assignedDriverId",
567
+ "@payload.row.assignedDriverId"
843
568
  ],
844
569
  [
845
570
  "render-ui",
846
571
  "main",
847
572
  {
848
- "className": "py-12",
849
- "gap": "md",
850
- "type": "stack",
851
573
  "direction": "vertical",
852
- "align": "center",
574
+ "gap": "md",
853
575
  "children": [
854
576
  {
855
- "type": "spinner"
577
+ "type": "stack",
578
+ "direction": "horizontal",
579
+ "children": [
580
+ {
581
+ "type": "button",
582
+ "variant": "ghost",
583
+ "label": "Back",
584
+ "action": "CLOSE_VEHICLE"
585
+ },
586
+ {
587
+ "type": "icon",
588
+ "name": "truck"
589
+ },
590
+ {
591
+ "type": "typography",
592
+ "content": "@entity.licensePlate",
593
+ "variant": "h3"
594
+ },
595
+ {
596
+ "type": "badge",
597
+ "label": "@entity.status",
598
+ "variant": "default"
599
+ }
600
+ ],
601
+ "gap": "sm",
602
+ "align": "center"
856
603
  },
857
604
  {
858
- "variant": "caption",
859
- "color": "muted",
860
- "type": "typography",
861
- "content": "Refreshing vehicles…"
605
+ "type": "divider"
606
+ },
607
+ {
608
+ "children": [
609
+ {
610
+ "type": "stack",
611
+ "gap": "md",
612
+ "direction": "horizontal",
613
+ "children": [
614
+ {
615
+ "variant": "caption",
616
+ "type": "typography",
617
+ "color": "muted",
618
+ "content": "VIN"
619
+ },
620
+ {
621
+ "type": "typography",
622
+ "content": "@entity.vin",
623
+ "variant": "body"
624
+ }
625
+ ]
626
+ },
627
+ {
628
+ "type": "stack",
629
+ "children": [
630
+ {
631
+ "color": "muted",
632
+ "variant": "caption",
633
+ "type": "typography",
634
+ "content": "Make / Model"
635
+ },
636
+ {
637
+ "content": "@entity.make",
638
+ "variant": "body",
639
+ "type": "typography"
640
+ },
641
+ {
642
+ "content": "@entity.model",
643
+ "variant": "body",
644
+ "type": "typography"
645
+ }
646
+ ],
647
+ "direction": "horizontal",
648
+ "gap": "md"
649
+ },
650
+ {
651
+ "children": [
652
+ {
653
+ "variant": "caption",
654
+ "content": "Driver",
655
+ "color": "muted",
656
+ "type": "typography"
657
+ },
658
+ {
659
+ "variant": "body",
660
+ "content": "@entity.assignedDriverId",
661
+ "type": "typography"
662
+ }
663
+ ],
664
+ "gap": "md",
665
+ "type": "stack",
666
+ "direction": "horizontal"
667
+ }
668
+ ],
669
+ "gap": "sm",
670
+ "direction": "vertical",
671
+ "type": "stack"
672
+ },
673
+ {
674
+ "type": "divider"
675
+ },
676
+ {
677
+ "type": "simple-grid",
678
+ "cols": 4.0,
679
+ "children": [
680
+ {
681
+ "icon": "gauge",
682
+ "type": "stat-display",
683
+ "value": "@entity.odometer",
684
+ "label": "Odometer"
685
+ },
686
+ {
687
+ "icon": "calendar",
688
+ "label": "Year",
689
+ "value": "@entity.year",
690
+ "type": "stat-display"
691
+ },
692
+ {
693
+ "icon": "tag",
694
+ "type": "stat-display",
695
+ "value": "@entity.vehicleType",
696
+ "label": "Type"
697
+ },
698
+ {
699
+ "value": "@entity.fuelType",
700
+ "icon": "droplet",
701
+ "type": "stat-display",
702
+ "label": "Fuel"
703
+ }
704
+ ]
705
+ },
706
+ {
707
+ "align": "center",
708
+ "gap": "sm",
709
+ "type": "stack",
710
+ "direction": "horizontal",
711
+ "children": [
712
+ {
713
+ "variant": "primary",
714
+ "action": "ASSIGN_DRIVER",
715
+ "type": "button",
716
+ "label": "Assign Driver",
717
+ "actionPayload": {
718
+ "id": "@entity.id"
719
+ }
720
+ },
721
+ {
722
+ "label": "Mark Maintenance",
723
+ "action": "MARK_MAINTENANCE",
724
+ "actionPayload": {
725
+ "id": "@entity.id"
726
+ },
727
+ "type": "button",
728
+ "variant": "secondary"
729
+ },
730
+ {
731
+ "actionPayload": {
732
+ "id": "@entity.id"
733
+ },
734
+ "variant": "danger",
735
+ "type": "button",
736
+ "label": "Retire",
737
+ "action": "RETIRE"
738
+ }
739
+ ]
862
740
  }
863
- ]
741
+ ],
742
+ "type": "stack"
864
743
  }
865
744
  ]
866
745
  ]
867
746
  },
868
747
  {
869
- "from": "viewing",
748
+ "from": "browsing",
870
749
  "to": "loading",
871
- "event": "SEARCH",
750
+ "event": "RETIRE",
872
751
  "effects": [
752
+ [
753
+ "set",
754
+ "@entity.id",
755
+ "@payload.id"
756
+ ],
873
757
  [
874
758
  "fetch",
875
759
  "Vehicle",
876
760
  {
877
761
  "emit": {
878
- "failure": "VehicleLoadFailed",
879
- "success": "VehicleLoaded"
762
+ "success": "VehicleLoaded",
763
+ "failure": "VehicleLoadFailed"
880
764
  }
881
765
  }
882
766
  ],
@@ -884,38 +768,38 @@
884
768
  "render-ui",
885
769
  "main",
886
770
  {
887
- "type": "stack",
888
771
  "direction": "vertical",
889
772
  "align": "center",
773
+ "gap": "md",
774
+ "className": "py-12",
775
+ "type": "stack",
890
776
  "children": [
891
777
  {
892
778
  "type": "spinner"
893
779
  },
894
780
  {
895
- "type": "typography",
896
- "variant": "caption",
897
781
  "color": "muted",
898
- "content": "Searching vehicles…"
782
+ "content": "Retiring vehicle…",
783
+ "variant": "caption",
784
+ "type": "typography"
899
785
  }
900
- ],
901
- "className": "py-12",
902
- "gap": "md"
786
+ ]
903
787
  }
904
788
  ]
905
789
  ]
906
790
  },
907
791
  {
908
- "from": "viewing",
792
+ "from": "viewing_single",
909
793
  "to": "loading",
910
- "event": "FILTER_STATUS",
794
+ "event": "CLOSE_VEHICLE",
911
795
  "effects": [
912
796
  [
913
797
  "fetch",
914
798
  "Vehicle",
915
799
  {
916
800
  "emit": {
917
- "success": "VehicleLoaded",
918
- "failure": "VehicleLoadFailed"
801
+ "failure": "VehicleLoadFailed",
802
+ "success": "VehicleLoaded"
919
803
  }
920
804
  }
921
805
  ],
@@ -923,31 +807,36 @@
923
807
  "render-ui",
924
808
  "main",
925
809
  {
926
- "type": "stack",
927
810
  "direction": "vertical",
928
- "className": "py-12",
929
811
  "gap": "md",
812
+ "type": "stack",
813
+ "className": "py-12",
814
+ "align": "center",
930
815
  "children": [
931
816
  {
932
817
  "type": "spinner"
933
818
  },
934
819
  {
935
820
  "color": "muted",
936
- "content": "Filtering vehicles…",
937
- "variant": "caption",
938
- "type": "typography"
821
+ "type": "typography",
822
+ "content": "Loading vehicles…",
823
+ "variant": "caption"
939
824
  }
940
- ],
941
- "align": "center"
825
+ ]
942
826
  }
943
827
  ]
944
828
  ]
945
829
  },
946
830
  {
947
- "from": "viewing",
831
+ "from": "viewing_single",
948
832
  "to": "loading",
949
- "event": "FILTER_TYPE",
833
+ "event": "ASSIGN_DRIVER",
950
834
  "effects": [
835
+ [
836
+ "set",
837
+ "@entity.id",
838
+ "@payload.id"
839
+ ],
951
840
  [
952
841
  "fetch",
953
842
  "Vehicle",
@@ -967,45 +856,24 @@
967
856
  "type": "spinner"
968
857
  },
969
858
  {
859
+ "content": "Assigning driver…",
970
860
  "type": "typography",
971
861
  "color": "muted",
972
- "content": "Filtering vehicles…",
973
862
  "variant": "caption"
974
863
  }
975
864
  ],
865
+ "type": "stack",
976
866
  "gap": "md",
977
867
  "direction": "vertical",
978
- "className": "py-12",
979
868
  "align": "center",
980
- "type": "stack"
981
- }
982
- ]
983
- ]
984
- },
985
- {
986
- "from": "viewing",
987
- "to": "viewing",
988
- "event": "RETIRE",
989
- "effects": [
990
- [
991
- "set",
992
- "@entity.id",
993
- "@payload.id"
994
- ],
995
- [
996
- "render-ui",
997
- "main",
998
- {
999
- "type": "alert",
1000
- "message": "Vehicle retired",
1001
- "variant": "info"
869
+ "className": "py-12"
1002
870
  }
1003
871
  ]
1004
872
  ]
1005
873
  },
1006
874
  {
1007
- "from": "viewing",
1008
- "to": "viewing",
875
+ "from": "viewing_single",
876
+ "to": "loading",
1009
877
  "event": "MARK_MAINTENANCE",
1010
878
  "effects": [
1011
879
  [
@@ -1014,78 +882,43 @@
1014
882
  "@payload.id"
1015
883
  ],
1016
884
  [
1017
- "render-ui",
1018
- "main",
1019
- {
1020
- "variant": "warning",
1021
- "type": "alert",
1022
- "message": "Vehicle marked for maintenance"
1023
- }
1024
- ]
1025
- ]
1026
- },
1027
- {
1028
- "from": "viewing",
1029
- "to": "viewing",
1030
- "event": "ASSIGN_DRIVER",
1031
- "effects": [
1032
- [
1033
- "set",
1034
- "@entity.id",
1035
- "@payload.id"
1036
- ],
1037
- [
1038
- "render-ui",
1039
- "main",
1040
- {
1041
- "type": "alert",
1042
- "message": "Driver assigned",
1043
- "variant": "success"
1044
- }
1045
- ]
1046
- ]
1047
- },
1048
- {
1049
- "from": "viewing",
1050
- "to": "viewing",
1051
- "event": "CREATE",
1052
- "effects": [
1053
- [
1054
- "render-ui",
1055
- "main",
885
+ "fetch",
886
+ "Vehicle",
1056
887
  {
1057
- "variant": "info",
1058
- "message": "Creating new vehicle",
1059
- "type": "alert"
888
+ "emit": {
889
+ "failure": "VehicleLoadFailed",
890
+ "success": "VehicleLoaded"
891
+ }
1060
892
  }
1061
- ]
1062
- ]
1063
- },
1064
- {
1065
- "from": "viewing",
1066
- "to": "viewing",
1067
- "event": "VIEW",
1068
- "effects": [
1069
- [
1070
- "set",
1071
- "@entity.id",
1072
- "@payload.id"
1073
893
  ],
1074
894
  [
1075
895
  "render-ui",
1076
896
  "main",
1077
897
  {
1078
- "message": "Viewing vehicle",
1079
- "type": "alert",
1080
- "variant": "info"
898
+ "direction": "vertical",
899
+ "align": "center",
900
+ "type": "stack",
901
+ "className": "py-12",
902
+ "children": [
903
+ {
904
+ "type": "spinner"
905
+ },
906
+ {
907
+ "variant": "caption",
908
+ "type": "typography",
909
+ "content": "Updating vehicle…",
910
+ "color": "muted"
911
+ }
912
+ ],
913
+ "gap": "md"
1081
914
  }
1082
915
  ]
1083
916
  ]
1084
917
  },
1085
918
  {
1086
- "from": "viewing",
1087
- "to": "viewing",
1088
- "event": "EDIT",
919
+ "from": "viewing_single",
920
+ "to": "loading",
921
+ "event": "RETIRE",
1089
922
  "effects": [
1090
923
  [
1091
924
  "set",
@@ -1093,33 +926,35 @@
1093
926
  "@payload.id"
1094
927
  ],
1095
928
  [
1096
- "render-ui",
1097
- "main",
929
+ "fetch",
930
+ "Vehicle",
1098
931
  {
1099
- "variant": "info",
1100
- "message": "Editing vehicle",
1101
- "type": "alert"
932
+ "emit": {
933
+ "success": "VehicleLoaded",
934
+ "failure": "VehicleLoadFailed"
935
+ }
1102
936
  }
1103
- ]
1104
- ]
1105
- },
1106
- {
1107
- "from": "viewing",
1108
- "to": "viewing",
1109
- "event": "REQUEST_DELETE",
1110
- "effects": [
1111
- [
1112
- "set",
1113
- "@entity.id",
1114
- "@payload.id"
1115
937
  ],
1116
938
  [
1117
939
  "render-ui",
1118
940
  "main",
1119
941
  {
1120
- "type": "alert",
1121
- "message": "Delete requested",
1122
- "variant": "warning"
942
+ "className": "py-12",
943
+ "gap": "md",
944
+ "align": "center",
945
+ "children": [
946
+ {
947
+ "type": "spinner"
948
+ },
949
+ {
950
+ "variant": "caption",
951
+ "type": "typography",
952
+ "color": "muted",
953
+ "content": "Retiring vehicle…"
954
+ }
955
+ ],
956
+ "direction": "vertical",
957
+ "type": "stack"
1123
958
  }
1124
959
  ]
1125
960
  ]
@@ -1143,8 +978,8 @@
1143
978
  "render-ui",
1144
979
  "main",
1145
980
  {
1146
- "size": "sm",
1147
- "type": "spinner"
981
+ "type": "spinner",
982
+ "size": "sm"
1148
983
  }
1149
984
  ]
1150
985
  ]