@almadar/std 14.3.0 → 14.4.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 (33) hide show
  1. package/behaviors/registry/app/organisms/std-api-gateway.orb +940 -807
  2. package/behaviors/registry/app/organisms/std-booking-system.orb +1281 -1148
  3. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +954 -821
  4. package/behaviors/registry/app/organisms/std-crm.orb +950 -817
  5. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1590 -1650
  6. package/behaviors/registry/app/organisms/std-ecommerce.orb +1145 -1012
  7. package/behaviors/registry/app/organisms/std-finance-tracker.orb +746 -613
  8. package/behaviors/registry/app/organisms/std-healthcare.orb +1655 -1522
  9. package/behaviors/registry/app/organisms/std-helpdesk.orb +865 -732
  10. package/behaviors/registry/app/organisms/std-hr-portal.orb +1364 -1231
  11. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +1522 -1503
  12. package/behaviors/registry/app/organisms/std-lms.orb +1060 -926
  13. package/behaviors/registry/app/organisms/std-project-manager.orb +926 -792
  14. package/behaviors/registry/app/organisms/std-realtime-chat.orb +886 -753
  15. package/behaviors/registry/app/organisms/std-social-feed.orb +403 -268
  16. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +1372 -1353
  17. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +940 -807
  18. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +1281 -1148
  19. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +954 -821
  20. package/dist/behaviors/registry/app/organisms/std-crm.orb +950 -817
  21. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1590 -1650
  22. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +1145 -1012
  23. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +746 -613
  24. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +1655 -1522
  25. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +865 -732
  26. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +1364 -1231
  27. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +1522 -1503
  28. package/dist/behaviors/registry/app/organisms/std-lms.orb +1060 -926
  29. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +926 -792
  30. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +886 -753
  31. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +403 -268
  32. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +1372 -1353
  33. package/package.json +1 -1
@@ -5,6 +5,12 @@
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "PostOrbital",
8
+ "uses": [
9
+ {
10
+ "from": "std/behaviors/std-app-layout",
11
+ "as": "AppShell"
12
+ }
13
+ ],
8
14
  "entity": {
9
15
  "name": "Post",
10
16
  "persistence": "runtime",
@@ -42,6 +48,33 @@
42
48
  ]
43
49
  },
44
50
  "traits": [
51
+ {
52
+ "ref": "AppShell.traits.AppLayout",
53
+ "name": "PostAppLayout",
54
+ "config": {
55
+ "appName": "SocialFeed",
56
+ "searchEvent": "POST_SEARCH",
57
+ "notifications": [],
58
+ "contentTrait": "@trait.PostBrowse",
59
+ "notificationClickEvent": "POST_NOTIFICATIONS_OPEN",
60
+ "navItems": [
61
+ {
62
+ "href": "/feed",
63
+ "icon": "layout-list",
64
+ "label": "Feed"
65
+ },
66
+ {
67
+ "label": "Messages",
68
+ "href": "/messages",
69
+ "icon": "message-circle"
70
+ }
71
+ ]
72
+ },
73
+ "events": {
74
+ "SEARCH": "POST_SEARCH",
75
+ "NOTIFY_CLICK": "POST_NOTIFICATIONS_OPEN"
76
+ }
77
+ },
45
78
  {
46
79
  "name": "PostBrowse",
47
80
  "category": "interaction",
@@ -170,6 +203,24 @@
170
203
  ]
171
204
  }
172
205
  ],
