@almadar/std 15.15.0 → 15.15.1

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 (273) hide show
  1. package/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  2. package/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  3. package/behaviors/registry/app/atoms/std-application.orb +300 -188
  4. package/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  5. package/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  6. package/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  7. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  8. package/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  9. package/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  10. package/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  11. package/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  12. package/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  13. package/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  14. package/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  15. package/behaviors/registry/app/atoms/std-donor.orb +191 -156
  16. package/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  17. package/behaviors/registry/app/atoms/std-driver.orb +440 -202
  18. package/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  19. package/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  20. package/behaviors/registry/app/atoms/std-event.orb +309 -178
  21. package/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  22. package/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  23. package/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  24. package/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  25. package/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  26. package/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  27. package/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  28. package/behaviors/registry/app/atoms/std-lease.orb +411 -178
  29. package/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  30. package/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  31. package/behaviors/registry/app/atoms/std-matter.orb +415 -189
  32. package/behaviors/registry/app/atoms/std-membership.orb +387 -167
  33. package/behaviors/registry/app/atoms/std-menu.orb +232 -175
  34. package/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  35. package/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  36. package/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  37. package/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  38. package/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  39. package/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  40. package/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  45. package/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  47. package/behaviors/registry/app/atoms/std-segment.orb +173 -139
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  49. package/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  50. package/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  54. package/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  57. package/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  58. package/behaviors/registry/app/atoms/std-trial.orb +401 -183
  59. package/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  60. package/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  63. package/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  64. package/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  65. package/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  66. package/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  67. package/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  68. package/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  69. package/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  70. package/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  71. package/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  72. package/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  73. package/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  74. package/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  75. package/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  76. package/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  77. package/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  78. package/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  79. package/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  80. package/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  81. package/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  82. package/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  83. package/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  84. package/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  85. package/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  86. package/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  87. package/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  88. package/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  89. package/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  90. package/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  91. package/dist/behaviors/behaviors-registry.json +2913 -156
  92. package/dist/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  93. package/dist/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  94. package/dist/behaviors/registry/app/atoms/std-application.orb +300 -188
  95. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  96. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  97. package/dist/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  98. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  99. package/dist/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  100. package/dist/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  101. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  102. package/dist/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  103. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  104. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  105. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  106. package/dist/behaviors/registry/app/atoms/std-donor.orb +191 -156
  107. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  108. package/dist/behaviors/registry/app/atoms/std-driver.orb +440 -202
  109. package/dist/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  110. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  111. package/dist/behaviors/registry/app/atoms/std-event.orb +309 -178
  112. package/dist/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  113. package/dist/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  114. package/dist/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  115. package/dist/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  116. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  117. package/dist/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  118. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  119. package/dist/behaviors/registry/app/atoms/std-lease.orb +411 -178
  120. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  121. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  122. package/dist/behaviors/registry/app/atoms/std-matter.orb +415 -189
  123. package/dist/behaviors/registry/app/atoms/std-membership.orb +387 -167
  124. package/dist/behaviors/registry/app/atoms/std-menu.orb +232 -175
  125. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  126. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  127. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  128. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  129. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  130. package/dist/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  131. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  132. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  133. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  134. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  135. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  136. package/dist/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  137. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  138. package/dist/behaviors/registry/app/atoms/std-segment.orb +173 -139
  139. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  140. package/dist/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  141. package/dist/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  142. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  143. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  144. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  145. package/dist/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  146. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  147. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  148. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  149. package/dist/behaviors/registry/app/atoms/std-trial.orb +401 -183
  150. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  151. package/dist/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  152. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  153. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  154. package/dist/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  155. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  156. package/dist/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  157. package/dist/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  158. package/dist/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  159. package/dist/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  160. package/dist/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  161. package/dist/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  162. package/dist/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  163. package/dist/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  164. package/dist/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  165. package/dist/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  166. package/dist/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  167. package/dist/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  168. package/dist/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  169. package/dist/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  170. package/dist/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  171. package/dist/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  172. package/dist/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  173. package/dist/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  174. package/dist/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  175. package/dist/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  176. package/dist/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  177. package/dist/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  178. package/dist/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  179. package/dist/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  180. package/dist/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  181. package/dist/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  182. package/dist/behaviors-registry.json +2913 -156
  183. package/dist/registry/app/atoms/std-ap-bill.orb +423 -171
  184. package/dist/registry/app/atoms/std-applicant.orb +207 -165
  185. package/dist/registry/app/atoms/std-application.orb +300 -188
  186. package/dist/registry/app/atoms/std-approval-request.orb +370 -215
  187. package/dist/registry/app/atoms/std-campaign-goal.orb +382 -167
  188. package/dist/registry/app/atoms/std-change-order.orb +458 -194
  189. package/dist/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  190. package/dist/registry/app/atoms/std-checkin.orb +215 -151
  191. package/dist/registry/app/atoms/std-checkout-terminal.orb +322 -133
  192. package/dist/registry/app/atoms/std-class-roster.orb +343 -170
  193. package/dist/registry/app/atoms/std-class-session.orb +321 -190
  194. package/dist/registry/app/atoms/std-court-deadline.orb +353 -182
  195. package/dist/registry/app/atoms/std-customer-account.orb +376 -157
  196. package/dist/registry/app/atoms/std-donation-receipt.orb +214 -143
  197. package/dist/registry/app/atoms/std-donor.orb +191 -156
  198. package/dist/registry/app/atoms/std-drip-sequence.orb +409 -170
  199. package/dist/registry/app/atoms/std-driver.orb +440 -202
  200. package/dist/registry/app/atoms/std-dunning.orb +431 -167
  201. package/dist/registry/app/atoms/std-email-broadcast.orb +386 -143
  202. package/dist/registry/app/atoms/std-event.orb +309 -178
  203. package/dist/registry/app/atoms/std-form-builder.orb +353 -220
  204. package/dist/registry/app/atoms/std-health-score.orb +218 -183
  205. package/dist/registry/app/atoms/std-help-article.orb +425 -162
  206. package/dist/registry/app/atoms/std-help-category.orb +409 -166
  207. package/dist/registry/app/atoms/std-interview-slot.orb +311 -138
  208. package/dist/registry/app/atoms/std-invoice.orb +349 -211
  209. package/dist/registry/app/atoms/std-kitchen-display.orb +308 -184
  210. package/dist/registry/app/atoms/std-lease.orb +411 -178
  211. package/dist/registry/app/atoms/std-ledger-entry.orb +266 -195
  212. package/dist/registry/app/atoms/std-maintenance-request.orb +396 -177
  213. package/dist/registry/app/atoms/std-matter.orb +415 -189
  214. package/dist/registry/app/atoms/std-membership.orb +387 -167
  215. package/dist/registry/app/atoms/std-menu.orb +232 -175
  216. package/dist/registry/app/atoms/std-modifier-group.orb +224 -167
  217. package/dist/registry/app/atoms/std-nps-survey.orb +390 -138
  218. package/dist/registry/app/atoms/std-offer-letter.orb +242 -133
  219. package/dist/registry/app/atoms/std-payout-ledger.orb +428 -176
  220. package/dist/registry/app/atoms/std-question-bank.orb +211 -145
  221. package/dist/registry/app/atoms/std-receipt.orb +248 -177
  222. package/dist/registry/app/atoms/std-recurring-charge.orb +421 -149
  223. package/dist/registry/app/atoms/std-renewal-risk.orb +382 -153
  224. package/dist/registry/app/atoms/std-rent-charge.orb +476 -176
  225. package/dist/registry/app/atoms/std-reorder-rule.orb +246 -176
  226. package/dist/registry/app/atoms/std-response-collector.orb +213 -150
  227. package/dist/registry/app/atoms/std-rfi.orb +365 -210
  228. package/dist/registry/app/atoms/std-route-optimize.orb +195 -146
  229. package/dist/registry/app/atoms/std-segment.orb +173 -139
  230. package/dist/registry/app/atoms/std-stock-level.orb +205 -135
  231. package/dist/registry/app/atoms/std-submittal.orb +323 -166
  232. package/dist/registry/app/atoms/std-table-map.orb +187 -63
  233. package/dist/registry/app/atoms/std-technician-dispatch.orb +290 -202
  234. package/dist/registry/app/atoms/std-telematics-event.orb +156 -128
  235. package/dist/registry/app/atoms/std-template-editor.orb +255 -189
  236. package/dist/registry/app/atoms/std-tenant.orb +375 -147
  237. package/dist/registry/app/atoms/std-ticket-tier.orb +463 -150
  238. package/dist/registry/app/atoms/std-time-entry.orb +259 -150
  239. package/dist/registry/app/atoms/std-timesheet.orb +292 -183
  240. package/dist/registry/app/atoms/std-trial.orb +401 -183
  241. package/dist/registry/app/atoms/std-vehicle.orb +447 -205
  242. package/dist/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  243. package/dist/registry/app/atoms/std-waitlist.orb +308 -177
  244. package/dist/registry/app/atoms/std-warehouse.orb +211 -141
  245. package/dist/registry/app/atoms/std-work-order.orb +374 -219
  246. package/dist/registry/app/organisms/std-subscription-billing.orb +282 -195
  247. package/dist/registry/core/atoms/std-approval-gate.orb +703 -0
  248. package/dist/registry/core/atoms/std-audit-capture.orb +150 -64
  249. package/dist/registry/core/atoms/std-data-erasure.orb +546 -0
  250. package/dist/registry/core/atoms/std-lifecycle.orb +343 -0
  251. package/dist/registry/core/atoms/std-notify-on-event.orb +132 -46
  252. package/dist/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  253. package/dist/registry/marketing/atoms/std-marketing-article.orb +96 -0
  254. package/dist/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  255. package/dist/registry/marketing/atoms/std-marketing-community.orb +134 -0
  256. package/dist/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  257. package/dist/registry/marketing/atoms/std-marketing-features.orb +193 -0
  258. package/dist/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  259. package/dist/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  260. package/dist/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  261. package/dist/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  262. package/dist/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  263. package/dist/registry/marketing/atoms/std-marketing-split.orb +135 -0
  264. package/dist/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  265. package/dist/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  266. package/dist/registry/marketing/atoms/std-marketing-team.orb +192 -0
  267. package/dist/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  268. package/dist/registry/marketing/molecules/std-about-page.orb +440 -0
  269. package/dist/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  270. package/dist/registry/marketing/molecules/std-landing-page.orb +521 -0
  271. package/dist/registry/marketing/molecules/std-pricing-page.orb +406 -0
  272. package/dist/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  273. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-vehicle",
