@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-class-session",
3
- "version": "1.1.0",
4
- "description": "std-class-session — scheduled fitness/yoga/dance class session. Lists sessions in `browsing`; opens session detail in `viewing_single` with Start / Cancel actions. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-class-session — scheduled fitness/class session. Listens for SET_STATUS so sibling std-lifecycle can auto-transition. Exposes Scheduling/Booking knobs (bookingWindowDays, leadTimeMinutes, cancellationPolicy, …).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "ClassSessionOrbital",
@@ -244,6 +244,22 @@
244
244
  }
245
245
  ]
246
246
  },
247
+ {
248
+ "key": "SET_STATUS",
249
+ "name": "Set Status",
250
+ "payloadSchema": [
251
+ {
252
+ "name": "entityId",
253
+ "type": "string",
254
+ "required": true
255
+ },
256
+ {
257
+ "name": "newStatus",
258
+ "type": "string",
259
+ "required": true
260
+ }
261
+ ]
262
+ },
247
263
  {
248
264
  "key": "CLOSE_VIEW",
249
265
  "name": "Close View"
@@ -271,8 +287,8 @@
271
287
  "ClassSession",
272
288
  {
273
289
  "emit": {
274
- "success": "ClassSessionLoaded",
275
- "failure": "ClassSessionLoadFailed"
290
+ "failure": "ClassSessionLoadFailed",
291
+ "success": "ClassSessionLoaded"
276
292
  }
277
293
  }
278
294
  ],
@@ -280,22 +296,22 @@
280
296
  "render-ui",
281
297
  "main",
282
298
  {
283
- "align": "center",
284
- "className": "py-12",
285
- "direction": "vertical",
299
+ "gap": "md",
286
300
  "children": [
287
301
  {
288
302
  "type": "spinner"
289
303
  },
290
304
  {
291
- "color": "muted",
292
305
  "variant": "caption",
293
306
  "type": "typography",
294
- "content": "Loading class sessions…"
307
+ "content": "Loading class sessions…",
308
+ "color": "muted"
295
309
  }
296
310
  ],
297
- "gap": "md",
298
- "type": "stack"
311
+ "className": "py-12",
312
+ "type": "stack",
313
+ "direction": "vertical",
314
+ "align": "center"
299
315
  }
300
316
  ]
301
317
  ]
@@ -309,51 +325,50 @@
309
325
  "render-ui",
310
326
  "main",
311
327
  {
312
- "type": "stack",
313
328
  "direction": "vertical",
314
329
  "children": [
315
330
  {
331
+ "gap": "sm",
332
+ "direction": "horizontal",
316
333
  "type": "stack",
334
+ "align": "center",
317
335
  "children": [
318
336
  {
319
- "type": "icon",
320
- "name": "calendar"
337
+ "name": "calendar",
338
+ "type": "icon"
321
339
  },
322
340
  {
323
- "variant": "h3",
341
+ "content": "@config.title",
324
342
  "type": "typography",
325
- "content": "@config.title"
343
+ "variant": "h3"
326
344
  }
327
- ],
328
- "direction": "horizontal",
329
- "gap": "sm",
330
- "align": "center"
345
+ ]
331
346
  },
332
347
  {
333
348
  "children": [
334
349
  {
335
- "value": "@payload.data.length",
336
350
  "icon": "calendar",
337
351
  "type": "stat-display",
352
+ "value": "@payload.data.length",
338
353
  "label": "Sessions"
339
354
  },
340
355
  {
341
- "label": "Today",
356
+ "icon": "clock",
342
357
  "value": "12",
343
358
  "type": "stat-display",
344
- "icon": "clock"
359
+ "label": "Today"
345
360
  },
346
361
  {
347
- "icon": "users",
362
+ "value": "78%",
348
363
  "type": "stat-display",
349
364
  "label": "Capacity used",
350
- "value": "78%"
365
+ "icon": "users"
351
366
  },
352
367
  {
368
+ "icon": "x-circle",
353
369
  "value": "2",
354
- "label": "Cancelled",
355
370
  "type": "stat-display",
356
- "icon": "x-circle"
371
+ "label": "Cancelled"
357
372
  }
358
373
  ],
359
374
  "cols": 4.0,
@@ -363,15 +378,16 @@
363
378
  "type": "divider"
364
379
  },
365
380
  {
366
- "type": "data-grid",
367
381
  "fields": "@config.fields",
368
- "gap": "sm",
369
- "cols": 1.0,
370
382
  "itemActions": "@config.itemActions",
371
- "entity": "@payload.data"
383
+ "type": "data-grid",
384
+ "entity": "@payload.data",
385
+ "gap": "sm",
386
+ "cols": 1.0
372
387
  }
373
388
  ],
