@almadar/std 14.26.0 → 14.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  2. package/behaviors/registry/app/atoms/std-approval-chain.orb +106 -0
  3. package/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  4. package/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  5. package/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  6. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  7. package/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  8. package/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  9. package/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  10. package/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  11. package/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  12. package/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  13. package/behaviors/registry/app/atoms/std-donor.orb +445 -135
  14. package/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  15. package/behaviors/registry/app/atoms/std-driver.orb +465 -480
  16. package/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  17. package/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  18. package/behaviors/registry/app/atoms/std-event.orb +465 -667
  19. package/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  20. package/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  21. package/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  22. package/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  23. package/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  24. package/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  25. package/behaviors/registry/app/atoms/std-lease.orb +506 -190
  26. package/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  27. package/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  28. package/behaviors/registry/app/atoms/std-matter.orb +486 -318
  29. package/behaviors/registry/app/atoms/std-membership.orb +512 -102
  30. package/behaviors/registry/app/atoms/std-menu.orb +775 -183
  31. package/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  32. package/behaviors/registry/app/atoms/std-multi-party-transaction.orb +130 -0
  33. package/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  34. package/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  35. package/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  36. package/behaviors/registry/app/atoms/std-pipeline.orb +139 -0
  37. package/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  38. package/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  39. package/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  40. package/behaviors/registry/app/atoms/std-recurring-schedule.orb +94 -0
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  45. package/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  47. package/behaviors/registry/app/atoms/std-segment.orb +360 -98
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  49. package/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  50. package/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  54. package/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  57. package/behaviors/registry/app/atoms/std-timeline.orb +108 -0
  58. package/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  59. package/behaviors/registry/app/atoms/std-trial.orb +410 -317
  60. package/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  63. package/behaviors/registry/app/atoms/std-wizard-branching.orb +129 -0
  64. package/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  65. package/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  66. package/behaviors/registry/app/molecules/std-application.orb +178 -263
  67. package/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  68. package/behaviors/registry/app/molecules/std-cart.orb +78 -72
  69. package/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  70. package/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  71. package/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  72. package/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  73. package/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  74. package/behaviors/registry/core/atoms/std-board.orb +1367 -0
  75. package/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  76. package/behaviors/registry/core/atoms/std-event-log.orb +777 -0
  77. package/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  78. package/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  79. package/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  80. package/behaviors/registry/core/atoms/std-multi-party-flow.orb +1313 -0
  81. package/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  82. package/behaviors/registry/core/atoms/std-recurrence.orb +937 -0
  83. package/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  84. package/behaviors/registry/core/atoms/std-step-flow.orb +1155 -0
  85. package/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  86. package/behaviors/registry/core/atoms/std-wizard.orb +1085 -0
  87. package/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  88. package/dist/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  89. package/dist/behaviors/registry/app/atoms/std-approval-chain.orb +106 -0
  90. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  91. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  92. package/dist/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  93. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  94. package/dist/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  95. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  96. package/dist/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  97. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  98. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  99. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  100. package/dist/behaviors/registry/app/atoms/std-donor.orb +445 -135
  101. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  102. package/dist/behaviors/registry/app/atoms/std-driver.orb +465 -480
  103. package/dist/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  104. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  105. package/dist/behaviors/registry/app/atoms/std-event.orb +465 -667
  106. package/dist/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  107. package/dist/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  108. package/dist/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  109. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  110. package/dist/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  111. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  112. package/dist/behaviors/registry/app/atoms/std-lease.orb +506 -190
  113. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  114. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  115. package/dist/behaviors/registry/app/atoms/std-matter.orb +486 -318
  116. package/dist/behaviors/registry/app/atoms/std-membership.orb +512 -102
  117. package/dist/behaviors/registry/app/atoms/std-menu.orb +775 -183
  118. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  119. package/dist/behaviors/registry/app/atoms/std-multi-party-transaction.orb +130 -0
  120. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  121. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  122. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  123. package/dist/behaviors/registry/app/atoms/std-pipeline.orb +139 -0
  124. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  125. package/dist/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  126. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  127. package/dist/behaviors/registry/app/atoms/std-recurring-schedule.orb +94 -0
  128. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  129. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  130. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  131. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  132. package/dist/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  133. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  134. package/dist/behaviors/registry/app/atoms/std-segment.orb +360 -98
  135. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  136. package/dist/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  137. package/dist/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  138. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  139. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  140. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  141. package/dist/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  142. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  143. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  144. package/dist/behaviors/registry/app/atoms/std-timeline.orb +108 -0
  145. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  146. package/dist/behaviors/registry/app/atoms/std-trial.orb +410 -317
  147. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  148. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  149. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  150. package/dist/behaviors/registry/app/atoms/std-wizard-branching.orb +129 -0
  151. package/dist/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  152. package/dist/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  153. package/dist/behaviors/registry/app/molecules/std-application.orb +178 -263
  154. package/dist/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  155. package/dist/behaviors/registry/app/molecules/std-cart.orb +78 -72
  156. package/dist/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  157. package/dist/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  158. package/dist/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  159. package/dist/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  160. package/dist/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  161. package/dist/behaviors/registry/core/atoms/std-board.orb +1367 -0
  162. package/dist/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  163. package/dist/behaviors/registry/core/atoms/std-event-log.orb +777 -0
  164. package/dist/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  165. package/dist/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  166. package/dist/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  167. package/dist/behaviors/registry/core/atoms/std-multi-party-flow.orb +1313 -0
  168. package/dist/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  169. package/dist/behaviors/registry/core/atoms/std-recurrence.orb +937 -0
  170. package/dist/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  171. package/dist/behaviors/registry/core/atoms/std-step-flow.orb +1155 -0
  172. package/dist/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  173. package/dist/behaviors/registry/core/atoms/std-wizard.orb +1085 -0
  174. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  175. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-segment",