206
+ "listens": [
207
+ {
208
+ "event": "POST_SEARCH",
209
+ "triggers": "POST_SEARCH",
210
+ "source": {
211
+ "kind": "trait",
212
+ "trait": "PostAppLayout"
213
+ }
214
+ },
215
+ {
216
+ "event": "POST_NOTIFICATIONS_OPEN",
217
+ "triggers": "POST_NOTIFICATIONS_OPEN",
218
+ "source": {
219
+ "kind": "trait",
220
+ "trait": "PostAppLayout"
221
+ }
222
+ }
223
+ ],
173
224
  "stateMachine": {
174
225
  "states": [
175
226
  {
@@ -182,6 +233,26 @@
182
233
  "key": "INIT",
183
234
  "name": "Initialize"
184
235
  },
236
+ {
237
+ "key": "POST_SEARCH",
238
+ "name": "Post Search",
239
+ "payloadSchema": [
240
+ {
241
+ "name": "value",
242
+ "type": "string"
243
+ }
244
+ ]
245
+ },
246
+ {
247
+ "key": "POST_NOTIFICATIONS_OPEN",
248
+ "name": "Post Notifications Open",
249
+ "payloadSchema": [
250
+ {
251
+ "name": "id",
252
+ "type": "string"
253
+ }
254
+ ]
255
+ },
185
256
  {
186
257
  "key": "PostLoaded",
187
258
  "name": "Post loaded",
@@ -289,8 +360,8 @@
289
360
  "Post",
290
361
  {
291
362
  "emit": {
292
- "failure": "PostLoadFailed",
293
- "success": "PostLoaded"
363
+ "success": "PostLoaded",
364
+ "failure": "PostLoadFailed"
294
365
  }
295
366
  }
296
367
  ],
@@ -299,21 +370,21 @@
299
370
  "main",
300
371
  {
301
372
  "direction": "vertical",
302
- "type": "stack",
303
- "gap": "md",
304
373
  "className": "py-12",
374
+ "type": "stack",
305
375
  "align": "center",
306
376
  "children": [
307
377
  {
308
378
  "type": "spinner"
309
379
  },
310
380
  {
381
+ "type": "typography",
311
382
  "variant": "caption",
312
- "color": "muted",
313
383
  "content": "Loading…",
314
- "type": "typography"
384
+ "color": "muted"
315
385
  }
316
- ]
386
+ ],
387
+ "gap": "md"
317
388
  }
318
389
  ]
319
390
  ]
