@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-checkout-terminal",
3
- "version": "1.1.0",
4
- "description": "std-checkout-terminal — retail POS checkout terminal sessions. Lists open sessions in `browsing`; opens a read-only session detail view (terminal, cashier, status, totals, payment method) in `viewing_single`. Tender / Void / Open are the only interactions; post-action transitions re-fetch the list. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-checkout-terminal — POS checkout sessions. Listens for SET_STATUS so std-lifecycle can auto-void abandoned. Exposes Scheduling + Restaurant/POS knobs (bookingHours, serviceCharge, tipPresets, ).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "CheckoutSessionOrbital",
@@ -267,6 +267,22 @@
267
267
  }
268
268
  ]
269
269
  },
270
+ {
271
+ "key": "SET_STATUS",
272
+ "name": "Set Status",
273
+ "payloadSchema": [
274
+ {
275
+ "name": "entityId",
276
+ "type": "string",
277
+ "required": true
278
+ },
279
+ {
280
+ "name": "newStatus",
281
+ "type": "string",
282
+ "required": true
283
+ }
284
+ ]
285
+ },
270
286
  {
271
287
  "key": "CLOSE_TERMINAL",
272
288
  "name": "Close Terminal"
@@ -294,8 +310,8 @@
294
310
  "CheckoutSession",
295
311
  {
296
312
  "emit": {
297
- "success": "CheckoutSessionLoaded",
298
- "failure": "CheckoutSessionLoadFailed"
313
+ "failure": "CheckoutSessionLoadFailed",
314
+ "success": "CheckoutSessionLoaded"
299
315
  }
300
316
  }
301
317
  ],
@@ -303,7 +319,7 @@
303
319
  "render-ui",
304
320
  "main",
305
321
  {
306
- "type": "stack",
322
+ "className": "py-12",
307
323
  "children": [
308
324
  {
309
325
  "type": "spinner",
@@ -311,15 +327,15 @@
311
327
  },
312
328
  {
313
329
  "type": "typography",
314
- "variant": "caption",
315
330
  "content": "Loading terminals…",
316
- "color": "muted"
331
+ "color": "muted",
332
+ "variant": "caption"
317
333
  }
318
334
  ],
335
+ "type": "stack",
319
336
  "gap": "md",
320
- "direction": "vertical",
321
337
  "align": "center",
322
- "className": "py-12"
338
+ "direction": "vertical"
323
339
  }
324
340
  ]
325
341
  ]
@@ -333,13 +349,10 @@
333
349
  "render-ui",
334
350
  "main",
335
351
  {
336
- "type": "stack",
337
- "gap": "md",
338
352
  "children": [
339
353
  {
340
- "gap": "sm",
341
354
  "type": "stack",
342
- "direction": "horizontal",
355
+ "gap": "sm",
343
356
  "align": "center",
344
357
  "children": [
345
358
  {
@@ -348,24 +361,27 @@
348
361
  },
349
362
  {
350
363
  "variant": "h3",
351
- "content": "@config.title",
352
- "type": "typography"
364
+ "type": "typography",
365
+ "content": "@config.title"
353
366
  }
354
- ]
367
+ ],
368
+ "direction": "horizontal"
355
369
  },
356
370
  {
357
371
  "type": "divider"
358
372
  },
359
373
  {
360
- "type": "data-grid",
361
- "fields": "@config.fields",
362
- "cols": 1.0,
374
+ "gap": "sm",
363
375
  "itemActions": "@config.itemActions",
376
+ "type": "data-grid",
364
377
  "entity": "@payload.data",
365
- "gap": "sm"
378
+ "fields": "@config.fields",
379
+ "cols": 1.0
366
380
  }
367
381
  ],
368
- "direction": "vertical"
382
+ "direction": "vertical",
383
+ "gap": "md",
384
+ "type": "stack"
369
385
  }
370
386
  ]
371
387
  ]
@@ -379,8 +395,8 @@
379
395
  "render-ui",
380
396
  "main",
381
397
  {
382
- "type": "alert",
383
398
  "variant": "error",
399
+ "type": "alert",
384
400
  "message": "@payload.error"
385
401
  }
386
402
  ]
@@ -440,16 +456,15 @@
440
456
  "render-ui",
