@almadar/std 14.9.0 → 14.10.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 (35) hide show
  1. package/behaviors/registry/app/organisms/std-api-gateway.orb +419 -171
  2. package/behaviors/registry/app/organisms/std-booking-system.orb +760 -620
  3. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +477 -229
  4. package/behaviors/registry/app/organisms/std-cms.orb +433 -298
  5. package/behaviors/registry/app/organisms/std-crm.orb +355 -215
  6. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +504 -369
  7. package/behaviors/registry/app/organisms/std-finance-tracker.orb +271 -189
  8. package/behaviors/registry/app/organisms/std-healthcare.orb +676 -468
  9. package/behaviors/registry/app/organisms/std-helpdesk.orb +246 -166
  10. package/behaviors/registry/app/organisms/std-hr-portal.orb +534 -399
  11. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +420 -340
  12. package/behaviors/registry/app/organisms/std-lms.orb +462 -378
  13. package/behaviors/registry/app/organisms/std-project-manager.orb +282 -200
  14. package/behaviors/registry/app/organisms/std-realtime-chat.orb +317 -235
  15. package/behaviors/registry/app/organisms/std-social-feed.orb +256 -137
  16. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +342 -218
  17. package/behaviors/registry/core/molecules/std-app-layout.orb +90 -21
  18. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +419 -171
  19. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +760 -620
  20. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +477 -229
  21. package/dist/behaviors/registry/app/organisms/std-cms.orb +433 -298
  22. package/dist/behaviors/registry/app/organisms/std-crm.orb +355 -215
  23. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +504 -369
  24. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +271 -189
  25. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +676 -468
  26. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +246 -166
  27. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +534 -399
  28. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +420 -340
  29. package/dist/behaviors/registry/app/organisms/std-lms.orb +462 -378
  30. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +282 -200
  31. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +317 -235
  32. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +256 -137
  33. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +342 -218
  34. package/dist/behaviors/registry/core/molecules/std-app-layout.orb +90 -21
  35. package/package.json +1 -1
@@ -107,37 +107,37 @@
107
107
  "ref": "AppShell.traits.AppLayout",
108
108
  "name": "ArticleAppLayout",
109
109
  "config": {
110
- "searchEvent": "ARTICLE_SEARCH",
111
- "notificationClickEvent": "ARTICLE_NOTIFICATIONS_OPEN",
112
110
  "contentTrait": "@trait.ArticleCatalog",
113
111
  "navItems": [
114
112
  {
113
+ "icon": "layout-grid",
115
114
  "label": "CMS Hub",
116
- "href": "/cms-hub",
117
- "icon": "layout-grid"
115
+ "href": "/cms-hub"
118
116
  },
119
117
  {
120
- "href": "/articles",
121
118
  "label": "Articles",
122
- "icon": "file-text"
119
+ "icon": "file-text",
120
+ "href": "/articles"
123
121
  },
124
122
  {
125
123
  "href": "/media",
126
- "label": "Media",
127
- "icon": "image"
124
+ "icon": "image",
125
+ "label": "Media"
128
126
  },
129
127
  {
128
+ "label": "Categories",
130
129
  "href": "/categories",
131
- "icon": "folder",
132
- "label": "Categories"
130
+ "icon": "folder"
133
131
  }
134
132
  ],
133
+ "notifications": [],
135
134
  "appName": "CmsApp",
136
- "notifications": []
135
+ "notificationClickEvent": "ARTICLE_NOTIFICATIONS_OPEN",
136
+ "searchEvent": "ARTICLE_SEARCH"
137
137
  },
138
138
  "events": {
139
- "SEARCH": "ARTICLE_SEARCH",
140
- "NOTIFY_CLICK": "ARTICLE_NOTIFICATIONS_OPEN"
139
+ "NOTIFY_CLICK": "ARTICLE_NOTIFICATIONS_OPEN",
140
+ "SEARCH": "ARTICLE_SEARCH"
141
141
  }
142
142
  },
143
143
  {
@@ -220,66 +220,66 @@
220
220
  "render-ui",
221
221
  "main",
222
222
  {
223
- "type": "stack",
224
223
  "gap": "lg",
225
- "direction": "vertical",
226
224
  "children": [
227
225
  {
228
- "direction": "horizontal",
229
226
  "type": "stack",
227
+ "direction": "horizontal",
230
228
  "gap": "md",
231
- "align": "center",
232
- "justify": "between",
233
229
  "children": [
234
230
  {
235
- "align": "center",
236
- "gap": "sm",
237
- "type": "stack",
238
231
  "children": [
239
232
  {
240
- "type": "icon",
241
- "name": "file-text"
233
+ "name": "file-text",
234
+ "type": "icon"
242
235
  },
243
236
  {
244
- "type": "typography",
237
+ "content": "Articles",
245
238
  "variant": "h2",
246
- "content": "Articles"
239
+ "type": "typography"
247
240
  }
248
241
  ],
249
- "direction": "horizontal"
242
+ "type": "stack",
243
+ "direction": "horizontal",
244
+ "align": "center",
245
+ "gap": "sm"
250
246
  },
251
247
  {
252
- "gap": "sm",
248
+ "type": "stack",
253
249
  "direction": "horizontal",
250
+ "gap": "sm",
254
251
  "children": [
255
252
  {
256
- "action": "CREATE",
257
- "icon": "plus",
258
- "type": "button",
259
253
  "variant": "primary",
260
- "label": "Create Article"
254
+ "type": "button",
255
+ "label": "Create Article",
256
+ "icon": "plus",
257
+ "action": "CREATE"
261
258
  }
262
- ],
263
- "type": "stack"
259
+ ]
264
260
  }
265
- ]
261
+ ],
262
+ "align": "center",
263
+ "justify": "between"
266
264
  },
267
265
  {
268
266
  "type": "divider"
269
267
  },
270
268
  {
269
+ "type": "stack",
270
+ "gap": "sm",
271
+ "direction": "horizontal",
271
272
  "children": [
272
273
  "@trait.ArticleSearch",
273
274
  "@trait.ArticleFilter"
274
- ],
275
- "type": "stack",
276
- "gap": "sm",
277
- "direction": "horizontal"
275
+ ]
278
276
  },