3
- "version": "1.1.0",
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. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-vehicle — fleet vehicle primitive. Lists vehicles + map; detail offers Assign Driver / Maintenance / Retire. Listens for SET_STATUS so sibling std-lifecycle can drive automated transitions. Exposes Inventory/Logistics knobs (defaultWarehouse, serialTracking, …).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "VehicleOrbital",
@@ -216,6 +216,75 @@
216
216
  "type": "string"
217
217
  }
218
218
  ]
219
+ },
220
+ {
221
+ "event": "VehicleUpdated",
222
+ "payloadSchema": [
223
+ {
224
+ "name": "row.id",
225
+ "type": "string",
226
+ "required": true
227
+ },
228
+ {
229
+ "name": "row.vin",
230
+ "type": "string",
231
+ "required": true
232
+ },
233
+ {
234
+ "name": "row.licensePlate",
235
+ "type": "string",
236
+ "required": true
237
+ },
238
+ {
239
+ "name": "row.make",
240
+ "type": "string"
241
+ },
242
+ {
243
+ "name": "row.model",
244
+ "type": "string"
245
+ },
246
+ {
247
+ "name": "row.year",
248
+ "type": "number"
249
+ },
250
+ {
251
+ "name": "row.vehicleType",
252
+ "type": "string"
253
+ },
254
+ {
255
+ "name": "row.odometer",
256
+ "type": "number"
257
+ },
258
+ {
259
+ "name": "row.fuelType",
260
+ "type": "string"
261
+ },
262
+ {
263
+ "name": "row.status",
264
+ "type": "string"
265
+ },
266
+ {
267
+ "name": "row.assignedDriverId",
268
+ "type": "string"
269
+ },
270
+ {
271
+ "name": "row.pendingId",
272
+ "type": "string"
273
+ }
274
+ ]
275
+ },
276
+ {
277
+ "event": "VehicleUpdateFailed",
278
+ "payloadSchema": [
279
+ {
280
+ "name": "error",
281
+ "type": "string"
282
+ },
283
+ {
284
+ "name": "code",
285
+ "type": "string"
286
+ }
287
+ ]
219
288
  }