374
- "gap": "md"
389
+ "gap": "md",
390
+ "type": "stack"
375
391
  }
376
392
  ]
377
393
  ]
@@ -451,12 +467,12 @@
451
467
  "render-ui",
452
468
  "main",
453
469
  {
454
- "type": "stack",
455
470
  "direction": "vertical",
456
471
  "children": [
457
472
  {
458
473
  "type": "stack",
459
474
  "direction": "horizontal",
475
+ "gap": "sm",
460
476
  "align": "center",
461
477
  "children": [
462
478
  {
@@ -470,143 +486,143 @@
470
486
  "name": "calendar"
471
487
  },
472
488
  {
489
+ "variant": "h3",
473
490
  "type": "typography",
474
- "content": "@entity.className",
475
- "variant": "h3"
491
+ "content": "@entity.className"
476
492
  },
477
493
  {
478
494
  "label": "@entity.status",
479
- "type": "badge",
480
- "variant": "default"
495
+ "variant": "default",
496
+ "type": "badge"
481
497
  }
482
- ],
483
- "gap": "sm"
498
+ ]
484
499
  },
485
500
  {
486
501
  "type": "divider"
487
502
  },
488
503
  {
489
- "direction": "vertical",
490
- "type": "stack",
491
504
  "gap": "sm",
505
+ "direction": "vertical",
492
506
  "children": [
493
507
  {
494
- "type": "stack",
495
- "gap": "md",
496
508
  "children": [
497
509
  {
498
- "type": "typography",
499
510
  "variant": "caption",
500
- "color": "muted",
501
- "content": "Instructor"
511
+ "content": "Instructor",
512
+ "type": "typography",
513
+ "color": "muted"
502
514
  },
503
515
  {
504
- "type": "typography",
516
+ "variant": "body",
505
517
  "content": "@entity.instructorName",
506
- "variant": "body"
518
+ "type": "typography"
507
519
  }
508
520
  ],
509
- "direction": "horizontal"
521
+ "gap": "md",
522
+ "direction": "horizontal",
523
+ "type": "stack"
510
524
  },
511
525
  {
512
- "type": "stack",
513
- "direction": "horizontal",
514
526
  "gap": "md",
527
+ "direction": "horizontal",
515
528
  "children": [
516
529
  {
517
- "color": "muted",
518
- "type": "typography",
530
+ "content": "Location",
519
531
  "variant": "caption",
520
- "content": "Location"
532
+ "type": "typography",
533
+ "color": "muted"
521
534
  },
522
535
  {
523
536
  "type": "typography",
524
537
  "variant": "body",
525
538
  "content": "@entity.location"
526
539
  }
527
- ]
540
+ ],
541
+ "type": "stack"
528
542
  },
529
543
  {
544
+ "gap": "md",
545
+ "type": "stack",
546
+ "direction": "horizontal",
530
547
  "children": [
531
548
  {
532
- "color": "muted",
533
549
  "content": "Notes",
550
+ "color": "muted",
534
551
  "type": "typography",
535
552
  "variant": "caption"
536
553
  },
537
554
  {
555
+ "variant": "body",
538
556
  "content": "@entity.notes",
539
- "type": "typography",
540
- "variant": "body"
557
+ "type": "typography"
541
558
  }
542
- ],
543
- "type": "stack",
544
- "direction": "horizontal",
545
- "gap": "md"
559
+ ]
546
560
  }
547
- ]
561
+ ],
562
+ "type": "stack"
548
563
  },
549
564
  {
550
565
  "type": "divider"
551
566
  },