279
277
  "@trait.ArticleStats",
280
278
  "@trait.ArticleGraphs",
281
279
  "@trait.ArticleBrowseList"
282
- ]
280
+ ],
281
+ "type": "stack",
282
+ "direction": "vertical"
283
283
  }
284
284
  ]
285
285
  ]
@@ -298,10 +298,8 @@
298
298
  "render-ui",
299
299
  "main",
300
300
  {
301
- "align": "center",
302
- "type": "stack",
303
- "direction": "vertical",
304
301
  "className": "py-8",
302
+ "align": "center",
305
303
  "children": [
306
304
  {
307
305
  "type": "icon",
@@ -309,23 +307,25 @@
309
307
  },
310
308
  {
311
309
  "type": "typography",
312
- "variant": "h3",
313
- "content": "No notifications"
310
+ "content": "No notifications",
311
+ "variant": "h3"
314
312
  },
315
313
  {
316
- "content": "You're all caught up.",
317
314
  "color": "muted",
318
- "type": "typography",
319
- "variant": "caption"
315
+ "content": "You're all caught up.",
316
+ "variant": "caption",
317
+ "type": "typography"
320
318
  },
321
319
  {
322
- "label": "Back to articles",
323
320
  "action": "INIT",
324
321
  "variant": "ghost",
325
- "type": "button"
322
+ "type": "button",
323
+ "label": "Back to articles"
326
324
  }
327
325
  ],
328
- "gap": "md"
326
+ "type": "stack",
327
+ "gap": "md",
328
+ "direction": "vertical"
329
329
  }
330
330
  ]
331
331
  ]
@@ -339,21 +339,38 @@
339
339
  "name": "ArticleBrowseList",
340
340
  "linkedEntity": "Article",
341
341
  "config": {
342
- "cols": 1.0,
343
- "imageField": "heroImage",
342
+ "itemActions": [
343
+ {
344
+ "variant": "ghost",
345
+ "event": "VIEW",
346
+ "label": "View"
347
+ },
348
+ {
349
+ "variant": "ghost",
350
+ "label": "Edit",
351
+ "event": "EDIT"
352
+ },
353
+ {
354
+ "event": "DELETE",
355
+ "label": "Delete",
356
+ "variant": "danger"
357
+ }
358
+ ],
359
+ "gap": "sm",
360
+ "variant": "card",
344
361
  "fields": [
345
362
  {
346
- "name": "title",
347
363
  "icon": "file-text",
364
+ "name": "title",
348
365
  "variant": "h3"
349
366
  },
350
367
  {
351
- "variant": "badge",
352
- "name": "status"
368
+ "name": "status",
369
+ "variant": "badge"
353
370
  },
354
371
  {
355
- "variant": "caption",
356
- "name": "author"
372
+ "name": "author",
373
+ "variant": "caption"
357
374
  },
358
375
  {
359
376
  "name": "category",
@@ -364,25 +381,8 @@
364
381
  "name": "publishedAt"
365
382
  }
366
383
  ],
367
- "itemActions": [
368
- {
369
- "event": "VIEW",
370
- "variant": "ghost",
371
- "label": "View"
372
- },
373
- {
374
- "label": "Edit",
375
- "variant": "ghost",
376
- "event": "EDIT"
377
- },
378
- {
379
- "event": "DELETE",
380
- "label": "Delete",
381
- "variant": "danger"
382
- }
383
- ],
384
- "variant": "card",
385
- "gap": "sm"
384
+ "cols": 1.0,
385
+ "imageField": "heroImage"
386
386
  },