441
457
  "main",
442
458
  {
459
+ "gap": "md",
443
460
  "children": [
444
461
  {
445
- "type": "stack",
446
- "direction": "horizontal",
447
462
  "children": [
448
463
  {
449
- "action": "CLOSE_TERMINAL",
450
464
  "type": "button",
451
- "label": "Back",
452
- "variant": "ghost"
465
+ "action": "CLOSE_TERMINAL",
466
+ "variant": "ghost",
467
+ "label": "Back"
453
468
  },
454
469
  {
455
470
  "type": "typography",
@@ -457,30 +472,29 @@
457
472
  "variant": "h3"
458
473
  },
459
474
  {
460
- "type": "badge",
461
475
  "variant": "default",
462
- "label": "@entity.status"
476
+ "label": "@entity.status",
477
+ "type": "badge"
463
478
  }
464
479
  ],
465
- "align": "center",
466
- "gap": "sm"
480
+ "direction": "horizontal",
481
+ "type": "stack",
482
+ "gap": "sm",
483
+ "align": "center"
467
484
  },
468
485
  {
469
486
  "type": "divider"
470
487
  },
471
488
  {
472
- "type": "stack",
473
489
  "gap": "sm",
474
490
  "children": [
475
491
  {
476
- "type": "stack",
477
492
  "gap": "md",
478
- "direction": "horizontal",
479
493
  "children": [
480
494
  {
481
- "variant": "caption",
482
- "color": "muted",
483
495
  "type": "typography",
496
+ "color": "muted",
497
+ "variant": "caption",
484
498
  "content": "Terminal"
485
499
  },
486
500
  {
@@ -488,17 +502,18 @@
488
502
  "variant": "body",
489
503
  "content": "@entity.terminalId"
490
504
  }
491
- ]
505
+ ],
506
+ "type": "stack",
507
+ "direction": "horizontal"
492
508
  },
493
509
  {
494
510
  "type": "stack",
495
511
  "direction": "horizontal",
496
- "gap": "md",
497
512
  "children": [
498
513
  {
499
- "color": "muted",
500
514
  "type": "typography",
501
515
  "variant": "caption",
516
+ "color": "muted",
502
517
  "content": "Cashier"
503
518
  },
504
519
  {
@@ -506,45 +521,47 @@
506
521
  "type": "typography",
507
522
  "variant": "body"
508
523
  }
509
- ]
524
+ ],
525
+ "gap": "md"
510
526
  },
511
527
  {
528
+ "type": "stack",
512
529
  "gap": "md",
513
530
  "children": [
514
531
  {
532
+ "type": "typography",
515
533
  "variant": "caption",
516
534
  "color": "muted",
517
- "type": "typography",
518
535
  "content": "Opened"
519
536
  },
520
537
  {
521
- "variant": "body",
538
+ "content": "@entity.openedAt",
522
539
  "type": "typography",
523
- "content": "@entity.openedAt"
540
+ "variant": "body"
524
541
  }
525
542
  ],
526
- "type": "stack",
527
543
  "direction": "horizontal"
528
544
  },
529
545
  {
530
- "direction": "horizontal",
531
546
  "children": [
532
547
  {
533
- "color": "muted",
534
548
  "type": "typography",
535
549
  "content": "Payment method",
536
- "variant": "caption"
550
+ "variant": "caption",
551
+ "color": "muted"
537
552
  },
538
553
  {
539
- "type": "typography",
540
554
  "variant": "body",
541
- "content": "@entity.paymentMethod"
555
+ "content": "@entity.paymentMethod",
556
+ "type": "typography"
542
557
  }
543
558
  ],
544
559
  "gap": "md",
545
- "type": "stack"
560
+ "type": "stack",
561
+ "direction": "horizontal"
546
562
  }
547
563
  ],
564
+ "type": "stack",
548
565
  "direction": "vertical"
549
566
  },