3
3
  "version": "1.0.0",
4
- "description": "std-segment — contact segment primitive. Defines a filter criteria for grouping contacts (e.g. 'new signups in last 30 days'). Used by marketing campaigns for targeting.",
4
+ "description": "std-segment — contact segment primitive. Defines a filter criteria for grouping contacts. Lists segments in `browsing`; opens segment detail in `viewing_single` with Recalculate action.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "SegmentOrbital",
@@ -48,6 +48,45 @@
48
48
  "category": "interaction",
49
49
  "linkedEntity": "Segment",
50
50
  "emits": [
51
+ {
52
+ "event": "OPEN_SEGMENT",
53
+ "payloadSchema": [
54
+ {
55
+ "name": "id",
56
+ "type": "string",
57
+ "required": true
58
+ },
59
+ {
60
+ "name": "row.id",
61
+ "type": "string",
62
+ "required": true
63
+ },
64
+ {
65
+ "name": "row.name",
66
+ "type": "string",
67
+ "required": true
68
+ },
69
+ {
70
+ "name": "row.description",
71
+ "type": "string"
72
+ },
73
+ {
74
+ "name": "row.criteria",
75
+ "type": "string"
76
+ },
77
+ {
78
+ "name": "row.memberCount",
79
+ "type": "number"
80
+ },
81
+ {
82
+ "name": "row.lastUpdated",
83
+ "type": "string"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "event": "CLOSE_VIEW"
89
+ },
51
90
  {
52
91
  "event": "RECALCULATE",
53
92
  "payloadSchema": [
@@ -79,19 +118,6 @@
79
118
  "type": "string"
80
119
  }
81
120
  ]
82
- },
83
- {
84
- "event": "SegmentRecalculated",
85
- "payloadSchema": [
86
- {
87
- "name": "id",
88
- "type": "string"
89
- },
90
- {
91
- "name": "memberCount",
92
- "type": "number"
93
- }
94
- ]
95
121
  }
96
122
  ],
97
123
  "stateMachine": {
@@ -104,7 +130,7 @@
104
130
  "name": "browsing"
105
131
  },
106
132
  {
107
- "name": "calculating"
133
+ "name": "viewing_single"
108
134
  },
109
135
  {
110
136
  "name": "error"
@@ -140,29 +166,34 @@
140
166
  ]
141
167
  },
142
168
  {
143
- "key": "RECALCULATE",
144
- "name": "Recalculate",
169
+ "key": "OPEN_SEGMENT",
170
+ "name": "Open Segment",
145
171
  "payloadSchema": [
146
172
  {
147
173
  "name": "id",
148
174
  "type": "string",
149
175
  "required": true
176
+ },
177
+ {
178
+ "name": "row",
179
+ "type": "Segment"
150
180
  }
151
181
  ]
152
182
  },