387
387
  "listens": [
388
388
  {
@@ -415,8 +415,8 @@
415
415
  "ref": "Search.traits.SearchResultSearch",
416
416
  "name": "ArticleSearch",
417
417
  "config": {
418
- "placeholder": "Search articles...",
419
- "searchEvent": "ARTICLE_SEARCH"
418
+ "searchEvent": "ARTICLE_SEARCH",
419
+ "placeholder": "Search articles..."
420
420
  }
421
421
  },
422
422
  {
@@ -426,12 +426,12 @@
426
426
  "facets": [
427
427
  {
428
428
  "field": "status",
429
+ "label": "Status",
429
430
  "values": [
430
431
  "draft",
431
432
  "published",
432
433
  "archived"
433
- ],
434
- "label": "Status"
434
+ ]
435
435
  },
436
436
  {
437
437
  "label": "Category",
@@ -447,8 +447,8 @@
447
447
  "config": {
448
448
  "metrics": [
449
449
  {
450
- "label": "Total",
451
- "aggregation": "count"
450
+ "aggregation": "count",
451
+ "label": "Total"
452
452
  },
453
453
  {
454
454
  "label": "Published",
@@ -458,11 +458,11 @@
458
458
  "aggregation": "count"
459
459
  },
460
460
  {
461
- "aggregation": "count",
462
- "label": "Drafts",
463
461
  "filter": {
464
462
  "status": "draft"
465
- }
463
+ },
464
+ "label": "Drafts",
465
+ "aggregation": "count"
466
466
  }
467
467
  ]
468
468
  },
@@ -481,9 +481,9 @@
481
481
  "ref": "Graphs.traits.GraphItemGraph",
482
482
  "name": "ArticleGraphs",
483
483
  "config": {
484
- "title": "Articles by Status",
484
+ "categoryField": "status",
485
485
  "chartType": "pie",
486
- "categoryField": "status"
486
+ "title": "Articles by Status"
487
487
  },
488
488
  "listens": [
489
489
  {
@@ -501,9 +501,7 @@
501
501
  "name": "ArticleCreate",
502
502
  "linkedEntity": "Article",
503
503
  "config": {
504
- "icon": "plus-circle",
505
504
  "title": "Create Article",
506
- "mode": "create",
507
505
  "fields": [
508
506
  "title",
509
507
  "slug",
@@ -513,7 +511,9 @@
513
511
  "status",
514
512
  "publishedAt",
515
513
  "heroImage"
516
- ]
514
+ ],
515
+ "mode": "create",
516
+ "icon": "plus-circle"
517
517
  },
518
518
  "events": {
519
519
  "OPEN": "CREATE"
@@ -534,9 +534,8 @@
534
534
  "name": "ArticleEdit",
535
535
  "linkedEntity": "Article",
536
536
  "config": {
537
- "icon": "edit",
538
537
  "mode": "edit",
539
- "title": "Edit Article",
538
+ "icon": "edit",
540
539
  "fields": [
541
540
  "title",
542
541
  "slug",
@@ -546,7 +545,8 @@
546
545
  "status",
547
546
  "publishedAt",
548
547
  "heroImage"
549
- ]
548
+ ],
549
+ "title": "Edit Article"
550
550
  },
551
551
  "events": {
552
552
  "OPEN": "EDIT"
@@ -577,9 +577,9 @@
577
577
  "publishedAt",
578
578
  "heroImage"
579
579
  ],
580
+ "title": "View Article",
580
581
  "mode": "view",
581
- "icon": "eye",
582
- "title": "View Article"
582
+ "icon": "eye"
583
583
  },
584
584
  "events": {
585
585
  "OPEN": "VIEW"
@@ -600,10 +600,10 @@
600
600
  "name": "ArticleDelete",
601
601
  "linkedEntity": "Article",
602
602
  "config": {
603
- "icon": "alert-triangle",
604
603
  "alertMessage": "This action cannot be undone.",
605
604
  "confirmLabel": "Delete",
606
- "title": "Delete Article"
605
+ "title": "Delete Article",
606
+ "icon": "alert-triangle"
607
607
  },
608
608
  "events": {
609
609
  "CONFIRM": "CONFIRM_DELETE",
@@ -716,23 +716,23 @@
716
716
  "render-ui",
717
717
  "main",
718
718
  {
719
- "type": "stack",
720
719
  "gap": "sm",
721
- "direction": "vertical",
722
720
  "children": [
723
721
  {
724
- "inputType": "text",
725
722
  "placeholder": "Paste hero image URL...",
723
+ "inputType": "text",
726
724
  "type": "input"
727
725
  },
728
726
  {
729
- "icon": "upload",
730
- "label": "Upload Hero",
727
+ "type": "button",
731
728
  "action": "UPLOAD",
732
- "variant": "secondary",
733
- "type": "button"
729
+ "label": "Upload Hero",
730
+ "icon": "upload",
731
+ "variant": "secondary"
734
732
  }
735
- ]
733
+ ],
734
+ "type": "stack",
735
+ "direction": "vertical"
736
736
  }
737
737
  ]
738
738
  ]
@@ -747,14 +747,14 @@
747
747
  "storage",
748
748
  "upload",
749
749
  {
750
- "file": "@payload.file",
750
+ "acl": "public",
751
751
  "bucket": "articles",
752
- "acl": "public"
752
+ "file": "@payload.file"
753
753
  },
754
754
  {
755
755
  "emit": {
756
- "success": "ArticleHeroUploaded",
757
- "failure": "ArticleHeroUploadFailed"
756
+ "failure": "ArticleHeroUploadFailed",
757
+ "success": "ArticleHeroUploaded"
758
758
  }
759
759
  }
760
760
  ]