220
289
  ],
221
290
  "stateMachine": {
@@ -293,6 +362,46 @@
293
362
  }
294
363
  ]
295
364
  },
365
+ {
366
+ "key": "SET_STATUS",
367
+ "name": "Set Status",
368
+ "payloadSchema": [
369
+ {
370
+ "name": "entityId",
371
+ "type": "string",
372
+ "required": true
373
+ },
374
+ {
375
+ "name": "newStatus",
376
+ "type": "string",
377
+ "required": true
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "key": "VehicleUpdated",
383
+ "name": "Vehicle updated",
384
+ "payloadSchema": [
385
+ {
386
+ "name": "row",
387
+ "type": "Vehicle"
388
+ }
389
+ ]
390
+ },
391
+ {
392
+ "key": "VehicleUpdateFailed",
393
+ "name": "Vehicle update failed",
394
+ "payloadSchema": [
395
+ {
396
+ "name": "error",
397
+ "type": "string"
398
+ },
399
+ {
400
+ "name": "code",
401
+ "type": "string"
402
+ }
403
+ ]
404
+ },
296
405
  {
297
406
  "key": "CLOSE_VEHICLE",
298
407
  "name": "Close Vehicle"
@@ -331,8 +440,8 @@
331
440
  "Vehicle",
332
441
  {
333
442
  "emit": {
334
- "success": "VehicleLoaded",
335
- "failure": "VehicleLoadFailed"
443
+ "failure": "VehicleLoadFailed",
444
+ "success": "VehicleLoaded"
336
445
  }
337
446
  }
338
447
  ],
@@ -340,22 +449,22 @@
340
449
  "render-ui",
341
450
  "main",
342
451
  {
343
- "align": "center",
452
+ "gap": "md",
344
453
  "className": "py-12",
454
+ "type": "stack",
455
+ "direction": "vertical",
456
+ "align": "center",
345
457
  "children": [
346
458
  {
347
459
  "type": "spinner"
348
460
  },
349
461
  {
350
462
  "variant": "caption",
351
- "type": "typography",
463
+ "color": "muted",
352
464
  "content": "Loading vehicles…",
353
- "color": "muted"
465
+ "type": "typography"
354
466
  }
355
- ],
356
- "type": "stack",
357
- "direction": "vertical",
358
- "gap": "md"
467
+ ]
359
468
  }
360
469
  ]
