@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-modifier-group",
3
- "version": "1.1.0",
4
- "description": "std-modifier-group — restaurant menu item customization groups with required/optional/multi-select constraints. Owns a ModifierGroupRecord entity (constraint type, min/max selections, serialized options) and a single manage trait that loads groups, browses them in a data-grid with Create / Update / Delete actions, and persists each verdict back to the row. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-modifier-group — restaurant menu item customization groups (required/optional/multi-select). Manage trait persists Create / Update / Delete. Exposes Restaurant/POS knobs (allergenWarningsEnabled, coursingEnabled, tipPresets, …).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "ModifierGroupOrbital",
@@ -511,21 +511,21 @@
511
511
  "main",
512
512
  {
513
513
  "gap": "md",
514
- "align": "center",
514
+ "direction": "vertical",
515
+ "type": "stack",
515
516
  "className": "py-12",
517
+ "align": "center",
516
518
  "children": [
517
519
  {
518
520
  "type": "spinner"
519
521
  },
520
522
  {
521
523
  "content": "Loading modifier groups…",
524
+ "type": "typography",
522
525
  "variant": "caption",
523
- "color": "muted",
524
- "type": "typography"
526
+ "color": "muted"
525
527
  }
526
- ],
527
- "direction": "vertical",
528
- "type": "stack"
528
+ ]
529
529
  }
530
530
  ]
531
531
  ]
@@ -539,7 +539,7 @@
539
539
  "render-ui",
540
540
  "main",
541
541
  {
542
- "type": "stack",
542
+ "direction": "vertical",
543
543
  "children": [
544
544
  {
545
545
  "direction": "horizontal",
@@ -559,49 +559,49 @@
559
559
  ]
560
560
  },
561
561
  {
562
- "cols": 4.0,
562
+ "type": "simple-grid",
563
563
  "children": [
564
564
  {
565
- "type": "stat-display",
565
+ "label": "Total groups",
566
566
  "icon": "list-checks",
567
567
  "value": "@payload.data.length",
568
- "label": "Total groups"
568
+ "type": "stat-display"
569
569
  },
570
570
  {
571
- "type": "stat-display",
572
- "label": "Required",
571
+ "icon": "asterisk",
573
572
  "value": "12",
574
- "icon": "asterisk"
573
+ "type": "stat-display",
574
+ "label": "Required"
575
575
  },
576
576
  {
577
- "value": "9",
578
577
  "label": "Multi-select",
579
- "icon": "check-square",
580
- "type": "stat-display"
578
+ "value": "9",
579
+ "type": "stat-display",
580
+ "icon": "check-square"
581
581
  },
582
582
  {
583
+ "label": "Avg options",
583
584
  "type": "stat-display",
584
585
  "icon": "list",
585
- "value": "5",
586
- "label": "Avg options"
586
+ "value": "5"
587
587
  }
588
588
  ],
589
- "type": "simple-grid"
589
+ "cols": 4.0
590
590
  },
591
591
  {
592
592
  "type": "divider"
593
593
  },
594
594
  {
595
- "cols": 1.0,
596
595
  "gap": "sm",
597
- "type": "data-grid",
598
- "entity": "@payload.data",
596
+ "itemActions": "@config.itemActions",
599
597
  "fields": "@config.fields",
600
- "itemActions": "@config.itemActions"
598
+ "cols": 1.0,
599
+ "type": "data-grid",
600
+ "entity": "@payload.data"
601
601
  }
602
602
  ],
603
- "gap": "md",
604
- "direction": "vertical"
603
+ "type": "stack",
604
+ "gap": "md"
605
605
  }
606
606
  ]
607
607
  ]
@@ -615,9 +615,9 @@
615
615
  "render-ui",
616
616
  "main",
617
617
  {
618
+ "message": "@payload.error",
618
619
  "type": "alert",
619
- "variant": "error",
620
- "message": "@payload.error"
620
+ "variant": "error"
621
621
  }
622
622
  ]
623
623
  ]
@@ -666,17 +666,17 @@
666
666
  "render-ui",
667
667
  "main",