@@ -1015,6 +1015,10 @@
1015
1015
  {
1016
1016
  "name": "MediaAssetOrbital",
1017
1017
  "uses": [
1018
+ {
1019
+ "from": "std/behaviors/std-app-layout",
1020
+ "as": "AppShell"
1021
+ },
1018
1022
  {
1019
1023
  "from": "std/behaviors/std-modal",
1020
1024
  "as": "Modal"
@@ -1064,6 +1068,44 @@
1064
1068
  ]
1065
1069
  },
1066
1070
  "traits": [
1071
+ {
1072
+ "ref": "AppShell.traits.AppLayout",
1073
+ "name": "MediaAssetAppLayout",
1074
+ "linkedEntity": "MediaAsset",
1075
+ "config": {
1076
+ "searchEvent": "MEDIA_SEARCH",
1077
+ "navItems": [
1078
+ {
1079
+ "label": "CMS Hub",
1080
+ "href": "/cms-hub",
1081
+ "icon": "layout-grid"
1082
+ },
1083
+ {
1084
+ "href": "/articles",
1085
+ "label": "Articles",
1086
+ "icon": "file-text"
1087
+ },
1088
+ {
1089
+ "href": "/media",
1090
+ "icon": "image",
1091
+ "label": "Media"
1092
+ },
1093
+ {
1094
+ "label": "Categories",
1095
+ "href": "/categories",
1096
+ "icon": "folder"
1097
+ }
1098
+ ],
1099
+ "contentTrait": "@trait.MediaCatalog",
1100
+ "notificationClickEvent": "MEDIA_NOTIFICATIONS_OPEN",
1101
+ "appName": "CmsApp",
1102
+ "notifications": []
1103
+ },
1104
+ "events": {
1105
+ "SEARCH": "MEDIA_SEARCH",
1106
+ "NOTIFY_CLICK": "MEDIA_NOTIFICATIONS_OPEN"
1107
+ }
1108
+ },
1067
1109
  {
1068
1110
  "name": "MediaCatalog",
1069
1111
  "category": "interaction",
@@ -1106,85 +1148,85 @@
1106
1148
  "render-ui",
1107
1149
  "main",
1108
1150
  {
1151
+ "navItems": [
1152
+ {
1153
+ "label": "CMS Hub",
1154
+ "icon": "layout-grid",
1155
+ "href": "/cms-hub"
1156
+ },
1157
+ {
1158
+ "label": "Articles",
1159
+ "href": "/articles",
1160
+ "icon": "file-text"
1161
+ },
1162
+ {
1163
+ "label": "Media",
1164
+ "href": "/media",
1165
+ "icon": "image"
1166
+ },
1167
+ {
1168
+ "label": "Categories",
1169
+ "href": "/categories",
1170
+ "icon": "folder"
1171
+ }
1172
+ ],
1173
+ "appName": "CmsApp",
1109
1174
  "children": [
1110
1175
  {
1111
1176
  "type": "stack",
1177
+ "direction": "vertical",
1178
+ "gap": "lg",
1112
1179
  "className": "max-w-5xl mx-auto w-full",
1113
1180
  "children": [
1114
1181
  {
1115
- "direction": "horizontal",
1116
- "gap": "md",
1117
- "justify": "between",
1118
1182
  "align": "center",
1119
- "type": "stack",
1183
+ "justify": "between",
1184
+ "direction": "horizontal",
1120
1185
  "children": [
1121
1186
  {
1187
+ "direction": "horizontal",
1122
1188
  "gap": "sm",
1123
1189
  "type": "stack",
1124
- "direction": "horizontal",
1125
1190
  "align": "center",
1126
1191
  "children": [
1127
1192
  {
1128
- "name": "image",
1129
- "type": "icon"
1193
+ "type": "icon",
1194
+ "name": "image"
1130
1195
  },
1131
1196
  {
1132
1197
  "variant": "h2",
1133
- "content": "Media Library",
1134
- "type": "typography"
1198
+ "type": "typography",
1199
+ "content": "Media Library"
1135
1200
  }
1136
1201
  ]
1137
1202
  },
1138
1203
  {
1204
+ "type": "stack",
1139
1205
  "children": [
1140
1206
  {
1207
+ "label": "Create MediaAsset",
1141
1208
  "action": "CREATE",
1142
1209
  "icon": "plus",
1143
- "label": "Create MediaAsset",
1144
1210
  "type": "button",
1145
1211
  "variant": "secondary"
1146
1212
  }
1147
1213
  ],
1148
- "gap": "sm",
1149
- "type": "stack",
1150
- "direction": "horizontal"
1214
+ "direction": "horizontal",
1215
+ "gap": "sm"
1151
1216
  }
1152
- ]
1217
+ ],
1218
+ "gap": "md",
1219
+ "type": "stack"
1153
1220
  },
1154
1221
  {
1155
1222
  "type": "divider"
1156
1223
  },
1157
1224
  "@trait.MediaUpload",
1158
1225
  "@trait.MediaAssetGallery"
1159
- ],
1160
- "direction": "vertical",
1161
- "gap": "lg"
1162
- }
1163
- ],
1164
- "navItems": [
1165
- {
1166
- "label": "CMS Hub",
1167
- "icon": "layout-grid",
1168
- "href": "/cms-hub"
1169
- },
1170
- {
1171
- "label": "Articles",
1172
- "href": "/articles",
1173
- "icon": "file-text"
1174
- },
1175
- {
1176
- "href": "/media",
1177
- "icon": "image",
1178
- "label": "Media"
1179
- },
1180
- {
1181
- "label": "Categories",
1182
- "icon": "folder",
1183
- "href": "/categories"
1226
+ ]
1184
1227
  }
1185
1228
  ],
1186
- "type": "dashboard-layout",
1187
- "appName": "CmsApp"
1229
+ "type": "dashboard-layout"
1188
1230
  }
1189
1231
  ]
1190
1232
  ]
@@ -1199,8 +1241,8 @@
1199
1241
  "linkedEntity": "MediaAsset",
1200
1242
  "config": {
1201
1243
  "titleField": "name",
1202
- "cols": 4.0,
1203
1244
  "gap": "md",
1245
+ "cols": 4.0,
1204
1246
  "imageField": "url"
1205
1247
  },