361
470
  ]
@@ -369,73 +478,73 @@
369
478
  "render-ui",
370
479
  "main",
371
480
  {
481
+ "direction": "vertical",
372
482
  "gap": "md",
373
483
  "type": "stack",
374
- "direction": "vertical",
375
484
  "children": [
376
485
  {
377
- "align": "center",
378
- "gap": "sm",
379
486
  "direction": "horizontal",
380
- "type": "stack",
487
+ "gap": "sm",
381
488
  "children": [
382
489
  {
383
- "name": "truck",
384
- "type": "icon"
490
+ "type": "icon",
491
+ "name": "truck"
385
492
  },
386
493
  {
387
- "variant": "h3",
388
494
  "type": "typography",
389
- "content": "@config.title"
495
+ "content": "@config.title",
496
+ "variant": "h3"
390
497
  }
391
- ]
498
+ ],
499
+ "type": "stack",
500
+ "align": "center"
392
501
  },
393
502
  {
394
503
  "type": "simple-grid",
395
504
  "cols": 4.0,
396
505
  "children": [
397
506
  {
398
- "label": "Total vehicles",
399
- "value": "@payload.data.length",
400
507
  "type": "stat-display",
401
- "icon": "truck"
508
+ "icon": "truck",
509
+ "value": "@payload.data.length",
510
+ "label": "Total vehicles"
402
511
  },
403
512
  {
404
513
  "label": "Active",
514
+ "type": "stat-display",
405
515
  "icon": "check-circle",
406
- "value": "18",
407
- "type": "stat-display"
516
+ "value": "18"
408
517
  },
409
518
  {
410
- "label": "In maintenance",
411
- "icon": "wrench",
412
519
  "value": "3",
413
- "type": "stat-display"
520
+ "type": "stat-display",
521
+ "label": "In maintenance",
522
+ "icon": "wrench"
414
523
  },
415
524
  {
416
- "value": "62,401 mi",
417
- "icon": "gauge",
525
+ "type": "stat-display",
418
526
  "label": "Avg odometer",
419
- "type": "stat-display"
527
+ "icon": "gauge",
528
+ "value": "62,401 mi"
420
529
  }
421
530
  ]
422
531
  },
423
532
  {
424
- "markers": [],
425
- "type": "map-view",
533
+ "zoom": 10.0,
426
534
  "height": "240px",
427
- "zoom": 10.0
535
+ "markers": [],
536
+ "type": "map-view"
428
537
  },
429
538
  {
430
539
  "type": "divider"
431
540
  },
432
541
  {
433
542
  "type": "data-grid",
434
- "entity": "@payload.data",
435
543
  "cols": 1.0,
436
- "fields": "@config.fields",
544
+ "entity": "@payload.data",
437
545
  "gap": "sm",
438
- "itemActions": "@config.itemActions"
546
+ "itemActions": "@config.itemActions",
547
+ "fields": "@config.fields"
439
548
  }
440
549
  ]
441
550
  }
@@ -451,9 +560,9 @@
451
560
  "render-ui",
452
561
  "main",
453
562
  {
454
- "type": "alert",
455
563
  "variant": "error",
456
- "message": "@payload.error"
564
+ "message": "@payload.error",
565
+ "type": "alert"
457
566
  }
458
567
  ]
459
568
  ]
@@ -523,32 +632,31 @@
523
632
  "main",