550
567
  {
@@ -554,9 +571,9 @@
554
571
  "type": "resource-bar",
555
572
  "resources": [
556
573
  {
574
+ "icon": "wallet",
557
575
  "label": "Subtotal",
558
- "value": "@entity.subtotal",
559
- "icon": "wallet"
576
+ "value": "@entity.subtotal"
560
577
  },
561
578
  {
562
579
  "label": "Tax",
@@ -564,41 +581,40 @@
564
581
  "icon": "percent"
565
582
  },
566
583
  {
584
+ "icon": "credit-card",
567
585
  "label": "Total",
568
- "value": "@entity.total",
569
- "icon": "credit-card"
586
+ "value": "@entity.total"
570
587
  }
571
588
  ],
572
589
  "size": "md"
573
590
  },
574
591
  {
575
- "type": "stack",
576
- "align": "center",
577
- "gap": "sm",
578
592
  "direction": "horizontal",
579
593
  "children": [
580
594
  {
581
595
  "label": "Tender Payment",
582
- "variant": "primary",
583
- "action": "TENDER_PAYMENT",
584
- "type": "button",
585
596
  "actionPayload": {
586
597
  "id": "@entity.id"
587
- }
598
+ },
599
+ "type": "button",
600
+ "action": "TENDER_PAYMENT",
601
+ "variant": "primary"
588
602
  },
589
603
  {
590
- "type": "button",
591
- "variant": "danger",
592
604
  "actionPayload": {
593
605
  "id": "@entity.id"
594
606
  },
595
607
  "label": "Void Session",
596
- "action": "VOID_SESSION"
608
+ "action": "VOID_SESSION",
609
+ "type": "button",
610
+ "variant": "danger"
597
611
  }
598
- ]
612
+ ],
613
+ "type": "stack",
614
+ "align": "center",
615
+ "gap": "sm"
599
616
  }
600
617
  ],
601
- "gap": "md",
602
618
  "type": "stack",
603
619
  "direction": "vertical"
604
620
  }
@@ -620,8 +636,8 @@
620
636
  "CheckoutSession",
621
637
  {
622
638
  "emit": {
623
- "failure": "CheckoutSessionLoadFailed",
624
- "success": "CheckoutSessionLoaded"
639
+ "success": "CheckoutSessionLoaded",
640
+ "failure": "CheckoutSessionLoadFailed"
625
641
  }
626
642
  }
627
643
  ],
@@ -629,22 +645,74 @@
629
645
  "render-ui",
630
646
  "main",
631
647
  {
648
+ "type": "stack",
632
649
  "align": "center",
633
- "className": "py-12",
634
650
  "children": [
635
651
  {
636
- "type": "spinner",
637
- "size": "md"
652
+ "size": "md",
653
+ "type": "spinner"
638
654
  },
639
655
  {
656
+ "variant": "caption",
640
657
  "color": "muted",
641
658
  "content": "Voiding session…",
642
- "variant": "caption",
643
659
  "type": "typography"
644
660
  }
645
661
  ],
646
662
  "gap": "md",
663
+ "className": "py-12",
664
+ "direction": "vertical"
665
+ }
666
+ ]
667
+ ]
668
+ },
669
+ {
670
+ "from": "browsing",
671
+ "to": "loading",
672
+ "event": "SET_STATUS",
673
+ "effects": [
674
+ [
675
+ "set",
676
+ "@entity.id",
677
+ "@payload.entityId"
678
+ ],
679
+ [
680
+ "set",
681
+ "@entity.status",
682
+ "@payload.newStatus"
683
+ ],
684
+ [
685
+ "persist",
686
+ "update",
687
+ "CheckoutSession",
688
+ "@entity",
689
+ {
690
+ "emit": {
691
+ "success": "CheckoutSessionLoaded",
692
+ "failure": "CheckoutSessionLoadFailed"
693
+ }
694
+ }
695
+ ],
696
+ [
697
+ "render-ui",
698
+ "main",
699
+ {
647
700
  "type": "stack",
701
+ "className": "py-12",
702
+ "children": [
703
+ {
704
+ "size": "md",
705
+ "type": "spinner"
706
+ },
707
+ {
708
+ "variant": "caption",
709
+ "content": "Updating session status…",
710
+ "color": "muted",
711
+ "type": "typography"
712
+ }
713
+ ],
714
+ "align": "center",
715
+ "gap": "md",
648
716
  "direction": "vertical"
649
717
  }
650
718
  ]
@@ -669,23 +737,23 @@
669
737
  "render-ui",
670
738
  "main",
671
739
  {
672
- "className": "py-12",
740
+ "direction": "vertical",
673
741
  "children": [
674
742
  {
675
743
  "size": "md",
676
744
  "type": "spinner"
677
745
  },
678
746
  {
679
- "variant": "caption",
680
- "content": "Loading terminals…",
681
747
  "color": "muted",
748
+ "content": "Loading terminals…",
749
+ "variant": "caption",
682
750
  "type": "typography"
683
751
  }
684
752
  ],
685
753
  "align": "center",
686
- "direction": "vertical",
687
- "gap": "md",
688
- "type": "stack"
754
+ "className": "py-12",
755
+ "type": "stack",
756
+ "gap": "md"
689
757
  }
690
758
  ]
691
759
  ]
