@almadar/std 14.16.0 → 14.17.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 (121) hide show
  1. package/behaviors/registry/app/atoms/std-branching-logic.orb +84 -84
  2. package/behaviors/registry/app/atoms/std-checkin.orb +60 -60
  3. package/behaviors/registry/app/atoms/std-dunning.orb +44 -44
  4. package/behaviors/registry/app/atoms/std-event.orb +62 -62
  5. package/behaviors/registry/app/atoms/std-flag.orb +72 -72
  6. package/behaviors/registry/app/atoms/std-geosearch.orb +29 -29
  7. package/behaviors/registry/app/atoms/std-image-upload-multi.orb +54 -56
  8. package/behaviors/registry/app/atoms/std-invoice.orb +124 -124
  9. package/behaviors/registry/app/atoms/std-kitchen-display.orb +58 -58
  10. package/behaviors/registry/app/atoms/std-menu.orb +44 -44
  11. package/behaviors/registry/app/atoms/std-mod-queue.orb +38 -38
  12. package/behaviors/registry/app/atoms/std-modifier-group.orb +56 -56
  13. package/behaviors/registry/app/atoms/std-page-tree.orb +55 -55
  14. package/behaviors/registry/app/atoms/std-payout-ledger.orb +66 -66
  15. package/behaviors/registry/app/atoms/std-question-bank.orb +62 -62
  16. package/behaviors/registry/app/atoms/std-rating-review.orb +67 -67
  17. package/behaviors/registry/app/atoms/std-recurring-charge.orb +74 -74
  18. package/behaviors/registry/app/atoms/std-response-collector.orb +44 -44
  19. package/behaviors/registry/app/atoms/std-rich-editor.orb +68 -68
  20. package/behaviors/registry/app/atoms/std-route-optimize.orb +49 -49
  21. package/behaviors/registry/app/atoms/std-saved-search.orb +72 -72
  22. package/behaviors/registry/app/atoms/std-signature-capture.orb +86 -86
  23. package/behaviors/registry/app/atoms/std-table-map.orb +46 -46
  24. package/behaviors/registry/app/atoms/std-tag-taxonomy.orb +73 -92
  25. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +42 -42
  26. package/behaviors/registry/app/atoms/std-thread.orb +59 -59
  27. package/behaviors/registry/app/atoms/std-ticket-tier.orb +53 -53
  28. package/behaviors/registry/app/atoms/std-trial.orb +67 -67
  29. package/behaviors/registry/app/atoms/std-version-history.orb +93 -93
  30. package/behaviors/registry/app/atoms/std-vote.orb +40 -40
  31. package/behaviors/registry/app/atoms/std-waitlist.orb +50 -50
  32. package/behaviors/registry/app/atoms/std-work-order.orb +48 -48
  33. package/behaviors/registry/app/organisms/std-api-gateway.orb +201 -201
  34. package/behaviors/registry/app/organisms/std-booking-system.orb +676 -676
  35. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +285 -285
  36. package/behaviors/registry/app/organisms/std-cms.orb +265 -265
  37. package/behaviors/registry/app/organisms/std-coding-academy.orb +179 -179
  38. package/behaviors/registry/app/organisms/std-crm.orb +258 -258
  39. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +403 -403
  40. package/behaviors/registry/app/organisms/std-ecommerce.orb +681 -681
  41. package/behaviors/registry/app/organisms/std-event-ticketing.orb +217 -217
  42. package/behaviors/registry/app/organisms/std-field-service.orb +190 -190
  43. package/behaviors/registry/app/organisms/std-finance-tracker.orb +205 -205
  44. package/behaviors/registry/app/organisms/std-forum.orb +141 -141
  45. package/behaviors/registry/app/organisms/std-healthcare.orb +540 -540
  46. package/behaviors/registry/app/organisms/std-helpdesk.orb +175 -175
  47. package/behaviors/registry/app/organisms/std-hr-portal.orb +444 -444
  48. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +344 -344
  49. package/behaviors/registry/app/organisms/std-listings.orb +157 -157
  50. package/behaviors/registry/app/organisms/std-lms.orb +422 -422
  51. package/behaviors/registry/app/organisms/std-marketplace.orb +232 -234
  52. package/behaviors/registry/app/organisms/std-project-manager.orb +193 -193
  53. package/behaviors/registry/app/organisms/std-realtime-chat.orb +248 -248
  54. package/behaviors/registry/app/organisms/std-restaurant-pos.orb +134 -134
  55. package/behaviors/registry/app/organisms/std-social-feed.orb +156 -156
  56. package/behaviors/registry/app/organisms/std-subscription-billing.orb +183 -183
  57. package/behaviors/registry/app/organisms/std-survey.orb +122 -122
  58. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +274 -274
  59. package/behaviors/registry/app/organisms/std-wiki.orb +144 -144
  60. package/dist/behaviors/behaviors-registry.json +1 -1
  61. package/dist/behaviors/registry/app/atoms/std-branching-logic.orb +84 -84
  62. package/dist/behaviors/registry/app/atoms/std-checkin.orb +60 -60
  63. package/dist/behaviors/registry/app/atoms/std-dunning.orb +44 -44
  64. package/dist/behaviors/registry/app/atoms/std-event.orb +62 -62
  65. package/dist/behaviors/registry/app/atoms/std-flag.orb +72 -72
  66. package/dist/behaviors/registry/app/atoms/std-geosearch.orb +29 -29
  67. package/dist/behaviors/registry/app/atoms/std-image-upload-multi.orb +54 -56
  68. package/dist/behaviors/registry/app/atoms/std-invoice.orb +124 -124
  69. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +58 -58
  70. package/dist/behaviors/registry/app/atoms/std-menu.orb +44 -44
  71. package/dist/behaviors/registry/app/atoms/std-mod-queue.orb +38 -38
  72. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +56 -56
  73. package/dist/behaviors/registry/app/atoms/std-page-tree.orb +55 -55
  74. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +66 -66
  75. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +62 -62
  76. package/dist/behaviors/registry/app/atoms/std-rating-review.orb +67 -67
  77. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +74 -74
  78. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +44 -44
  79. package/dist/behaviors/registry/app/atoms/std-rich-editor.orb +68 -68
  80. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +49 -49
  81. package/dist/behaviors/registry/app/atoms/std-saved-search.orb +72 -72
  82. package/dist/behaviors/registry/app/atoms/std-signature-capture.orb +86 -86
  83. package/dist/behaviors/registry/app/atoms/std-table-map.orb +46 -46
  84. package/dist/behaviors/registry/app/atoms/std-tag-taxonomy.orb +73 -92
  85. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +42 -42
  86. package/dist/behaviors/registry/app/atoms/std-thread.orb +59 -59
  87. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +53 -53
  88. package/dist/behaviors/registry/app/atoms/std-trial.orb +67 -67
  89. package/dist/behaviors/registry/app/atoms/std-version-history.orb +93 -93
  90. package/dist/behaviors/registry/app/atoms/std-vote.orb +40 -40
  91. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +50 -50
  92. package/dist/behaviors/registry/app/atoms/std-work-order.orb +48 -48
  93. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +201 -201
  94. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +676 -676
  95. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +285 -285
  96. package/dist/behaviors/registry/app/organisms/std-cms.orb +265 -265
  97. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +179 -179
  98. package/dist/behaviors/registry/app/organisms/std-crm.orb +258 -258
  99. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +403 -403
  100. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +681 -681
  101. package/dist/behaviors/registry/app/organisms/std-event-ticketing.orb +217 -217
  102. package/dist/behaviors/registry/app/organisms/std-field-service.orb +190 -190
  103. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +205 -205
  104. package/dist/behaviors/registry/app/organisms/std-forum.orb +141 -141
  105. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +540 -540
  106. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +175 -175
  107. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +444 -444
  108. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +344 -344
  109. package/dist/behaviors/registry/app/organisms/std-listings.orb +157 -157
  110. package/dist/behaviors/registry/app/organisms/std-lms.orb +422 -422
  111. package/dist/behaviors/registry/app/organisms/std-marketplace.orb +232 -234
  112. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +193 -193
  113. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +248 -248
  114. package/dist/behaviors/registry/app/organisms/std-restaurant-pos.orb +134 -134
  115. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +156 -156
  116. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +183 -183
  117. package/dist/behaviors/registry/app/organisms/std-survey.orb +122 -122
  118. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +274 -274
  119. package/dist/behaviors/registry/app/organisms/std-wiki.orb +144 -144
  120. package/dist/behaviors-registry.json +1 -1
  121. package/package.json +1 -1