524
633
  {
525
634
  "type": "stack",
526
- "gap": "md",
527
635
  "children": [
528
636
  {
529
637
  "gap": "sm",
530
- "align": "center",
531
638
  "direction": "horizontal",
639
+ "align": "center",
532
640
  "children": [
533
641
  {
534
- "variant": "ghost",
535
642
  "action": "CLOSE_VEHICLE",
536
- "label": "Back",
537
- "type": "button"
643
+ "type": "button",
644
+ "variant": "ghost",
645
+ "label": "Back"
538
646
  },
539
647
  {
540
- "name": "truck",
541
- "type": "icon"
648
+ "type": "icon",
649
+ "name": "truck"
542
650
  },
543
651
  {
544
- "content": "@entity.licensePlate",
545
652
  "variant": "h3",
546
- "type": "typography"
653
+ "type": "typography",
654
+ "content": "@entity.licensePlate"
547
655
  },
548
656
  {
657
+ "type": "badge",
549
658
  "label": "@entity.status",
550
- "variant": "default",
551
- "type": "badge"
659
+ "variant": "default"
552
660
  }
553
661
  ],
554
662
  "type": "stack"
@@ -557,141 +665,142 @@
557
665
  "type": "divider"
558
666
  },
559
667
  {
560
- "type": "stack",
668
+ "gap": "sm",
561
669
  "children": [
562
670
  {
671
+ "gap": "md",
672
+ "direction": "horizontal",
673
+ "type": "stack",
563
674
  "children": [
564
675
  {
565
- "variant": "caption",
566
676
  "type": "typography",
567
- "content": "VIN",
568
- "color": "muted"
677
+ "color": "muted",
678
+ "variant": "caption",
679
+ "content": "VIN"
569
680
  },
570
681
  {
571
- "variant": "body",
682
+ "content": "@entity.vin",
572
683
  "type": "typography",
573
- "content": "@entity.vin"
684
+ "variant": "body"
574
685
  }
575
- ],
576
- "type": "stack",
577
- "direction": "horizontal",
578
- "gap": "md"
686
+ ]
579
687
  },
580
688
  {
689
+ "type": "stack",
690
+ "direction": "horizontal",
691
+ "gap": "md",
581
692
  "children": [
582
693
  {
583
- "content": "Make / Model",
584
- "color": "muted",
585
694
  "variant": "caption",
586
- "type": "typography"
695
+ "color": "muted",
696
+ "type": "typography",
697
+ "content": "Make / Model"
587
698
  },
588
699
  {
700
+ "type": "typography",
589
701
  "content": "@entity.make",
590
- "variant": "body",
591
- "type": "typography"
702
+ "variant": "body"
592
703
  },
593
704
  {
594
- "variant": "body",
705
+ "content": "@entity.model",
595
706
  "type": "typography",
596
- "content": "@entity.model"
707
+ "variant": "body"
597
708
  }
598
- ],
599
- "direction": "horizontal",
600
- "gap": "md",
601
- "type": "stack"
709
+ ]
602
710
  },
603
711
  {
604
- "direction": "horizontal",
605
712
  "gap": "md",
606
- "type": "stack",
607
713
  "children": [
608
714
  {
609
- "content": "Driver",
610
- "type": "typography",
611
715
  "variant": "caption",
612
- "color": "muted"
716
+ "color": "muted",
717
+ "type": "typography",
718
+ "content": "Driver"
613
719
  },
614
720
  {
721
+ "type": "typography",
615
722
  "variant": "body",
616
- "content": "@entity.assignedDriverId",
617
- "type": "typography"
723
+ "content": "@entity.assignedDriverId"
618
724
  }
619
- ]
725
+ ],
726
+ "type": "stack",
727
+ "direction": "horizontal"
620
728
  }
621
729
  ],
622
- "gap": "sm",
623
- "direction": "vertical"
730
+ "direction": "vertical",
731
+ "type": "stack"
624
732
  },
625
733
  {
626
734
  "type": "divider"
627
735
  },
628
736
  {
629
- "type": "simple-grid",
630
- "cols": 4.0,
631
737
  "children": [
632
738
  {
633
- "label": "Odometer",
739
+ "type": "stat-display",
634
740
  "value": "@entity.odometer",
635
- "icon": "gauge",
636
- "type": "stat-display"
741
+ "label": "Odometer",
742
+ "icon": "gauge"
637
743
  },
638
744
  {
639
- "type": "stat-display",
745
+ "value": "@entity.year",
640
746
  "label": "Year",
641
- "icon": "calendar",
642
- "value": "@entity.year"
747
+ "type": "stat-display",
748
+ "icon": "calendar"
643
749
  },
644
750
  {
645
- "value": "@entity.vehicleType",
646
751
  "type": "stat-display",
647
752
  "icon": "tag",
648
- "label": "Type"
753
+ "label": "Type",
754
+ "value": "@entity.vehicleType"
649
755
  },
650
756
  {
757
+ "value": "@entity.fuelType",
651
758
  "type": "stat-display",
652
759
  "icon": "droplet",
653
- "value": "@entity.fuelType",
654
760
  "label": "Fuel"
655
761
  }
656
- ]
762
+ ],
763
+ "type": "simple-grid",
764
+ "cols": 4.0
657
765
  },
658
766
  {
659
767
  "direction": "horizontal",
660
- "align": "center",
661
- "gap": "sm",
662
768
  "type": "stack",
769
+ "align": "center",
663
770
  "children": [
664
771
  {
665
772
  "variant": "primary",
666
773
  "label": "Assign Driver",
774
+ "type": "button",
667
775
  "action": "ASSIGN_DRIVER",
668
776
  "actionPayload": {
669
777
  "id": "@entity.id"
670
- },
671
- "type": "button"
778
+ }
672
779
  },
673
780
  {
674
- "action": "MARK_MAINTENANCE",
675
- "variant": "secondary",
676
- "type": "button",
781
+ "label": "Mark Maintenance",
677
782
  "actionPayload": {
678
783
  "id": "@entity.id"
679
784
  },
680
- "label": "Mark Maintenance"
785
+ "action": "MARK_MAINTENANCE",
786
+ "type": "button",
787
+ "variant": "secondary"
681
788
  },
682
789
  {
683
- "variant": "danger",
684
790
  "label": "Retire",
685
- "type": "button",
791
+ "variant": "danger",
686
792
  "actionPayload": {
687
793
  "id": "@entity.id"
688
794
  },
689
- "action": "RETIRE"
795
+ "action": "RETIRE",
796
+ "type": "button"
690
797
  }
691
- ]
798
+ ],
799
+ "gap": "sm"
692
800
  }