1206
1248
  "listens": [
@@ -1365,22 +1407,22 @@
1365
1407
  "render-ui",
1366
1408
  "main",
1367
1409
  {
1368
- "align": "center",
1369
- "type": "stack",
1370
1410
  "direction": "vertical",
1371
1411
  "gap": "sm",
1412
+ "type": "stack",
1413
+ "align": "center",
1372
1414
  "children": [
1373
1415
  {
1374
1416
  "placeholder": "Paste file URL...",
1375
- "inputType": "text",
1376
- "type": "input"
1417
+ "type": "input",
1418
+ "inputType": "text"
1377
1419
  },
1378
1420
  {
1379
- "type": "button",
1380
- "label": "Upload File",
1381
- "action": "UPLOAD",
1382
1421
  "variant": "primary",
1383
- "icon": "upload"
1422
+ "label": "Upload File",
1423
+ "icon": "upload",
1424
+ "type": "button",
1425
+ "action": "UPLOAD"
1384
1426
  }
1385
1427
  ]
1386
1428
  }
@@ -1397,14 +1439,14 @@
1397
1439
  "storage",
1398
1440
  "upload",
1399
1441
  {
1400
- "file": "@payload.file",
1401
1442
  "bucket": "media",
1443
+ "file": "@payload.file",
1402
1444
  "acl": "public"
1403
1445
  },
1404
1446
  {
1405
1447
  "emit": {
1406
- "success": "StorageUploaded",
1407
- "failure": "MediaUploadFailed"
1448
+ "failure": "MediaUploadFailed",
1449
+ "success": "StorageUploaded"
1408
1450
  }
1409
1451
  }
1410
1452
  ],
@@ -1412,9 +1454,9 @@
1412
1454
  "render-ui",
1413
1455
  "main",
1414
1456
  {
1457
+ "type": "loading-state",
1415
1458
  "title": "Uploading...",
1416
- "message": "Uploading file to storage.",
1417
- "type": "loading-state"
1459
+ "message": "Uploading file to storage."
1418
1460
  }
1419
1461
  ]
1420
1462
  ]
@@ -1444,16 +1486,17 @@
1444
1486
  "emit",
1445
1487
  "MEDIA_UPLOADED",
1446
1488
  {
1447
- "id": "@payload.id",
1448
- "url": "@payload.url"
1489
+ "url": "@payload.url",
1490
+ "id": "@payload.id"
1449
1491
  }
1450
1492
  ],
1451
1493
  [
1452
1494
  "render-ui",
1453
1495
  "main",
1454
1496
  {
1455
- "gap": "sm",
1497
+ "direction": "vertical",
1456
1498
  "align": "center",
1499
+ "gap": "sm",
1457
1500
  "type": "stack",
1458
1501
  "children": [
1459
1502
  {
@@ -1461,18 +1504,17 @@
1461
1504
  "type": "icon"
1462
1505
  },
1463
1506
  {
1464
- "type": "alert",
1465
1507
  "variant": "success",
1466
- "message": "Upload complete."
1508
+ "message": "Upload complete.",
1509
+ "type": "alert"
1467
1510
  },
1468
1511
  {
1469
- "variant": "ghost",
1470
- "label": "Upload Another",
1471
1512
  "action": "INIT",
1513
+ "label": "Upload Another",
1514
+ "variant": "ghost",
1472
1515
  "type": "button"
1473
1516
  }
1474
- ],
1475
- "direction": "vertical"
1517
+ ]
1476
1518
  }
1477
1519
  ]
1478
1520
  ]
@@ -1487,9 +1529,9 @@
1487
1529
  "main",
1488
1530
  {
1489
1531
  "type": "error-state",
1490
- "title": "Upload Failed",
1532
+ "message": "@payload.error",
1491
1533
  "onRetry": "INIT",
1492
- "message": "@payload.error"
1534
+ "title": "Upload Failed"
1493
1535
  }
1494
1536
  ]
1495
1537
  ]
@@ -1503,15 +1545,15 @@
1503
1545
  "name": "MediaAssetCreate",
1504
1546
  "linkedEntity": "MediaAsset",
1505
1547
  "config": {
1548
+ "mode": "create",
1549
+ "icon": "plus-circle",
1550
+ "title": "Add Media Asset",
1506
1551
  "fields": [
1507
1552
  "name",
1508
1553
  "altText",
1509
1554
  "type",
1510
1555
  "url"
1511
- ],
1512
- "mode": "create",
1513
- "icon": "plus-circle",
1514
- "title": "Add Media Asset"
1556
+ ]
1515
1557
  },
1516
1558
  "events": {
1517
1559
  "OPEN": "CREATE"
@@ -1533,14 +1575,14 @@
1533
1575
  "linkedEntity": "MediaAsset",
1534
1576
  "config": {
1535
1577
  "mode": "view",
1578
+ "title": "View Media Asset",
1536
1579
  "icon": "eye",
1537
1580
  "fields": [
1538
1581
  "name",
1539
1582
  "altText",
1540
1583
  "type",
1541
1584
  "url"
1542
- ],
1543
- "title": "View Media Asset"
1585
+ ]
1544
1586
  },