@@ -321,118 +392,179 @@
321
392
  {
322
393
  "from": "browsing",
323
394
  "to": "browsing",
324
- "event": "PostLoaded",
395
+ "event": "POST_SEARCH",
325
396
  "effects": [
397
+ [
398
+ "fetch",
399
+ "Post",
400
+ {
401
+ "emit": {
402
+ "success": "PostLoaded",
403
+ "failure": "PostLoadFailed"
404
+ }
405
+ }
406
+ ],
326
407
  [
327
408
  "render-ui",
328
409
  "main",
329
410
  {
330
- "type": "dashboard-layout",
331
- "navItems": [
411
+ "align": "center",
412
+ "type": "stack",
413
+ "children": [
332
414
  {
333
- "icon": "layout-list",
334
- "label": "Feed",
335
- "href": "/feed"
415
+ "type": "spinner"
336
416
  },
337
417
  {
338
- "href": "/messages",
339
- "label": "Messages",
340
- "icon": "message-circle"
418
+ "variant": "caption",
419
+ "color": "muted",
420
+ "type": "typography",
421
+ "content": "Searching…"
341
422
  }
342
423
  ],
424
+ "direction": "vertical",
425
+ "gap": "md",
426
+ "className": "py-12"
427
+ }
428
+ ]
429
+ ]
430
+ },
431
+ {
432
+ "from": "browsing",
433
+ "to": "browsing",
434
+ "event": "POST_NOTIFICATIONS_OPEN",
435
+ "effects": [
436
+ [
437
+ "render-ui",
438
+ "main",
439
+ {
440
+ "align": "center",
441
+ "type": "stack",
442
+ "className": "py-8",
343
443
  "children": [
344
444
  {
345
- "type": "stack",
445
+ "type": "icon",
446
+ "name": "bell"
447
+ },
448
+ {
449
+ "type": "typography",
450
+ "variant": "h3",
451
+ "content": "No notifications"
452
+ },
453
+ {
454
+ "content": "You're all caught up.",
455
+ "color": "muted",
456
+ "variant": "caption",
457
+ "type": "typography"
458
+ },
459
+ {
460
+ "variant": "ghost",
461
+ "label": "Back to feed",
462
+ "action": "INIT",
463
+ "type": "button"
464
+ }
465
+ ],
466
+ "direction": "vertical",
467
+ "gap": "md"
468
+ }
469
+ ]
470
+ ]
471
+ },
472
+ {
473
+ "from": "browsing",
474
+ "to": "browsing",
475
+ "event": "PostLoaded",
476
+ "effects": [
477
+ [
478
+ "render-ui",
479
+ "main",
480
+ {
481
+ "direction": "vertical",
482
+ "gap": "lg",
483
+ "children": [
484
+ {
485
+ "direction": "horizontal",
486
+ "gap": "md",
346
487
  "children": [
347
488
  {
489
+ "gap": "sm",
348
490
  "children": [
349
491
  {
350
- "children": [
351
- {
352
- "type": "icon",
353
- "name": "rss"
354
- },
355
- {
356
- "variant": "h2",
357
- "content": "Feed",
358
- "type": "typography"
359
- }
360
- ],
361
- "gap": "sm",
362
- "direction": "horizontal",
363
- "type": "stack",
364
- "align": "center"
492
+ "type": "icon",
493
+ "name": "rss"
365
494
  },
366
495
  {
367
- "type": "stack",
368
- "children": [
369
- {
370
- "icon": "plus",
371
- "action": "CREATE",
372
- "type": "button",
373
- "variant": "primary",
374
- "label": "New Post"
375
- }
376
- ],
377
- "gap": "sm",
378
- "direction": "horizontal"
496
+ "content": "Feed",
497
+ "type": "typography",
498
+ "variant": "h2"
379
499
  }
380
500
  ],
381
- "gap": "md",
382
501
  "direction": "horizontal",
383
- "justify": "between",
384
502
  "align": "center",
385
503
  "type": "stack"
386
504
  },
387
505
  {
388
- "type": "divider"
389
- },
390
- {
506
+ "direction": "horizontal",
391
507
  "gap": "sm",
392
- "type": "data-list",
393
- "fields": [
394
- {
395
- "name": "title",
396
- "variant": "h3",
397
- "icon": "rss"
398
- },
399
- {
400
- "format": "number",
401
- "variant": "badge",
402
- "name": "likes"
403
- },
404
- {
405
- "name": "author",
406
- "variant": "body"
407
- },
408
- {
409
- "variant": "body",
410
- "name": "content"
411
- },
508
+ "children": [
412
509
  {
413
- "label": "Posted",
414
- "name": "createdAt",
415
- "format": "date",
416
- "variant": "caption"
510
+ "type": "button",
511
+ "label": "New Post",
512
+ "variant": "primary",
513
+ "icon": "plus",
514
+ "action": "CREATE"
417
515
  }
418
516
  ],
419
- "variant": "card",
420
- "entity": "@payload.data",
421
- "itemActions": [
422
- {
423
- "label": "View",
424
- "variant": "ghost",
425
- "event": "VIEW"
426
- }
427
- ]
517
+ "type": "stack"
428
518
  }
429
519
  ],
430
- "direction": "vertical",
431
- "gap": "lg",
432
- "className": "max-w-5xl mx-auto w-full"
520
+ "justify": "between",
521
+ "type": "stack",
522
+ "align": "center"
523
+ },
524
+ {
525
+ "type": "divider"
526
+ },
527
+ {
528
+ "fields": [
529
+ {
530
+ "name": "title",
531
+ "variant": "h3",
532
+ "icon": "rss"
533
+ },
534
+ {
535
+ "name": "likes",
536
+ "variant": "badge",
537
+ "format": "number"
538
+ },
539
+ {
540
+ "name": "author",
541
+ "variant": "body"
542
+ },
543
+ {
544
+ "variant": "body",
545
+ "name": "content"
546
+ },
547
+ {
548
+ "variant": "caption",
549
+ "label": "Posted",
550
+ "name": "createdAt",
551
+ "format": "date"
552
+ }
553
+ ],
554
+ "type": "data-list",
555
+ "variant": "card",
556
+ "itemActions": [
557
+ {
558
+ "event": "VIEW",
559
+ "variant": "ghost",
560
+ "label": "View"
561
+ }
562
+ ],
563
+ "gap": "sm",
564
+ "entity": "@payload.data"
433
565
  }
434
566
  ],
435
- "appName": "SocialFeed"
567
+ "type": "stack"
436
568
  }
437
569
  ]
438
570
  ]
@@ -446,36 +578,36 @@
446
578
  "render-ui",
447
579
  "main",
448
580
  {
449
- "direction": "vertical",
450
- "align": "center",
451
- "className": "py-12",
452
- "gap": "md",
453
- "type": "stack",
454
581
  "children": [
455
582
  {
456
583
  "type": "icon",
457
- "name": "alert-triangle",
458
- "color": "destructive"
584
+ "color": "destructive",
585
+ "name": "alert-triangle"
459
586
  },
460
587
  {
461
588
  "variant": "h3",
462
- "type": "typography",
463
- "content": "Failed to load post"
589
+ "content": "Failed to load post",
590
+ "type": "typography"
464
591
  },
465
592
  {
466
- "color": "muted",
467
- "type": "typography",
468
593
  "variant": "body",
594
+ "type": "typography",
595
+ "color": "muted",
469
596
  "content": "@payload.error"
470
597
  },
471
598
  {
472
- "variant": "primary",
473
- "action": "INIT",
474
599
  "icon": "rotate-ccw",
475
600
  "label": "Retry",
476
- "type": "button"
601
+ "variant": "primary",
602
+ "type": "button",
603
+ "action": "INIT"
477
604
  }
478
- ]
605
+ ],
606
+ "type": "stack",
607
+ "className": "py-12",
608
+ "gap": "md",
609
+ "align": "center",
610
+ "direction": "vertical"
479
611
  }
480
612
  ]
481
613
  ]