668
668
  {
669
- "type": "stack",
670
- "gap": "md",
671
669
  "children": [
672
670
  {
671
+ "direction": "horizontal",
673
672
  "gap": "sm",
673
+ "type": "stack",
674
674
  "children": [
675
675
  {
676
- "action": "CLOSE_VIEW",
677
- "type": "button",
678
676
  "label": "Back",
679
- "variant": "ghost"
677
+ "action": "CLOSE_VIEW",
678
+ "variant": "ghost",
679
+ "type": "button"
680
680
  },
681
681
  {
682
682
  "name": "list-checks",
@@ -684,45 +684,43 @@
684
684
  },
685
685
  {
686
686
  "type": "typography",
687
- "variant": "h3",
688
- "content": "@entity.name"
687
+ "content": "@entity.name",
688
+ "variant": "h3"
689
689
  },
690
690
  {
691
+ "variant": "primary",
691
692
  "label": "@entity.constraintType",
692
- "type": "badge",
693
- "variant": "primary"
693
+ "type": "badge"
694
694
  }
695
695
  ],
696
- "direction": "horizontal",
697
- "align": "center",
698
- "type": "stack"
696
+ "align": "center"
699
697
  },
700
698
  {
701
699
  "type": "divider"
702
700
  },
703
701
  {
704
- "direction": "vertical",
705
- "type": "stack",
706
702
  "children": [
707
703
  {
708
- "type": "stack",
709
- "gap": "md",
704
+ "direction": "horizontal",
710
705
  "children": [
711
706
  {
712
707
  "color": "muted",
713
708
  "variant": "caption",
714
- "content": "Options JSON",
715
- "type": "typography"
709
+ "type": "typography",
710
+ "content": "Options JSON"
716
711
  },
717
712
  {
718
713
  "type": "typography",
719
- "content": "@entity.optionsJson",
720
- "variant": "body"
714
+ "variant": "body",
715
+ "content": "@entity.optionsJson"
721
716
  }
722
717
  ],
723
- "direction": "horizontal"
718
+ "type": "stack",
719
+ "gap": "md"
724
720
  }
725
721
  ],
722
+ "type": "stack",
723
+ "direction": "vertical",
726
724
  "gap": "sm"
727
725
  },
728
726
  {
@@ -730,42 +728,44 @@
730
728
  },
731
729
  {
732
730
  "cols": 2.0,
731
+ "type": "simple-grid",
733
732
  "children": [
734
733
  {
735
- "type": "stat-display",
736
- "icon": "minus",
737
734
  "value": "@entity.minSelect",
738
- "label": "Min select"
735
+ "type": "stat-display",
736
+ "label": "Min select",
737
+ "icon": "minus"
739
738
  },
740
739
  {
741
740
  "type": "stat-display",
742
- "label": "Max select",
743
741
  "icon": "plus",
744
- "value": "@entity.maxSelect"
742
+ "value": "@entity.maxSelect",
743
+ "label": "Max select"
745
744
  }
746
- ],
747
- "type": "simple-grid"
745
+ ]
748
746
  },
749
747
  {
748
+ "align": "center",
750
749
  "children": [
751
750
  {
752
- "type": "button",
753
- "label": "Delete",
754
751
  "actionPayload": {
755
- "row": "@entity",
756
- "groupId": "@entity.id"
752
+ "groupId": "@entity.id",
753
+ "row": "@entity"
757
754
  },
755
+ "label": "Delete",
758
756
  "variant": "danger",
757
+ "type": "button",
759
758
  "action": "DELETE"
760
759
  }
761
760
  ],
762
- "gap": "sm",
763
761
  "type": "stack",
764
762
  "direction": "horizontal",
765
- "align": "center"
763
+ "gap": "sm"
766
764
  }
767
765
  ],
768
- "direction": "vertical"
766
+ "direction": "vertical",
767
+ "type": "stack",
768
+ "gap": "md"
769
769
  }
770
770
  ]
771
771
  ]
@@ -817,8 +817,8 @@
817
817
  "@entity",
818
818
  {
819
819
  "emit": {
820
- "success": "ModifierGroupDeleted",
821
- "failure": "ModifierGroupWriteFailed"
820
+ "failure": "ModifierGroupWriteFailed",
821
+ "success": "ModifierGroupDeleted"
822
822
  }
823
823
  }
824
824
  ],
@@ -826,22 +826,22 @@
826
826
  "render-ui",
827
827
  "main",