552
567
  {
553
- "cols": 4.0,
568
+ "type": "simple-grid",
554
569
  "children": [
555
570
  {
556
- "icon": "clock",
557
571
  "label": "Start",
572
+ "icon": "clock",
558
573
  "value": "@entity.startTime",
559
574
  "type": "stat-display"
560
575
  },
561
576
  {
577
+ "label": "Duration",
562
578
  "type": "stat-display",
563
579
  "value": "@entity.durationMinutes",
564
- "label": "Duration",
565
580
  "icon": "timer"
566
581
  },
567
582
  {
568
- "type": "stat-display",
569
- "value": "@entity.bookedCount",
570
583
  "icon": "users",
584
+ "value": "@entity.bookedCount",
585
+ "type": "stat-display",
571
586
  "label": "Booked"
572
587
  },
573
588
  {
589
+ "value": "@entity.capacity",
574
590
  "label": "Capacity",
575
591
  "icon": "user-plus",
576
- "type": "stat-display",
577
- "value": "@entity.capacity"
592
+ "type": "stat-display"
578
593
  }
579
594
  ],
580
- "type": "simple-grid"
595
+ "cols": 4.0
581
596
  },
582
597
  {
598
+ "direction": "horizontal",
599
+ "gap": "sm",
600
+ "align": "center",
583
601
  "children": [
584
602
  {
585
- "label": "Start Class",
586
- "type": "button",
587
603
  "variant": "primary",
588
- "action": "START_CLASS",
604
+ "type": "button",
589
605
  "actionPayload": {
590
606
  "id": "@entity.id"
591
- }
607
+ },
608
+ "action": "START_CLASS",
609
+ "label": "Start Class"
592
610
  },
593
611
  {
612
+ "variant": "danger",
613
+ "label": "Cancel",
614
+ "type": "button",
615
+ "action": "CANCEL_CLASS",
594
616
  "actionPayload": {
595
617
  "id": "@entity.id"
596
- },
597
- "type": "button",
598
- "label": "Cancel",
599
- "variant": "danger",
600
- "action": "CANCEL_CLASS"
618
+ }
601
619
  }
602
620
  ],
603
- "gap": "sm",
604
- "type": "stack",
605
- "align": "center",
606
- "direction": "horizontal"
621
+ "type": "stack"
607
622
  }
608
623
  ],
609
- "gap": "md"
624
+ "gap": "md",
625
+ "type": "stack"
610
626
  }
611
627
  ]
612
628
  ]
@@ -626,8 +642,8 @@
626
642
  "ClassSession",
627
643
  {
628
644
  "emit": {
629
- "success": "ClassSessionLoaded",
630
- "failure": "ClassSessionLoadFailed"
645
+ "failure": "ClassSessionLoadFailed",
646
+ "success": "ClassSessionLoaded"
631
647
  }
632
648
  }
633
649
  ],
@@ -635,22 +651,73 @@
635
651
  "render-ui",
636
652
  "main",
637
653
  {
654
+ "className": "py-12",
655
+ "direction": "vertical",
638
656
  "align": "center",
657
+ "type": "stack",
658
+ "gap": "md",
639
659
  "children": [
640
660
  {
641
661
  "type": "spinner"
642
662
  },
643
663
  {
644
- "type": "typography",
645
- "content": "Cancelling class…",
664
+ "variant": "caption",
646
665
  "color": "muted",
647
- "variant": "caption"
666
+ "type": "typography",
667
+ "content": "Cancelling class…"
648
668
  }
649
- ],
669
+ ]
670
+ }
671
+ ]
672
+ ]
673
+ },
674
+ {
675
+ "from": "browsing",
676
+ "to": "loading",
677
+ "event": "SET_STATUS",
678
+ "effects": [
679
+ [
680
+ "set",
681
+ "@entity.id",
682
+ "@payload.entityId"
683
+ ],
684
+ [
685
+ "set",
686
+ "@entity.status",
687
+ "@payload.newStatus"
688
+ ],
689
+ [
690
+ "persist",
691
+ "update",
692
+ "ClassSession",
693
+ "@entity",
694
+ {
695
+ "emit": {
696
+ "failure": "ClassSessionLoadFailed",
697
+ "success": "ClassSessionLoaded"
698
+ }
699
+ }
700
+ ],
701
+ [
702
+ "render-ui",
703
+ "main",
704
+ {
705
+ "gap": "md",
706
+ "align": "center",
650
707
  "type": "stack",
651
- "direction": "vertical",
652
708
  "className": "py-12",
653
- "gap": "md"
709
+ "children": [
710
+ {
711
+ "type": "spinner"
712
+ },
713
+ {
714
+ "content": "Updating session status…",
715
+ "type": "typography",
716
+ "variant": "caption",
717
+ "color": "muted"
718
+ }
719
+ ],
720
+ "direction": "vertical"
654
721
  }
655
722
  ]
656
723
  ]
@@ -665,8 +732,8 @@
665
732
  "ClassSession",
666
733
  {
667
734
  "emit": {
668
- "failure": "ClassSessionLoadFailed",
669
- "success": "ClassSessionLoaded"
735
+ "success": "ClassSessionLoaded",
736
+ "failure": "ClassSessionLoadFailed"
670
737
  }
671
738
  }
672
739
  ],