@@ -644,8 +776,8 @@
644
776
  "Post",
645
777
  {
646
778
  "emit": {
647
- "success": "PostLoaded",
648
- "failure": "PostLoadFailed"
779
+ "failure": "PostLoadFailed",
780
+ "success": "PostLoaded"
649
781
  }
650
782
  }
651
783
  ]
@@ -671,41 +803,41 @@
671
803
  "modal",
672
804
  {
673
805
  "type": "stack",
674
- "direction": "vertical",
675
806
  "gap": "md",
676
807
  "children": [
677
808
  {
678
809
  "type": "stack",
810
+ "gap": "sm",
679
811
  "children": [
680
812
  {
681
813
  "type": "icon",
682
814
  "name": "plus-circle"
683
815
  },
684
816
  {
817
+ "variant": "h3",
685
818
  "type": "typography",
686
- "content": "Create Post",
687
- "variant": "h3"
819
+ "content": "Create Post"
688
820
  }
689
821
  ],
690
- "direction": "horizontal",
691
- "gap": "sm"
822
+ "direction": "horizontal"
692
823
  },
693
824
  {
694
825
  "type": "divider"
695
826
  },
696
827
  {
697
- "type": "form-section",
698
- "cancelEvent": "CLOSE",
699
828
  "submitEvent": "SAVE",
700
- "mode": "create",
701
829
  "fields": [
702
830
  "title",
703
831
  "content",
704
832
  "author",
705
833
  "likes"
706
- ]
834
+ ],
835
+ "type": "form-section",
836
+ "mode": "create",
837
+ "cancelEvent": "CLOSE"
707
838
  }
708
- ]
839
+ ],
840
+ "direction": "vertical"
709
841
  }
710
842
  ]
711
843
  ]
@@ -913,8 +1045,8 @@
913
1045
  "Post",
914
1046
  {
915
1047
  "emit": {
916
- "success": "PostLoaded",
917
- "failure": "PostLoadFailed"
1048
+ "failure": "PostLoadFailed",
1049
+ "success": "PostLoaded"
918
1050
  }
919
1051
  }
920
1052
  ]
@@ -930,8 +1062,8 @@
930
1062
  "Post",
931
1063
  {
932
1064
  "emit": {
933
- "failure": "PostLoadFailed",
934
- "success": "PostLoaded"
1065
+ "success": "PostLoaded",
1066
+ "failure": "PostLoadFailed"
935
1067
  },
936
1068
  "id": "@payload.id"
937
1069
  }
@@ -945,6 +1077,7 @@
945
1077
  "type": "stack",
946
1078
  "children": [
947
1079
  {
1080
+ "align": "center",
948
1081
  "gap": "sm",
949
1082
  "children": [
950
1083
  {
@@ -958,64 +1091,65 @@
958
1091
  }
959
1092
  ],
960
1093
  "type": "stack",
961
- "direction": "horizontal",
962
- "align": "center"
1094
+ "direction": "horizontal"
963
1095
  },
964
1096
  {
965
1097
  "type": "divider"
966
1098
  },
967
1099
  {
968
1100
  "direction": "horizontal",
1101
+ "type": "stack",
1102
+ "gap": "md",
969
1103
  "children": [
970
1104
  {
1105
+ "content": "Title",
971
1106
  "variant": "caption",
972
- "type": "typography",
973
- "content": "Title"
1107
+ "type": "typography"
974
1108
  },
975
1109
  {
976
1110
  "type": "typography",
977
1111
  "content": "@entity.title",
978
1112
  "variant": "body"
979
1113
  }
980
- ],
981
- "type": "stack",
982
- "gap": "md"
1114
+ ]
983
1115
  },