@@ -80,10 +80,8 @@
80
80
  "ref": "AppShell.traits.AppLayout",
81
81
  "name": "ChatAppLayout",
82
82
  "config": {
83
- "contentTrait": "@trait.ChatRoom",
84
- "notifications": [],
85
- "notificationClickEvent": "CHAT_NOTIFICATIONS_OPEN",
86
83
  "appName": "Realtime Chat",
84
+ "notifications": [],
87
85
  "navItems": [
88
86
  {
89
87
  "label": "Chat",
@@ -91,17 +89,19 @@
91
89
  "icon": "message-circle"
92
90
  },
93
91
  {
92
+ "label": "Channels",
94
93
  "href": "/channels",
95
- "icon": "hash",
96
- "label": "Channels"
94
+ "icon": "hash"
97
95
  },
98
96
  {
99
- "icon": "users",
100
97
  "label": "Online",
101
- "href": "/online"
98
+ "href": "/online",
99
+ "icon": "users"
102
100
  }
103
101
  ],
104
- "searchEvent": "CHAT_SEARCH"
102
+ "searchEvent": "CHAT_SEARCH",
103
+ "contentTrait": "@trait.ChatRoom",
104
+ "notificationClickEvent": "CHAT_NOTIFICATIONS_OPEN"
105
105
  },
