@almadar/std 14.16.0 → 14.18.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 (123) 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 +45 -45
  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 +48 -46
  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 +72 -56
  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 +61 -61
  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 +193 -201
  42. package/behaviors/registry/app/organisms/std-field-service.orb +170 -174
  43. package/behaviors/registry/app/organisms/std-finance-tracker.orb +205 -205
  44. package/behaviors/registry/app/organisms/std-forum.orb +127 -128
  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 +152 -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 +142 -142
  55. package/behaviors/registry/app/organisms/std-social-feed.orb +156 -156
  56. package/behaviors/registry/app/organisms/std-subscription-billing.orb +210 -212
  57. package/behaviors/registry/app/organisms/std-survey.orb +148 -149
  58. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +274 -274
  59. package/behaviors/registry/app/organisms/std-wiki.orb +131 -132
  60. package/behaviors/registry/core/molecules/std-form-advanced.orb +124 -124
  61. package/dist/behaviors/behaviors-registry.json +1 -1
  62. package/dist/behaviors/registry/app/atoms/std-branching-logic.orb +84 -84
  63. package/dist/behaviors/registry/app/atoms/std-checkin.orb +60 -60
  64. package/dist/behaviors/registry/app/atoms/std-dunning.orb +44 -44
  65. package/dist/behaviors/registry/app/atoms/std-event.orb +62 -62
  66. package/dist/behaviors/registry/app/atoms/std-flag.orb +72 -72
  67. package/dist/behaviors/registry/app/atoms/std-geosearch.orb +29 -29
  68. package/dist/behaviors/registry/app/atoms/std-image-upload-multi.orb +54 -56
  69. package/dist/behaviors/registry/app/atoms/std-invoice.orb +124 -124
  70. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +45 -45
  71. package/dist/behaviors/registry/app/atoms/std-menu.orb +44 -44
  72. package/dist/behaviors/registry/app/atoms/std-mod-queue.orb +38 -38
  73. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +56 -56
  74. package/dist/behaviors/registry/app/atoms/std-page-tree.orb +55 -55
  75. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +66 -66
  76. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +62 -62
  77. package/dist/behaviors/registry/app/atoms/std-rating-review.orb +67 -67
  78. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +74 -74
  79. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +44 -44
  80. package/dist/behaviors/registry/app/atoms/std-rich-editor.orb +68 -68
  81. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +48 -46
  82. package/dist/behaviors/registry/app/atoms/std-saved-search.orb +72 -72
  83. package/dist/behaviors/registry/app/atoms/std-signature-capture.orb +86 -86
  84. package/dist/behaviors/registry/app/atoms/std-table-map.orb +46 -46
  85. package/dist/behaviors/registry/app/atoms/std-tag-taxonomy.orb +73 -92
  86. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +42 -42
  87. package/dist/behaviors/registry/app/atoms/std-thread.orb +59 -59
  88. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +72 -56
  89. package/dist/behaviors/registry/app/atoms/std-trial.orb +67 -67
  90. package/dist/behaviors/registry/app/atoms/std-version-history.orb +93 -93
  91. package/dist/behaviors/registry/app/atoms/std-vote.orb +40 -40
  92. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +50 -50
  93. package/dist/behaviors/registry/app/atoms/std-work-order.orb +61 -61
  94. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +201 -201
  95. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +676 -676
  96. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +285 -285
  97. package/dist/behaviors/registry/app/organisms/std-cms.orb +265 -265
  98. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +179 -179
  99. package/dist/behaviors/registry/app/organisms/std-crm.orb +258 -258
  100. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +403 -403
  101. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +681 -681
  102. package/dist/behaviors/registry/app/organisms/std-event-ticketing.orb +193 -201
  103. package/dist/behaviors/registry/app/organisms/std-field-service.orb +170 -174
  104. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +205 -205
  105. package/dist/behaviors/registry/app/organisms/std-forum.orb +127 -128
  106. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +540 -540
  107. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +175 -175
  108. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +444 -444
  109. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +344 -344
  110. package/dist/behaviors/registry/app/organisms/std-listings.orb +152 -157
  111. package/dist/behaviors/registry/app/organisms/std-lms.orb +422 -422
  112. package/dist/behaviors/registry/app/organisms/std-marketplace.orb +232 -234
  113. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +193 -193
  114. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +248 -248
  115. package/dist/behaviors/registry/app/organisms/std-restaurant-pos.orb +142 -142
  116. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +156 -156
  117. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +210 -212
  118. package/dist/behaviors/registry/app/organisms/std-survey.orb +148 -149
  119. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +274 -274
  120. package/dist/behaviors/registry/app/organisms/std-wiki.orb +131 -132
  121. package/dist/behaviors/registry/core/molecules/std-form-advanced.orb +124 -124
  122. package/dist/behaviors-registry.json +1 -1
  123. package/package.json +7 -14