153
183
  {
154
- "key": "SegmentRecalculated",
155
- "name": "Segment recalculated",
184
+ "key": "RECALCULATE",
185
+ "name": "Recalculate",
156
186
  "payloadSchema": [
157
187
  {
158
188
  "name": "id",
159
- "type": "string"
160
- },
161
- {
162
- "name": "memberCount",
163
- "type": "number"
189
+ "type": "string",
190
+ "required": true
164
191
  }
165
192
  ]
193
+ },
194
+ {
195
+ "key": "CLOSE_VIEW",
196
+ "name": "Close View"
166
197
  }
167
198
  ],
168
199
  "transitions": [
@@ -185,22 +216,22 @@
185
216
  "render-ui",
186
217
  "main",
187
218
  {
188
- "type": "stack",
189
219
  "align": "center",
220
+ "type": "stack",
221
+ "className": "py-12",
222
+ "direction": "vertical",
223
+ "gap": "md",
190
224
  "children": [
191
225
  {
192
226
  "type": "spinner"
193
227
  },
194
228
  {
195
229
  "type": "typography",
196
- "content": "Loading segments…",
197
230
  "variant": "caption",
198
- "color": "muted"
231
+ "color": "muted",
232
+ "content": "Loading segments…"
199
233
  }
200
- ],
201
- "gap": "md",
202
- "className": "py-12",
203
- "direction": "vertical"
234
+ ]
204
235
  }
205
236
  ]
206
237
  ]
@@ -214,21 +245,12 @@
214
245
  "render-ui",
215
246
  "main",
216
247
  {
217
- "gap": "md",
248
+ "direction": "vertical",
218
249
  "type": "stack",
250
+ "gap": "md",
219
251
  "children": [
220
252
  {
221
- "opacity": 0.12,
222
- "type": "geometric-pattern",
223
- "variant": "khatam"
224
- },
225
- {
226
- "type": "edge-decoration",
227
- "side": "left",
228
- "opacity": 0.2
229
- },
230
- {
231
- "direction": "horizontal",
253
+ "type": "stack",
232
254
  "children": [
233
255
  {
234
256
  "type": "icon",
@@ -236,60 +258,72 @@
236
258
  },
237
259
  {
238
260
  "variant": "h3",
239
- "type": "typography",
240
- "content": "@config.title"
261
+ "content": "@config.title",
262
+ "type": "typography"
241
263
  }
242
264
  ],
243
- "gap": "sm",
244
- "type": "stack"
245
- },
246
- {
247
- "type": "gradient-divider",
248
- "color": "primary"
265
+ "direction": "horizontal",
266
+ "align": "center",
267
+ "gap": "sm"
249
268
  },
250
269
  {
251
- "type": "tag-cloud",
252
- "tags": [
253
- {
254
- "label": "New Signups"
255
- },
256
- {
257
- "label": "High Value"
258
- },
259
- {
260
- "label": "Churn Risk"
261
- },
262
- {
263
- "label": "Active 30d"
264
- },
270
+ "type": "simple-grid",
271
+ "children": [
265
272
  {
266
- "label": "Dormant"
273
+ "type": "stat-display",
274
+ "value": "@payload.data.length",
275
+ "label": "Total segments",
276
+ "icon": "users"
267
277
  },
268
278
  {
269
- "label": "VIP"
279
+ "value": "12,480",
280
+ "type": "stat-display",
281
+ "icon": "user-check",
282
+ "label": "Active members"
270
283
  },
271
284
  {
272
- "label": "Trial"
285
+ "icon": "bar-chart",
286
+ "type": "stat-display",
287
+ "label": "Avg size",
288
+ "value": "1,560"
273
289
  },
274
290
  {
275
- "label": "Enterprise"
291
+ "label": "Updated 24h",
292
+ "type": "stat-display",
293
+ "value": "8",
294
+ "icon": "refresh-cw"
276
295
  }
277
- ]
296
+ ],
297
+ "cols": 4.0
278
298
  },
279
299
  {
280
300
  "type": "divider"
281
301
  },
282
302
  {
283
303
  "cols": 1.0,
304
+ "itemActions": [
305
+ {
306
+ "label": "Open",
307
+ "event": "OPEN_SEGMENT",
308
+ "variant": "primary",
309
+ "icon": "arrow-right"
310
+ },
311
+ {
312
+ "event": "RECALCULATE",
313
+ "variant": "danger",
314
+ "label": "Recalculate"
315
+ }
316
+ ],
317
+ "type": "data-grid",
284
318
  "fields": [
285
319
  {
286
- "variant": "caption",
287
320
  "name": "name",
321
+ "variant": "caption",
288
322
  "label": "Name"
289
323
  },
290
324
  {
291
- "name": "description",
292
325
  "label": "Description",
326
+ "name": "description",
293
327
  "variant": "caption"
294
328
  },
295
329
  {
@@ -298,24 +332,15 @@
298
332
  "label": "Members"
299
333
  },
300
334
  {
301
- "variant": "caption",
335
+ "name": "lastUpdated",
302
336
  "label": "Updated",
303
- "name": "lastUpdated"
337
+ "variant": "caption"
304
338
  }
305
339
  ],
306
340
  "entity": "@payload.data",
307
- "gap": "sm",
308
- "itemActions": [
309
- {
310
- "label": "Recalculate",
311
- "event": "RECALCULATE",
312
- "variant": "ghost"
313
- }
314
- ],
315
- "type": "data-grid"
341
+ "gap": "sm"
316
342
  }
317
- ],
318
- "direction": "vertical"
343
+ ]
319
344
  }