106
106
  "events": {
107
107
  "NOTIFY_CLICK": "CHAT_NOTIFICATIONS_OPEN",
@@ -188,46 +188,48 @@
188
188
  "render-ui",
189
189
  "main",
190
190
  {
191
+ "type": "stack",
192
+ "gap": "lg",
191
193
  "direction": "vertical",
192
194
  "children": [
193
195
  {
196
+ "direction": "horizontal",
197
+ "type": "stack",
194
198
  "gap": "md",
199
+ "align": "center",
195
200
  "children": [
196
201
  {
202
+ "type": "stack",
203
+ "gap": "sm",
204
+ "direction": "horizontal",
205
+ "align": "center",
197
206
  "children": [
198
207
  {
199
208
  "type": "icon",
200
209
  "name": "message-circle"
201
210
  },
202
211
  {
203
- "type": "typography",
204
212
  "content": "Chat",
213
+ "type": "typography",
205
214
  "variant": "h2"
206
215
  }
207
- ],
208
- "type": "stack",
209
- "gap": "sm",
210
- "direction": "horizontal",
211
- "align": "center"
216
+ ]
212
217
  },
213
218
  {
214
219
  "direction": "horizontal",
215
220
  "children": [
216
221
  {
217
- "action": "CREATE_CHANNEL",
218
- "icon": "plus",
219
222
  "variant": "primary",
223
+ "icon": "plus",
224
+ "type": "button",
220
225
  "label": "New Channel",
221
- "type": "button"
226
+ "action": "CREATE_CHANNEL"
222
227
  }
223
228
  ],
224
- "type": "stack",
225
- "gap": "sm"
229
+ "gap": "sm",
230
+ "type": "stack"
226
231
  }
227
232
  ],
228
- "align": "center",
229
- "direction": "horizontal",
230
- "type": "stack",
231
233
  "justify": "between"
232
234
  },
233
235
  {
@@ -239,9 +241,7 @@
239
241
  "type": "divider"
240
242
  },
241
243
  "@trait.ChatMessageBrowse"
242
- ],
243
- "type": "stack",
244
- "gap": "lg"
244
+ ]
245
245
  }
246
246
  ]
247
247
  ]
@@ -260,9 +260,6 @@
260
260
  "render-ui",
261
261
  "main",
262
262
  {
263
- "direction": "vertical",
264
- "type": "stack",
265
- "gap": "md",
266
263
  "children": [
267
264
  {
268
265
  "type": "icon",
@@ -270,24 +267,27 @@
270
267
  },
271
268
  {
272
269
  "type": "typography",
273
- "content": "No notifications",
274
- "variant": "h3"
270
+ "variant": "h3",
271
+ "content": "No notifications"
275
272
  },
276
273
  {
277
274
  "variant": "caption",
278
- "content": "You're all caught up.",
275
+ "color": "muted",
279
276
  "type": "typography",
280
- "color": "muted"
277
+ "content": "You're all caught up."
281
278
  },
282
279
  {
283
- "type": "button",
284
- "variant": "ghost",
285
280
  "action": "INIT",
281
+ "variant": "ghost",
282
+ "type": "button",
286
283
  "label": "Back to chat"
287
284
  }
288
285
  ],
286
+ "direction": "vertical",
287
+ "gap": "md",
288
+ "align": "center",
289
289
  "className": "py-8",
290
- "align": "center"
290
+ "type": "stack"
291
291
  }
292
292
  ]
293
293
  ]
@@ -308,30 +308,30 @@
308
308
  "ref": "Stats.traits.StatsItemStats",
309
309
  "name": "ChatStats",
310
310
  "config": {
311
- "title": "Chat Activity",
312
311
  "metrics": [
313
312
  {
314
- "variant": "primary",
315
- "icon": "message-circle",
316
- "label": "Messages",
317
313
  "format": "number",
318
- "aggregation": "count"
314
+ "label": "Messages",
315
+ "aggregation": "count",
316
+ "variant": "primary",
317
+ "icon": "message-circle"
319
318
  },
320
319
  {
320
+ "variant": "info",
321
321
  "format": "number",
322
- "label": "Active Channels",
323
322
  "aggregation": "count",
324
- "variant": "info",
323
+ "label": "Active Channels",
325
324
  "icon": "hash"
326
325
  },
327
326
  {
328
327
  "icon": "user",
329
328
  "variant": "success",
330
- "label": "Top Author",
329
+ "aggregation": "count",
331
330
  "format": "number",
332
- "aggregation": "count"
331
+ "label": "Top Author"
333
332
  }
334
- ]
333
+ ],
334
+ "title": "Chat Activity"
335
335
  },
336
336
  "listens": [
337
337
  {
@@ -502,8 +502,8 @@
502
502
  "ChatMessage",
503
503
  {
504
504
  "emit": {
505
- "success": "ChatMessageLoaded",
506
- "failure": "ChatMessageLoadFailed"
505
+ "failure": "ChatMessageLoadFailed",
506
+ "success": "ChatMessageLoaded"
507
507
  }
508
508
  }
509
509
  ],
@@ -511,22 +511,22 @@
511
511
  "render-ui",
512
512
  "main",
513
513
  {
514
- "gap": "md",
515
- "align": "center",
516
- "type": "stack",
517
- "direction": "vertical",
518
- "className": "py-12",
519
514
  "children": [
520
515
  {
521
516
  "type": "spinner"
522
517
  },
523
518
  {
524
- "color": "muted",
525
- "variant": "caption",
519
+ "content": "Loading…",
526
520
  "type": "typography",
527
- "content": "Loading…"
521
+ "color": "muted",
522
+ "variant": "caption"
528
523
  }
529
- ]
524
+ ],
525
+ "type": "stack",
526
+ "className": "py-12",
527
+ "gap": "md",
528
+ "align": "center",
529
+ "direction": "vertical"
530
530
  }
531
531
  ]
532
532
  ]