984
1116
  {
985
- "direction": "horizontal",
986
1117
  "type": "stack",
987
1118
  "children": [
988
1119
  {
989
- "type": "typography",
990
1120
  "variant": "caption",
1121
+ "type": "typography",
991
1122
  "content": "Content"
992
1123
  },
993
1124
  {
1125
+ "variant": "body",
994
1126
  "content": "@entity.content",
995
- "type": "typography",
996
- "variant": "body"
1127
+ "type": "typography"
997
1128
  }
998
1129
  ],
1130
+ "direction": "horizontal",
999
1131
  "gap": "md"
1000
1132
  },
1001
1133
  {
1134
+ "type": "stack",
1135
+ "gap": "md",
1002
1136
  "direction": "horizontal",
1003
1137
  "children": [
1004
1138
  {
1139
+ "variant": "caption",
1005
1140
  "type": "typography",
1006
- "content": "Author",
1007
- "variant": "caption"
1141
+ "content": "Author"
1008
1142
  },
1009
1143
  {
1010
- "content": "@entity.author",
1011
1144
  "type": "typography",
1012
- "variant": "body"
1145
+ "variant": "body",
1146
+ "content": "@entity.author"
1013
1147
  }
1014
- ],
1015
- "gap": "md",
1016
- "type": "stack"
1148
+ ]
1017
1149
  },
1018
1150
  {
1151
+ "gap": "md",
1152
+ "type": "stack",
1019
1153
  "direction": "horizontal",
1020
1154
  "children": [
1021
1155
  {
@@ -1025,46 +1159,44 @@
1025
1159
  },
1026
1160
  {
1027
1161
  "variant": "body",
1028
- "content": "@entity.createdAt",
1029
- "type": "typography"
1162
+ "type": "typography",
1163
+ "content": "@entity.createdAt"
1030
1164
  }
1031
- ],
1032
- "gap": "md",
1033
- "type": "stack"
1165
+ ]
1034
1166
  },
1035
1167
  {
1036
- "direction": "horizontal",
1037
1168
  "gap": "md",
1038
- "type": "stack",
1039
1169
  "children": [
1040
1170
  {
1171
+ "content": "Likes",
1041
1172
  "type": "typography",
1042
- "variant": "caption",
1043
- "content": "Likes"
1173
+ "variant": "caption"
1044
1174
  },
1045
1175
  {
1046
- "content": "@entity.likes",
1047
1176
  "variant": "body",
1048
- "type": "typography"
1177
+ "type": "typography",
1178
+ "content": "@entity.likes"
1049
1179
  }
1050
- ]
1180
+ ],
1181
+ "type": "stack",
1182
+ "direction": "horizontal"
1051
1183
  },
1052
1184
  {
1053
1185
  "type": "divider"
1054
1186
  },
1055
1187
  {
1188
+ "gap": "sm",
1189
+ "justify": "end",
1056
1190
  "direction": "horizontal",
1057
1191
  "type": "stack",
1058
1192
  "children": [
1059
1193
  {
1060
- "action": "CLOSE",
1061
1194
  "type": "button",
1062
1195
  "label": "Close",
1063
- "variant": "ghost"
1196
+ "variant": "ghost",
1197
+ "action": "CLOSE"
1064
1198
  }
1065
- ],
1066
- "justify": "end",
1067
- "gap": "sm"
1199
+ ]
1068
1200
  }
1069
1201
  ]
1070
1202
  }
@@ -1124,6 +1256,9 @@
1124
1256
  "name": "FeedPage",
1125
1257
  "path": "/feed",
1126
1258
  "traits": [
1259
+ {
1260
+ "ref": "PostAppLayout"
1261
+ },
1127
1262
  {
1128
1263
  "ref": "PostBrowse"
1129
1264
  },
@@ -1319,22 +1454,22 @@
1319
1454
  "render-ui",
1320
1455
  "main",
1321
1456
  {
1322
- "gap": "md",
1323
- "align": "center",
1324
- "type": "stack",
1325
- "direction": "vertical",
1326
- "className": "py-12",
1327
1457
  "children": [
1328
1458
  {
1329
1459
  "type": "spinner"
1330
1460
  },
1331
1461
  {
1332
- "color": "muted",
1333
- "variant": "caption",
1334
1462
  "content": "Loading…",
1335
- "type": "typography"
1463
+ "type": "typography",
1464
+ "variant": "caption",
1465
+ "color": "muted"
1336
1466
  }
1337
- ]
1467
+ ],
1468
+ "type": "stack",
1469
+ "gap": "md",
1470
+ "align": "center",
1471
+ "className": "py-12",
1472
+ "direction": "vertical"
1338
1473
  }