693
801
  ],
694
- "direction": "vertical"
802
+ "direction": "vertical",
803
+ "gap": "md"
695
804
  }
696
805
  ]
697
806
  ]
@@ -720,22 +829,106 @@
720
829
  "render-ui",
721
830
  "main",
722
831
  {
832
+ "direction": "vertical",
723
833
  "type": "stack",
834
+ "gap": "md",
724
835
  "align": "center",
725
836
  "className": "py-12",
726
- "direction": "vertical",
727
837
  "children": [
728
838
  {
729
839
  "type": "spinner"
730
840
  },
731
841
  {
842
+ "variant": "caption",
732
843
  "color": "muted",
733
- "content": "Retiring vehicle…",
734
844
  "type": "typography",
735
- "variant": "caption"
845
+ "content": "Retiring vehicle…"
736
846
  }
737
- ],
738
- "gap": "md"
847
+ ]
848
+ }
849
+ ]
850
+ ]
851
+ },
852
+ {
853
+ "from": "browsing",
854
+ "to": "loading",
855
+ "event": "SET_STATUS",
856
+ "effects": [
857
+ [
858
+ "set",
859
+ "@entity.id",
860
+ "@payload.entityId"
861
+ ],
862
+ [
863
+ "set",
864
+ "@entity.status",
865
+ "@payload.newStatus"
866
+ ],
867
+ [
868
+ "persist",
869
+ "update",
870
+ "Vehicle",
871
+ "@entity",
872
+ {
873
+ "emit": {
874
+ "failure": "VehicleUpdateFailed",
875
+ "success": "VehicleUpdated"
876
+ }
877
+ }
878
+ ],
879
+ [
880
+ "render-ui",
881
+ "main",
882
+ {
883
+ "gap": "md",
884
+ "direction": "vertical",
885
+ "align": "center",
886
+ "type": "stack",
887
+ "className": "py-12",
888
+ "children": [
889
+ {
890
+ "type": "spinner"
891
+ },
892
+ {
893
+ "content": "Updating vehicle status…",
894
+ "variant": "caption",
895
+ "type": "typography",
896
+ "color": "muted"
897
+ }
898
+ ]
899
+ }
900
+ ]
901
+ ]
902
+ },
903
+ {
904
+ "from": "browsing",
905
+ "to": "loading",
906
+ "event": "VehicleUpdated",
907
+ "effects": [
908
+ [
909
+ "fetch",
910
+ "Vehicle",
911
+ {
912
+ "emit": {
913
+ "success": "VehicleLoaded",
914
+ "failure": "VehicleLoadFailed"
915
+ }
916
+ }
917
+ ]
918
+ ]
919
+ },
920
+ {
921
+ "from": "browsing",
922
+ "to": "browsing",
923
+ "event": "VehicleUpdateFailed",
924
+ "effects": [
925
+ [
926
+ "render-ui",
927
+ "main",
928
+ {
929
+ "message": "@payload.error",
930
+ "variant": "error",
931
+ "type": "alert"
739
932
  }
740
933
  ]
741
934
  ]
@@ -759,22 +952,22 @@
759
952
  "render-ui",
760
953
  "main",
761
954
  {
762
- "type": "stack",
955
+ "gap": "md",
763
956
  "align": "center",
764
957
  "className": "py-12",
958
+ "type": "stack",
765
959
  "direction": "vertical",
766
960
  "children": [
767
961
  {
768
962
  "type": "spinner"
769
963
  },
770
964
  {
771
- "color": "muted",
772
965
  "variant": "caption",
966
+ "color": "muted",
773
967
  "type": "typography",
774
968
  "content": "Loading vehicles…"
775
969
  }
776
- ],
777
- "gap": "md"
970
+ ]
778
971
  }
779
972
  ]
780
973
  ]
@@ -803,22 +996,22 @@
803
996
  "render-ui",
804
997
  "main",
805
998
  {
999
+ "gap": "md",
1000
+ "type": "stack",
1001
+ "direction": "vertical",
1002
+ "className": "py-12",
1003
+ "align": "center",
806
1004
  "children": [
807
1005
  {
808
1006
  "type": "spinner"
809
1007
  },
810
1008
  {
811
- "type": "typography",
812
- "variant": "caption",
813
1009
  "color": "muted",
814
- "content": "Assigning driver…"
1010
+ "variant": "caption",
1011
+ "content": "Assigning driver…",
1012
+ "type": "typography"
815
1013
  }
816
- ],
817
- "className": "py-12",
818
- "align": "center",
819
- "type": "stack",
820
- "direction": "vertical",
821
- "gap": "md"
1014
+ ]
822
1015
  }
823
1016
  ]
824
1017
  ]
@@ -838,8 +1031,8 @@
838
1031
  "Vehicle",