@@ -560,52 +560,52 @@
560
560
  "children": [
561
561
  {
562
562
  "entity": "@payload.data",
563
- "gap": "sm",
564
563
  "itemActions": [
565
564
  {
566
- "label": "View",
565
+ "event": "VIEW",
567
566
  "variant": "ghost",
568
- "event": "VIEW"
567
+ "label": "View"
569
568
  }
570
569
  ],
571
- "type": "data-list",
572
570
  "fields": [
573
571
  {
574
- "variant": "h4",
575
- "name": "sender"
572
+ "name": "sender",
573
+ "variant": "h4"
576
574
  },
577
575
  {
578
- "variant": "body",
579
- "name": "content"
576
+ "name": "content",
577
+ "variant": "body"
580
578
  },
581
579
  {
582
- "name": "timestamp",
580
+ "format": "date",
583
581
  "variant": "caption",
584
- "format": "date"
582
+ "name": "timestamp"
585
583
  }
586
584
  ],
585
+ "type": "data-list",
587
586
  "variant": "message",
588
- "senderField": "sender"
587
+ "senderField": "sender",
588
+ "gap": "sm"
589
589
  },
590
590
  {
591
591
  "direction": "horizontal",
592
- "gap": "sm",
593
- "justify": "end",
594
592
  "children": [
595
593
  {
594
+ "type": "button",
595
+ "action": "COMPOSE",
596
596
  "variant": "primary",
597
- "label": "Compose",
598
597
  "icon": "edit",
599
- "type": "button",
600
- "action": "COMPOSE"
598
+ "label": "Compose"
601
599
  }
602
600
  ],
603
- "type": "stack"
601
+ "gap": "sm",
602
+ "type": "stack",
603
+ "justify": "end"
604
604
  }
605
605
  ],
606
- "gap": "md",
606
+ "direction": "vertical",
607
607
  "type": "stack",
608
- "direction": "vertical"
608
+ "gap": "md"
609
609
  }
610
610
  ]
611
611
  ]
@@ -620,25 +620,25 @@
620
620
  "main",
621
621
  {
622
622
  "align": "center",
623
- "direction": "vertical",
623
+ "className": "py-12",
624
624
  "gap": "md",
625
625
  "type": "stack",
626
- "className": "py-12",
626
+ "direction": "vertical",
627
627
  "children": [
628
628
  {
629
- "name": "alert-triangle",
629
+ "type": "icon",
630
630
  "color": "destructive",
631
- "type": "icon"
631
+ "name": "alert-triangle"
632
632
  },
633
633
  {
634
- "content": "Failed to load messages",
634
+ "type": "typography",
635
635
  "variant": "h3",
636
- "type": "typography"
636
+ "content": "Failed to load messages"
637
637
  },
638
638
  {
639
- "type": "typography",
640
- "color": "muted",
641
639
  "variant": "body",
640
+ "color": "muted",
641
+ "type": "typography",
642
642
  "content": "@payload.error"
643
643
  },
644
644
  {
@@ -662,14 +662,14 @@
662
662
  "name": "ChatMessageCompose",
663
663
  "linkedEntity": "ChatMessage",
664
664
  "config": {
665
- "mode": "create",
666
- "icon": "edit",
667
665
  "fields": [
668
666
  "sender",
669
667
  "content",
670
668
  "channel",
671
669
  "timestamp"
672
670
  ],
671
+ "mode": "create",
672
+ "icon": "edit",
673
673
  "title": "New Message"
674
674
  },
675
675
  "events": {
@@ -691,15 +691,15 @@
691
691
  "name": "ChatMessageView",
692
692
  "linkedEntity": "ChatMessage",
693
693
  "config": {
694
- "title": "View Message",
695
694
  "fields": [
696
695
  "sender",
697
696
  "content",
698
697
  "channel",
699
698
  "timestamp"
700
699
  ],
701
- "icon": "eye",
702
- "mode": "edit"
700
+ "mode": "edit",
701
+ "title": "View Message",
702
+ "icon": "eye"
703
703
  },
704
704
  "events": {
705
705
  "OPEN": "VIEW"
@@ -890,40 +890,40 @@
890
890
  "render-ui",
891
891
  "main",
892
892
  {
893
- "gap": "md",
894
- "type": "stack",
895
- "direction": "vertical",
896
893
  "children": [
897
894
  {
895
+ "direction": "horizontal",
898
896
  "children": [
899
897
  {
900
- "type": "icon",
901
- "name": "paperclip"
898
+ "name": "paperclip",
899
+ "type": "icon"
902
900
  },
903
901
  {
902
+ "variant": "h3",
904
903
  "type": "typography",
905
- "content": "Attach File",
906
- "variant": "h3"
904
+ "content": "Attach File"
907
905
  }
908
906
  ],
909
- "direction": "horizontal",
910
- "gap": "sm",
907
+ "type": "stack",
911
908
  "align": "center",
912
- "type": "stack"
909
+ "gap": "sm"
913
910
  },
914
911
  {
915
- "inputType": "text",
916
912
  "placeholder": "Choose file…",
917
- "type": "input"
913
+ "type": "input",
914
+ "inputType": "text"
918
915
  },
919
916
  {
917
+ "action": "UPLOAD",
918
+ "variant": "primary",
920
919
  "label": "Upload",
921
920
  "type": "button",
922
- "icon": "upload",
923
- "action": "UPLOAD",
924
- "variant": "primary"
921
+ "icon": "upload"
925
922
  }
926
- ]
923
+ ],
924
+ "gap": "md",
925
+ "direction": "vertical",
926
+ "type": "stack"
927
927
  }
928
928
  ]
929
929
  ]
@@ -938,10 +938,10 @@
938
938
  "storage",
939
939
  "upload",
940
940
  {
941
- "bucket": "chat-attachments",
942
941
  "maxSize": 10485760.0,
943
- "file": "@payload.file",
944
- "acl": "private"
942
+ "acl": "private",
943
+ "bucket": "chat-attachments",
944
+ "file": "@payload.file"
945
945
  },
946
946
  {
947
947
  "emit": {
@@ -954,19 +954,19 @@
954
954
  "render-ui",
955
955
  "main",
956
956
  {
957
- "align": "center",
957
+ "gap": "md",
958
958
  "type": "stack",
959
+ "align": "center",
959
960
  "direction": "vertical",
960
- "gap": "md",
961
961
  "children": [
962
962
  {
963
963
  "type": "spinner"
964
964
  },
965
965
  {
966
966
  "variant": "caption",
967
- "type": "typography",
967
+ "color": "muted",
968
968
  "content": "Uploading…",
969
- "color": "muted"
969
+ "type": "typography"
970
970
  }
971
971
  ]
972
972
  }
@@ -1088,35 +1088,35 @@
1088
1088
  "render-ui",
1089
1089
  "main",
1090
1090
  {
1091
+ "type": "stack",
1092
+ "gap": "md",
1091
1093
  "direction": "vertical",
1092
1094
  "children": [
1093
1095
  {
1094
- "align": "center",
1095
- "gap": "sm",
1096
+ "direction": "horizontal",
1096
1097
  "type": "stack",
1098
+ "align": "center",
1097
1099
  "children": [
1098
1100
  {
1099
1101
  "type": "icon",
1100
1102
  "name": "bell"
1101
1103
  },
1102
1104
  {
1103
- "type": "typography",
1105
+ "variant": "h3",
1104
1106
  "content": "Send SMS Notify",
1105
- "variant": "h3"
1107
+ "type": "typography"
1106
1108
  }
1107
1109
  ],
1108
- "direction": "horizontal"
1110
+ "gap": "sm"
1109
1111
  },
1110
1112
  {
1111
- "type": "button",
1112
- "action": "SMS_NOTIFY",
1113
1113
  "variant": "primary",
1114
+ "type": "button",
1115
+ "label": "Send Notification",
1114
1116
  "icon": "send",
1115
- "label": "Send Notification"
1117
+ "action": "SMS_NOTIFY"
1116
1118
  }
1117
- ],
1118
- "gap": "md",
1119
- "type": "stack"
1119
+ ]
1120
1120
  }
1121
1121
  ]
1122
1122
  ]
@@ -1131,14 +1131,14 @@
1131
1131
  "twilio",
1132
1132
  "sendSMS",
1133
1133
  {
1134
- "sender": "+15551234567",
1135
1134
  "recipient": "@payload.recipient",
1136
- "body": "@payload.body"
1135
+ "body": "@payload.body",
1136
+ "sender": "+15551234567"
1137
1137
  },
1138
1138
  {
1139
1139
  "emit": {
1140
- "failure": "ChatSmsFailed",
1141
- "success": "ChatSmsSent"
1140
+ "success": "ChatSmsSent",
1141
+ "failure": "ChatSmsFailed"
1142
1142
  }
1143
1143
  }
1144
1144
  ],