1339
1474
  ]
1340
1475
  ]
@@ -1349,99 +1484,99 @@
1349
1484
  "main",
1350
1485
  {
1351
1486
  "type": "dashboard-layout",
1487
+ "appName": "SocialFeed",
1352
1488
  "children": [
1353
1489
  {
1490
+ "gap": "lg",
1354
1491
  "className": "max-w-5xl mx-auto w-full",
1355
- "type": "stack",
1356
1492
  "direction": "vertical",
1357
1493
  "children": [
1358
1494
  {
1495
+ "justify": "between",
1496
+ "gap": "md",
1497
+ "align": "center",
1498
+ "direction": "horizontal",
1499
+ "type": "stack",
1359
1500
  "children": [
1360
1501
  {
1502
+ "direction": "horizontal",
1503
+ "gap": "sm",
1504
+ "type": "stack",
1505
+ "align": "center",
1361
1506
  "children": [
1362
1507
  {
1363
1508
  "type": "icon",
1364
1509
  "name": "message-circle"
1365
1510
  },
1366
1511
  {
1367
- "variant": "h2",
1512
+ "type": "typography",
1368
1513
  "content": "Messages",
1369
- "type": "typography"
1514
+ "variant": "h2"
1370
1515
  }
1371
- ],
1372
- "align": "center",
1373
- "type": "stack",
1374
- "direction": "horizontal",
1375
- "gap": "sm"
1516
+ ]
1376
1517
  },
1377
1518
  {
1378
- "direction": "horizontal",
1379
1519
  "gap": "sm",
1520
+ "type": "stack",
1521
+ "direction": "horizontal",
1380
1522
  "children": [
1381
1523
  {
1382
- "variant": "primary",
1383
1524
  "icon": "edit",
1384
- "type": "button",
1525
+ "action": "COMPOSE",
1385
1526
  "label": "Compose",
1386
- "action": "COMPOSE"
1527
+ "variant": "primary",
1528
+ "type": "button"
1387
1529
  }
1388
- ],
1389
- "type": "stack"
1530
+ ]
1390
1531
  }
1391
- ],
1392
- "align": "center",
1393
- "gap": "md",
1394
- "direction": "horizontal",
1395
- "type": "stack",
1396
- "justify": "between"
1532
+ ]
1397
1533
  },
1398
1534
  {
1399
1535
  "type": "divider"
1400
1536
  },
1401
1537
  {
1402
- "entity": "@payload.data",
1403
- "gap": "sm",
1538
+ "itemActions": [
1539
+ {
1540
+ "label": "View",
1541
+ "event": "VIEW",
1542
+ "variant": "ghost"
1543
+ }
1544
+ ],
1404
1545
  "type": "data-list",
1546
+ "entity": "@payload.data",
1405
1547
  "fields": [
1406
1548
  {
1407
- "icon": "message-circle",
1549
+ "variant": "h4",
1408
1550
  "name": "author",
1409
- "variant": "h4"
1551
+ "icon": "message-circle"
1410
1552
  },
1411
1553
  {
1412
- "name": "body",
1413
- "variant": "body"
1554
+ "variant": "body",
1555
+ "name": "body"
1414
1556
  },
1415
1557
  {
1416
1558
  "variant": "caption",
1417
- "format": "date",
1418
- "name": "createdAt"
1559
+ "name": "createdAt",
1560
+ "format": "date"
1419
1561
  }
1420
1562
  ],
1421
- "variant": "card",
1422
- "itemActions": [
1423
- {
1424
- "event": "VIEW",
1425
- "label": "View",
1426
- "variant": "ghost"
1427
- }
1428
- ]
1563
+ "gap": "sm",
1564
+ "variant": "card"
1429
1565
  }
1430
1566
  ],
1431
- "gap": "lg"
1567
+ "type": "stack"
1432
1568
  }
1433
1569
  ],