828
828
  {
829
- "align": "center",
829
+ "type": "stack",
830
830
  "direction": "vertical",
831
- "gap": "md",
832
831
  "className": "py-12",
833
832
  "children": [
834
833
  {
835
834
  "type": "spinner"
836
835
  },
837
836
  {
838
- "content": "Deleting modifier group…",
839
- "variant": "caption",
837
+ "color": "muted",
840
838
  "type": "typography",
841
- "color": "muted"
839
+ "variant": "caption",
840
+ "content": "Deleting modifier group…"
842
841
  }
843
842
  ],
844
- "type": "stack"
843
+ "align": "center",
844
+ "gap": "md"
845
845
  }
846
846
  ]
847
847
  ]
@@ -906,9 +906,9 @@
906
906
  "render-ui",
907
907
  "main",
908
908
  {
909
- "variant": "error",
909
+ "type": "alert",
910
910
  "message": "@payload.error",
911
- "type": "alert"
911
+ "variant": "error"
912
912
  }
913
913
  ]
914
914
  ]
@@ -923,8 +923,8 @@
923
923
  "ModifierGroupRecord",
924
924
  {
925
925
  "emit": {
926
- "success": "ModifierGroupLoaded",
927
- "failure": "ModifierGroupLoadFailed"
926
+ "failure": "ModifierGroupLoadFailed",
927
+ "success": "ModifierGroupLoaded"
928
928
  }
929
929
  }
930
930
  ],
@@ -932,22 +932,22 @@
932
932
  "render-ui",
933
933
  "main",
934
934
  {
935
- "type": "stack",
935
+ "direction": "vertical",
936
+ "className": "py-12",
936
937
  "gap": "md",
938
+ "align": "center",
939
+ "type": "stack",
937
940
  "children": [
938
941
  {
939
942
  "type": "spinner"
940
943
  },
941
944
  {
942
- "type": "typography",
943
- "content": "Loading modifier groups…",
944
945
  "variant": "caption",
945
- "color": "muted"
946
+ "type": "typography",
947
+ "color": "muted",
948
+ "content": "Loading modifier groups…"
946
949
  }
947
- ],
948
- "align": "center",
949
- "direction": "vertical",
950
- "className": "py-12"
950
+ ]
951
951
  }
952
952
  ]
953
953
  ]
@@ -973,22 +973,22 @@
973
973
  "render-ui",
974
974
  "main",
975
975
  {
976
- "type": "stack",
977
- "align": "center",
978
976
  "children": [
979
977
  {
980
978
  "type": "spinner"
981
979
  },
982
980
  {
983
- "content": "Creating modifier group…",
984
981
  "variant": "caption",
985
- "type": "typography",
986
- "color": "muted"
982
+ "color": "muted",
983
+ "content": "Creating modifier group…",
984
+ "type": "typography"
987
985
  }
988
986
  ],
987
+ "type": "stack",
988
+ "className": "py-12",
989
989
  "gap": "md",
990
990
  "direction": "vertical",
991
- "className": "py-12"
991
+ "align": "center"
992
992
  }
993
993
  ]
994
994
  ]
@@ -1040,8 +1040,8 @@
1040
1040
  "@entity",
1041
1041
  {
1042
1042
  "emit": {
1043
- "failure": "ModifierGroupWriteFailed",
1044
- "success": "ModifierGroupUpdated"
1043
+ "success": "ModifierGroupUpdated",
1044
+ "failure": "ModifierGroupWriteFailed"
1045
1045
  }
1046
1046
  }
1047
1047
  ],
@@ -1049,22 +1049,22 @@
1049
1049
  "render-ui",
1050
1050
  "main",
1051
1051
  {
1052
- "gap": "md",
1052
+ "direction": "vertical",
1053
1053
  "type": "stack",
1054
1054
  "className": "py-12",
1055
- "direction": "vertical",
1056
1055
  "align": "center",
1057
1056
  "children": [
1058
1057
  {
1059
1058
  "type": "spinner"
1060
1059
  },
1061
1060
  {
1062
- "variant": "caption",
1063
- "type": "typography",
1064
1061
  "color": "muted",
1065
- "content": "Updating modifier group…"
1062
+ "type": "typography",
1063
+ "content": "Updating modifier group…",
1064
+ "variant": "caption"
1066
1065
  }
1067
- ]
1066
+ ],
1067
+ "gap": "md"
1068
1068
  }
1069
1069
  ]
1070
1070
  ]
@@ -1116,8 +1116,8 @@
1116
1116
  "@entity",