@@ -1146,21 +1146,21 @@
1146
1146
  "render-ui",
1147
1147
  "main",
1148
1148
  {
1149
- "align": "center",
1150
- "type": "stack",
1151
- "direction": "vertical",
1152
- "gap": "md",
1153
1149
  "children": [
1154
1150
  {
1155
1151
  "type": "spinner"
1156
1152
  },
1157
1153
  {
1158
- "variant": "caption",
1154
+ "color": "muted",
1159
1155
  "type": "typography",
1160
1156
  "content": "Sending notification…",
1161
- "color": "muted"
1157
+ "variant": "caption"
1162
1158
  }
1163
- ]
1159
+ ],
1160
+ "type": "stack",
1161
+ "align": "center",
1162
+ "gap": "md",
1163
+ "direction": "vertical"
1164
1164
  }
1165
1165
  ]
1166
1166
  ]
@@ -1296,12 +1296,14 @@
1296
1296
  "name": "ChannelAppLayout",
1297
1297
  "linkedEntity": "Channel",
1298
1298
  "config": {
1299
- "searchEvent": "CHANNEL_SEARCH",
1299
+ "appName": "Realtime Chat",
1300
1300
  "notifications": [],
1301
+ "notificationClickEvent": "CHANNEL_NOTIFICATIONS_OPEN",
1302
+ "contentTrait": "@trait.ChannelCatalog",
1301
1303
  "navItems": [
1302
1304
  {
1303
- "href": "/chat",
1304
1305
  "label": "Chat",
1306
+ "href": "/chat",
1305
1307
  "icon": "message-circle"
1306
1308
  },
1307
1309
  {
@@ -1310,14 +1312,12 @@
1310
1312
  "href": "/channels"
1311
1313
  },
1312
1314
  {
1313
- "href": "/online",
1314
1315
  "label": "Online",
1315
- "icon": "users"
1316
+ "icon": "users",
1317
+ "href": "/online"
1316
1318
  }
1317
1319
  ],
1318
- "appName": "Realtime Chat",
1319
- "notificationClickEvent": "CHANNEL_NOTIFICATIONS_OPEN",
1320
- "contentTrait": "@trait.ChannelCatalog"
1320
+ "searchEvent": "CHANNEL_SEARCH"
1321
1321
  },