1434
- "appName": "SocialFeed",
1435
1570
  "navItems": [
1436
1571
  {
1437
- "href": "/feed",
1438
1572
  "icon": "layout-list",
1439
- "label": "Feed"
1573
+ "label": "Feed",
1574
+ "href": "/feed"
1440
1575
  },
1441
1576
  {
1442
1577
  "icon": "message-circle",
1443
- "label": "Messages",
1444
- "href": "/messages"
1578
+ "href": "/messages",
1579
+ "label": "Messages"
1445
1580
  }
1446
1581
  ]
1447
1582
  }
@@ -1457,36 +1592,36 @@
1457
1592
  "render-ui",
1458
1593
  "main",
1459
1594
  {
1460
- "gap": "md",
1461
- "type": "stack",
1462
- "align": "center",
1463
- "className": "py-12",
1464
- "direction": "vertical",
1465
1595
  "children": [
1466
1596
  {
1467
- "color": "destructive",
1468
1597
  "type": "icon",
1598
+ "color": "destructive",
1469
1599
  "name": "alert-triangle"
1470
1600
  },
1471
1601
  {
1472
- "type": "typography",
1473
1602
  "variant": "h3",
1603
+ "type": "typography",
1474
1604
  "content": "Failed to load comment"
1475
1605
  },
1476
1606
  {
1607
+ "content": "@payload.error",
1477
1608
  "variant": "body",
1478
1609
  "type": "typography",
1479
- "content": "@payload.error",
1480
1610
  "color": "muted"
1481
1611
  },
1482
1612
  {
1483
- "label": "Retry",
1484
1613
  "icon": "rotate-ccw",
1614
+ "label": "Retry",
1615
+ "variant": "primary",
1485
1616
  "type": "button",
1486
- "action": "INIT",
1487
- "variant": "primary"
1617
+ "action": "INIT"
1488
1618
  }
1489
- ]
1619
+ ],
1620
+ "direction": "vertical",
1621
+ "className": "py-12",
1622
+ "gap": "md",
1623
+ "type": "stack",
1624
+ "align": "center"
1490
1625
  }
1491
1626
  ]
1492
1627
  ]
@@ -1673,41 +1808,41 @@
1673
1808
  "render-ui",
1674
1809
  "modal",
1675
1810
  {
1676
- "type": "stack",
1811
+ "direction": "vertical",
1812
+ "gap": "md",
1677
1813
  "children": [
1678
1814
  {
1679
- "gap": "sm",
1680
- "type": "stack",
1681
1815
  "children": [
1682
1816
  {
1683
1817
  "type": "icon",
1684
1818
  "name": "edit"
1685
1819
  },
1686
1820
  {
1821
+ "type": "typography",
1687
1822
  "content": "New Comment",
1688
- "variant": "h3",
1689
- "type": "typography"
1823
+ "variant": "h3"
1690
1824
  }
1691
1825
  ],
1692
- "direction": "horizontal"
1826
+ "gap": "sm",
1827
+ "direction": "horizontal",
1828
+ "type": "stack"
1693
1829
  },
1694
1830
  {
1695
1831
  "type": "divider"
1696
1832
  },
1697
1833
  {
1698
- "submitEvent": "SEND",
1699
- "mode": "create",
1834
+ "cancelEvent": "CLOSE",
1700
1835
  "fields": [
1701
1836
  "body",
1702
1837
  "author",
1703
1838
  "postId"
1704
1839
  ],
1705
- "type": "form-section",
1706
- "cancelEvent": "CLOSE"
1840
+ "mode": "create",
1841
+ "submitEvent": "SEND",
1842
+ "type": "form-section"
1707
1843
  }
1708
1844
  ],
1709
- "gap": "md",
1710
- "direction": "vertical"
1845
+ "type": "stack"
1711
1846
  }
1712
1847
  ]
1713
1848
  ]
@@ -1918,22 +2053,21 @@
1918
2053
  "fetch",
1919
2054
  "Comment",
1920
2055
  {
1921
- "id": "@payload.id",
1922
2056
  "emit": {
1923
2057
  "failure": "CommentLoadFailed",
1924
2058
  "success": "CommentLoaded"
1925
- }
2059
+ },
2060
+ "id": "@payload.id"
1926
2061
  }
1927
2062
  ],