@@ -101,19 +101,16 @@
101
101
  "ref": "AppShell.traits.AppLayout",
102
102
  "name": "RouteAppLayout",
103
103
  "config": {
104
- "contentTrait": "@trait.RouteCatalog",
105
- "appName": "API Gateway",
106
- "notifications": [],
107
104
  "navItems": [
108
105
  {
106
+ "href": "/routes",
109
107
  "label": "Routes",
110
- "icon": "git-branch",
111
- "href": "/routes"
108
+ "icon": "git-branch"
112
109
  },
113
110
  {
111
+ "href": "/backends",
114
112
  "label": "Backends",
115
- "icon": "server",
116
- "href": "/backends"
113
+ "icon": "server"
117
114
  },
118
115
  {
119
116
  "label": "Analytics",
@@ -121,12 +118,15 @@
121
118
  "icon": "bar-chart-2"
122
119
  }
123
120
  ],
121
+ "contentTrait": "@trait.RouteCatalog",
124
122
  "searchEvent": "ROUTE_SEARCH",
125
- "notificationClickEvent": "ROUTE_NOTIFICATIONS_OPEN"
123
+ "notificationClickEvent": "ROUTE_NOTIFICATIONS_OPEN",
124
+ "notifications": [],
125
+ "appName": "API Gateway"
126
126
  },
127
127
  "events": {
128
- "NOTIFY_CLICK": "ROUTE_NOTIFICATIONS_OPEN",
129
- "SEARCH": "ROUTE_SEARCH"
128
+ "SEARCH": "ROUTE_SEARCH",
129
+ "NOTIFY_CLICK": "ROUTE_NOTIFICATIONS_OPEN"
130
130
  }
131
131
  },
132
132
  {
@@ -209,47 +209,46 @@
209
209
  "render-ui",
210
210
  "main",
211
211
  {
212
- "direction": "vertical",
213
212
  "children": [
214
213
  {
214
+ "gap": "md",
215
215
  "align": "center",
216
216
  "children": [
217
217
  {
218
- "align": "center",
219
- "type": "stack",
220
- "direction": "horizontal",
221
- "gap": "sm",
222
218
  "children": [
223
219
  {
224
220
  "type": "icon",
225
221
  "name": "git-branch"
226
222
  },
227
223
  {
224
+ "variant": "h2",
228
225
  "type": "typography",
229
- "content": "Routes",
230
- "variant": "h2"
226
+ "content": "Routes"
231
227
  }
232
- ]
228
+ ],
229
+ "gap": "sm",
230
+ "direction": "horizontal",
231
+ "type": "stack",
232
+ "align": "center"
233
233
  },
234
234
  {
235
- "gap": "sm",
236
235
  "children": [
237
236
  {
237
+ "type": "button",
238
238
  "label": "Create Route",
239
239
  "action": "CREATE",
240
- "type": "button",
241
240
  "variant": "primary",
242
241
  "icon": "plus"
243
242
  }
244
243
  ],
244
+ "gap": "sm",
245
245
  "type": "stack",
246
246
  "direction": "horizontal"
247
247
  }
248
248
  ],
249
- "direction": "horizontal",
250
249
  "type": "stack",
251
- "justify": "between",
252
- "gap": "md"
250
+ "direction": "horizontal",
251
+ "justify": "between"
253
252
  },
254
253
  {
255
254
  "type": "divider"
@@ -271,8 +270,9 @@
271
270
  },
272
271
  "@trait.RouteBrowseList"
273
272
  ],
274
- "type": "stack",
275
- "gap": "lg"
273
+ "gap": "lg",
274
+ "direction": "vertical",
275
+ "type": "stack"
276
276
  }