1322
1322
  "events": {
1323
1323
  "SEARCH": "CHANNEL_SEARCH",
@@ -1378,15 +1378,13 @@
1378
1378
  "main",
1379
1379
  {
1380
1380
  "type": "stack",
1381
- "direction": "vertical",
1381
+ "gap": "lg",
1382
1382
  "className": "max-w-5xl mx-auto w-full",
1383
1383
  "children": [
1384
1384
  {
1385
- "justify": "between",
1386
- "type": "stack",
1385
+ "align": "center",
1387
1386
  "children": [
1388
1387
  {
1389
- "direction": "horizontal",
1390
1388
  "type": "stack",
1391
1389
  "align": "center",
1392
1390
  "children": [
@@ -1395,38 +1393,40 @@
1395
1393
  "name": "hash"
1396
1394
  },
1397
1395
  {
1398
- "type": "typography",
1399
1396
  "content": "Channels",
1400
- "variant": "h2"
1397
+ "variant": "h2",
1398
+ "type": "typography"
1401
1399
  }
1402
1400
  ],
1401
+ "direction": "horizontal",
1403
1402
  "gap": "sm"
1404
1403
  },
1405
1404
  {
1405
+ "type": "stack",
1406
+ "gap": "sm",
1407
+ "direction": "horizontal",
1406
1408
  "children": [
1407
1409
  {
1408
- "type": "button",
1409
- "action": "CREATE",
1410
- "variant": "primary",
1411
1410
  "icon": "plus",
1412
- "label": "Create Channel"
1411
+ "label": "Create Channel",
1412
+ "action": "CREATE",
1413
+ "type": "button",
1414
+ "variant": "primary"
1413
1415
  }
1414
- ],
1415
- "direction": "horizontal",
1416
- "type": "stack",
1417
- "gap": "sm"
1416
+ ]
1418
1417
  }
1419
1418
  ],
1420
- "direction": "horizontal",
1419
+ "justify": "between",
1421
1420
  "gap": "md",
1422
- "align": "center"
1421
+ "type": "stack",
1422
+ "direction": "horizontal"
1423
1423
  },
1424
1424
  {
1425
1425
  "type": "divider"
1426
1426
  },
1427
1427
  "@trait.ChannelBrowseList"
1428
1428
  ],
1429
- "gap": "lg"
1429
+ "direction": "vertical"
1430
1430
  }
1431
1431
  ]
1432
1432
  ]
@@ -1440,46 +1440,46 @@
1440
1440
  "name": "ChannelBrowseList",
1441
1441
  "linkedEntity": "Channel",
1442
1442
  "config": {
1443
- "gap": "sm",
1444
1443
  "itemActions": [
1445
1444
  {
1446
1445
  "label": "View",
1447
- "event": "VIEW",
1448
- "variant": "ghost"
1446
+ "variant": "ghost",
1447
+ "event": "VIEW"
1449
1448
  },
1450
1449
  {
1451
- "variant": "ghost",
1450
+ "label": "Edit",
1452
1451
  "event": "EDIT",
1453
- "label": "Edit"
1452
+ "variant": "ghost"
1454
1453
  },
1455
1454
  {
1456
- "event": "DELETE",
1457
1455
  "label": "Delete",
1458
- "variant": "danger"
1456
+ "variant": "danger",
1457
+ "event": "DELETE"
1459
1458
  }
1460
1459
  ],
1461
1460
  "cols": 1.0,
1461
+ "gap": "sm",
1462
1462
  "fields": [
1463
1463
  {
1464
1464
  "icon": "hash",
1465
- "variant": "h3",
1466
- "name": "name"
1465
+ "name": "name",
1466
+ "variant": "h3"
1467
1467
  },
1468
1468
  {
1469
- "format": "number",
1470
- "variant": "badge",
1471
1469
  "name": "memberCount",
1472
- "label": "Members"
1470
+ "format": "number",
1471
+ "label": "Members",
1472
+ "variant": "badge"
1473
1473
  },
1474
1474
  {
1475
1475
  "name": "description",
1476
1476
  "variant": "body"
1477
1477
  },
1478
1478
  {
1479
+ "label": "Private",
1479
1480
  "variant": "body",
1480
- "name": "isPrivate",
1481
1481
  "format": "boolean",
1482
- "label": "Private"
1482
+ "name": "isPrivate"
1483
1483
  }
1484
1484
  ]
1485
1485
  },
@@ -1545,8 +1545,8 @@
1545
1545
  "linkedEntity": "Channel",