320
345
  ]
321
346
  ]
@@ -329,16 +354,176 @@
329
354
  "render-ui",
330
355
  "main",
331
356
  {
332
- "type": "alert",
333
357
  "variant": "error",
334
- "message": "@payload.error"
358
+ "message": "@payload.error",
359
+ "type": "alert"
360
+ }
361
+ ]
362
+ ]
363
+ },
364
+ {
365
+ "from": "browsing",
366
+ "to": "viewing_single",
367
+ "event": "OPEN_SEGMENT",
368
+ "effects": [
369
+ [
370
+ "set",
371
+ "@entity.id",
372
+ "@payload.row.id"
373
+ ],
374
+ [
375
+ "set",
376
+ "@entity.name",
377
+ "@payload.row.name"
378
+ ],
379
+ [
380
+ "set",
381
+ "@entity.description",
382
+ "@payload.row.description"
383
+ ],
384
+ [
385
+ "set",
386
+ "@entity.criteria",
387
+ "@payload.row.criteria"
388
+ ],
389
+ [
390
+ "set",
391
+ "@entity.memberCount",
392
+ "@payload.row.memberCount"
393
+ ],
394
+ [
395
+ "set",
396
+ "@entity.lastUpdated",
397
+ "@payload.row.lastUpdated"
398
+ ],
399
+ [
400
+ "render-ui",
401
+ "main",
402
+ {
403
+ "gap": "md",
404
+ "children": [
405
+ {
406
+ "type": "stack",
407
+ "direction": "horizontal",
408
+ "gap": "sm",
409
+ "align": "center",
410
+ "children": [
411
+ {
412
+ "label": "Back",
413
+ "action": "CLOSE_VIEW",
414
+ "variant": "ghost",
415
+ "type": "button"
416
+ },
417
+ {
418
+ "type": "icon",
419
+ "name": "users"
420
+ },
421
+ {
422
+ "content": "@entity.name",
423
+ "type": "typography",
424
+ "variant": "h3"
425
+ },
426
+ {
427
+ "variant": "primary",
428
+ "label": "@entity.memberCount",
429
+ "type": "badge"
430
+ }
431
+ ]
432
+ },
433
+ {
434
+ "type": "divider"
435
+ },
436
+ {
437
+ "direction": "vertical",
438
+ "children": [
439
+ {
440
+ "type": "stack",
441
+ "direction": "horizontal",
442
+ "children": [
443
+ {
444
+ "type": "typography",
445
+ "color": "muted",
446
+ "variant": "caption",
447
+ "content": "Description"
448
+ },
449
+ {
450
+ "content": "@entity.description",
451
+ "variant": "body",
452
+ "type": "typography"
453
+ }
454
+ ],
455
+ "gap": "md"
456
+ },
457
+ {
458
+ "direction": "horizontal",
459
+ "gap": "md",
460
+ "children": [
461
+ {
462
+ "variant": "caption",
463
+ "content": "Criteria",
464
+ "type": "typography",
465
+ "color": "muted"
466
+ },
467
+ {
468
+ "variant": "body",
469
+ "content": "@entity.criteria",
470
+ "type": "typography"
471
+ }
472
+ ],
473
+ "type": "stack"
474
+ }
475
+ ],
476
+ "type": "stack",
477
+ "gap": "sm"
478
+ },
479
+ {
480
+ "type": "divider"
481
+ },
482
+ {
483
+ "type": "simple-grid",
484
+ "children": [
485
+ {
486
+ "icon": "users",
487
+ "label": "Members",
488
+ "value": "@entity.memberCount",
489
+ "type": "stat-display"
490
+ },
491
+ {
492
+ "label": "Last updated",
493
+ "icon": "calendar",
494
+ "type": "stat-display",
495
+ "value": "@entity.lastUpdated"
496
+ }
497
+ ],
498
+ "cols": 2.0
499
+ },
500
+ {
501
+ "children": [
502
+ {
503
+ "type": "button",
504
+ "actionPayload": {
505
+ "id": "@entity.id"
506
+ },
507
+ "label": "Recalculate",
508
+ "action": "RECALCULATE",
509
+ "variant": "primary"
510
+ }
511
+ ],
512
+ "direction": "horizontal",
513
+ "type": "stack",
514
+ "align": "center",
515
+ "gap": "sm"
516
+ }
517
+ ],
518
+ "direction": "vertical",
519
+ "type": "stack"
335
520
  }
336
521
  ]
337
522
  ]
338
523
  },