277
277
  ]
278
278
  ]
@@ -291,34 +291,34 @@
291
291
  "render-ui",
292
292
  "main",
293
293
  {
294
+ "type": "stack",
295
+ "direction": "vertical",
296
+ "className": "py-8",
297
+ "align": "center",
298
+ "gap": "md",
294
299
  "children": [
295
300
  {
296
- "name": "bell",
297
- "type": "icon"
301
+ "type": "icon",
302
+ "name": "bell"
298
303
  },
299
304
  {
300
- "variant": "h3",
301
305
  "content": "No notifications",
302
- "type": "typography"
306
+ "type": "typography",
307
+ "variant": "h3"
303
308
  },
304
309
  {
305
310
  "type": "typography",
306
- "variant": "caption",
307
311
  "color": "muted",
308
- "content": "You're all caught up."
312
+ "content": "You're all caught up.",
313
+ "variant": "caption"
309
314
  },
310
315
  {
311
- "label": "Back to routes",
312
- "type": "button",
313
316
  "action": "INIT",
314
- "variant": "ghost"
317
+ "variant": "ghost",
318
+ "label": "Back to routes",
319
+ "type": "button"
315
320
  }
316
- ],
317
- "align": "center",
318
- "type": "stack",
319
- "gap": "md",
320
- "direction": "vertical",
321
- "className": "py-8"
321
+ ]
322
322
  }
323
323
  ]
324
324
  ]
@@ -331,26 +331,25 @@
331
331
  "ref": "Search.traits.SearchResultSearch",
332
332
  "name": "RouteSearch",
333
333
  "config": {
334
- "event": "ROUTE_SEARCH",
335
- "placeholder": "Search routes…"
334
+ "placeholder": "Search routes…",
335
+ "event": "ROUTE_SEARCH"
336
336
  }
337
337
  },
338
338
  {
339
339
  "ref": "Filter.traits.FilterTargetFilter",
340
340
  "name": "RouteFilter",
341
341
  "config": {
342
- "event": "ROUTE_FILTER",
343
342
  "filters": [
344
343
  {
345
344
  "label": "Method",
346
- "field": "method",
345
+ "filterType": "select",
347
346
  "options": [
348
347
  "GET",
349
348
  "POST",
350
349
  "PUT",
351
350
  "DELETE"
352
351
  ],
353
- "filterType": "select"
352
+ "field": "method"
354
353
  },
355
354
  {
356
355
  "options": [
@@ -361,7 +360,8 @@
361
360
  "label": "Status",
362
361
  "filterType": "select"
363
362
  }
364
- ]
363
+ ],
364
+ "event": "ROUTE_FILTER"
365
365
  }
366
366
  },
367
367
  {
@@ -371,15 +371,13 @@
371
371
  "title": "Routes",
372
372
  "metrics": [
373
373
  {
374
+ "aggregation": "count",
374
375
  "label": "Total",
375
- "icon": "git-branch",
376
- "variant": "primary",
377
376
  "format": "number",
378
- "aggregation": "count"
377
+ "variant": "primary",
378
+ "icon": "git-branch"
379
379
  },
380
380
  {
381
- "aggregation": "count",
382
- "label": "Active",
383
381
  "format": "number",
384
382
  "filter": [
385
383
  "fn",
@@ -390,11 +388,14 @@
390
388
  "active"
391
389
  ]
392
390
  ],
393
- "variant": "success",
394
- "icon": "check-circle"
391
+ "label": "Active",
392
+ "aggregation": "count",
393
+ "icon": "check-circle",
394
+ "variant": "success"
395
395
  },
396
396
  {
397
397
  "aggregation": "count",
398
+ "variant": "warning",
398
399
  "filter": [
399
400
  "fn",
400
401
  "row",
@@ -404,10 +405,9 @@
404
405
  "disabled"
405
406
  ]
406
407
  ],
407
- "label": "Disabled",
408
+ "icon": "x-circle",
408
409
  "format": "number",
409
- "variant": "warning",
410
- "icon": "x-circle"
410
+ "label": "Disabled"
411
411
  }