@@ -705,8 +773,8 @@
705
773
  "CheckoutSession",
706
774
  {
707
775
  "emit": {
708
- "success": "CheckoutSessionLoaded",
709
- "failure": "CheckoutSessionLoadFailed"
776
+ "failure": "CheckoutSessionLoadFailed",
777
+ "success": "CheckoutSessionLoaded"
710
778
  }
711
779
  }
712
780
  ],
@@ -714,23 +782,23 @@
714
782
  "render-ui",
715
783
  "main",
716
784
  {
785
+ "align": "center",
717
786
  "gap": "md",
787
+ "type": "stack",
788
+ "className": "py-12",
718
789
  "children": [
719
790
  {
720
791
  "type": "spinner",
721
792
  "size": "md"
722
793
  },
723
794
  {
724
- "color": "muted",
795
+ "variant": "caption",
725
796
  "type": "typography",
726
- "content": "Tendering payment…",
727
- "variant": "caption"
797
+ "color": "muted",
798
+ "content": "Tendering payment…"
728
799
  }
729
800
  ],
730
- "type": "stack",
731
- "direction": "vertical",
732
- "align": "center",
733
- "className": "py-12"
801
+ "direction": "vertical"
734
802
  }
735
803
  ]
736
804
  ]
@@ -750,8 +818,8 @@
750
818
  "CheckoutSession",
751
819
  {
752
820
  "emit": {
753
- "failure": "CheckoutSessionLoadFailed",
754
- "success": "CheckoutSessionLoaded"
821
+ "success": "CheckoutSessionLoaded",
822
+ "failure": "CheckoutSessionLoadFailed"
755
823
  }
756
824
  }
757
825
  ],
@@ -759,23 +827,23 @@
759
827
  "render-ui",
760
828
  "main",
761
829
  {
830
+ "type": "stack",
831
+ "direction": "vertical",
762
832
  "children": [
763
833
  {
764
834
  "type": "spinner",
765
835
  "size": "md"
766
836
  },
767
837
  {
768
- "content": "Voiding session…",
769
- "type": "typography",
770
838
  "color": "muted",
771
- "variant": "caption"
839
+ "type": "typography",
840
+ "variant": "caption",
841
+ "content": "Voiding session…"
772
842
  }
773
843
  ],
774
844
  "gap": "md",
775
- "align": "center",
776
845
  "className": "py-12",
777
- "direction": "vertical",
778
- "type": "stack"
846
+ "align": "center"
779
847
  }
780
848
  ]
781
849
  ]
@@ -790,8 +858,8 @@
790
858
  "CheckoutSession",
791
859
  {
792
860
  "emit": {
793
- "success": "CheckoutSessionLoaded",
794
- "failure": "CheckoutSessionLoadFailed"
861
+ "failure": "CheckoutSessionLoadFailed",
862
+ "success": "CheckoutSessionLoaded"
795
863
  }
796
864
  }
797
865
  ],
@@ -808,33 +876,71 @@
808
876
  ]
809
877
  },