@@ -674,22 +741,22 @@
674
741
  "render-ui",
675
742
  "main",
676
743
  {
677
- "direction": "vertical",
678
744
  "gap": "md",
679
- "type": "stack",
680
745
  "align": "center",
681
- "className": "py-12",
682
746
  "children": [
683
747
  {
684
748
  "type": "spinner"
685
749
  },
686
750
  {
687
- "variant": "caption",
688
- "content": "Loading class sessions…",
751
+ "color": "muted",
689
752
  "type": "typography",
690
- "color": "muted"
753
+ "variant": "caption",
754
+ "content": "Loading class sessions…"
691
755
  }
692
- ]
756
+ ],
757
+ "type": "stack",
758
+ "direction": "vertical",
759
+ "className": "py-12"
693
760
  }
694
761
  ]
695
762
  ]
@@ -718,22 +785,22 @@
718
785
  "render-ui",
719
786
  "main",
720
787
  {
721
- "align": "center",
722
- "type": "stack",
723
- "className": "py-12",
724
788
  "gap": "md",
725
- "direction": "vertical",
726
789
  "children": [
727
790
  {
728
791
  "type": "spinner"
729
792
  },
730
793
  {
731
794
  "variant": "caption",
732
- "type": "typography",
795
+ "content": "Starting class…",
733
796
  "color": "muted",
734
- "content": "Starting class…"
797
+ "type": "typography"
735
798
  }
736
- ]
799
+ ],
800
+ "type": "stack",
801
+ "direction": "vertical",
802
+ "align": "center",
803
+ "className": "py-12"
737
804
  }
738
805
  ]
739
806
  ]
@@ -753,8 +820,8 @@
753
820
  "ClassSession",
754
821
  {
755
822
  "emit": {
756
- "failure": "ClassSessionLoadFailed",
757
- "success": "ClassSessionLoaded"
823
+ "success": "ClassSessionLoaded",
824
+ "failure": "ClassSessionLoadFailed"
758
825
  }
759
826
  }
760
827
  ],
@@ -762,21 +829,21 @@
762
829
  "render-ui",
763
830
  "main",
764
831
  {
765
- "direction": "vertical",
766
- "className": "py-12",
767
- "align": "center",
768
- "type": "stack",
769
832
  "children": [
770
833
  {
771
834
  "type": "spinner"
772
835
  },
773
836
  {
774
- "content": "Cancelling class…",
775
- "type": "typography",
776
837
  "variant": "caption",
777
- "color": "muted"
838
+ "color": "muted",
839
+ "content": "Cancelling class…",
840
+ "type": "typography"
778
841
  }
779
842
  ],
843
+ "type": "stack",
844
+ "direction": "vertical",
845
+ "align": "center",
846
+ "className": "py-12",
780
847
  "gap": "md"
781
848
  }
782
849
  ]
@@ -792,8 +859,8 @@
792
859
  "ClassSession",