412
412
  ]
413
413
  },
@@ -427,12 +427,12 @@
427
427
  "name": "RouteGraphs",
428
428
  "config": {
429
429
  "subtitle": "Distribution across HTTP methods",
430
+ "chartType": "pie",
430
431
  "categoryField": "method",
431
432
  "aggregation": "count",
432
- "title": "Routes by Method",
433
- "chartType": "pie",
434
433
  "height": 240.0,
435
- "showLegend": true
434
+ "showLegend": true,
435
+ "title": "Routes by Method"
436
436
  },
437
437
  "listens": [
438
438
  {
@@ -450,49 +450,49 @@
450
450
  "name": "RouteBrowseList",
451
451
  "linkedEntity": "Route",
452
452
  "config": {
453
- "itemActions": [
454
- {
455
- "label": "View",
456
- "variant": "ghost",
457
- "event": "VIEW"
458
- },
459
- {
460
- "label": "Edit",
461
- "variant": "ghost",
462
- "event": "EDIT"
463
- },
464
- {
465
- "label": "Delete",
466
- "variant": "danger",
467
- "event": "DELETE"
468
- }
469
- ],
453
+ "gap": "sm",
470
454
  "fields": [
471
455
  {
472
456
  "name": "path",
473
- "variant": "h3",
474
- "icon": "git-branch"
457
+ "icon": "git-branch",
458
+ "variant": "h3"
475
459
  },
476
460
  {
477
- "name": "method",
478
- "variant": "badge"
461
+ "variant": "badge",
462
+ "name": "method"
479
463
  },
480
464
  {
481
465
  "name": "status",
482
466
  "variant": "badge"
483
467
  },
484
468
  {
485
- "variant": "body",
486
- "name": "target"
469
+ "name": "target",
470
+ "variant": "body"
487
471
  },
488
472
  {
489
- "name": "hits",
490
- "variant": "caption",
491
473
  "format": "number",
474
+ "variant": "caption",
475
+ "name": "hits",
492
476
  "label": "Hits"
493
477
  }
494
478
  ],
495
- "gap": "sm",
479
+ "itemActions": [
480
+ {
481
+ "event": "VIEW",
482
+ "variant": "ghost",
483
+ "label": "View"
484
+ },
485
+ {
486
+ "variant": "ghost",
487
+ "label": "Edit",
488
+ "event": "EDIT"
489
+ },
490
+ {
491
+ "variant": "danger",
492
+ "event": "DELETE",
493
+ "label": "Delete"
494
+ }
495
+ ],
496
496
  "cols": 1.0
497
497
  },
498
498
  "listens": [
@@ -544,8 +544,8 @@
544
544
  "linkedEntity": "Route",
545
545
  "config": {
546
546
  "icon": "plus-circle",
547
- "title": "New Route",
548
547
  "mode": "create",
548
+ "title": "New Route",
549
549
  "fields": [
550
550
  "path",
551
551
  "method",
@@ -574,8 +574,8 @@
574
574
  "linkedEntity": "Route",
575
575
  "config": {
576
576
  "mode": "edit",
577
- "title": "Edit Route",
578
577
  "icon": "edit",
578
+ "title": "Edit Route",
579
579
  "fields": [
580
580
  "path",
581
581
  "method",
@@ -603,16 +603,16 @@
603
603
  "name": "RouteView",
604
604
  "linkedEntity": "Route",
605
605
  "config": {
606
- "icon": "eye",
607
- "title": "View Route",
608
- "mode": "edit",
609
606
  "fields": [
610
607
  "path",
611
608
  "method",
612
609
  "status",
613
610
  "target",
614
611
  "rateLimit"
615
- ]
612
+ ],
613
+ "mode": "edit",
614
+ "icon": "eye",
615
+ "title": "View Route"
616
616
  },
617
617
  "events": {
618
618
  "OPEN": "VIEW"
@@ -634,8 +634,8 @@
634
634
  "linkedEntity": "Route",
635
635
  "config": {
636
636
  "icon": "alert-triangle",
637
- "confirmLabel": "Delete",
638
637
  "title": "Delete Route",
638
+ "confirmLabel": "Delete",
639
639
  "alertMessage": "This action cannot be undone."
640
640
  },
641
641
  "events": {
@@ -961,26 +961,26 @@
961
961
  "name": "BackendAppLayout",
962
962
  "linkedEntity": "Backend",
963
963
  "config": {
964
- "searchEvent": "BACKEND_SEARCH",
965
- "contentTrait": "@trait.BackendCatalog",
966
964
  "notificationClickEvent": "BACKEND_NOTIFICATIONS_OPEN",
965
+ "contentTrait": "@trait.BackendCatalog",
967
966
  "notifications": [],
967
+ "searchEvent": "BACKEND_SEARCH",
968
968
  "appName": "API Gateway",
969
969
  "navItems": [
970
970
  {
971
971
  "icon": "git-branch",
972
- "href": "/routes",
973
- "label": "Routes"
972
+ "label": "Routes",
973
+ "href": "/routes"
974
974
  },
975
975
  {
976
- "label": "Backends",
977
976
  "href": "/backends",
978
- "icon": "server"
977
+ "icon": "server",
978
+ "label": "Backends"
979
979
  },
980
980
  {
981
981
  "label": "Analytics",
982
- "icon": "bar-chart-2",
983
- "href": "/analytics"
982
+ "href": "/analytics",
983
+ "icon": "bar-chart-2"
984
984
  }
985
985
  ]
986
986
  },
@@ -1069,49 +1069,46 @@
1069
1069
  "render-ui",
1070
1070
  "main",
1071
1071
  {
1072
- "type": "stack",
1073
- "direction": "vertical",
1074
- "gap": "lg",
1075
1072
  "children": [
1076
1073
  {
1077
- "align": "center",
1078
- "direction": "horizontal",
1079
- "gap": "md",
1080
- "type": "stack",
1081
- "justify": "between",
1082
1074
  "children": [
1083
1075
  {
1084
- "align": "center",
1085
1076
  "type": "stack",
1086
1077
  "gap": "sm",
1087
- "direction": "horizontal",
1088
1078
  "children": [
1089
1079
  {
1090
- "type": "icon",
1091
- "name": "server"
1080
+ "name": "server",
1081
+ "type": "icon"
1092
1082
  },
1093
1083
  {
1094
1084
  "type": "typography",
1095
1085
  "content": "Backends",
1096
1086
  "variant": "h2"
1097
1087
  }
1098
- ]
1088
+ ],
1089
+ "direction": "horizontal",
1090
+ "align": "center"
1099
1091
  },
1100
1092
  {
1101
1093
  "gap": "sm",
1094
+ "type": "stack",
1095
+ "direction": "horizontal",
1102
1096
  "children": [
1103
1097
  {
1104
1098
  "type": "button",
1105
- "action": "CREATE",
1099
+ "label": "Create Backend",
1106
1100
  "icon": "plus",
1107
1101
  "variant": "primary",
1108
- "label": "Create Backend"
1102
+ "action": "CREATE"
1109
1103
  }
1110
- ],
1111
- "type": "stack",
1112
- "direction": "horizontal"
1104
+ ]
1113
1105
  }
1114
- ]
1106
+ ],
1107
+ "type": "stack",
1108
+ "direction": "horizontal",
1109
+ "gap": "md",
1110
+ "justify": "between",
1111
+ "align": "center"
1115
1112
  },
1116
1113
  {
1117
1114
  "type": "divider"
@@ -1122,13 +1119,16 @@
1122
1119
  },
1123
1120
  {
1124
1121
  "variant": "h3",
1125
- "content": "Service Health",
1126
- "type": "typography"
1122
+ "type": "typography",
1123
+ "content": "Service Health"
1127
1124
  },
1128
1125
  "@trait.BackendCircuitBreaker",
1129
1126
  "@trait.BackendRateLimiter",
1130
1127
  "@trait.BackendCache"
1131
- ]
1128
+ ],
1129
+ "gap": "lg",
1130
+ "type": "stack",
1131
+ "direction": "vertical"
1132
1132
  }
1133
1133
  ]
1134
1134
  ]
@@ -1147,7 +1147,9 @@
1147
1147
  "render-ui",
1148
1148
  "main",
1149
1149
  {
1150
- "gap": "md",
1150
+ "direction": "vertical",
1151
+ "align": "center",
1152
+ "type": "stack",
1151
1153
  "className": "py-8",
1152
1154
  "children": [
1153
1155
  {
@@ -1155,26 +1157,24 @@
1155
1157
  "name": "bell"
1156
1158
  },
1157
1159
  {
1160
+ "content": "No notifications",
1158
1161
  "type": "typography",
1159
- "variant": "h3",
1160
- "content": "No notifications"
1162
+ "variant": "h3"
1161
1163
  },
1162
1164
  {
1163
- "type": "typography",
1164
1165
  "color": "muted",
1165
1166
  "content": "You're all caught up.",
1167
+ "type": "typography",
1166
1168
  "variant": "caption"
1167
1169
  },
1168
1170
  {
1169
1171
  "type": "button",
1170
1172
  "variant": "ghost",
1171
- "action": "INIT",
1172
- "label": "Back to backends"
1173
+ "label": "Back to backends",
1174
+ "action": "INIT"
1173
1175
  }
1174
1176
  ],
1175
- "align": "center",
1176
- "type": "stack",
1177
- "direction": "vertical"
1177
+ "gap": "md"
1178
1178
  }
1179
1179
  ]
1180
1180
  ]