339
524
  {
340
525
  "from": "browsing",
341
- "to": "calculating",
526
+ "to": "loading",
342
527
  "event": "RECALCULATE",
343
528
  "effects": [
344
529
  [
@@ -346,42 +531,119 @@
346
531
  "@entity.id",
347
532
  "@payload.id"
348
533
  ],
534
+ [
535
+ "fetch",
536
+ "Segment",
537
+ {
538
+ "emit": {
539
+ "success": "SegmentLoaded",
540
+ "failure": "SegmentLoadFailed"
541
+ }
542
+ }
543
+ ],
349
544
  [
350
545
  "render-ui",
351
546
  "main",
352
547
  {
353
- "className": "py-12",
354
548
  "align": "center",
355
- "gap": "md",
549
+ "className": "py-12",
356
550
  "children": [
357
551
  {
358
552
  "type": "spinner"
359
553
  },
360
554
  {
361
- "type": "typography",
362
555
  "variant": "caption",
556
+ "type": "typography",
363
557
  "color": "muted",
364
558
  "content": "Recalculating segment…"
365
559
  }
366
560
  ],
561
+ "type": "stack",
367
562
  "direction": "vertical",
368
- "type": "stack"
563
+ "gap": "md"
369
564
  }
370
565
  ]
371
566
  ]
372
567
  },
373
568
  {
374
- "from": "calculating",
375
- "to": "browsing",
376
- "event": "SegmentRecalculated",
569
+ "from": "viewing_single",
570
+ "to": "loading",
571
+ "event": "CLOSE_VIEW",
377
572
  "effects": [
573
+ [
574
+ "fetch",
575
+ "Segment",
576
+ {
577
+ "emit": {
578
+ "failure": "SegmentLoadFailed",
579
+ "success": "SegmentLoaded"
580
+ }
581
+ }
582
+ ],
378
583
  [
379
584
  "render-ui",
380
585
  "main",
381
586
  {
382
- "type": "alert",
383
- "variant": "success",
384
- "message": "Segment recalculated"
587
+ "direction": "vertical",
588
+ "type": "stack",
589
+ "gap": "md",
590
+ "children": [
591
+ {
592
+ "type": "spinner"
593
+ },
594
+ {
595
+ "color": "muted",
596
+ "variant": "caption",
597
+ "type": "typography",
598
+ "content": "Loading segments…"
599
+ }
600
+ ],
601
+ "align": "center",
602
+ "className": "py-12"
603
+ }
604
+ ]
605
+ ]
606
+ },
607
+ {
608
+ "from": "viewing_single",
609
+ "to": "loading",
610
+ "event": "RECALCULATE",
611
+ "effects": [
612
+ [
613
+ "set",
614
+ "@entity.id",
615
+ "@payload.id"
616
+ ],
617
+ [
618
+ "fetch",
619
+ "Segment",
620
+ {
621
+ "emit": {
622
+ "success": "SegmentLoaded",
623
+ "failure": "SegmentLoadFailed"
624
+ }
625
+ }
626
+ ],
627
+ [
628
+ "render-ui",
629
+ "main",
630
+ {
631
+ "gap": "md",
632
+ "direction": "vertical",
633
+ "className": "py-12",
634
+ "children": [
635
+ {
636
+ "type": "spinner"
637
+ },
638
+ {
639
+ "type": "typography",
640
+ "color": "muted",
641
+ "variant": "caption",
642
+ "content": "Recalculating segment…"
643
+ }
644
+ ],
645
+ "align": "center",
646
+ "type": "stack"
385
647
  }
386
648
  ]
387
649
  ]