793
860
  {
794
861
  "emit": {
795
- "failure": "ClassSessionLoadFailed",
796
- "success": "ClassSessionLoaded"
862
+ "success": "ClassSessionLoaded",
863
+ "failure": "ClassSessionLoadFailed"
797
864
  }
798
865
  }
799
866
  ],
@@ -801,8 +868,8 @@
801
868
  "render-ui",
802
869
  "main",
803
870
  {
804
- "type": "spinner",
805
- "size": "sm"
871
+ "size": "sm",
872
+ "type": "spinner"
806
873
  }
807
874
  ]
808
875
  ]
@@ -810,57 +877,6 @@
810
877
  ]
811
878
  },
812
879
  "config": {
813
- "title": {
814
- "type": "string",
815
- "default": "Class Sessions",
816
- "label": "Section title",
817
- "description": "Heading shown above the class schedule",
818
- "tier": "customization"
819
- },
820
- "itemActions": {
821
- "type": "[ItemAction]",
822
- "default": [
823
- {
824
- "variant": "primary",
825
- "label": "Open",
826
- "event": "OPEN_SESSION",
827
- "icon": "arrow-right"
828
- },
829
- {
830
- "event": "CANCEL_CLASS",
831
- "variant": "danger",
832
- "label": "Cancel"
833
- }
834
- ],
835
- "label": "Row actions",
836
- "description": "Buttons users can click on each session row",
837
- "tier": "customization",
838
- "items": {
839
- "type": "object",
840
- "properties": {
841
- "icon": {
842
- "name": "icon",
843
- "type": "string",
844
- "required": false
845
- },
846
- "variant": {
847
- "name": "variant",
848
- "type": "string",
849
- "required": false
850
- },
851
- "label": {
852
- "name": "label",
853
- "type": "string",
854
- "required": true
855
- },
856
- "event": {
857
- "name": "event",
858
- "type": "string",
859
- "required": true
860
- }
861
- }
862
- }
863
- },
864
880
  "fields": {
865
881
  "type": "[FieldSpec]",
866
882
  "default": [
@@ -870,14 +886,14 @@
870
886
  "label": "Class"
871
887
  },
872
888
  {
889
+ "label": "Instructor",
873
890
  "name": "instructorName",
874
- "variant": "caption",
875
- "label": "Instructor"
891
+ "variant": "caption"
876
892
  },
877
893
  {
894
+ "label": "Start",
878
895
  "name": "startTime",
879
- "variant": "caption",
880
- "label": "Start"
896
+ "variant": "caption"
881
897
  },
882
898
  {
883
899
  "label": "Capacity",
@@ -885,13 +901,13 @@
885
901
  "variant": "badge"
886
902
  },
887
903
  {
888
- "label": "Booked",
889
904
  "variant": "badge",
890
- "name": "bookedCount"
905
+ "name": "bookedCount",
906
+ "label": "Booked"
891
907
  },
892
908
  {
893
- "label": "Status",
894
909
  "name": "status",
910
+ "label": "Status",
895
911
  "variant": "badge"
896
912
  }
897
913
  ],
@@ -901,23 +917,33 @@
901
917
  "items": {
902
918
  "type": "object",
903
919
  "properties": {
920
+ "variant": {
921
+ "name": "variant",
922
+ "type": "string",
923
+ "required": false
924
+ },
925
+ "format": {
926
+ "name": "format",
927
+ "type": "string",
928
+ "required": false
929
+ },
904
930
  "name": {
905
931
  "name": "name",
906
932
  "type": "string",
907
933
  "required": true
908
934
  },
909
- "variant": {
910
- "name": "variant",
935
+ "icon": {
936
+ "name": "icon",
911
937
  "type": "string",
912
938
  "required": false
913
939
  },
914
- "key": {
915
- "name": "key",
940
+ "header": {
941
+ "name": "header",
916
942
  "type": "string",
917
943
  "required": false
918
944
  },
919
- "header": {
920
- "name": "header",
945
+ "key": {
946
+ "name": "key",
921
947
  "type": "string",
922
948
  "required": false
923
949
  },
@@ -925,16 +951,121 @@
925
951
  "name": "label",
926
952
  "type": "string",
927
953
  "required": false
954
+ }
955
+ }
956
+ }
957
+ },
958
+ "leadTimeMinutes": {
959
+ "type": "number",
960
+ "default": 60.0,
961
+ "label": "Lead time (minutes)",
962
+ "description": "Minimum minutes before startTime that booking is allowed.",
963
+ "tier": "customization"
964
+ },
965
+ "bookingWindowDays": {
966
+ "type": "number",
967
+ "default": 30.0,
968
+ "label": "Booking window (days)",
969
+ "description": "How far in advance members can book a session.",
970
+ "tier": "customization"
971
+ },
972
+ "title": {
973
+ "type": "string",
974
+ "default": "Class Sessions",
975
+ "label": "Section title",
976
+ "description": "Heading shown above the class schedule",
977
+ "tier": "customization"
978
+ },
979
+ "bookingHours": {
980
+ "type": "string",
981
+ "default": "06:00-22:00",
982
+ "label": "Booking hours",
983
+ "description": "Daily window during which sessions can be booked (HH:MM-HH:MM).",
984
+ "tier": "customization"
985
+ },
986
+ "blackoutDates": {
987
+ "type": "[string]",
988
+ "default": [],
989
+ "label": "Blackout dates",
990
+ "description": "ISO dates blocked from booking (e.g. holidays, deep-cleans). Compose std-lifecycle to enforce.",
991
+ "tier": "customization",
992
+ "items": {
993
+ "type": "string"
994
+ }
995
+ },
996
+ "noShowGracePeriodMinutes": {
997
+ "type": "number",
998
+ "default": 10.0,
999
+ "label": "No-show grace (minutes)",
1000
+ "description": "Minutes after startTime before a no-show penalty applies. Wire via std-lifecycle.",
1001
+ "tier": "customization"
1002
+ },
1003
+ "rescheduleWindowHours": {
1004
+ "type": "number",
1005
+ "default": 4.0,
1006
+ "label": "Reschedule window (hours)",
1007
+ "description": "Hours before startTime during which the member can self-reschedule.",
1008
+ "tier": "customization"
1009
+ },
1010
+ "maxReschedules": {
1011
+ "type": "number",
1012
+ "default": 3.0,
1013
+ "label": "Max reschedules",
1014
+ "description": "Hard cap on reschedule count per session booking.",
1015
+ "tier": "advanced"
1016
+ },
1017
+ "cancellationPolicy": {
1018
+ "type": "string",
1019
+ "default": "free",
1020
+ "label": "Cancellation policy",
1021
+ "description": "Refund treatment when a session is cancelled inside the reschedule window.",
1022
+ "tier": "customization",
1023
+ "values": [
1024
+ "free",
1025
+ "partial-refund",
1026
+ "no-refund"
1027
+ ]
1028
+ },
1029
+ "itemActions": {
1030
+ "type": "[ItemAction]",
1031
+ "default": [
1032
+ {
1033
+ "label": "Open",
1034
+ "event": "OPEN_SESSION",
1035
+ "variant": "primary",
1036
+ "icon": "arrow-right"
1037
+ },
1038
+ {
1039
+ "variant": "danger",
1040
+ "label": "Cancel",
1041
+ "event": "CANCEL_CLASS"
1042
+ }
1043
+ ],
1044
+ "label": "Row actions",
1045
+ "description": "Buttons users can click on each session row",
1046
+ "tier": "customization",
1047
+ "items": {
1048
+ "type": "object",
1049
+ "properties": {
1050
+ "variant": {
1051
+ "name": "variant",
1052
+ "type": "string",
1053
+ "required": false
1054
+ },
1055
+ "event": {
1056
+ "name": "event",
1057
+ "type": "string",
1058
+ "required": true
928
1059
  },
929
1060
  "icon": {
930
1061
  "name": "icon",
931
1062
  "type": "string",
932
1063
  "required": false
933
1064
  },
934
- "format": {
935
- "name": "format",
1065
+ "label": {
1066
+ "name": "label",
936
1067
  "type": "string",
937
- "required": false
1068
+ "required": true
938
1069
  }
939
1070
  }
940
1071
  }
@@ -956,4 +1087,4 @@
956
1087
  ]
957
1088
  }
958
1089
  ]
959
- }
1090
+ }