1546
1546
  "config": {
1547
1547
  "icon": "edit",
1548
- "title": "Edit Channel",
1549
1548
  "mode": "edit",
1549
+ "title": "Edit Channel",
1550
1550
  "fields": [
1551
1551
  "name",
1552
1552
  "description",
@@ -1573,15 +1573,15 @@
1573
1573
  "name": "ChannelView",
1574
1574
  "linkedEntity": "Channel",
1575
1575
  "config": {
1576
- "title": "View Channel",
1577
1576
  "mode": "edit",
1577
+ "title": "View Channel",
1578
+ "icon": "eye",
1578
1579
  "fields": [
1579
1580
  "name",
1580
1581
  "description",
1581
1582
  "memberCount",
1582
1583
  "isPrivate"
1583
- ],
1584
- "icon": "eye"
1584
+ ]
1585
1585
  },
1586
1586
  "events": {
1587
1587
  "OPEN": "VIEW"
@@ -1602,8 +1602,8 @@
1602
1602
  "name": "ChannelDelete",
1603
1603
  "linkedEntity": "Channel",
1604
1604
  "config": {
1605
- "title": "Delete Channel",
1606
1605
  "icon": "alert-triangle",
1606
+ "title": "Delete Channel",
1607
1607
  "alertMessage": "This action cannot be undone.",
1608
1608
  "confirmLabel": "Delete"
1609
1609
  },
@@ -1890,30 +1890,30 @@
1890
1890
  "config": {
1891
1891
  "navItems": [
1892
1892
  {
1893
+ "label": "Chat",
1893
1894
  "href": "/chat",
1894
- "icon": "message-circle",
1895
- "label": "Chat"
1895
+ "icon": "message-circle"
1896
1896
  },
1897
1897
  {
1898
- "label": "Channels",
1898
+ "icon": "hash",
1899
1899
  "href": "/channels",
1900
- "icon": "hash"
1900
+ "label": "Channels"
1901
1901
  },
1902
1902
  {
1903
1903
  "icon": "users",
1904
- "label": "Online",
1905
- "href": "/online"
1904
+ "href": "/online",
1905
+ "label": "Online"
1906
1906
  }
1907
1907
  ],
1908
+ "notificationClickEvent": "ONLINE_USER_NOTIFICATIONS_OPEN",
1908
1909
  "contentTrait": "@trait.OnlineUserDisplay",
1909
1910
  "notifications": [],
1910
- "notificationClickEvent": "ONLINE_USER_NOTIFICATIONS_OPEN",
1911
1911
  "appName": "Realtime Chat",
1912
1912
  "searchEvent": "ONLINE_USER_SEARCH"
1913
1913
  },
1914
1914
  "events": {
1915
- "SEARCH": "ONLINE_USER_SEARCH",
1916
- "NOTIFY_CLICK": "ONLINE_USER_NOTIFICATIONS_OPEN"
1915
+ "NOTIFY_CLICK": "ONLINE_USER_NOTIFICATIONS_OPEN",
1916
+ "SEARCH": "ONLINE_USER_SEARCH"
1917
1917
  }
1918
1918
  },
1919
1919
  {
@@ -2012,64 +2012,64 @@
2012
2012
  "render-ui",
2013
2013
  "main",
2014
2014
  {
2015
- "type": "stack",
2016
- "gap": "lg",
2017
2015
  "children": [
2018
2016
  {
2019
- "type": "stack",
2020
- "gap": "md",
2021
2017
  "direction": "horizontal",
2018
+ "gap": "md",
2022
2019
  "justify": "between",
2023
2020
  "align": "center",
2024
2021
  "children": [
2025
2022
  {
2026
- "type": "stack",
2023
+ "direction": "horizontal",
2024
+ "gap": "sm",
2025
+ "align": "center",
2027
2026
  "children": [
2028
2027
  {
2029
- "type": "icon",
2030
- "name": "users"
2028
+ "name": "users",
2029
+ "type": "icon"
2031
2030
  },
2032
2031
  {
2033
2032
  "content": "Online Users",
2034
- "variant": "h2",
2035
- "type": "typography"
2033
+ "type": "typography",
2034
+ "variant": "h2"
2036
2035
  }
2037
2036
  ],
2038
- "align": "center",
2039
- "direction": "horizontal",
2040
- "gap": "sm"
2037
+ "type": "stack"
2041
2038
  },
2042
2039
  {
2040
+ "label": "Refresh",
2043
2041
  "variant": "secondary",
2044
2042
  "icon": "refresh-cw",
2045
2043
  "type": "button",
2046
- "label": "Refresh",
2047
2044
  "action": "REFRESH"
2048
2045
  }
2049
- ]
2046
+ ],
2047
+ "type": "stack"
2050
2048
  },
2051
2049
  {
2052
2050
  "type": "divider"
2053
2051
  },
2054
2052
  {
2055
- "type": "stack",
2056
2053
  "align": "center",
2057
2054
  "className": "py-12",
2058
- "gap": "md",
2055
+ "direction": "vertical",
2059
2056
  "children": [
2060
2057
  {
2061
2058
  "type": "spinner"
2062
2059
  },
2063
2060
  {
2064
2061
  "type": "typography",
2065
- "color": "muted",
2062
+ "variant": "caption",
2066
2063
  "content": "Loading presence…",
2067
- "variant": "caption"
2064
+ "color": "muted"
2068
2065
  }
2069
2066
  ],
2070
- "direction": "vertical"
2067
+ "type": "stack",
2068
+ "gap": "md"
2071
2069
  }
2072
2070
  ],
2071
+ "type": "stack",
2072
+ "gap": "lg",
2073
2073
  "direction": "vertical",
2074
2074
  "className": "max-w-5xl mx-auto w-full"
2075
2075
  }
@@ -2085,69 +2085,69 @@
2085
2085
  "render-ui",
2086
2086
  "main",
2087
2087
  {
2088
- "type": "stack",
2089
- "className": "max-w-5xl mx-auto w-full",
2090
- "gap": "lg",
2091
- "direction": "vertical",
2092
2088
  "children": [
2093
2089
  {
2090
+ "direction": "horizontal",
2091
+ "gap": "md",
2094
2092
  "type": "stack",
2095
2093
  "justify": "between",
2094
+ "align": "center",
2096
2095
  "children": [
2097
2096
  {
2098
2097
  "direction": "horizontal",
2099
- "align": "center",
2100
2098
  "gap": "sm",
2101
- "type": "stack",
2099
+ "align": "center",
2102
2100
  "children": [
2103
2101
  {
2104
- "name": "users",
2105
- "type": "icon"
2102
+ "type": "icon",
2103
+ "name": "users"
2106
2104
  },
2107
2105
  {
2108
- "content": "Online Users",
2109
2106
  "variant": "h2",
2110
- "type": "typography"
2107
+ "type": "typography",
2108
+ "content": "Online Users"
2111
2109
  }
2112
- ]
2110
+ ],
2111
+ "type": "stack"
2113
2112
  },
2114
2113
  {
2115
- "icon": "refresh-cw",
2116
2114
  "type": "button",
2115
+ "action": "REFRESH",
2116
+ "icon": "refresh-cw",
2117
2117
  "variant": "secondary",
2118
- "label": "Refresh",
2119
- "action": "REFRESH"
2118
+ "label": "Refresh"
2120
2119
  }
2121
- ],
2122
- "direction": "horizontal",
2123
- "gap": "md",
2124
- "align": "center"
2120
+ ]
2125
2121
  },
2126
2122
  {
2127
2123
  "type": "divider"
2128
2124
  },
2129
2125
  {
2126
+ "gap": "sm",
2127
+ "entity": "@payload.data",
2128
+ "type": "data-list",
2130
2129
  "fields": [
2131
2130
  {
2132
- "name": "username",
2133
- "variant": "h4"
2131
+ "variant": "h4",
2132
+ "name": "username"
2134
2133
  },
2135
2134
  {
2136
2135
  "name": "status",
2137
2136
  "variant": "badge"
2138
2137
  },
2139
2138
  {
2140
- "variant": "caption",
2139
+ "name": "lastActive",
2141
2140
  "format": "date",
2142
- "name": "lastActive"
2141
+ "variant": "caption"
2143
2142
  }
2144
2143
  ],
2145
- "gap": "sm",
2146
- "entity": "@payload.data",
2147
- "type": "data-list",
2148
2144
  "variant": "card"
2149
2145
  }
2150
- ]
2146
+ ],
2147
+ "type": "stack",
2148
+ "gap": "lg",
2149
+ "className": "max-w-5xl mx-auto w-full",
2150
+ "direction": "vertical"
2151
2151
  }