@@ -1188,6 +1188,24 @@
1188
1188
  "name": "BackendBrowseList",
1189
1189
  "linkedEntity": "Backend",
1190
1190
  "config": {
1191
+ "itemActions": [
1192
+ {
1193
+ "variant": "ghost",
1194
+ "label": "View",
1195
+ "event": "VIEW"
1196
+ },
1197
+ {
1198
+ "variant": "ghost",
1199
+ "label": "Edit",
1200
+ "event": "EDIT"
1201
+ },
1202
+ {
1203
+ "label": "Delete",
1204
+ "variant": "danger",
1205
+ "event": "DELETE"
1206
+ }
1207
+ ],
1208
+ "cols": 1.0,
1191
1209
  "fields": [
1192
1210
  {
1193
1211
  "variant": "h3",
@@ -1199,35 +1217,17 @@
1199
1217
  "variant": "body"
1200
1218
  },
1201
1219
  {
1202
- "variant": "badge",
1203
- "name": "status"
1220
+ "name": "status",
1221
+ "variant": "badge"
1204
1222
  },
1205
1223
  {
1206
- "name": "latency",
1207
- "label": "Latency",
1208
1224
  "variant": "caption",
1209
- "format": "number"
1210
- }
1211
- ],
1212
- "itemActions": [
1213
- {
1214
- "variant": "ghost",
1215
- "event": "VIEW",
1216
- "label": "View"
1217
- },
1218
- {
1219
- "label": "Edit",
1220
- "event": "EDIT",
1221
- "variant": "ghost"
1222
- },
1223
- {
1224
- "label": "Delete",
1225
- "event": "DELETE",
1226
- "variant": "danger"
1225
+ "format": "number",
1226
+ "label": "Latency",
1227
+ "name": "latency"
1227
1228
  }
1228
1229
  ],
1229
- "gap": "sm",
1230
- "cols": 1.0
1230
+ "gap": "sm"
1231
1231
  },