810
878
  "config": {
879
+ "allergenWarningsEnabled": {
880
+ "type": "boolean",
881
+ "default": false,
882
+ "label": "Allergen warnings",
883
+ "description": "Surface allergen warnings on the cart and receipt.",
884
+ "tier": "customization"
885
+ },
886
+ "tableTurnoverTargetMinutes": {
887
+ "type": "number",
888
+ "default": 60.0,
889
+ "label": "Turnover target (min)",
890
+ "description": "Target minutes per session for FOH pacing. Drives turnover dashboards.",
891
+ "tier": "advanced"
892
+ },
893
+ "blackoutDates": {
894
+ "type": "[string]",
895
+ "default": [],
896
+ "label": "Blackout dates",
897
+ "description": "ISO dates blocked from opening (e.g. holidays, deep cleans).",
898
+ "tier": "customization",
899
+ "items": {
900
+ "type": "string"
901
+ }
902
+ },
903
+ "allowSplitChecks": {
904
+ "type": "boolean",
905
+ "default": false,
906
+ "label": "Allow split checks",
907
+ "description": "Permit a single session to split tender across multiple payers.",
908
+ "tier": "customization"
909
+ },
910
+ "rescheduleWindowHours": {
911
+ "type": "number",
912
+ "default": 1.0,
913
+ "label": "Reschedule window (hours)",
914
+ "description": "Hours during which a tendered payment can be reversed without manager override.",
915
+ "tier": "customization"
916
+ },
811
917
  "fields": {
812
918
  "type": "[FieldSpec]",
813
919
  "default": [
814
920
  {
815
- "label": "Terminal",
921
+ "variant": "caption",
816
922
  "name": "terminalId",
817
- "variant": "caption"
923
+ "label": "Terminal"
818
924
  },
819
925
  {
926
+ "variant": "caption",
820
927
  "label": "Cashier",
821
- "name": "cashierName",
822
- "variant": "caption"
928
+ "name": "cashierName"
823
929
  },
824
930
  {
825
931
  "name": "status",
826
- "label": "Status",
827
- "variant": "badge"
932
+ "variant": "badge",
933
+ "label": "Status"
828
934
  },
829
935
  {
830
936
  "variant": "caption",
831
- "label": "Total",
832
- "name": "total"
937
+ "name": "total",
938
+ "label": "Total"
833
939
  },
834
940
  {
835
941
  "name": "openedAt",
836
- "label": "Opened",
837
- "variant": "caption"
942
+ "variant": "caption",
943
+ "label": "Opened"
838
944
  }
839
945
  ],
840
946
  "label": "Columns to show",
@@ -843,18 +949,13 @@
843
949
  "items": {
844
950
  "type": "object",
845
951
  "properties": {
846
- "header": {
847
- "name": "header",
848
- "type": "string",
849
- "required": false
850
- },
851
- "key": {
852
- "name": "key",
952
+ "name": {
953
+ "name": "name",
853
954
  "type": "string",
854
- "required": false
955
+ "required": true
855
956
  },
856
- "label": {
857
- "name": "label",
957
+ "header": {
958
+ "name": "header",
858
959
  "type": "string",
859
960
  "required": false
860
961
  },
@@ -863,10 +964,10 @@
863
964
  "type": "string",
864
965
  "required": false
865
966
  },
866
- "name": {
867
- "name": "name",
967
+ "key": {
968
+ "name": "key",
868
969
  "type": "string",
869
- "required": true
970
+ "required": false
870
971
  },
871
972
  "format": {
872
973
  "name": "format",
@@ -877,29 +978,84 @@
877
978
  "name": "icon",
878
979
  "type": "string",
879
980
  "required": false
981
+ },
982
+ "label": {
983
+ "name": "label",
984
+ "type": "string",
985
+ "required": false
880
986
  }
881
987
  }
882
988
  }
883
989
  },
884
- "title": {
990
+ "leadTimeMinutes": {
991
+ "type": "number",
992
+ "default": 0.0,
993
+ "label": "Lead time (minutes)",
994
+ "description": "Minutes before openedAt that a session can be pre-staged.",
995
+ "tier": "customization"
996
+ },
997
+ "noShowGracePeriodMinutes": {
998
+ "type": "number",
999
+ "default": 60.0,
1000
+ "label": "No-show grace (minutes)",
1001
+ "description": "Minutes of inactivity before an open session auto-voids. Wire via std-lifecycle.",
1002
+ "tier": "customization"
1003
+ },
1004
+ "serviceCharge": {
1005
+ "type": "number",
1006
+ "default": 0.0,
1007
+ "label": "Service charge (%)",
1008
+ "description": "Automatic service charge added to every checkout (percentage).",
1009
+ "tier": "customization"
1010
+ },
1011
+ "bookingHours": {
885
1012
  "type": "string",
886
- "default": "Terminals",
887
- "label": "Section title",
888
- "description": "Heading shown above the checkout terminals list",
1013
+ "default": "06:00-23:00",
1014
+ "label": "Booking hours",
1015
+ "description": "Daily window during which terminals can be opened (HH:MM-HH:MM).",
889
1016
  "tier": "customization"
890
1017
  },
1018
+ "bookingWindowDays": {
1019
+ "type": "number",
1020
+ "default": 1.0,
1021
+ "label": "Booking window (days)",
1022
+ "description": "How far in advance terminal sessions can be opened.",
1023
+ "tier": "customization"
1024
+ },
1025
+ "kitchenAutoFire": {
1026
+ "type": "boolean",
1027
+ "default": false,
1028
+ "label": "Kitchen auto-fire",
1029
+ "description": "Fire kitchen order automatically once payment is tendered.",
1030
+ "tier": "customization"
1031
+ },
1032
+ "tipPresets": {
1033
+ "type": "[number]",
1034
+ "default": [
1035
+ 15.0,
1036
+ 18.0,
1037
+ 20.0,
1038
+ 25.0
1039
+ ],
1040
+ "label": "Tip presets (%)",
1041
+ "description": "Suggested tip percentages shown at checkout.",
1042
+ "tier": "customization",
1043
+ "items": {
1044
+ "type": "number"
1045
+ }
1046
+ },
891
1047
  "itemActions": {
892
1048
  "type": "[ItemAction]",
893
1049
  "default": [
894
1050
  {
895
- "event": "OPEN_TERMINAL",
896
1051
  "label": "Open",
897
- "variant": "primary"
1052
+ "variant": "primary",
1053
+ "event": "OPEN_TERMINAL"
898
1054
  },
899
1055
  {
900
1056
  "variant": "danger",
901
- "event": "VOID_SESSION",
902
- "label": "Void"
1057
+ "label": "Void",
1058
+ "event": "VOID_SESSION"
903
1059
  }
904
1060
  ],
905
1061
  "label": "Row actions",
@@ -913,13 +1069,13 @@
913
1069
  "type": "string",
914
1070
  "required": false
915
1071
  },
916
- "event": {
917
- "name": "event",
1072
+ "label": {
1073
+ "name": "label",
918
1074
  "type": "string",
919
1075
  "required": true
920
1076
  },
921
- "label": {
922
- "name": "label",
1077
+ "event": {
1078
+ "name": "event",
923
1079
  "type": "string",
924
1080
  "required": true
925
1081
  },
@@ -930,6 +1086,39 @@
930
1086
  }
931
1087
  }
932
1088
  }
1089
+ },
1090
+ "maxReschedules": {
1091
+ "type": "number",
1092
+ "default": 1.0,
1093
+ "label": "Max reschedules",
1094
+ "description": "Hard cap on payment reversal count per session.",
1095
+ "tier": "advanced"
1096
+ },
1097
+ "coursingEnabled": {
1098
+ "type": "boolean",
1099
+ "default": false,
1100
+ "label": "Coursing enabled",
1101
+ "description": "Send items to kitchen in course-ordered waves.",
1102
+ "tier": "customization"
1103
+ },
1104
+ "cancellationPolicy": {
1105
+ "type": "string",
1106
+ "default": "free",
1107
+ "label": "Cancellation policy",
1108
+ "description": "Refund treatment for voided sessions.",
1109
+ "tier": "customization",
1110
+ "values": [
1111
+ "free",
1112
+ "partial-refund",
1113
+ "no-refund"
1114
+ ]
1115
+ },
1116
+ "title": {
1117
+ "type": "string",
1118
+ "default": "Terminals",
1119
+ "label": "Section title",
1120
+ "description": "Heading shown above the checkout terminals list",
1121
+ "tier": "customization"
933
1122
  }
934
1123
  },
935
1124
  "scope": "collection"
@@ -948,4 +1137,4 @@
948
1137
  ]
949
1138
  }
950
1139
  ]
951
- }
1140
+ }