839
1032
  {
840
1033
  "emit": {
841
- "success": "VehicleLoaded",
842
- "failure": "VehicleLoadFailed"
1034
+ "failure": "VehicleLoadFailed",
1035
+ "success": "VehicleLoaded"
843
1036
  }
844
1037
  }
845
1038
  ],
@@ -847,22 +1040,22 @@
847
1040
  "render-ui",
848
1041
  "main",
849
1042
  {
1043
+ "direction": "vertical",
850
1044
  "className": "py-12",
1045
+ "align": "center",
851
1046
  "children": [
852
1047
  {
853
1048
  "type": "spinner"
854
1049
  },
855
1050
  {
856
- "variant": "caption",
857
- "type": "typography",
858
1051
  "content": "Updating vehicle…",
1052
+ "type": "typography",
1053
+ "variant": "caption",
859
1054
  "color": "muted"
860
1055
  }
861
1056
  ],
862
1057
  "type": "stack",
863
- "gap": "md",
864
- "direction": "vertical",
865
- "align": "center"
1058
+ "gap": "md"
866
1059
  }
867
1060
  ]
868
1061
  ]
@@ -891,22 +1084,22 @@
891
1084
  "render-ui",
892
1085
  "main",
893
1086
  {
1087
+ "className": "py-12",
894
1088
  "direction": "vertical",
895
1089
  "gap": "md",
896
- "align": "center",
897
1090
  "type": "stack",
898
- "className": "py-12",
899
1091
  "children": [
900
1092
  {
901
1093
  "type": "spinner"
902
1094
  },
903
1095
  {
904
- "content": "Retiring vehicle…",
905
1096
  "type": "typography",
1097
+ "color": "muted",
906
1098
  "variant": "caption",
907
- "color": "muted"
1099
+ "content": "Retiring vehicle…"
908
1100
  }
909
- ]
1101
+ ],
1102
+ "align": "center"
910
1103
  }
911
1104
  ]
912
1105
  ]
@@ -930,8 +1123,8 @@
930
1123
  "render-ui",
931
1124
  "main",
932
1125
  {
933
- "type": "spinner",
934
- "size": "sm"
1126
+ "size": "sm",
1127
+ "type": "spinner"
935
1128
  }
936
1129
  ]
937
1130
  ]
@@ -939,49 +1132,12 @@
939
1132
  ]
940
1133
  },