1232
1232
  "listens": [
1233
1233
  {
@@ -1274,14 +1274,14 @@
1274
1274
  "linkedEntity": "Backend",
1275
1275
  "config": {
1276
1276
  "mode": "create",
1277
- "icon": "plus-circle",
1277
+ "title": "New Backend",
1278
1278
  "fields": [
1279
1279
  "name",
1280
1280
  "url",
1281
1281
  "status",
1282
1282
  "latency"
1283
1283
  ],
1284
- "title": "New Backend"
1284
+ "icon": "plus-circle"
1285
1285
  },
1286
1286
  "events": {
1287
1287
  "OPEN": "CREATE"
@@ -1302,8 +1302,8 @@
1302
1302
  "name": "BackendEdit",
1303
1303
  "linkedEntity": "Backend",
1304
1304
  "config": {
1305
- "title": "Edit Backend",
1306
1305
  "mode": "edit",
1306
+ "title": "Edit Backend",
1307
1307
  "fields": [
1308
1308
  "name",
1309
1309
  "url",
@@ -1331,15 +1331,15 @@
1331
1331
  "name": "BackendView",
1332
1332
  "linkedEntity": "Backend",
1333
1333
  "config": {
1334
+ "icon": "eye",
1334
1335
  "title": "View Backend",
1335
- "mode": "edit",
1336
1336
  "fields": [
1337
1337
  "name",
1338
1338
  "url",
1339
1339
  "status",
1340
1340
  "latency"
1341
1341
  ],
1342
- "icon": "eye"
1342
+ "mode": "edit"
1343
1343
  },
1344
1344
  "events": {
1345
1345
  "OPEN": "VIEW"
@@ -1360,14 +1360,14 @@
1360
1360
  "name": "BackendDelete",
1361
1361
  "linkedEntity": "Backend",
1362
1362
  "config": {
1363
- "confirmLabel": "Delete",
1364
1363
  "title": "Delete Backend",
1365
- "icon": "alert-triangle",
1366
- "alertMessage": "This action cannot be undone."
1364
+ "alertMessage": "This action cannot be undone.",
1365
+ "confirmLabel": "Delete",
1366
+ "icon": "alert-triangle"
1367
1367
  },
1368
1368
  "events": {
1369
- "CONFIRM": "CONFIRM_DELETE",
1370
- "REQUEST": "DELETE"
1369
+ "REQUEST": "DELETE",
1370
+ "CONFIRM": "CONFIRM_DELETE"
1371
1371
  },
1372
1372
  "listens": [
1373
1373
  {
@@ -1660,18 +1660,18 @@
1660
1660
  "name": "AnalyticsAppLayout",
1661
1661
  "linkedEntity": "AnalyticsRecord",
1662
1662
  "config": {
1663
- "contentTrait": "@trait.AnalyticsDisplay",
1664
- "searchEvent": "ANALYTICS_SEARCH",
1663
+ "appName": "API Gateway",
1664
+ "notifications": [],
1665
1665
  "navItems": [
1666
1666
  {
1667
+ "icon": "git-branch",
1667
1668
  "href": "/routes",
1668
- "label": "Routes",
1669
- "icon": "git-branch"
1669
+ "label": "Routes"
1670
1670
  },
1671
1671
  {
1672
- "label": "Backends",
1673
1672
  "href": "/backends",
1674
- "icon": "server"
1673
+ "icon": "server",
1674
+ "label": "Backends"
1675
1675
  },
1676
1676
  {
1677
1677
  "href": "/analytics",
@@ -1679,9 +1679,9 @@
1679
1679
  "icon": "bar-chart-2"
1680
1680
  }
1681
1681
  ],
1682
- "appName": "API Gateway",
1682
+ "searchEvent": "ANALYTICS_SEARCH",
1683
1683
  "notificationClickEvent": "ANALYTICS_NOTIFICATIONS_OPEN",
1684
- "notifications": []
1684
+ "contentTrait": "@trait.AnalyticsDisplay"
1685
1685
  },
1686
1686
  "events": {
1687
1687
  "NOTIFY_CLICK": "ANALYTICS_NOTIFICATIONS_OPEN",
@@ -1698,14 +1698,14 @@
1698
1698
  "cols": 1.0,
1699
1699
  "fields": [
1700
1700
  {
1701
- "label": "Route",
1702
- "variant": "h4",
1701
+ "icon": "bar-chart-2",
1703
1702
  "name": "routePath",
1704
- "icon": "bar-chart-2"
1703
+ "label": "Route",
1704
+ "variant": "h4"
1705
1705
  },
1706
1706
  {
1707
- "variant": "badge",
1708
1707
  "label": "Method",
1708
+ "variant": "badge",
1709
1709
  "name": "method"
1710
1710
  },
1711
1711
  {
@@ -1714,16 +1714,16 @@
1714
1714
  "name": "statusCode"
1715
1715
  },
1716
1716
  {
1717
- "label": "Latency",
1718
1717
  "name": "latencyMs",
1719
1718
  "variant": "caption",
1719
+ "label": "Latency",
1720
1720
  "format": "number"
1721
1721
  },
1722
1722
  {
1723
- "name": "timestamp",
1723
+ "format": "date",
1724
1724
  "variant": "caption",
1725
- "label": "Time",
1726
- "format": "date"
1725
+ "name": "timestamp",
1726
+ "label": "Time"
1727
1727
  }
1728
1728
  ],
1729
1729
  "gap": "sm"
@@ -1793,25 +1793,25 @@
1793
1793
  "render-ui",
1794
1794
  "main",
1795
1795
  {
1796
- "direction": "vertical",
1796
+ "gap": "lg",
1797
1797
  "type": "stack",
1798
1798
  "children": [
1799
1799
  {
1800
- "direction": "horizontal",
1801
- "type": "stack",
1802
1800
  "children": [
1803
1801
  {
1804
- "name": "bar-chart-2",
1805
- "type": "icon"
1802
+ "type": "icon",
1803
+ "name": "bar-chart-2"
1806
1804
  },
1807
1805
  {
1806
+ "content": "Analytics",
1808
1807
  "variant": "h2",
1809
- "type": "typography",
1810
- "content": "Analytics"
1808
+ "type": "typography"
1811
1809
  }
1812
1810
  ],
1813
- "align": "center",
1814
- "gap": "sm"
1811
+ "type": "stack",
1812
+ "direction": "horizontal",
1813
+ "gap": "sm",
1814
+ "align": "center"
1815
1815
  },
1816
1816
  {
1817
1817
  "type": "divider"
@@ -1823,7 +1823,7 @@
1823
1823
  },
1824
1824
  "@trait.AnalyticsBrowseList"
1825
1825
  ],
1826
- "gap": "lg",
1826
+ "direction": "vertical",
1827
1827
  "className": "max-w-6xl mx-auto w-full p-4"
1828
1828
  }
1829
1829
  ]
@@ -1843,34 +1843,34 @@
1843
1843
  "render-ui",
1844
1844
  "main",
1845
1845
  {
1846
+ "align": "center",
1847
+ "className": "py-8",
1848
+ "type": "stack",
1846
1849
  "children": [
1847
1850
  {
1848
1851
  "type": "icon",
1849
1852
  "name": "bell"
1850
1853
  },
1851
1854
  {
1852
- "content": "No notifications",
1855
+ "type": "typography",
1853
1856
  "variant": "h3",
1854
- "type": "typography"
1857
+ "content": "No notifications"
1855
1858
  },
1856
1859
  {
1857
- "type": "typography",
1858
1860
  "variant": "caption",
1859
1861
  "color": "muted",
1860
- "content": "You're all caught up."
1862
+ "content": "You're all caught up.",
1863
+ "type": "typography"
1861
1864
  },
1862
1865
  {
1863
1866
  "type": "button",
1864
- "action": "INIT",
1865
1867
  "variant": "ghost",
1866
- "label": "Back to analytics"
1868
+ "label": "Back to analytics",
1869
+ "action": "INIT"
1867
1870
  }
1868
1871
  ],
1869
1872
  "gap": "md",
1870
- "direction": "vertical",
1871
- "type": "stack",
1872
- "align": "center",
1873
- "className": "py-8"
1873
+ "direction": "vertical"
1874
1874
  }
1875
1875
  ]
1876
1876
  ]