1117
1117
  {
1118
1118
  "emit": {
1119
- "success": "ModifierGroupDeleted",
1120
- "failure": "ModifierGroupWriteFailed"
1119
+ "failure": "ModifierGroupWriteFailed",
1120
+ "success": "ModifierGroupDeleted"
1121
1121
  }
1122
1122
  }
1123
1123
  ],
@@ -1125,6 +1125,9 @@
1125
1125
  "render-ui",
1126
1126
  "main",
1127
1127
  {
1128
+ "type": "stack",
1129
+ "direction": "vertical",
1130
+ "align": "center",
1128
1131
  "className": "py-12",
1129
1132
  "children": [
1130
1133
  {
@@ -1137,9 +1140,6 @@
1137
1140
  "color": "muted"
1138
1141
  }
1139
1142
  ],
1140
- "direction": "vertical",
1141
- "type": "stack",
1142
- "align": "center",
1143
1143
  "gap": "md"
1144
1144
  }
1145
1145
  ]
@@ -1173,6 +1173,87 @@
1173
1173
  ]
1174
1174
  },
1175
1175
  "config": {
1176
+ "tipPresets": {
1177
+ "type": "[number]",
1178
+ "default": [
1179
+ 15.0,
1180
+ 18.0,
1181
+ 20.0,
1182
+ 25.0
1183
+ ],
1184
+ "label": "Tip presets (%)",
1185
+ "description": "Tip percentages exposed alongside modifier-driven upsells.",
1186
+ "tier": "customization",
1187
+ "items": {
1188
+ "type": "number"
1189
+ }
1190
+ },
1191
+ "allowSplitChecks": {
1192
+ "type": "boolean",
1193
+ "default": true,
1194
+ "label": "Allow split checks",
1195
+ "description": "Permit splitting a check that uses these modifier groups.",
1196
+ "tier": "customization"
1197
+ },
1198
+ "kitchenAutoFire": {
1199
+ "type": "boolean",
1200
+ "default": false,
1201
+ "label": "Kitchen auto-fire",
1202
+ "description": "Auto-fire modifier-resolved items to the kitchen display.",
1203
+ "tier": "customization"
1204
+ },
1205
+ "tableTurnoverTargetMinutes": {
1206
+ "type": "number",
1207
+ "default": 60.0,
1208
+ "label": "Table turnover target (min)",
1209
+ "description": "Target seating gap on a single table. v1.2 declarative.",
1210
+ "tier": "advanced"
1211
+ },
1212
+ "itemActions": {
1213
+ "type": "[ItemAction]",
1214
+ "default": [
1215
+ {
1216
+ "icon": "arrow-right",
1217
+ "event": "OPEN_GROUP",
1218
+ "label": "Open",
1219
+ "variant": "primary"
1220
+ },
1221
+ {
1222
+ "event": "DELETE",
1223
+ "label": "Delete",
1224
+ "icon": "trash",
1225
+ "variant": "danger"
1226
+ }
1227
+ ],
1228
+ "label": "Row actions",
1229
+ "description": "Buttons users can click on each group row",
1230
+ "tier": "customization",
1231
+ "items": {
1232
+ "type": "object",
1233
+ "properties": {
1234
+ "label": {
1235
+ "name": "label",
1236
+ "type": "string",
1237
+ "required": true
1238
+ },
1239
+ "variant": {
1240
+ "name": "variant",
1241
+ "type": "string",
1242
+ "required": false
1243
+ },
1244
+ "event": {
1245
+ "name": "event",
1246
+ "type": "string",
1247
+ "required": true
1248
+ },
1249
+ "icon": {
1250
+ "name": "icon",
1251
+ "type": "string",
1252
+ "required": false
1253
+ }
1254
+ }
1255
+ }
1256
+ },
1176
1257
  "fields": {
1177
1258
  "type": "[FieldSpec]",
1178
1259
  "default": [
@@ -1182,24 +1263,24 @@
1182
1263
  "label": "Group"
1183
1264
  },
1184
1265
  {
1185
- "variant": "badge",
1186
1266
  "label": "Constraint",
1267
+ "variant": "badge",
1187
1268
  "name": "constraintType"
1188
1269
  },
1189
1270
  {
1190
- "variant": "badge",
1191
1271
  "name": "required",
1192
- "label": "Required"
1272
+ "label": "Required",
1273
+ "variant": "badge"
1193
1274
  },
1194
1275
  {
1276
+ "name": "minSelect",
1195
1277
  "label": "Min",
1196
- "variant": "caption",
1197
- "name": "minSelect"
1278
+ "variant": "caption"
1198
1279
  },
1199
1280
  {
1200
1281
  "name": "maxSelect",
1201
- "label": "Max",
1202
- "variant": "caption"
1282
+ "variant": "caption",
1283
+ "label": "Max"
1203
1284
  }
1204
1285
  ],
1205
1286
  "label": "Columns to show",
@@ -1208,30 +1289,25 @@
1208
1289
  "items": {
1209
1290
  "type": "object",
1210
1291
  "properties": {
1211
- "name": {
1212
- "name": "name",
1292
+ "format": {
1293
+ "name": "format",
1213
1294
  "type": "string",
1214
- "required": true
1295
+ "required": false
1215
1296
  },
1216
1297
  "key": {
1217
1298
  "name": "key",
1218
1299
  "type": "string",
1219
1300
  "required": false
1220
1301
  },
1221
- "icon": {
1222
- "name": "icon",
1223
- "type": "string",
1224
- "required": false
1225
- },
1226
1302
  "header": {
1227
1303
  "name": "header",
1228
1304
  "type": "string",
1229
1305
  "required": false
1230
1306
  },
1231
- "format": {
1232
- "name": "format",
1307
+ "name": {
1308
+ "name": "name",
1233
1309
  "type": "string",
1234
- "required": false
1310
+ "required": true
1235
1311
  },
1236
1312
  "label": {
1237
1313
  "name": "label",
@@ -1242,61 +1318,42 @@
1242
1318
  "name": "variant",
1243
1319
  "type": "string",
1244
1320
  "required": false
1321
+ },
1322
+ "icon": {
1323
+ "name": "icon",
1324
+ "type": "string",
1325
+ "required": false
1245
1326
  }
1246
1327
  }
1247
1328
  }
1248
1329
  },
1330
+ "allergenWarningsEnabled": {
1331
+ "type": "boolean",
1332
+ "default": true,
1333
+ "label": "Allergen warnings",
1334
+ "description": "Surface allergen warnings when option declarations include allergen tags.",
1335
+ "tier": "customization"
1336
+ },
1337
+ "serviceCharge": {
1338
+ "type": "number",
1339
+ "default": 0.0,
1340
+ "label": "Service charge (%)",
1341
+ "description": "Default service-charge percentage applied to checks composed from these groups.",
1342
+ "tier": "customization"
1343
+ },
1344
+ "coursingEnabled": {
1345
+ "type": "boolean",
1346
+ "default": false,
1347
+ "label": "Coursing enabled",
1348
+ "description": "Track ordered courses for pacing of modifier-rich orders.",
1349
+ "tier": "customization"
1350
+ },
1249
1351
  "title": {
1250
1352
  "type": "string",
1251
1353
  "default": "Modifier Groups",
1252
1354
  "label": "Section title",
1253
1355
  "description": "Heading shown above the menu customization groups",
1254
1356
  "tier": "customization"
1255
- },
1256
- "itemActions": {
1257
- "type": "[ItemAction]",
1258
- "default": [
1259
- {
1260
- "event": "OPEN_GROUP",
1261
- "icon": "arrow-right",
1262
- "variant": "primary",
1263
- "label": "Open"
1264
- },
1265
- {
1266
- "event": "DELETE",
1267
- "label": "Delete",
1268
- "icon": "trash",
1269
- "variant": "danger"
1270
- }
1271
- ],
1272
- "label": "Row actions",
1273
- "description": "Buttons users can click on each group row",
1274
- "tier": "customization",
1275
- "items": {
1276
- "type": "object",
1277
- "properties": {
1278
- "label": {
1279
- "name": "label",
1280
- "type": "string",
1281
- "required": true
1282
- },
1283
- "variant": {
1284
- "name": "variant",
1285
- "type": "string",
1286
- "required": false
1287
- },
1288
- "event": {
1289
- "name": "event",
1290
- "type": "string",
1291
- "required": true
1292
- },
1293
- "icon": {
1294
- "name": "icon",
1295
- "type": "string",
1296
- "required": false
1297
- }
1298
- }
1299
- }
1300
1357
  }
1301
1358
  },
1302
1359
  "scope": "collection"
@@ -1315,4 +1372,4 @@
1315
1372
  ]
1316
1373
  }
1317
1374
  ]
1318
- }
1375
+ }