1545
1587
  "events": {
1546
1588
  "OPEN": "VIEW"
@@ -1657,6 +1699,9 @@
1657
1699
  "name": "MediaPage",
1658
1700
  "path": "/media",
1659
1701
  "traits": [
1702
+ {
1703
+ "ref": "MediaAssetAppLayout"
1704
+ },
1660
1705
  {
1661
1706
  "ref": "MediaCatalog"
1662
1707
  },
@@ -1682,6 +1727,10 @@
1682
1727
  {
1683
1728
  "name": "CategoryOrbital",
1684
1729
  "uses": [
1730
+ {
1731
+ "from": "std/behaviors/std-app-layout",
1732
+ "as": "AppShell"
1733
+ },
1685
1734
  {
1686
1735
  "from": "std/behaviors/std-modal",
1687
1736
  "as": "Modal"
@@ -1735,6 +1784,44 @@
1735
1784
  ]
1736
1785
  },
1737
1786
  "traits": [
1787
+ {
1788
+ "ref": "AppShell.traits.AppLayout",
1789
+ "name": "CategoryAppLayout",
1790
+ "linkedEntity": "Category",
1791
+ "config": {
1792
+ "notificationClickEvent": "CATEGORY_NOTIFICATIONS_OPEN",
1793
+ "appName": "CmsApp",
1794
+ "searchEvent": "CATEGORY_SEARCH",
1795
+ "contentTrait": "@trait.CategoryCatalog",
1796
+ "notifications": [],
1797
+ "navItems": [
1798
+ {
1799
+ "icon": "layout-grid",
1800
+ "label": "CMS Hub",
1801
+ "href": "/cms-hub"
1802
+ },
1803
+ {
1804
+ "icon": "file-text",
1805
+ "href": "/articles",
1806
+ "label": "Articles"
1807
+ },
1808
+ {
1809
+ "icon": "image",
1810
+ "href": "/media",
1811
+ "label": "Media"
1812
+ },
1813
+ {
1814
+ "label": "Categories",
1815
+ "icon": "folder",
1816
+ "href": "/categories"
1817
+ }
1818
+ ]
1819
+ },
1820
+ "events": {
1821
+ "SEARCH": "CATEGORY_SEARCH",
1822
+ "NOTIFY_CLICK": "CATEGORY_NOTIFICATIONS_OPEN"
1823
+ }
1824
+ },
1738
1825
  {
1739
1826
  "name": "CategoryCatalog",
1740
1827
  "category": "interaction",
@@ -1777,81 +1864,81 @@
1777
1864
  "render-ui",
1778
1865
  "main",
1779
1866
  {
1867
+ "type": "dashboard-layout",
1868
+ "navItems": [
1869
+ {
1870
+ "label": "CMS Hub",
1871
+ "href": "/cms-hub",
1872
+ "icon": "layout-grid"
1873
+ },
1874
+ {
1875
+ "icon": "file-text",
1876
+ "href": "/articles",
1877
+ "label": "Articles"
1878
+ },
1879
+ {
1880
+ "icon": "image",
1881
+ "label": "Media",
1882
+ "href": "/media"
1883
+ },
1884
+ {
1885
+ "href": "/categories",
1886
+ "label": "Categories",
1887
+ "icon": "folder"
1888
+ }
1889
+ ],
1780
1890
  "children": [
1781
1891
  {
1892
+ "className": "max-w-5xl mx-auto w-full",
1893
+ "gap": "lg",
1782
1894
  "children": [
1783
1895
  {
1896
+ "direction": "horizontal",
1897
+ "gap": "md",
1784
1898
  "justify": "between",
1899
+ "align": "center",
1785
1900
  "children": [
1786
1901
  {
1902
+ "gap": "sm",
1903
+ "align": "center",
1904
+ "type": "stack",
1905
+ "direction": "horizontal",
1787
1906
  "children": [
1788
1907
  {
1789
- "type": "icon",
1790
- "name": "folder"
1908
+ "name": "folder",
1909
+ "type": "icon"
1791
1910
  },
1792
1911
  {
1793
- "type": "typography",
1794
1912
  "content": "Categories",
1913
+ "type": "typography",
1795
1914
  "variant": "h2"
1796
1915
  }
1797
- ],
1798
- "gap": "sm",
1799
- "type": "stack",
1800
- "direction": "horizontal",
1801
- "align": "center"
1916
+ ]
1802
1917
  },
1803
1918
  {
1919
+ "direction": "horizontal",
1804
1920
  "type": "stack",
1805
1921
  "gap": "sm",
1806
1922
  "children": [
1807
1923
  {
1808
- "icon": "plus",
1809
- "action": "CREATE",
1810
1924
  "label": "Create Category",
1925
+ "action": "CREATE",
1811
1926
  "type": "button",
1927
+ "icon": "plus",
1812
1928
  "variant": "primary"
1813
1929
  }
1814
- ],
1815
- "direction": "horizontal"
1930
+ ]
1816
1931
  }
1817
1932
  ],
1818
- "direction": "horizontal",
1819
- "type": "stack",
1820
- "gap": "md",
1821
- "align": "center"
1933
+ "type": "stack"
1822
1934
  },
1823
1935
  {
1824
1936
  "type": "divider"
1825
1937
  },
1826
1938
  "@trait.CategoryBrowseList"
1827
1939
  ],
1828
- "gap": "lg",
1829
- "direction": "vertical",
1830
- "className": "max-w-5xl mx-auto w-full",
1831
- "type": "stack"
1832
- }
1833
- ],
1834
- "type": "dashboard-layout",
1835
- "navItems": [
1836
- {
1837
- "label": "CMS Hub",
1838
- "href": "/cms-hub",
1839
- "icon": "layout-grid"
1840
- },
1841
- {
1842
- "label": "Articles",
1843
- "href": "/articles",
1844
- "icon": "file-text"
1845
- },
1846
- {
1847
- "label": "Media",
1848
- "href": "/media",
1849
- "icon": "image"
1850
- },
1851
- {
1852
- "label": "Categories",
1853
- "href": "/categories",
1854
- "icon": "folder"
1940
+ "type": "stack",
1941
+ "direction": "vertical"
1855
1942
  }
1856
1943
  ],
1857
1944
  "appName": "CmsApp"
@@ -1868,33 +1955,11 @@
1868
1955
  "name": "CategoryBrowseList",
1869
1956
  "linkedEntity": "Category",
1870
1957
  "config": {
1871
- "cols": 1.0,
1872
- "fields": [
1873
- {
1874
- "name": "name",
1875
- "icon": "folder",
1876
- "variant": "h3"
1877
- },
1878
- {
1879
- "variant": "badge",
1880
- "label": "Articles",
1881
- "format": "number",
1882
- "name": "articleCount"
1883
- },
1884
- {
1885
- "variant": "body",
1886
- "name": "description"
1887
- },
1888
- {
1889
- "name": "slug",
1890
- "variant": "caption"
1891
- }
1892
- ],
1893
1958
  "variant": "card",
1894
1959
  "itemActions": [
1895
1960
  {
1896
- "label": "View",
1897
1961
  "variant": "ghost",
1962
+ "label": "View",
1898
1963
  "event": "VIEW"
1899
1964
  },
1900
1965
  {
@@ -1908,6 +1973,28 @@
1908
1973
  "label": "Delete"
1909
1974
  }
1910
1975
  ],
1976
+ "fields": [
1977
+ {
1978
+ "icon": "folder",
1979
+ "name": "name",
1980
+ "variant": "h3"
1981
+ },
1982
+ {
1983
+ "variant": "badge",
1984
+ "name": "articleCount",
1985
+ "label": "Articles",
1986
+ "format": "number"
1987
+ },
1988
+ {
1989
+ "name": "description",
1990
+ "variant": "body"
1991
+ },
1992
+ {
1993
+ "name": "slug",
1994
+ "variant": "caption"
1995
+ }
1996
+ ],
1997
+ "cols": 1.0,
1911
1998
  "gap": "sm"
1912
1999
  },
1913
2000
  "listens": [
@@ -1942,16 +2029,16 @@
1942
2029
  "name": "CategoryCreate",
1943
2030
  "linkedEntity": "Category",
1944
2031
  "config": {
2032
+ "icon": "plus-circle",
2033
+ "title": "Create Category",
2034
+ "mode": "create",
1945
2035
  "fields": [
1946
2036
  "name",
1947
2037
  "slug",
1948
2038
  "description",
1949
2039
  "parentCategory",
1950
2040
  "articleCount"
1951
- ],
1952
- "title": "Create Category",
1953
- "mode": "create",
1954
- "icon": "plus-circle"
2041
+ ]
1955
2042
  },
1956
2043
  "events": {
1957
2044
  "OPEN": "CREATE"
@@ -1972,8 +2059,7 @@
1972
2059
  "name": "CategoryEdit",
1973
2060
  "linkedEntity": "Category",
1974
2061
  "config": {
1975
- "icon": "edit",
1976
- "title": "Edit Category",
2062
+ "mode": "edit",
1977
2063
  "fields": [
1978
2064
  "name",
1979
2065
  "slug",
@@ -1981,7 +2067,8 @@
1981
2067
  "parentCategory",
1982
2068
  "articleCount"
1983
2069
  ],
1984
- "mode": "edit"
2070
+ "icon": "edit",
2071
+ "title": "Edit Category"
1985
2072
  },
1986
2073
  "events": {
1987
2074
  "OPEN": "EDIT"
@@ -2002,6 +2089,8 @@
2002
2089
  "name": "CategoryView",
2003
2090
  "linkedEntity": "Category",
2004
2091
  "config": {
2092
+ "icon": "eye",
2093
+ "title": "View Category",
2005
2094
  "fields": [
2006
2095
  "name",
2007
2096
  "slug",
@@ -2009,9 +2098,7 @@
2009
2098
  "parentCategory",
2010
2099
  "articleCount"
2011
2100
  ],
2012
- "title": "View Category",
2013
- "mode": "view",
2014
- "icon": "eye"
2101
+ "mode": "view"
2015
2102
  },
2016
2103
  "events": {
2017
2104
  "OPEN": "VIEW"
@@ -2032,10 +2119,10 @@
2032
2119
  "name": "CategoryDelete",
2033
2120
  "linkedEntity": "Category",
2034
2121
  "config": {
2122
+ "icon": "alert-triangle",
2035
2123
  "title": "Delete Category",
2036
- "confirmLabel": "Delete",
2037
2124
  "alertMessage": "This action cannot be undone.",
2038
- "icon": "alert-triangle"
2125
+ "confirmLabel": "Delete"
2039
2126
  },
2040
2127
  "events": {
2041
2128
  "CONFIRM": "CONFIRM_DELETE",
@@ -2241,6 +2328,9 @@
2241
2328
  "name": "CategoriesPage",
2242
2329
  "path": "/categories",
2243
2330
  "traits": [
2331
+ {
2332
+ "ref": "CategoryAppLayout"
2333
+ },
2244
2334
  {
2245
2335
  "ref": "CategoryCatalog"
2246
2336
  },
@@ -2269,6 +2359,10 @@
2269
2359
  {
2270
2360
  "name": "CmsHubOrbital",
2271
2361
  "uses": [
2362
+ {
2363
+ "from": "std/behaviors/std-app-layout",
2364
+ "as": "AppShell"
2365
+ },
2272
2366
  {
2273
2367
  "from": "std/behaviors/std-browse",
2274
2368
  "as": "Browse"
@@ -2325,6 +2419,44 @@
2325
2419
  ]
2326
2420
  },
2327
2421
  "traits": [
2422
+ {
2423
+ "ref": "AppShell.traits.AppLayout",
2424
+ "name": "CmsHubAppLayout",
2425
+ "linkedEntity": "HubArticle",
2426
+ "config": {
2427
+ "contentTrait": "@trait.CmsHubDisplay",
2428
+ "appName": "CmsApp",
2429
+ "navItems": [
2430
+ {
2431
+ "icon": "layout-grid",
2432
+ "label": "CMS Hub",
2433
+ "href": "/cms-hub"
2434
+ },
2435
+ {
2436
+ "label": "Articles",
2437
+ "href": "/articles",
2438
+ "icon": "file-text"
2439
+ },
2440
+ {
2441
+ "href": "/media",
2442
+ "label": "Media",
2443
+ "icon": "image"
2444
+ },
2445
+ {
2446
+ "href": "/categories",
2447
+ "icon": "folder",
2448
+ "label": "Categories"
2449
+ }
2450
+ ],
2451
+ "searchEvent": "CMS_HUB_SEARCH",
2452
+ "notifications": [],
2453
+ "notificationClickEvent": "CMS_HUB_NOTIFICATIONS_OPEN"
2454
+ },
2455
+ "events": {
2456
+ "SEARCH": "CMS_HUB_SEARCH",
2457
+ "NOTIFY_CLICK": "CMS_HUB_NOTIFICATIONS_OPEN"
2458
+ }
2459
+ },
2328
2460
  {
2329
2461
  "name": "CmsHubDisplay",
2330
2462
  "category": "interaction",
@@ -2353,64 +2485,64 @@
2353
2485
  {
2354
2486
  "type": "dashboard-layout",
2355
2487
  "appName": "CmsApp",
2356
- "navItems": [
2357
- {
2358
- "href": "/cms-hub",
2359
- "icon": "layout-grid",
2360
- "label": "CMS Hub"
2361
- },
2362
- {
2363
- "href": "/articles",
2364
- "icon": "file-text",
2365
- "label": "Articles"
2366
- },
2367
- {
2368
- "label": "Media",
2369
- "href": "/media",
2370
- "icon": "image"
2371
- },
2372
- {
2373
- "icon": "folder",
2374
- "label": "Categories",
2375
- "href": "/categories"
2376
- }
2377
- ],
2378
2488
  "children": [
2379
2489
  {
2380
- "direction": "vertical",
2381
- "type": "stack",
2382
- "className": "max-w-5xl mx-auto w-full",
2383
2490
  "children": [
2384
2491
  {
2385
- "type": "stack",
2386
- "direction": "horizontal",
2387
2492
  "gap": "sm",
2493
+ "align": "center",
2494
+ "direction": "horizontal",
2388
2495
  "children": [
2389
2496
  {
2390
- "name": "layout-grid",
2391
- "type": "icon"
2497
+ "type": "icon",
2498
+ "name": "layout-grid"
2392
2499
  },
2393
2500
  {
2394
- "variant": "h2",
2395
2501
  "content": "CMS Hub",
2396
- "type": "typography"
2502
+ "type": "typography",
2503
+ "variant": "h2"
2397
2504
  }
2398
2505
  ],
2399
- "align": "center"
2506
+ "type": "stack"
2400
2507
  },
2401
2508
  {
2402
2509
  "type": "divider"
2403
2510
  },
2404
2511
  {
2512
+ "content": "Recent articles across the platform",
2405
2513
  "type": "typography",
2406
2514
  "variant": "caption",
2407
- "color": "muted",
2408
- "content": "Recent articles across the platform"
2515
+ "color": "muted"
2409
2516
  },
2410
2517
  "@trait.HubBrowseList"
2411
2518
  ],
2519
+ "className": "max-w-5xl mx-auto w-full",
2520
+ "direction": "vertical",
2521
+ "type": "stack",
2412
2522
  "gap": "lg"
2413
2523
  }
2524
+ ],
2525
+ "navItems": [
2526
+ {
2527
+ "icon": "layout-grid",
2528
+ "label": "CMS Hub",
2529
+ "href": "/cms-hub"
2530
+ },
2531
+ {
2532
+ "label": "Articles",
2533
+ "icon": "file-text",
2534
+ "href": "/articles"
2535
+ },
2536
+ {
2537
+ "icon": "image",
2538
+ "label": "Media",
2539
+ "href": "/media"
2540
+ },
2541
+ {
2542
+ "label": "Categories",
2543
+ "icon": "folder",
2544
+ "href": "/categories"
2545
+ }
2414
2546
  ]
2415
2547
  }
2416
2548
  ]
@@ -2425,7 +2557,7 @@
2425
2557
  "name": "HubBrowseList",
2426
2558
  "linkedEntity": "HubArticle",
2427
2559
  "config": {
2428
- "cols": 1.0,
2560
+ "variant": "card",
2429
2561
  "fields": [
2430
2562
  {
2431
2563
  "name": "title",
@@ -2437,18 +2569,18 @@
2437
2569
  "variant": "badge"
2438
2570
  },
2439
2571
  {
2440
- "variant": "caption",
2441
- "name": "author"
2572
+ "name": "author",
2573
+ "variant": "caption"
2442
2574
  },
2443
2575
  {
2444
2576
  "name": "category",
2445
2577
  "variant": "badge"
2446
2578
  }
2447
2579
  ],
2448
- "itemActions": [],
2449
2580
  "imageField": "heroImage",
2450
2581
  "gap": "sm",
2451
- "variant": "card"
2582
+ "itemActions": [],
2583
+ "cols": 1.0
2452
2584
  }
2453
2585
  }
2454
2586
  ],
@@ -2457,6 +2589,9 @@
2457
2589
  "name": "CmsHubPage",
2458
2590
  "path": "/cms-hub",
2459
2591
  "traits": [
2592
+ {
2593
+ "ref": "CmsHubAppLayout"
2594
+ },
2460
2595
  {
2461
2596
  "ref": "CmsHubDisplay"
2462
2597
  },