941
1134
  "config": {
942
- "itemActions": {
943
- "type": "[ItemAction]",
944
- "default": [
945
- {
946
- "event": "OPEN_VEHICLE",
947
- "variant": "primary",
948
- "icon": "arrow-right",
949
- "label": "Open"
950
- },
951
- {
952
- "variant": "danger",
953
- "event": "RETIRE",
954
- "label": "Retire"
955
- }
956
- ],
957
- "label": "Row actions",
958
- "description": "Buttons users can click on each vehicle row",
959
- "tier": "customization",
960
- "items": {
961
- "type": "object",
962
- "properties": {
963
- "variant": {
964
- "name": "variant",
965
- "type": "string",
966
- "required": false
967
- },
968
- "label": {
969
- "name": "label",
970
- "type": "string",
971
- "required": true
972
- },
973
- "event": {
974
- "name": "event",
975
- "type": "string",
976
- "required": true
977
- },
978
- "icon": {
979
- "name": "icon",
980
- "type": "string",
981
- "required": false
982
- }
983
- }
984
- }
1135
+ "expiryTrackingEnabled": {
1136
+ "type": "boolean",
1137
+ "default": false,
1138
+ "label": "Expiry tracking",
1139
+ "description": "Track expiry dates on carried inventory.",
1140
+ "tier": "customization"
985
1141
  },
986
1142
  "title": {
987
1143
  "type": "string",
@@ -990,6 +1146,41 @@
990
1146
  "description": "Heading shown above the fleet vehicle list",
991
1147
  "tier": "customization"
992
1148
  },
1149
+ "hazmatEnabled": {
1150
+ "type": "boolean",
1151
+ "default": false,
1152
+ "label": "Hazmat capable",
1153
+ "description": "Vehicle is certified to carry hazardous materials.",
1154
+ "tier": "advanced"
1155
+ },
1156
+ "lotTrackingEnabled": {
1157
+ "type": "boolean",
1158
+ "default": false,
1159
+ "label": "Lot tracking",
1160
+ "description": "Track lot/batch numbers on carried inventory.",
1161
+ "tier": "customization"
1162
+ },
1163
+ "multiLocationEnabled": {
1164
+ "type": "boolean",
1165
+ "default": false,
1166
+ "label": "Multi-location",
1167
+ "description": "Allow the vehicle to operate across multiple depots.",
1168
+ "tier": "customization"
1169
+ },
1170
+ "defaultWarehouse": {
1171
+ "type": "string",
1172
+ "default": "",
1173
+ "label": "Default depot / warehouse",
1174
+ "description": "Depot the vehicle is stationed at by default.",
1175
+ "tier": "customization"
1176
+ },
1177
+ "cycleCountFrequencyDays": {
1178
+ "type": "number",
1179
+ "default": 30.0,
1180
+ "label": "Cycle count cadence (days)",
1181
+ "description": "Days between scheduled inventory cycle counts. v1.2 declarative.",
1182
+ "tier": "advanced"
1183
+ },
993
1184
  "fields": {
994
1185
  "type": "[FieldSpec]",
995
1186
  "default": [
@@ -999,14 +1190,14 @@
999
1190
  "variant": "caption"
1000
1191
  },
1001
1192
  {
1193
+ "variant": "caption",
1002
1194
  "name": "make",
1003
- "label": "Make",
1004
- "variant": "caption"
1195
+ "label": "Make"
1005
1196
  },
1006
1197
  {
1007
1198
  "name": "model",
1008
- "variant": "caption",
1009
- "label": "Model"
1199
+ "label": "Model",
1200
+ "variant": "caption"
1010
1201
  },
1011
1202
  {
1012
1203
  "name": "year",
@@ -1014,19 +1205,19 @@
1014
1205
  "variant": "caption"
1015
1206
  },
1016
1207
  {
1208
+ "name": "vehicleType",
1017
1209
  "label": "Type",
1018
- "variant": "badge",
1019
- "name": "vehicleType"
1210
+ "variant": "badge"
1020
1211
  },
1021
1212
  {
1022
1213
  "variant": "caption",
1023
- "label": "Odometer",
1024
- "name": "odometer"
1214
+ "name": "odometer",
1215
+ "label": "Odometer"
1025
1216
  },
1026
1217
  {
1027
- "variant": "badge",
1218
+ "label": "Status",
1028
1219
  "name": "status",
1029
- "label": "Status"
1220
+ "variant": "badge"
1030
1221
  }
1031
1222
  ],
1032
1223
  "label": "Columns to show",
@@ -1035,28 +1226,23 @@
1035
1226
  "items": {
1036
1227
  "type": "object",
1037
1228
  "properties": {
1038
- "format": {
1039
- "name": "format",
1229
+ "header": {
1230
+ "name": "header",
1040
1231
  "type": "string",
1041
1232
  "required": false
1042
1233
  },
1043
- "name": {
1044
- "name": "name",
1045
- "type": "string",
1046
- "required": true
1047
- },
1048
- "icon": {
1049
- "name": "icon",
1234
+ "variant": {
1235
+ "name": "variant",
1050
1236
  "type": "string",
1051
1237
  "required": false
1052
1238
  },
1053
- "variant": {
1054
- "name": "variant",
1239
+ "format": {
1240
+ "name": "format",
1055
1241
  "type": "string",
1056
1242
  "required": false
1057
1243
  },
1058
- "header": {
1059
- "name": "header",
1244
+ "icon": {
1245
+ "name": "icon",
1060
1246
  "type": "string",
1061
1247
  "required": false
1062
1248
  },
@@ -1069,6 +1255,62 @@
1069
1255
  "name": "label",
1070
1256
  "type": "string",
1071
1257
  "required": false
1258
+ },
1259
+ "name": {
1260
+ "name": "name",
1261
+ "type": "string",
1262
+ "required": true
1263
+ }
1264
+ }
1265
+ }
1266
+ },
1267
+ "serialTrackingEnabled": {
1268
+ "type": "boolean",
1269
+ "default": false,
1270
+ "label": "Serial tracking",
1271
+ "description": "Track serial numbers of cargo handled by this vehicle. v1.2 declarative.",
1272
+ "tier": "customization"
1273
+ },
1274
+ "itemActions": {
1275
+ "type": "[ItemAction]",
1276
+ "default": [
1277
+ {
1278
+ "icon": "arrow-right",
1279
+ "event": "OPEN_VEHICLE",
1280
+ "label": "Open",
1281
+ "variant": "primary"
1282
+ },
1283
+ {
1284
+ "label": "Retire",
1285
+ "event": "RETIRE",
1286
+ "variant": "danger"
1287
+ }
1288
+ ],
1289
+ "label": "Row actions",
1290
+ "description": "Buttons users can click on each vehicle row",
1291
+ "tier": "customization",
1292
+ "items": {
1293
+ "type": "object",
1294
+ "properties": {
1295
+ "label": {
1296
+ "name": "label",
1297
+ "type": "string",
1298
+ "required": true
1299
+ },
1300
+ "event": {
1301
+ "name": "event",
1302
+ "type": "string",
1303
+ "required": true
1304
+ },
1305
+ "variant": {
1306
+ "name": "variant",
1307
+ "type": "string",
1308
+ "required": false
1309
+ },
1310
+ "icon": {
1311
+ "name": "icon",
1312
+ "type": "string",
1313
+ "required": false
1072
1314
  }
1073
1315
  }
1074
1316
  }
@@ -1090,4 +1332,4 @@
1090
1332
  ]
1091
1333
  }
1092
1334
  ]
1093
- }
1335
+ }