2152
2152
  ]
2153
2153
  ]
@@ -2162,8 +2162,8 @@
2162
2162
  "OnlineUser",
2163
2163
  {
2164
2164
  "emit": {
2165
- "failure": "OnlineUserLoadFailed",
2166
- "success": "OnlineUserLoaded"
2165
+ "success": "OnlineUserLoaded",
2166
+ "failure": "OnlineUserLoadFailed"
2167
2167
  }
2168
2168
  }
2169
2169
  ],
@@ -2176,17 +2176,17 @@
2176
2176
  "type": "spinner"
2177
2177
  },
2178
2178
  {
2179
- "content": "Refreshing…",
2180
- "variant": "caption",
2179
+ "color": "muted",
2181
2180
  "type": "typography",
2182
- "color": "muted"
2181
+ "content": "Refreshing…",
2182
+ "variant": "caption"
2183
2183
  }
2184
2184
  ],
2185
+ "gap": "md",
2185
2186
  "type": "stack",
2187
+ "direction": "vertical",
2186
2188
  "align": "center",
2187
- "className": "py-12",
2188
- "gap": "md",
2189
- "direction": "vertical"
2189
+ "className": "py-12"
2190
2190
  }
2191
2191
  ]
2192
2192
  ]
@@ -2200,8 +2200,8 @@
2200
2200
  "render-ui",
2201
2201
  "main",
2202
2202
  {
2203
- "align": "center",
2204
2203
  "className": "py-12",
2204
+ "align": "center",
2205
2205
  "children": [
2206
2206
  {
2207
2207
  "color": "destructive",
@@ -2210,25 +2210,25 @@
2210
2210
  },
2211
2211
  {
2212
2212
  "content": "Failed to load presence",
2213
- "type": "typography",
2214
- "variant": "h3"
2213
+ "variant": "h3",
2214
+ "type": "typography"
2215
2215
  },
2216
2216
  {
2217
- "type": "typography",
2217
+ "content": "@payload.error",
2218
2218
  "variant": "body",
2219
2219
  "color": "muted",
2220
- "content": "@payload.error"
2220
+ "type": "typography"
2221
2221
  },
2222
2222
  {
2223
2223
  "variant": "primary",
2224
- "icon": "rotate-ccw",
2225
- "type": "button",
2224
+ "action": "REFRESH",
2226
2225
  "label": "Retry",
2227
- "action": "REFRESH"
2226
+ "icon": "rotate-ccw",
2227
+ "type": "button"
2228
2228
  }
2229
2229
  ],
2230
- "direction": "vertical",
2231
2230
  "type": "stack",
2231
+ "direction": "vertical",
2232
2232
  "gap": "md"
2233
2233
  }
2234
2234
  ]
@@ -2255,4 +2255,4 @@
2255
2255
  ]
2256
2256
  }
2257
2257
  ]
2258
- }
2258
+ }