1928
2063
  [
1929
2064
  "render-ui",
1930
2065
  "modal",
1931
2066
  {
1932
- "direction": "vertical",
1933
- "gap": "md",
1934
- "type": "stack",
1935
2067
  "children": [
1936
2068
  {
2069
+ "align": "center",
2070
+ "type": "stack",
1937
2071
  "children": [
1938
2072
  {
1939
2073
  "name": "eye",
@@ -1941,14 +2075,12 @@
1941
2075
  },
1942
2076
  {
1943
2077
  "variant": "h3",
1944
- "content": "@entity.body",
1945
- "type": "typography"
2078
+ "type": "typography",
2079
+ "content": "@entity.body"
1946
2080
  }
1947
2081
  ],
1948
- "direction": "horizontal",
1949
2082
  "gap": "sm",
1950
- "type": "stack",
1951
- "align": "center"
2083
+ "direction": "horizontal"
1952
2084
  },
1953
2085
  {
1954
2086
  "type": "divider"
@@ -1956,39 +2088,39 @@
1956
2088
  {
1957
2089
  "gap": "md",
1958
2090
  "direction": "horizontal",
2091
+ "type": "stack",
1959
2092
  "children": [
1960
2093
  {
1961
- "variant": "caption",
2094
+ "content": "Body",
1962
2095
  "type": "typography",
1963
- "content": "Body"
2096
+ "variant": "caption"
1964
2097
  },
1965
2098
  {
2099
+ "content": "@entity.body",
1966
2100
  "variant": "body",
1967
- "type": "typography",
1968
- "content": "@entity.body"
2101
+ "type": "typography"
1969
2102
  }
1970
- ],
1971
- "type": "stack"
2103
+ ]
1972
2104
  },
1973
2105
  {
1974
- "type": "stack",
2106
+ "gap": "md",
1975
2107
  "children": [
1976
2108
  {
1977
- "variant": "caption",
1978
2109
  "content": "Author",
1979
- "type": "typography"
2110
+ "type": "typography",
2111
+ "variant": "caption"
1980
2112
  },
1981
2113
  {
1982
- "content": "@entity.author",
1983
2114
  "variant": "body",
1984
- "type": "typography"
2115
+ "type": "typography",
2116
+ "content": "@entity.author"
1985
2117
  }
1986
2118
  ],
1987
- "gap": "md",
2119
+ "type": "stack",
1988
2120
  "direction": "horizontal"
1989
2121
  },
1990
2122
  {
1991
- "type": "stack",
2123
+ "gap": "md",
1992
2124
  "direction": "horizontal",
1993
2125
  "children": [
1994
2126
  {
@@ -1997,48 +2129,51 @@
1997
2129
  "variant": "caption"
1998
2130
  },
1999
2131
  {
2132
+ "type": "typography",
2000
2133
  "variant": "body",
2001
- "content": "@entity.postId",
2002
- "type": "typography"
2134
+ "content": "@entity.postId"
2003
2135
  }
2004
2136
  ],
2005
- "gap": "md"
2137
+ "type": "stack"
2006
2138
  },
2007
2139
  {
2008
- "direction": "horizontal",
2140
+ "type": "stack",
2009
2141
  "children": [
2010
2142
  {
2143
+ "type": "typography",
2011
2144
  "content": "Created At",
2012
- "variant": "caption",
2013
- "type": "typography"
2145
+ "variant": "caption"
2014
2146
  },
2015
2147
  {
2016
- "type": "typography",
2017
2148
  "variant": "body",
2018
- "content": "@entity.createdAt"
2149
+ "content": "@entity.createdAt",
2150
+ "type": "typography"
2019
2151
  }
2020
2152
  ],
2021
- "type": "stack",
2022
- "gap": "md"
2153
+ "gap": "md",
2154
+ "direction": "horizontal"
2023
2155
  },
2024
2156
  {
2025
2157
  "type": "divider"
2026
2158
  },
2027
2159
  {
2160
+ "justify": "end",
2161
+ "type": "stack",
2162
+ "direction": "horizontal",
2163
+ "gap": "sm",
2028
2164
  "children": [
2029
2165
  {
2030
- "variant": "ghost",
2031
- "label": "Close",
2032
2166
  "type": "button",
2167
+ "label": "Close",
2168
+ "variant": "ghost",
2033
2169
  "action": "CLOSE"
2034
2170
  }
2035
- ],
2036
- "gap": "sm",
2037
- "direction": "horizontal",
2038
- "justify": "end",
2039
- "type": "stack"
2171
+ ]
2040
2172
  }
2041
- ]
2173
+ ],
2174
+ "gap": "md",
2175
+ "direction": "vertical",
2176
+ "type": "stack"
2042
2177
  }
2043
2178
  ]
2044
2179
  ]