@almadar/std 3.2.1 → 3.2.3

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 (295) hide show
  1. package/behaviors/exports/atoms/std-async.orb +41 -24
  2. package/behaviors/exports/atoms/std-browse.orb +44 -44
  3. package/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  4. package/behaviors/exports/atoms/std-calendar.orb +770 -0
  5. package/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  6. package/behaviors/exports/atoms/std-collision.orb +278 -206
  7. package/behaviors/exports/atoms/std-combat-log.orb +6 -1
  8. package/behaviors/exports/atoms/std-combat.orb +6 -1
  9. package/behaviors/exports/atoms/std-confirmation.orb +212 -7
  10. package/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  11. package/behaviors/exports/atoms/std-display.orb +1186 -376
  12. package/behaviors/exports/atoms/std-drawer.orb +307 -101
  13. package/behaviors/exports/atoms/std-filter.orb +211 -18
  14. package/behaviors/exports/atoms/std-flip-card.orb +596 -0
  15. package/behaviors/exports/atoms/std-gallery.orb +382 -0
  16. package/behaviors/exports/atoms/std-game-audio.orb +6 -1
  17. package/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  18. package/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  19. package/behaviors/exports/atoms/std-game-hud.orb +6 -1
  20. package/behaviors/exports/atoms/std-game-menu.orb +6 -1
  21. package/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  22. package/behaviors/exports/atoms/std-gameflow.orb +100 -5
  23. package/behaviors/exports/atoms/std-input.orb +142 -137
  24. package/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  25. package/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  26. package/behaviors/exports/atoms/std-loading.orb +149 -170
  27. package/behaviors/exports/atoms/std-modal.orb +159 -94
  28. package/behaviors/exports/atoms/std-movement.orb +401 -31
  29. package/behaviors/exports/atoms/std-notification.orb +117 -95
  30. package/behaviors/exports/atoms/std-overworld.orb +44 -16
  31. package/behaviors/exports/atoms/std-pagination.orb +44 -115
  32. package/behaviors/exports/atoms/std-physics2d.orb +6 -1
  33. package/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  34. package/behaviors/exports/atoms/std-quest.orb +309 -34
  35. package/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  36. package/behaviors/exports/atoms/std-rating.orb +328 -0
  37. package/behaviors/exports/atoms/std-score-board.orb +6 -1
  38. package/behaviors/exports/atoms/std-score.orb +252 -11
  39. package/behaviors/exports/atoms/std-search.orb +62 -47
  40. package/behaviors/exports/atoms/std-selection.orb +180 -149
  41. package/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  42. package/behaviors/exports/atoms/std-sort.orb +192 -60
  43. package/behaviors/exports/atoms/std-sprite.orb +6 -1
  44. package/behaviors/exports/atoms/std-tabs.orb +25 -15
  45. package/behaviors/exports/atoms/std-text-effects.orb +658 -0
  46. package/behaviors/exports/atoms/std-theme.orb +573 -0
  47. package/behaviors/exports/atoms/std-timer.orb +483 -91
  48. package/behaviors/exports/atoms/std-undo.orb +211 -81
  49. package/behaviors/exports/atoms/std-upload.orb +535 -0
  50. package/behaviors/exports/atoms/std-wizard.orb +677 -240
  51. package/behaviors/exports/molecules/std-builder-game.orb +49 -4
  52. package/behaviors/exports/molecules/std-cart.orb +325 -102
  53. package/behaviors/exports/molecules/std-classifier-game.orb +49 -4
  54. package/behaviors/exports/molecules/std-debugger-game.orb +49 -4
  55. package/behaviors/exports/molecules/std-detail.orb +52 -48
  56. package/behaviors/exports/molecules/std-event-handler-game.orb +49 -4
  57. package/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  58. package/behaviors/exports/molecules/std-geospatial.orb +70 -51
  59. package/behaviors/exports/molecules/std-inventory.orb +92 -53
  60. package/behaviors/exports/molecules/std-list.orb +416 -52
  61. package/behaviors/exports/molecules/std-messaging.orb +41 -49
  62. package/behaviors/exports/molecules/std-negotiator-game.orb +49 -4
  63. package/behaviors/exports/molecules/std-platformer-game.orb +58 -3
  64. package/behaviors/exports/molecules/std-puzzle-game.orb +58 -7
  65. package/behaviors/exports/molecules/std-quiz.orb +1045 -0
  66. package/behaviors/exports/molecules/std-sequencer-game.orb +49 -4
  67. package/behaviors/exports/molecules/std-simulator-game.orb +49 -4
  68. package/behaviors/exports/molecules/std-turn-based-battle.orb +66 -1
  69. package/behaviors/exports/organisms/std-api-gateway.orb +2615 -867
  70. package/behaviors/exports/organisms/std-arcade-game.orb +399 -197
  71. package/behaviors/exports/organisms/std-booking-system.orb +3154 -1305
  72. package/behaviors/exports/organisms/std-cicd-pipeline.orb +2298 -779
  73. package/behaviors/exports/organisms/std-cms.orb +1150 -277
  74. package/behaviors/exports/organisms/std-coding-academy.orb +1222 -533
  75. package/behaviors/exports/organisms/std-crm.orb +2357 -821
  76. package/behaviors/exports/organisms/std-devops-dashboard.orb +4230 -1281
  77. package/behaviors/exports/organisms/std-ecommerce.orb +2660 -1098
  78. package/behaviors/exports/organisms/std-finance-tracker.orb +1749 -737
  79. package/behaviors/exports/organisms/std-healthcare.orb +3593 -1478
  80. package/behaviors/exports/organisms/std-helpdesk.orb +1870 -738
  81. package/behaviors/exports/organisms/std-hr-portal.orb +3290 -1385
  82. package/behaviors/exports/organisms/std-iot-dashboard.orb +2704 -788
  83. package/behaviors/exports/organisms/std-lms.orb +2548 -1192
  84. package/behaviors/exports/organisms/std-logic-training.orb +220 -66
  85. package/behaviors/exports/organisms/std-platformer-app.orb +373 -194
  86. package/behaviors/exports/organisms/std-project-manager.orb +2347 -806
  87. package/behaviors/exports/organisms/std-puzzle-app.orb +240 -95
  88. package/behaviors/exports/organisms/std-realtime-chat.orb +2020 -660
  89. package/behaviors/exports/organisms/std-rpg-game.orb +1303 -740
  90. package/behaviors/exports/organisms/std-social-feed.orb +184 -168
  91. package/behaviors/exports/organisms/std-stem-lab.orb +1223 -512
  92. package/behaviors/exports/organisms/std-strategy-game.orb +1412 -731
  93. package/behaviors/exports/organisms/std-trading-dashboard.orb +1869 -695
  94. package/behaviors/exports/validation-report.json +3 -750
  95. package/behaviors/exports/verify-results.json +13 -0
  96. package/dist/behaviors/exports/atoms/std-async.orb +41 -24
  97. package/dist/behaviors/exports/atoms/std-browse.orb +44 -44
  98. package/dist/behaviors/exports/atoms/std-cache-aside.orb +256 -42
  99. package/dist/behaviors/exports/atoms/std-calendar.orb +770 -0
  100. package/dist/behaviors/exports/atoms/std-circuit-breaker.orb +577 -97
  101. package/dist/behaviors/exports/atoms/std-collision.orb +278 -206
  102. package/dist/behaviors/exports/atoms/std-combat-log.orb +6 -1
  103. package/dist/behaviors/exports/atoms/std-combat.orb +6 -1
  104. package/dist/behaviors/exports/atoms/std-confirmation.orb +212 -7
  105. package/dist/behaviors/exports/atoms/std-dialogue-box.orb +6 -1
  106. package/dist/behaviors/exports/atoms/std-display.orb +1186 -376
  107. package/dist/behaviors/exports/atoms/std-drawer.orb +307 -101
  108. package/dist/behaviors/exports/atoms/std-filter.orb +211 -18
  109. package/dist/behaviors/exports/atoms/std-flip-card.orb +596 -0
  110. package/dist/behaviors/exports/atoms/std-gallery.orb +382 -0
  111. package/dist/behaviors/exports/atoms/std-game-audio.orb +6 -1
  112. package/dist/behaviors/exports/atoms/std-game-canvas2d.orb +6 -1
  113. package/dist/behaviors/exports/atoms/std-game-canvas3d.orb +6 -1
  114. package/dist/behaviors/exports/atoms/std-game-hud.orb +6 -1
  115. package/dist/behaviors/exports/atoms/std-game-menu.orb +6 -1
  116. package/dist/behaviors/exports/atoms/std-game-over-screen.orb +6 -1
  117. package/dist/behaviors/exports/atoms/std-gameflow.orb +100 -5
  118. package/dist/behaviors/exports/atoms/std-input.orb +142 -137
  119. package/dist/behaviors/exports/atoms/std-inventory-panel.orb +6 -1
  120. package/dist/behaviors/exports/atoms/std-isometric-canvas.orb +6 -1
  121. package/dist/behaviors/exports/atoms/std-loading.orb +149 -170
  122. package/dist/behaviors/exports/atoms/std-modal.orb +159 -94
  123. package/dist/behaviors/exports/atoms/std-movement.orb +401 -31
  124. package/dist/behaviors/exports/atoms/std-notification.orb +117 -95
  125. package/dist/behaviors/exports/atoms/std-overworld.orb +44 -16
  126. package/dist/behaviors/exports/atoms/std-pagination.orb +44 -115
  127. package/dist/behaviors/exports/atoms/std-physics2d.orb +6 -1
  128. package/dist/behaviors/exports/atoms/std-platformer-canvas.orb +6 -1
  129. package/dist/behaviors/exports/atoms/std-quest.orb +309 -34
  130. package/dist/behaviors/exports/atoms/std-rate-limiter.orb +410 -157
  131. package/dist/behaviors/exports/atoms/std-rating.orb +328 -0
  132. package/dist/behaviors/exports/atoms/std-score-board.orb +6 -1
  133. package/dist/behaviors/exports/atoms/std-score.orb +252 -11
  134. package/dist/behaviors/exports/atoms/std-search.orb +62 -47
  135. package/dist/behaviors/exports/atoms/std-selection.orb +180 -149
  136. package/dist/behaviors/exports/atoms/std-simulation-canvas.orb +6 -1
  137. package/dist/behaviors/exports/atoms/std-sort.orb +192 -60
  138. package/dist/behaviors/exports/atoms/std-sprite.orb +6 -1
  139. package/dist/behaviors/exports/atoms/std-tabs.orb +25 -15
  140. package/dist/behaviors/exports/atoms/std-text-effects.orb +658 -0
  141. package/dist/behaviors/exports/atoms/std-theme.orb +573 -0
  142. package/dist/behaviors/exports/atoms/std-timer.orb +483 -91
  143. package/dist/behaviors/exports/atoms/std-undo.orb +211 -81
  144. package/dist/behaviors/exports/atoms/std-upload.orb +535 -0
  145. package/dist/behaviors/exports/atoms/std-wizard.orb +677 -240
  146. package/dist/behaviors/exports/molecules/std-builder-game.orb +49 -4
  147. package/dist/behaviors/exports/molecules/std-cart.orb +325 -102
  148. package/dist/behaviors/exports/molecules/std-classifier-game.orb +49 -4
  149. package/dist/behaviors/exports/molecules/std-debugger-game.orb +49 -4
  150. package/dist/behaviors/exports/molecules/std-detail.orb +52 -48
  151. package/dist/behaviors/exports/molecules/std-event-handler-game.orb +49 -4
  152. package/dist/behaviors/exports/molecules/std-form-advanced.orb +654 -0
  153. package/dist/behaviors/exports/molecules/std-geospatial.orb +70 -51
  154. package/dist/behaviors/exports/molecules/std-inventory.orb +92 -53
  155. package/dist/behaviors/exports/molecules/std-list.orb +416 -52
  156. package/dist/behaviors/exports/molecules/std-messaging.orb +41 -49
  157. package/dist/behaviors/exports/molecules/std-negotiator-game.orb +49 -4
  158. package/dist/behaviors/exports/molecules/std-platformer-game.orb +58 -3
  159. package/dist/behaviors/exports/molecules/std-puzzle-game.orb +58 -7
  160. package/dist/behaviors/exports/molecules/std-quiz.orb +1045 -0
  161. package/dist/behaviors/exports/molecules/std-sequencer-game.orb +49 -4
  162. package/dist/behaviors/exports/molecules/std-simulator-game.orb +49 -4
  163. package/dist/behaviors/exports/molecules/std-turn-based-battle.orb +66 -1
  164. package/dist/behaviors/exports/organisms/std-api-gateway.orb +2615 -867
  165. package/dist/behaviors/exports/organisms/std-arcade-game.orb +399 -197
  166. package/dist/behaviors/exports/organisms/std-booking-system.orb +3154 -1305
  167. package/dist/behaviors/exports/organisms/std-cicd-pipeline.orb +2298 -779
  168. package/dist/behaviors/exports/organisms/std-cms.orb +1150 -277
  169. package/dist/behaviors/exports/organisms/std-coding-academy.orb +1222 -533
  170. package/dist/behaviors/exports/organisms/std-crm.orb +2357 -821
  171. package/dist/behaviors/exports/organisms/std-devops-dashboard.orb +4230 -1281
  172. package/dist/behaviors/exports/organisms/std-ecommerce.orb +2660 -1098
  173. package/dist/behaviors/exports/organisms/std-finance-tracker.orb +1749 -737
  174. package/dist/behaviors/exports/organisms/std-healthcare.orb +3593 -1478
  175. package/dist/behaviors/exports/organisms/std-helpdesk.orb +1870 -738
  176. package/dist/behaviors/exports/organisms/std-hr-portal.orb +3290 -1385
  177. package/dist/behaviors/exports/organisms/std-iot-dashboard.orb +2704 -788
  178. package/dist/behaviors/exports/organisms/std-lms.orb +2548 -1192
  179. package/dist/behaviors/exports/organisms/std-logic-training.orb +220 -66
  180. package/dist/behaviors/exports/organisms/std-platformer-app.orb +373 -194
  181. package/dist/behaviors/exports/organisms/std-project-manager.orb +2347 -806
  182. package/dist/behaviors/exports/organisms/std-puzzle-app.orb +240 -95
  183. package/dist/behaviors/exports/organisms/std-realtime-chat.orb +2020 -660
  184. package/dist/behaviors/exports/organisms/std-rpg-game.orb +1303 -740
  185. package/dist/behaviors/exports/organisms/std-social-feed.orb +184 -168
  186. package/dist/behaviors/exports/organisms/std-stem-lab.orb +1223 -512
  187. package/dist/behaviors/exports/organisms/std-strategy-game.orb +1412 -731
  188. package/dist/behaviors/exports/organisms/std-trading-dashboard.orb +1869 -695
  189. package/dist/behaviors/exports/validation-report.json +3 -750
  190. package/dist/behaviors/exports/verify-results.json +13 -0
  191. package/dist/behaviors/functions/index.d.ts +270 -1
  192. package/dist/behaviors/functions/index.js +3811 -1333
  193. package/dist/behaviors/functions/index.js.map +1 -1
  194. package/dist/behaviors/index.d.ts +1 -1
  195. package/dist/behaviors/index.js +3811 -1333
  196. package/dist/behaviors/index.js.map +1 -1
  197. package/dist/exports/atoms/std-async.orb +41 -24
  198. package/dist/exports/atoms/std-browse.orb +44 -44
  199. package/dist/exports/atoms/std-cache-aside.orb +256 -42
  200. package/dist/exports/atoms/std-calendar.orb +770 -0
  201. package/dist/exports/atoms/std-circuit-breaker.orb +577 -97
  202. package/dist/exports/atoms/std-collision.orb +278 -206
  203. package/dist/exports/atoms/std-combat-log.orb +6 -1
  204. package/dist/exports/atoms/std-combat.orb +6 -1
  205. package/dist/exports/atoms/std-confirmation.orb +212 -7
  206. package/dist/exports/atoms/std-dialogue-box.orb +6 -1
  207. package/dist/exports/atoms/std-display.orb +1186 -376
  208. package/dist/exports/atoms/std-drawer.orb +307 -101
  209. package/dist/exports/atoms/std-filter.orb +211 -18
  210. package/dist/exports/atoms/std-flip-card.orb +596 -0
  211. package/dist/exports/atoms/std-gallery.orb +382 -0
  212. package/dist/exports/atoms/std-game-audio.orb +6 -1
  213. package/dist/exports/atoms/std-game-canvas2d.orb +6 -1
  214. package/dist/exports/atoms/std-game-canvas3d.orb +6 -1
  215. package/dist/exports/atoms/std-game-hud.orb +6 -1
  216. package/dist/exports/atoms/std-game-menu.orb +6 -1
  217. package/dist/exports/atoms/std-game-over-screen.orb +6 -1
  218. package/dist/exports/atoms/std-gameflow.orb +100 -5
  219. package/dist/exports/atoms/std-input.orb +142 -137
  220. package/dist/exports/atoms/std-inventory-panel.orb +6 -1
  221. package/dist/exports/atoms/std-isometric-canvas.orb +6 -1
  222. package/dist/exports/atoms/std-loading.orb +149 -170
  223. package/dist/exports/atoms/std-modal.orb +159 -94
  224. package/dist/exports/atoms/std-movement.orb +401 -31
  225. package/dist/exports/atoms/std-notification.orb +117 -95
  226. package/dist/exports/atoms/std-overworld.orb +44 -16
  227. package/dist/exports/atoms/std-pagination.orb +44 -115
  228. package/dist/exports/atoms/std-physics2d.orb +6 -1
  229. package/dist/exports/atoms/std-platformer-canvas.orb +6 -1
  230. package/dist/exports/atoms/std-quest.orb +309 -34
  231. package/dist/exports/atoms/std-rate-limiter.orb +410 -157
  232. package/dist/exports/atoms/std-rating.orb +328 -0
  233. package/dist/exports/atoms/std-score-board.orb +6 -1
  234. package/dist/exports/atoms/std-score.orb +252 -11
  235. package/dist/exports/atoms/std-search.orb +62 -47
  236. package/dist/exports/atoms/std-selection.orb +180 -149
  237. package/dist/exports/atoms/std-simulation-canvas.orb +6 -1
  238. package/dist/exports/atoms/std-sort.orb +192 -60
  239. package/dist/exports/atoms/std-sprite.orb +6 -1
  240. package/dist/exports/atoms/std-tabs.orb +25 -15
  241. package/dist/exports/atoms/std-text-effects.orb +658 -0
  242. package/dist/exports/atoms/std-theme.orb +573 -0
  243. package/dist/exports/atoms/std-timer.orb +483 -91
  244. package/dist/exports/atoms/std-undo.orb +211 -81
  245. package/dist/exports/atoms/std-upload.orb +535 -0
  246. package/dist/exports/atoms/std-wizard.orb +677 -240
  247. package/dist/exports/molecules/std-builder-game.orb +49 -4
  248. package/dist/exports/molecules/std-cart.orb +325 -102
  249. package/dist/exports/molecules/std-classifier-game.orb +49 -4
  250. package/dist/exports/molecules/std-debugger-game.orb +49 -4
  251. package/dist/exports/molecules/std-detail.orb +52 -48
  252. package/dist/exports/molecules/std-event-handler-game.orb +49 -4
  253. package/dist/exports/molecules/std-form-advanced.orb +654 -0
  254. package/dist/exports/molecules/std-geospatial.orb +70 -51
  255. package/dist/exports/molecules/std-inventory.orb +92 -53
  256. package/dist/exports/molecules/std-list.orb +416 -52
  257. package/dist/exports/molecules/std-messaging.orb +41 -49
  258. package/dist/exports/molecules/std-negotiator-game.orb +49 -4
  259. package/dist/exports/molecules/std-platformer-game.orb +58 -3
  260. package/dist/exports/molecules/std-puzzle-game.orb +58 -7
  261. package/dist/exports/molecules/std-quiz.orb +1045 -0
  262. package/dist/exports/molecules/std-sequencer-game.orb +49 -4
  263. package/dist/exports/molecules/std-simulator-game.orb +49 -4
  264. package/dist/exports/molecules/std-turn-based-battle.orb +66 -1
  265. package/dist/exports/organisms/std-api-gateway.orb +2615 -867
  266. package/dist/exports/organisms/std-arcade-game.orb +399 -197
  267. package/dist/exports/organisms/std-booking-system.orb +3154 -1305
  268. package/dist/exports/organisms/std-cicd-pipeline.orb +2298 -779
  269. package/dist/exports/organisms/std-cms.orb +1150 -277
  270. package/dist/exports/organisms/std-coding-academy.orb +1222 -533
  271. package/dist/exports/organisms/std-crm.orb +2357 -821
  272. package/dist/exports/organisms/std-devops-dashboard.orb +4230 -1281
  273. package/dist/exports/organisms/std-ecommerce.orb +2660 -1098
  274. package/dist/exports/organisms/std-finance-tracker.orb +1749 -737
  275. package/dist/exports/organisms/std-healthcare.orb +3593 -1478
  276. package/dist/exports/organisms/std-helpdesk.orb +1870 -738
  277. package/dist/exports/organisms/std-hr-portal.orb +3290 -1385
  278. package/dist/exports/organisms/std-iot-dashboard.orb +2704 -788
  279. package/dist/exports/organisms/std-lms.orb +2548 -1192
  280. package/dist/exports/organisms/std-logic-training.orb +220 -66
  281. package/dist/exports/organisms/std-platformer-app.orb +373 -194
  282. package/dist/exports/organisms/std-project-manager.orb +2347 -806
  283. package/dist/exports/organisms/std-puzzle-app.orb +240 -95
  284. package/dist/exports/organisms/std-realtime-chat.orb +2020 -660
  285. package/dist/exports/organisms/std-rpg-game.orb +1303 -740
  286. package/dist/exports/organisms/std-social-feed.orb +184 -168
  287. package/dist/exports/organisms/std-stem-lab.orb +1223 -512
  288. package/dist/exports/organisms/std-strategy-game.orb +1412 -731
  289. package/dist/exports/organisms/std-trading-dashboard.orb +1869 -695
  290. package/dist/exports/validation-report.json +3 -750
  291. package/dist/exports/verify-results.json +13 -0
  292. package/dist/index.d.ts +1 -1
  293. package/dist/index.js +3808 -1330
  294. package/dist/index.js.map +1 -1
  295. package/package.json +1 -1
@@ -36,7 +36,12 @@
36
36
  {
37
37
  "name": "level",
38
38
  "type": "string",
39
- "default": "Beginner"
39
+ "default": "Beginner",
40
+ "values": [
41
+ "Beginner",
42
+ "Intermediate",
43
+ "Advanced"
44
+ ]
40
45
  }
41
46
  ]
42
47
  },
@@ -156,118 +161,127 @@
156
161
  "render-ui",
157
162
  "main",
158
163
  {
159
- "type": "stack",
160
- "direction": "vertical",
161
- "gap": "lg",
162
- "children": [
164
+ "type": "dashboard-layout",
165
+ "appName": "LMS",
166
+ "navItems": [
163
167
  {
164
- "type": "stack",
165
- "direction": "horizontal",
166
- "gap": "md",
167
- "justify": "space-between",
168
- "children": [
169
- {
170
- "type": "stack",
171
- "direction": "horizontal",
172
- "gap": "sm",
173
- "align": "center",
174
- "children": [
175
- {
176
- "type": "icon",
177
- "name": "book-open",
178
- "size": "lg"
179
- },
180
- {
181
- "type": "typography",
182
- "content": "Courses",
183
- "variant": "h2"
184
- }
185
- ]
186
- },
187
- {
188
- "type": "stack",
189
- "direction": "horizontal",
190
- "gap": "sm",
191
- "children": [
192
- {
193
- "type": "button",
194
- "label": "Add Course",
195
- "event": "CREATE",
196
- "variant": "primary",
197
- "icon": "plus"
198
- }
199
- ]
200
- }
201
- ]
168
+ "label": "Courses",
169
+ "href": "/courses",
170
+ "icon": "book-open"
202
171
  },
203
172
  {
204
- "type": "divider"
173
+ "label": "Enroll",
174
+ "href": "/enroll",
175
+ "icon": "layout-list"
205
176
  },
206
177
  {
207
- "type": "data-grid",
208
- "entity": "Course",
209
- "emptyIcon": "inbox",
210
- "emptyTitle": "No courses yet",
211
- "emptyDescription": "Create your first course to get started.",
212
- "itemActions": [
213
- {
214
- "label": "View",
215
- "event": "VIEW"
216
- },
217
- {
218
- "label": "Edit",
219
- "event": "EDIT"
220
- },
221
- {
222
- "label": "Delete",
223
- "event": "DELETE",
224
- "variant": "danger"
225
- }
226
- ],
227
- "className": "transition-shadow hover:shadow-md cursor-pointer",
178
+ "label": "Progress",
179
+ "href": "/progress",
180
+ "icon": "layout-list"
181
+ }
182
+ ],
183
+ "children": [
184
+ {
185
+ "type": "stack",
186
+ "direction": "vertical",
187
+ "gap": "lg",
188
+ "className": "max-w-5xl mx-auto w-full",
228
189
  "children": [
229
190
  {
230
191
  "type": "stack",
231
- "direction": "vertical",
232
- "gap": "sm",
192
+ "direction": "horizontal",
193
+ "gap": "md",
194
+ "justify": "space-between",
195
+ "align": "center",
233
196
  "children": [
234
197
  {
235
198
  "type": "stack",
236
199
  "direction": "horizontal",
237
- "justify": "space-between",
200
+ "gap": "sm",
238
201
  "align": "center",
239
202
  "children": [
240
203
  {
241
- "type": "stack",
242
- "direction": "horizontal",
243
- "gap": "sm",
244
- "align": "center",
245
- "children": [
246
- {
247
- "type": "icon",
248
- "name": "book-open",
249
- "size": "sm"
250
- },
251
- {
252
- "type": "typography",
253
- "variant": "h4",
254
- "content": "@entity.title"
255
- }
256
- ]
204
+ "type": "icon",
205
+ "name": "book-open",
206
+ "size": "lg"
257
207
  },
258
208
  {
259
- "type": "badge",
260
- "label": "@entity.description"
209
+ "type": "typography",
210
+ "content": "Courses",
211
+ "variant": "h2"
261
212
  }
262
213
  ]
263
214
  },
264
215
  {
265
- "type": "typography",
266
- "variant": "caption",
267
- "color": "muted",
268
- "content": "@entity.instructor"
216
+ "type": "stack",
217
+ "direction": "horizontal",
218
+ "gap": "sm",
219
+ "children": [
220
+ {
221
+ "type": "button",
222
+ "label": "Add Course",
223
+ "event": "CREATE",
224
+ "variant": "primary",
225
+ "icon": "plus"
226
+ }
227
+ ]
269
228
  }
270
229
  ]
230
+ },
231
+ {
232
+ "type": "divider"
233
+ },
234
+ {
235
+ "type": "data-grid",
236
+ "entity": "Course",
237
+ "emptyIcon": "inbox",
238
+ "emptyTitle": "No courses yet",
239
+ "emptyDescription": "Create a course to start teaching.",
240
+ "itemActions": [
241
+ {
242
+ "label": "View",
243
+ "event": "VIEW",
244
+ "variant": "ghost",
245
+ "size": "sm"
246
+ },
247
+ {
248
+ "label": "Edit",
249
+ "event": "EDIT",
250
+ "variant": "ghost",
251
+ "size": "sm"
252
+ },
253
+ {
254
+ "label": "Delete",
255
+ "event": "DELETE",
256
+ "variant": "danger",
257
+ "size": "sm"
258
+ }
259
+ ],
260
+ "columns": [
261
+ {
262
+ "name": "title",
263
+ "variant": "h3",
264
+ "icon": "book-open"
265
+ },
266
+ {
267
+ "name": "level",
268
+ "variant": "badge"
269
+ },
270
+ {
271
+ "name": "instructor",
272
+ "variant": "body"
273
+ },
274
+ {
275
+ "name": "duration",
276
+ "variant": "body"
277
+ },
278
+ {
279
+ "name": "description",
280
+ "variant": "caption"
281
+ }
282
+ ],
283
+ "cols": 2,
284
+ "gap": "md"
271
285
  }
272
286
  ]
273
287
  }
@@ -387,6 +401,137 @@
387
401
  "fetch",
388
402
  "Course"
389
403
  ],
404
+ [
405
+ "render-ui",
406
+ "main",
407
+ {
408
+ "type": "dashboard-layout",
409
+ "appName": "LMS",
410
+ "navItems": [
411
+ {
412
+ "label": "Courses",
413
+ "href": "/courses",
414
+ "icon": "book-open"
415
+ },
416
+ {
417
+ "label": "Enroll",
418
+ "href": "/enroll",
419
+ "icon": "layout-list"
420
+ },
421
+ {
422
+ "label": "Progress",
423
+ "href": "/progress",
424
+ "icon": "layout-list"
425
+ }
426
+ ],
427
+ "children": [
428
+ {
429
+ "type": "stack",
430
+ "direction": "vertical",
431
+ "gap": "lg",
432
+ "className": "max-w-5xl mx-auto w-full",
433
+ "children": [
434
+ {
435
+ "type": "stack",
436
+ "direction": "horizontal",
437
+ "gap": "md",
438
+ "justify": "space-between",
439
+ "align": "center",
440
+ "children": [
441
+ {
442
+ "type": "stack",
443
+ "direction": "horizontal",
444
+ "gap": "sm",
445
+ "align": "center",
446
+ "children": [
447
+ {
448
+ "type": "icon",
449
+ "name": "book-open",
450
+ "size": "lg"
451
+ },
452
+ {
453
+ "type": "typography",
454
+ "content": "Courses",
455
+ "variant": "h2"
456
+ }
457
+ ]
458
+ },
459
+ {
460
+ "type": "stack",
461
+ "direction": "horizontal",
462
+ "gap": "sm",
463
+ "children": [
464
+ {
465
+ "type": "button",
466
+ "label": "Add Course",
467
+ "event": "CREATE",
468
+ "variant": "primary",
469
+ "icon": "plus"
470
+ }
471
+ ]
472
+ }
473
+ ]
474
+ },
475
+ {
476
+ "type": "divider"
477
+ },
478
+ {
479
+ "type": "data-grid",
480
+ "entity": "Course",
481
+ "emptyIcon": "inbox",
482
+ "emptyTitle": "No courses yet",
483
+ "emptyDescription": "Create a course to start teaching.",
484
+ "itemActions": [
485
+ {
486
+ "label": "View",
487
+ "event": "VIEW",
488
+ "variant": "ghost",
489
+ "size": "sm"
490
+ },
491
+ {
492
+ "label": "Edit",
493
+ "event": "EDIT",
494
+ "variant": "ghost",
495
+ "size": "sm"
496
+ },
497
+ {
498
+ "label": "Delete",
499
+ "event": "DELETE",
500
+ "variant": "danger",
501
+ "size": "sm"
502
+ }
503
+ ],
504
+ "columns": [
505
+ {
506
+ "name": "title",
507
+ "variant": "h3",
508
+ "icon": "book-open"
509
+ },
510
+ {
511
+ "name": "level",
512
+ "variant": "badge"
513
+ },
514
+ {
515
+ "name": "instructor",
516
+ "variant": "body"
517
+ },
518
+ {
519
+ "name": "duration",
520
+ "variant": "body"
521
+ },
522
+ {
523
+ "name": "description",
524
+ "variant": "caption"
525
+ }
526
+ ],
527
+ "cols": 2,
528
+ "gap": "md"
529
+ }
530
+ ]
531
+ }
532
+ ]
533
+ }
534
+ ],
390
535
  [
391
536
  "notify",
392
537
  "Course deleted successfully"
@@ -402,6 +547,141 @@
402
547
  "render-ui",
403
548
  "modal",
404
549
  null
550
+ ],
551
+ [
552
+ "fetch",
553
+ "Course"
554
+ ],
555
+ [
556
+ "render-ui",
557
+ "main",
558
+ {
559
+ "type": "dashboard-layout",
560
+ "appName": "LMS",
561
+ "navItems": [
562
+ {
563
+ "label": "Courses",
564
+ "href": "/courses",
565
+ "icon": "book-open"
566
+ },
567
+ {
568
+ "label": "Enroll",
569
+ "href": "/enroll",
570
+ "icon": "layout-list"
571
+ },
572
+ {
573
+ "label": "Progress",
574
+ "href": "/progress",
575
+ "icon": "layout-list"
576
+ }
577
+ ],
578
+ "children": [
579
+ {
580
+ "type": "stack",
581
+ "direction": "vertical",
582
+ "gap": "lg",
583
+ "className": "max-w-5xl mx-auto w-full",
584
+ "children": [
585
+ {
586
+ "type": "stack",
587
+ "direction": "horizontal",
588
+ "gap": "md",
589
+ "justify": "space-between",
590
+ "align": "center",
591
+ "children": [
592
+ {
593
+ "type": "stack",
594
+ "direction": "horizontal",
595
+ "gap": "sm",
596
+ "align": "center",
597
+ "children": [
598
+ {
599
+ "type": "icon",
600
+ "name": "book-open",
601
+ "size": "lg"
602
+ },
603
+ {
604
+ "type": "typography",
605
+ "content": "Courses",
606
+ "variant": "h2"
607
+ }
608
+ ]
609
+ },
610
+ {
611
+ "type": "stack",
612
+ "direction": "horizontal",
613
+ "gap": "sm",
614
+ "children": [
615
+ {
616
+ "type": "button",
617
+ "label": "Add Course",
618
+ "event": "CREATE",
619
+ "variant": "primary",
620
+ "icon": "plus"
621
+ }
622
+ ]
623
+ }
624
+ ]
625
+ },
626
+ {
627
+ "type": "divider"
628
+ },
629
+ {
630
+ "type": "data-grid",
631
+ "entity": "Course",
632
+ "emptyIcon": "inbox",
633
+ "emptyTitle": "No courses yet",
634
+ "emptyDescription": "Create a course to start teaching.",
635
+ "itemActions": [
636
+ {
637
+ "label": "View",
638
+ "event": "VIEW",
639
+ "variant": "ghost",
640
+ "size": "sm"
641
+ },
642
+ {
643
+ "label": "Edit",
644
+ "event": "EDIT",
645
+ "variant": "ghost",
646
+ "size": "sm"
647
+ },
648
+ {
649
+ "label": "Delete",
650
+ "event": "DELETE",
651
+ "variant": "danger",
652
+ "size": "sm"
653
+ }
654
+ ],
655
+ "columns": [
656
+ {
657
+ "name": "title",
658
+ "variant": "h3",
659
+ "icon": "book-open"
660
+ },
661
+ {
662
+ "name": "level",
663
+ "variant": "badge"
664
+ },
665
+ {
666
+ "name": "instructor",
667
+ "variant": "body"
668
+ },
669
+ {
670
+ "name": "duration",
671
+ "variant": "body"
672
+ },
673
+ {
674
+ "name": "description",
675
+ "variant": "caption"
676
+ }
677
+ ],
678
+ "cols": 2,
679
+ "gap": "md"
680
+ }
681
+ ]
682
+ }
683
+ ]
684
+ }
405
685
  ]
406
686
  ]
407
687
  },
@@ -414,25 +694,160 @@
414
694
  "render-ui",
415
695
  "modal",
416
696
  null
417
- ]
418
- ]
419
- }
420
- ]
421
- },
422
- "emits": [
423
- {
424
- "event": "ENROLL",
425
- "description": "Enroll in a course",
426
- "payload": [
427
- {
428
- "name": "id",
429
- "type": "string",
430
- "required": true
431
- }
432
- ],
433
- "scope": "external"
434
- }
435
- ]
697
+ ],
698
+ [
699
+ "fetch",
700
+ "Course"
701
+ ],
702
+ [
703
+ "render-ui",
704
+ "main",
705
+ {
706
+ "type": "dashboard-layout",
707
+ "appName": "LMS",
708
+ "navItems": [
709
+ {
710
+ "label": "Courses",
711
+ "href": "/courses",
712
+ "icon": "book-open"
713
+ },
714
+ {
715
+ "label": "Enroll",
716
+ "href": "/enroll",
717
+ "icon": "layout-list"
718
+ },
719
+ {
720
+ "label": "Progress",
721
+ "href": "/progress",
722
+ "icon": "layout-list"
723
+ }
724
+ ],
725
+ "children": [
726
+ {
727
+ "type": "stack",
728
+ "direction": "vertical",
729
+ "gap": "lg",
730
+ "className": "max-w-5xl mx-auto w-full",
731
+ "children": [
732
+ {
733
+ "type": "stack",
734
+ "direction": "horizontal",
735
+ "gap": "md",
736
+ "justify": "space-between",
737
+ "align": "center",
738
+ "children": [
739
+ {
740
+ "type": "stack",
741
+ "direction": "horizontal",
742
+ "gap": "sm",
743
+ "align": "center",
744
+ "children": [
745
+ {
746
+ "type": "icon",
747
+ "name": "book-open",
748
+ "size": "lg"
749
+ },
750
+ {
751
+ "type": "typography",
752
+ "content": "Courses",
753
+ "variant": "h2"
754
+ }
755
+ ]
756
+ },
757
+ {
758
+ "type": "stack",
759
+ "direction": "horizontal",
760
+ "gap": "sm",
761
+ "children": [
762
+ {
763
+ "type": "button",
764
+ "label": "Add Course",
765
+ "event": "CREATE",
766
+ "variant": "primary",
767
+ "icon": "plus"
768
+ }
769
+ ]
770
+ }
771
+ ]
772
+ },
773
+ {
774
+ "type": "divider"
775
+ },
776
+ {
777
+ "type": "data-grid",
778
+ "entity": "Course",
779
+ "emptyIcon": "inbox",
780
+ "emptyTitle": "No courses yet",
781
+ "emptyDescription": "Create a course to start teaching.",
782
+ "itemActions": [
783
+ {
784
+ "label": "View",
785
+ "event": "VIEW",
786
+ "variant": "ghost",
787
+ "size": "sm"
788
+ },
789
+ {
790
+ "label": "Edit",
791
+ "event": "EDIT",
792
+ "variant": "ghost",
793
+ "size": "sm"
794
+ },
795
+ {
796
+ "label": "Delete",
797
+ "event": "DELETE",
798
+ "variant": "danger",
799
+ "size": "sm"
800
+ }
801
+ ],
802
+ "columns": [
803
+ {
804
+ "name": "title",
805
+ "variant": "h3",
806
+ "icon": "book-open"
807
+ },
808
+ {
809
+ "name": "level",
810
+ "variant": "badge"
811
+ },
812
+ {
813
+ "name": "instructor",
814
+ "variant": "body"
815
+ },
816
+ {
817
+ "name": "duration",
818
+ "variant": "body"
819
+ },
820
+ {
821
+ "name": "description",
822
+ "variant": "caption"
823
+ }
824
+ ],
825
+ "cols": 2,
826
+ "gap": "md"
827
+ }
828
+ ]
829
+ }
830
+ ]
831
+ }
832
+ ]
833
+ ]
834
+ }
835
+ ]
836
+ },
837
+ "emits": [
838
+ {
839
+ "event": "ENROLL",
840
+ "description": "Enroll in a course",
841
+ "payload": [
842
+ {
843
+ "name": "id",
844
+ "type": "string",
845
+ "required": true
846
+ }
847
+ ],
848
+ "scope": "external"
849
+ }
850
+ ]
436
851
  },
437
852
  {
438
853
  "name": "CourseCreate",
@@ -555,6 +970,11 @@
555
970
  "render-ui",
556
971
  "modal",
557
972
  null
973
+ ],
974
+ [
975
+ "notify",
976
+ "Cancelled",
977
+ "info"
558
978
  ]
559
979
  ]
560
980
  },
@@ -721,6 +1141,11 @@
721
1141
  "render-ui",
722
1142
  "modal",
723
1143
  null
1144
+ ],
1145
+ [
1146
+ "notify",
1147
+ "Cancelled",
1148
+ "info"
724
1149
  ]
725
1150
  ]
726
1151
  },
@@ -966,6 +1391,11 @@
966
1391
  "render-ui",
967
1392
  "modal",
968
1393
  null
1394
+ ],
1395
+ [
1396
+ "notify",
1397
+ "Cancelled",
1398
+ "info"
969
1399
  ]
970
1400
  ]
971
1401
  }
@@ -1023,13 +1453,19 @@
1023
1453
  },
1024
1454
  {
1025
1455
  "name": "enrolledAt",
1026
- "type": "string",
1456
+ "type": "date",
1027
1457
  "default": ""
1028
1458
  },
1029
1459
  {
1030
1460
  "name": "status",
1031
1461
  "type": "string",
1032
- "default": "pending"
1462
+ "default": "pending",
1463
+ "values": [
1464
+ "pending",
1465
+ "active",
1466
+ "completed",
1467
+ "dropped"
1468
+ ]
1033
1469
  }
1034
1470
  ]
1035
1471
  },
@@ -1104,71 +1540,102 @@
1104
1540
  "render-ui",
1105
1541
  "main",
1106
1542
  {
1107
- "type": "stack",
1108
- "direction": "vertical",
1109
- "gap": "lg",
1110
- "children": [
1111
- {
1112
- "type": "stack",
1113
- "direction": "horizontal",
1114
- "gap": "sm",
1115
- "align": "center",
1116
- "children": [
1117
- {
1118
- "type": "icon",
1119
- "name": "user-plus",
1120
- "size": "lg"
1121
- },
1122
- {
1123
- "type": "typography",
1124
- "content": "Course Enrollment",
1125
- "variant": "h2"
1126
- }
1127
- ]
1128
- },
1129
- {
1130
- "type": "badge",
1131
- "label": "Step 1 of 2"
1132
- },
1543
+ "type": "dashboard-layout",
1544
+ "appName": "LMS",
1545
+ "navItems": [
1133
1546
  {
1134
- "type": "wizard-progress",
1135
- "steps": [
1136
- "Student Info",
1137
- "Course Selection"
1138
- ],
1139
- "currentStep": 0
1140
- },
1141
- {
1142
- "type": "divider"
1547
+ "label": "Courses",
1548
+ "href": "/courses",
1549
+ "icon": "book-open"
1143
1550
  },
1144
1551
  {
1145
- "type": "typography",
1146
- "content": "Student Info",
1147
- "variant": "h3"
1552
+ "label": "Enroll",
1553
+ "href": "/enroll",
1554
+ "icon": "layout-list"
1148
1555
  },
1149
1556
  {
1150
- "type": "form-section",
1151
- "entity": "Enrollment",
1152
- "mode": "create",
1153
- "submitEvent": "NEXT",
1154
- "cancelEvent": "INIT",
1155
- "fields": [
1156
- "studentName",
1157
- "email"
1158
- ]
1159
- },
1557
+ "label": "Progress",
1558
+ "href": "/progress",
1559
+ "icon": "layout-list"
1560
+ }
1561
+ ],
1562
+ "children": [
1160
1563
  {
1161
- "type": "stack",
1162
- "direction": "horizontal",
1163
- "gap": "sm",
1164
- "justify": "end",
1564
+ "type": "container",
1565
+ "maxWidth": "lg",
1566
+ "padding": "lg",
1165
1567
  "children": [
1166
1568
  {
1167
- "type": "button",
1168
- "label": "Next",
1169
- "event": "NEXT",
1170
- "variant": "primary",
1171
- "icon": "arrow-right"
1569
+ "type": "stack",
1570
+ "direction": "vertical",
1571
+ "gap": "lg",
1572
+ "children": [
1573
+ {
1574
+ "type": "stack",
1575
+ "direction": "horizontal",
1576
+ "gap": "sm",
1577
+ "align": "center",
1578
+ "children": [
1579
+ {
1580
+ "type": "icon",
1581
+ "name": "user-plus",
1582
+ "size": "lg"
1583
+ },
1584
+ {
1585
+ "type": "typography",
1586
+ "content": "Course Enrollment",
1587
+ "variant": "h2"
1588
+ }
1589
+ ]
1590
+ },
1591
+ {
1592
+ "type": "progress-dots",
1593
+ "count": 2,
1594
+ "currentIndex": 0
1595
+ },
1596
+ {
1597
+ "type": "wizard-progress",
1598
+ "steps": [
1599
+ "Student Info",
1600
+ "Course Selection"
1601
+ ],
1602
+ "currentStep": 0
1603
+ },
1604
+ {
1605
+ "type": "divider"
1606
+ },
1607
+ {
1608
+ "type": "typography",
1609
+ "content": "Student Info",
1610
+ "variant": "h3"
1611
+ },
1612
+ {
1613
+ "type": "form-section",
1614
+ "entity": "Enrollment",
1615
+ "mode": "create",
1616
+ "submitEvent": "NEXT",
1617
+ "cancelEvent": "INIT",
1618
+ "fields": [
1619
+ "studentName",
1620
+ "email"
1621
+ ]
1622
+ },
1623
+ {
1624
+ "type": "stack",
1625
+ "direction": "horizontal",
1626
+ "gap": "sm",
1627
+ "justify": "end",
1628
+ "children": [
1629
+ {
1630
+ "type": "button",
1631
+ "label": "Next",
1632
+ "event": "NEXT",
1633
+ "variant": "primary",
1634
+ "icon": "arrow-right"
1635
+ }
1636
+ ]
1637
+ }
1638
+ ]
1172
1639
  }
1173
1640
  ]
1174
1641
  }
@@ -1190,259 +1657,110 @@
1190
1657
  "render-ui",
1191
1658
  "main",
1192
1659
  {
1193
- "type": "stack",
1194
- "direction": "vertical",
1195
- "gap": "lg",
1196
- "children": [
1197
- {
1198
- "type": "stack",
1199
- "direction": "horizontal",
1200
- "gap": "sm",
1201
- "align": "center",
1202
- "children": [
1203
- {
1204
- "type": "icon",
1205
- "name": "user-plus",
1206
- "size": "lg"
1207
- },
1208
- {
1209
- "type": "typography",
1210
- "content": "Course Enrollment",
1211
- "variant": "h2"
1212
- }
1213
- ]
1214
- },
1215
- {
1216
- "type": "badge",
1217
- "label": "Step 2 of 2"
1218
- },
1219
- {
1220
- "type": "wizard-progress",
1221
- "steps": [
1222
- "Student Info",
1223
- "Course Selection"
1224
- ],
1225
- "currentStep": 1
1226
- },
1660
+ "type": "dashboard-layout",
1661
+ "appName": "LMS",
1662
+ "navItems": [
1227
1663
  {
1228
- "type": "divider"
1229
- },
1230
- {
1231
- "type": "typography",
1232
- "content": "Course Selection",
1233
- "variant": "h3"
1664
+ "label": "Courses",
1665
+ "href": "/courses",
1666
+ "icon": "book-open"
1234
1667
  },
1235
1668
  {
1236
- "type": "form-section",
1237
- "entity": "Enrollment",
1238
- "mode": "create",
1239
- "submitEvent": "NEXT",
1240
- "cancelEvent": "PREV",
1241
- "fields": [
1242
- "courseId"
1243
- ]
1669
+ "label": "Enroll",
1670
+ "href": "/enroll",
1671
+ "icon": "layout-list"
1244
1672
  },
1245
1673
  {
1246
- "type": "stack",
1247
- "direction": "horizontal",
1248
- "gap": "sm",
1249
- "justify": "end",
1250
- "children": [
1251
- {
1252
- "type": "button",
1253
- "label": "Back",
1254
- "event": "PREV",
1255
- "variant": "ghost",
1256
- "icon": "arrow-left"
1257
- },
1258
- {
1259
- "type": "button",
1260
- "label": "Next",
1261
- "event": "NEXT",
1262
- "variant": "primary",
1263
- "icon": "arrow-right"
1264
- }
1265
- ]
1674
+ "label": "Progress",
1675
+ "href": "/progress",
1676
+ "icon": "layout-list"
1266
1677
  }
1267
- ]
1268
- }
1269
- ]
1270
- ]
1271
- },
1272
- {
1273
- "from": "step2",
1274
- "to": "review",
1275
- "event": "NEXT",
1276
- "effects": [
1277
- [
1278
- "fetch",
1279
- "Enrollment"
1280
- ],
1281
- [
1282
- "render-ui",
1283
- "main",
1284
- {
1285
- "type": "stack",
1286
- "direction": "vertical",
1287
- "gap": "lg",
1678
+ ],
1288
1679
  "children": [
1289
1680
  {
1290
- "type": "stack",
1291
- "direction": "horizontal",
1292
- "gap": "sm",
1293
- "align": "center",
1294
- "children": [
1295
- {
1296
- "type": "icon",
1297
- "name": "user-plus",
1298
- "size": "lg"
1299
- },
1300
- {
1301
- "type": "typography",
1302
- "content": "Course Enrollment",
1303
- "variant": "h2"
1304
- }
1305
- ]
1306
- },
1307
- {
1308
- "type": "badge",
1309
- "label": "Review"
1310
- },
1311
- {
1312
- "type": "wizard-progress",
1313
- "steps": [
1314
- "Student Info",
1315
- "Course Selection"
1316
- ],
1317
- "currentStep": 2
1318
- },
1319
- {
1320
- "type": "divider"
1321
- },
1322
- {
1323
- "type": "data-list",
1324
- "entity": "Enrollment",
1681
+ "type": "container",
1682
+ "maxWidth": "lg",
1683
+ "padding": "lg",
1325
1684
  "children": [
1326
1685
  {
1327
1686
  "type": "stack",
1328
1687
  "direction": "vertical",
1329
- "gap": "sm",
1688
+ "gap": "lg",
1330
1689
  "children": [
1331
1690
  {
1332
1691
  "type": "stack",
1333
1692
  "direction": "horizontal",
1334
- "gap": "md",
1335
- "justify": "space-between",
1693
+ "gap": "sm",
1694
+ "align": "center",
1336
1695
  "children": [
1337
1696
  {
1338
- "type": "typography",
1339
- "variant": "caption",
1340
- "content": "StudentName"
1697
+ "type": "icon",
1698
+ "name": "user-plus",
1699
+ "size": "lg"
1341
1700
  },
1342
1701
  {
1343
1702
  "type": "typography",
1344
- "variant": "body",
1345
- "content": "@entity.studentName"
1703
+ "content": "Course Enrollment",
1704
+ "variant": "h2"
1346
1705
  }
1347
1706
  ]
1348
1707
  },
1349
1708
  {
1350
- "type": "stack",
1351
- "direction": "horizontal",
1352
- "gap": "md",
1353
- "justify": "space-between",
1354
- "children": [
1355
- {
1356
- "type": "typography",
1357
- "variant": "caption",
1358
- "content": "Email"
1359
- },
1360
- {
1361
- "type": "typography",
1362
- "variant": "body",
1363
- "content": "@entity.email"
1364
- }
1365
- ]
1709
+ "type": "progress-dots",
1710
+ "count": 2,
1711
+ "currentIndex": 1
1366
1712
  },
1367
1713
  {
1368
- "type": "stack",
1369
- "direction": "horizontal",
1370
- "gap": "md",
1371
- "justify": "space-between",
1372
- "children": [
1373
- {
1374
- "type": "typography",
1375
- "variant": "caption",
1376
- "content": "CourseId"
1377
- },
1378
- {
1379
- "type": "typography",
1380
- "variant": "body",
1381
- "content": "@entity.courseId"
1382
- }
1383
- ]
1714
+ "type": "wizard-progress",
1715
+ "steps": [
1716
+ "Student Info",
1717
+ "Course Selection"
1718
+ ],
1719
+ "currentStep": 1
1384
1720
  },
1385
1721
  {
1386
- "type": "stack",
1387
- "direction": "horizontal",
1388
- "gap": "md",
1389
- "justify": "space-between",
1390
- "children": [
1391
- {
1392
- "type": "typography",
1393
- "variant": "caption",
1394
- "content": "EnrolledAt"
1395
- },
1396
- {
1397
- "type": "typography",
1398
- "variant": "body",
1399
- "content": "@entity.enrolledAt"
1400
- }
1722
+ "type": "divider"
1723
+ },
1724
+ {
1725
+ "type": "typography",
1726
+ "content": "Course Selection",
1727
+ "variant": "h3"
1728
+ },
1729
+ {
1730
+ "type": "form-section",
1731
+ "entity": "Enrollment",
1732
+ "mode": "create",
1733
+ "submitEvent": "NEXT",
1734
+ "cancelEvent": "PREV",
1735
+ "fields": [
1736
+ "courseId"
1401
1737
  ]
1402
1738
  },
1403
1739
  {
1404
1740
  "type": "stack",
1405
1741
  "direction": "horizontal",
1406
- "gap": "md",
1407
- "justify": "space-between",
1742
+ "gap": "sm",
1743
+ "justify": "end",
1408
1744
  "children": [
1409
1745
  {
1410
- "type": "typography",
1411
- "variant": "caption",
1412
- "content": "Status"
1746
+ "type": "button",
1747
+ "label": "Back",
1748
+ "event": "PREV",
1749
+ "variant": "ghost",
1750
+ "icon": "arrow-left"
1413
1751
  },
1414
1752
  {
1415
- "type": "typography",
1416
- "variant": "body",
1417
- "content": "@entity.status"
1753
+ "type": "button",
1754
+ "label": "Next",
1755
+ "event": "NEXT",
1756
+ "variant": "primary",
1757
+ "icon": "arrow-right"
1418
1758
  }
1419
1759
  ]
1420
1760
  }
1421
1761
  ]
1422
1762
  }
1423
1763
  ]
1424
- },
1425
- {
1426
- "type": "stack",
1427
- "direction": "horizontal",
1428
- "gap": "sm",
1429
- "justify": "end",
1430
- "children": [
1431
- {
1432
- "type": "button",
1433
- "label": "Back",
1434
- "event": "PREV",
1435
- "variant": "ghost",
1436
- "icon": "arrow-left"
1437
- },
1438
- {
1439
- "type": "button",
1440
- "label": "Complete",
1441
- "event": "COMPLETE",
1442
- "variant": "primary",
1443
- "icon": "check"
1444
- }
1445
- ]
1446
1764
  }
1447
1765
  ]
1448
1766
  }
@@ -1451,8 +1769,8 @@
1451
1769
  },
1452
1770
  {
1453
1771
  "from": "step2",
1454
- "to": "step1",
1455
- "event": "PREV",
1772
+ "to": "review",
1773
+ "event": "NEXT",
1456
1774
  "effects": [
1457
1775
  [
1458
1776
  "fetch",
@@ -1462,71 +1780,176 @@
1462
1780
  "render-ui",
1463
1781
  "main",
1464
1782
  {
1465
- "type": "stack",
1466
- "direction": "vertical",
1467
- "gap": "lg",
1468
- "children": [
1469
- {
1470
- "type": "stack",
1471
- "direction": "horizontal",
1472
- "gap": "sm",
1473
- "align": "center",
1474
- "children": [
1475
- {
1476
- "type": "icon",
1477
- "name": "user-plus",
1478
- "size": "lg"
1479
- },
1480
- {
1481
- "type": "typography",
1482
- "content": "Course Enrollment",
1483
- "variant": "h2"
1484
- }
1485
- ]
1486
- },
1487
- {
1488
- "type": "badge",
1489
- "label": "Step 1 of 2"
1490
- },
1783
+ "type": "dashboard-layout",
1784
+ "appName": "LMS",
1785
+ "navItems": [
1491
1786
  {
1492
- "type": "wizard-progress",
1493
- "steps": [
1494
- "Student Info",
1495
- "Course Selection"
1496
- ],
1497
- "currentStep": 0
1498
- },
1499
- {
1500
- "type": "divider"
1787
+ "label": "Courses",
1788
+ "href": "/courses",
1789
+ "icon": "book-open"
1501
1790
  },
1502
1791
  {
1503
- "type": "typography",
1504
- "content": "Student Info",
1505
- "variant": "h3"
1792
+ "label": "Enroll",
1793
+ "href": "/enroll",
1794
+ "icon": "layout-list"
1506
1795
  },
1507
1796
  {
1508
- "type": "form-section",
1509
- "entity": "Enrollment",
1510
- "mode": "create",
1511
- "submitEvent": "NEXT",
1512
- "cancelEvent": "INIT",
1513
- "fields": [
1514
- "studentName",
1515
- "email"
1516
- ]
1517
- },
1797
+ "label": "Progress",
1798
+ "href": "/progress",
1799
+ "icon": "layout-list"
1800
+ }
1801
+ ],
1802
+ "children": [
1518
1803
  {
1519
1804
  "type": "stack",
1520
- "direction": "horizontal",
1521
- "gap": "sm",
1522
- "justify": "end",
1805
+ "direction": "vertical",
1806
+ "gap": "lg",
1523
1807
  "children": [
1524
1808
  {
1525
- "type": "button",
1526
- "label": "Next",
1527
- "event": "NEXT",
1528
- "variant": "primary",
1529
- "icon": "arrow-right"
1809
+ "type": "stack",
1810
+ "direction": "horizontal",
1811
+ "gap": "sm",
1812
+ "align": "center",
1813
+ "children": [
1814
+ {
1815
+ "type": "icon",
1816
+ "name": "user-plus",
1817
+ "size": "lg"
1818
+ },
1819
+ {
1820
+ "type": "typography",
1821
+ "content": "Course Enrollment",
1822
+ "variant": "h2"
1823
+ }
1824
+ ]
1825
+ },
1826
+ {
1827
+ "type": "badge",
1828
+ "label": "Review"
1829
+ },
1830
+ {
1831
+ "type": "wizard-progress",
1832
+ "steps": [
1833
+ "Student Info",
1834
+ "Course Selection"
1835
+ ],
1836
+ "currentStep": 2
1837
+ },
1838
+ {
1839
+ "type": "divider"
1840
+ },
1841
+ {
1842
+ "type": "data-list",
1843
+ "entity": "Enrollment",
1844
+ "renderItem": [
1845
+ "fn",
1846
+ "item",
1847
+ {
1848
+ "type": "stack",
1849
+ "direction": "vertical",
1850
+ "gap": "sm",
1851
+ "children": [
1852
+ {
1853
+ "type": "stack",
1854
+ "direction": "horizontal",
1855
+ "gap": "md",
1856
+ "justify": "space-between",
1857
+ "children": [
1858
+ {
1859
+ "type": "typography",
1860
+ "variant": "caption",
1861
+ "content": "StudentName"
1862
+ },
1863
+ {
1864
+ "type": "typography",
1865
+ "variant": "body",
1866
+ "content": "@item.studentName"
1867
+ }
1868
+ ]
1869
+ },
1870
+ {
1871
+ "type": "stack",
1872
+ "direction": "horizontal",
1873
+ "gap": "md",
1874
+ "justify": "space-between",
1875
+ "children": [
1876
+ {
1877
+ "type": "typography",
1878
+ "variant": "caption",
1879
+ "content": "Email"
1880
+ },
1881
+ {
1882
+ "type": "typography",
1883
+ "variant": "body",
1884
+ "content": "@item.email"
1885
+ }
1886
+ ]
1887
+ },
1888
+ {
1889
+ "type": "stack",
1890
+ "direction": "horizontal",
1891
+ "gap": "md",
1892
+ "justify": "space-between",
1893
+ "children": [
1894
+ {
1895
+ "type": "typography",
1896
+ "variant": "caption",
1897
+ "content": "CourseId"
1898
+ },
1899
+ {
1900
+ "type": "typography",
1901
+ "variant": "body",
1902
+ "content": "@item.courseId"
1903
+ }
1904
+ ]
1905
+ },
1906
+ {
1907
+ "type": "stack",
1908
+ "direction": "horizontal",
1909
+ "gap": "md",
1910
+ "justify": "space-between",
1911
+ "children": [
1912
+ {
1913
+ "type": "typography",
1914
+ "variant": "caption",
1915
+ "content": "EnrolledAt"
1916
+ },
1917
+ {
1918
+ "type": "typography",
1919
+ "variant": "body",
1920
+ "content": "@item.enrolledAt"
1921
+ }
1922
+ ]
1923
+ },
1924
+ {
1925
+ "type": "stack",
1926
+ "direction": "horizontal",
1927
+ "gap": "md",
1928
+ "justify": "space-between",
1929
+ "children": [
1930
+ {
1931
+ "type": "typography",
1932
+ "variant": "caption",
1933
+ "content": "Status"
1934
+ },
1935
+ {
1936
+ "type": "typography",
1937
+ "variant": "body",
1938
+ "content": "@item.status"
1939
+ }
1940
+ ]
1941
+ }
1942
+ ]
1943
+ }
1944
+ ]
1945
+ },
1946
+ {
1947
+ "type": "wizard-navigation",
1948
+ "currentStep": 2,
1949
+ "totalSteps": 3,
1950
+ "showBack": true,
1951
+ "showComplete": true,
1952
+ "showNext": false
1530
1953
  }
1531
1954
  ]
1532
1955
  }
@@ -1536,8 +1959,8 @@
1536
1959
  ]
1537
1960
  },
1538
1961
  {
1539
- "from": "review",
1540
- "to": "step2",
1962
+ "from": "step2",
1963
+ "to": "step1",
1541
1964
  "event": "PREV",
1542
1965
  "effects": [
1543
1966
  [
@@ -1548,77 +1971,225 @@
1548
1971
  "render-ui",
1549
1972
  "main",
1550
1973
  {
1551
- "type": "stack",
1552
- "direction": "vertical",
1553
- "gap": "lg",
1554
- "children": [
1555
- {
1556
- "type": "stack",
1557
- "direction": "horizontal",
1558
- "gap": "sm",
1559
- "align": "center",
1560
- "children": [
1561
- {
1562
- "type": "icon",
1563
- "name": "user-plus",
1564
- "size": "lg"
1565
- },
1566
- {
1567
- "type": "typography",
1568
- "content": "Course Enrollment",
1569
- "variant": "h2"
1570
- }
1571
- ]
1572
- },
1573
- {
1574
- "type": "badge",
1575
- "label": "Step 2 of 2"
1576
- },
1577
- {
1578
- "type": "wizard-progress",
1579
- "steps": [
1580
- "Student Info",
1581
- "Course Selection"
1582
- ],
1583
- "currentStep": 1
1584
- },
1974
+ "type": "dashboard-layout",
1975
+ "appName": "LMS",
1976
+ "navItems": [
1585
1977
  {
1586
- "type": "divider"
1978
+ "label": "Courses",
1979
+ "href": "/courses",
1980
+ "icon": "book-open"
1587
1981
  },
1588
1982
  {
1589
- "type": "typography",
1590
- "content": "Course Selection",
1591
- "variant": "h3"
1983
+ "label": "Enroll",
1984
+ "href": "/enroll",
1985
+ "icon": "layout-list"
1592
1986
  },
1593
1987
  {
1594
- "type": "form-section",
1595
- "entity": "Enrollment",
1596
- "mode": "create",
1597
- "submitEvent": "NEXT",
1598
- "cancelEvent": "PREV",
1599
- "fields": [
1600
- "courseId"
1601
- ]
1602
- },
1988
+ "label": "Progress",
1989
+ "href": "/progress",
1990
+ "icon": "layout-list"
1991
+ }
1992
+ ],
1993
+ "children": [
1603
1994
  {
1604
- "type": "stack",
1605
- "direction": "horizontal",
1606
- "gap": "sm",
1607
- "justify": "end",
1995
+ "type": "container",
1996
+ "maxWidth": "lg",
1997
+ "padding": "lg",
1608
1998
  "children": [
1609
1999
  {
1610
- "type": "button",
1611
- "label": "Back",
1612
- "event": "PREV",
1613
- "variant": "ghost",
1614
- "icon": "arrow-left"
1615
- },
2000
+ "type": "stack",
2001
+ "direction": "vertical",
2002
+ "gap": "lg",
2003
+ "children": [
2004
+ {
2005
+ "type": "stack",
2006
+ "direction": "horizontal",
2007
+ "gap": "sm",
2008
+ "align": "center",
2009
+ "children": [
2010
+ {
2011
+ "type": "icon",
2012
+ "name": "user-plus",
2013
+ "size": "lg"
2014
+ },
2015
+ {
2016
+ "type": "typography",
2017
+ "content": "Course Enrollment",
2018
+ "variant": "h2"
2019
+ }
2020
+ ]
2021
+ },
2022
+ {
2023
+ "type": "progress-dots",
2024
+ "count": 2,
2025
+ "currentIndex": 0
2026
+ },
2027
+ {
2028
+ "type": "wizard-progress",
2029
+ "steps": [
2030
+ "Student Info",
2031
+ "Course Selection"
2032
+ ],
2033
+ "currentStep": 0
2034
+ },
2035
+ {
2036
+ "type": "divider"
2037
+ },
2038
+ {
2039
+ "type": "typography",
2040
+ "content": "Student Info",
2041
+ "variant": "h3"
2042
+ },
2043
+ {
2044
+ "type": "form-section",
2045
+ "entity": "Enrollment",
2046
+ "mode": "create",
2047
+ "submitEvent": "NEXT",
2048
+ "cancelEvent": "INIT",
2049
+ "fields": [
2050
+ "studentName",
2051
+ "email"
2052
+ ]
2053
+ },
2054
+ {
2055
+ "type": "stack",
2056
+ "direction": "horizontal",
2057
+ "gap": "sm",
2058
+ "justify": "end",
2059
+ "children": [
2060
+ {
2061
+ "type": "button",
2062
+ "label": "Next",
2063
+ "event": "NEXT",
2064
+ "variant": "primary",
2065
+ "icon": "arrow-right"
2066
+ }
2067
+ ]
2068
+ }
2069
+ ]
2070
+ }
2071
+ ]
2072
+ }
2073
+ ]
2074
+ }
2075
+ ]
2076
+ ]
2077
+ },
2078
+ {
2079
+ "from": "review",
2080
+ "to": "step2",
2081
+ "event": "PREV",
2082
+ "effects": [
2083
+ [
2084
+ "fetch",
2085
+ "Enrollment"
2086
+ ],
2087
+ [
2088
+ "render-ui",
2089
+ "main",
2090
+ {
2091
+ "type": "dashboard-layout",
2092
+ "appName": "LMS",
2093
+ "navItems": [
2094
+ {
2095
+ "label": "Courses",
2096
+ "href": "/courses",
2097
+ "icon": "book-open"
2098
+ },
2099
+ {
2100
+ "label": "Enroll",
2101
+ "href": "/enroll",
2102
+ "icon": "layout-list"
2103
+ },
2104
+ {
2105
+ "label": "Progress",
2106
+ "href": "/progress",
2107
+ "icon": "layout-list"
2108
+ }
2109
+ ],
2110
+ "children": [
2111
+ {
2112
+ "type": "container",
2113
+ "maxWidth": "lg",
2114
+ "padding": "lg",
2115
+ "children": [
1616
2116
  {
1617
- "type": "button",
1618
- "label": "Next",
1619
- "event": "NEXT",
1620
- "variant": "primary",
1621
- "icon": "arrow-right"
2117
+ "type": "stack",
2118
+ "direction": "vertical",
2119
+ "gap": "lg",
2120
+ "children": [
2121
+ {
2122
+ "type": "stack",
2123
+ "direction": "horizontal",
2124
+ "gap": "sm",
2125
+ "align": "center",
2126
+ "children": [
2127
+ {
2128
+ "type": "icon",
2129
+ "name": "user-plus",
2130
+ "size": "lg"
2131
+ },
2132
+ {
2133
+ "type": "typography",
2134
+ "content": "Course Enrollment",
2135
+ "variant": "h2"
2136
+ }
2137
+ ]
2138
+ },
2139
+ {
2140
+ "type": "progress-dots",
2141
+ "count": 2,
2142
+ "currentIndex": 1
2143
+ },
2144
+ {
2145
+ "type": "wizard-progress",
2146
+ "steps": [
2147
+ "Student Info",
2148
+ "Course Selection"
2149
+ ],
2150
+ "currentStep": 1
2151
+ },
2152
+ {
2153
+ "type": "divider"
2154
+ },
2155
+ {
2156
+ "type": "typography",
2157
+ "content": "Course Selection",
2158
+ "variant": "h3"
2159
+ },
2160
+ {
2161
+ "type": "form-section",
2162
+ "entity": "Enrollment",
2163
+ "mode": "create",
2164
+ "submitEvent": "NEXT",
2165
+ "cancelEvent": "PREV",
2166
+ "fields": [
2167
+ "courseId"
2168
+ ]
2169
+ },
2170
+ {
2171
+ "type": "stack",
2172
+ "direction": "horizontal",
2173
+ "gap": "sm",
2174
+ "justify": "end",
2175
+ "children": [
2176
+ {
2177
+ "type": "button",
2178
+ "label": "Back",
2179
+ "event": "PREV",
2180
+ "variant": "ghost",
2181
+ "icon": "arrow-left"
2182
+ },
2183
+ {
2184
+ "type": "button",
2185
+ "label": "Next",
2186
+ "event": "NEXT",
2187
+ "variant": "primary",
2188
+ "icon": "arrow-right"
2189
+ }
2190
+ ]
2191
+ }
2192
+ ]
1622
2193
  }
1623
2194
  ]
1624
2195
  }
@@ -1647,32 +2218,55 @@
1647
2218
  "render-ui",
1648
2219
  "main",
1649
2220
  {
1650
- "type": "stack",
1651
- "direction": "vertical",
1652
- "gap": "lg",
1653
- "align": "center",
1654
- "children": [
2221
+ "type": "dashboard-layout",
2222
+ "appName": "LMS",
2223
+ "navItems": [
1655
2224
  {
1656
- "type": "icon",
1657
- "name": "check-circle",
1658
- "size": "lg"
2225
+ "label": "Courses",
2226
+ "href": "/courses",
2227
+ "icon": "book-open"
1659
2228
  },
1660
2229
  {
1661
- "type": "typography",
1662
- "content": "Enrolled!",
1663
- "variant": "h2"
2230
+ "label": "Enroll",
2231
+ "href": "/enroll",
2232
+ "icon": "layout-list"
1664
2233
  },
1665
2234
  {
1666
- "type": "typography",
1667
- "content": "You have been successfully enrolled in the course.",
1668
- "variant": "body"
1669
- },
2235
+ "label": "Progress",
2236
+ "href": "/progress",
2237
+ "icon": "layout-list"
2238
+ }
2239
+ ],
2240
+ "children": [
1670
2241
  {
1671
- "type": "button",
1672
- "label": "Start New",
1673
- "event": "RESTART",
1674
- "variant": "primary",
1675
- "icon": "refresh-cw"
2242
+ "type": "stack",
2243
+ "direction": "vertical",
2244
+ "gap": "lg",
2245
+ "align": "center",
2246
+ "children": [
2247
+ {
2248
+ "type": "icon",
2249
+ "name": "check-circle",
2250
+ "size": "lg"
2251
+ },
2252
+ {
2253
+ "type": "typography",
2254
+ "content": "Enrolled!",
2255
+ "variant": "h2"
2256
+ },
2257
+ {
2258
+ "type": "typography",
2259
+ "content": "You have been successfully enrolled in the course.",
2260
+ "variant": "body"
2261
+ },
2262
+ {
2263
+ "type": "button",
2264
+ "label": "Start New",
2265
+ "event": "RESTART",
2266
+ "variant": "primary",
2267
+ "icon": "refresh-cw"
2268
+ }
2269
+ ]
1676
2270
  }
1677
2271
  ]
1678
2272
  }
@@ -1692,71 +2286,102 @@
1692
2286
  "render-ui",
1693
2287
  "main",
1694
2288
  {
1695
- "type": "stack",
1696
- "direction": "vertical",
1697
- "gap": "lg",
1698
- "children": [
1699
- {
1700
- "type": "stack",
1701
- "direction": "horizontal",
1702
- "gap": "sm",
1703
- "align": "center",
1704
- "children": [
1705
- {
1706
- "type": "icon",
1707
- "name": "user-plus",
1708
- "size": "lg"
1709
- },
1710
- {
1711
- "type": "typography",
1712
- "content": "Course Enrollment",
1713
- "variant": "h2"
1714
- }
1715
- ]
1716
- },
1717
- {
1718
- "type": "badge",
1719
- "label": "Step 1 of 2"
1720
- },
2289
+ "type": "dashboard-layout",
2290
+ "appName": "LMS",
2291
+ "navItems": [
1721
2292
  {
1722
- "type": "wizard-progress",
1723
- "steps": [
1724
- "Student Info",
1725
- "Course Selection"
1726
- ],
1727
- "currentStep": 0
1728
- },
1729
- {
1730
- "type": "divider"
2293
+ "label": "Courses",
2294
+ "href": "/courses",
2295
+ "icon": "book-open"
1731
2296
  },
1732
2297
  {
1733
- "type": "typography",
1734
- "content": "Student Info",
1735
- "variant": "h3"
2298
+ "label": "Enroll",
2299
+ "href": "/enroll",
2300
+ "icon": "layout-list"
1736
2301
  },
1737
2302
  {
1738
- "type": "form-section",
1739
- "entity": "Enrollment",
1740
- "mode": "create",
1741
- "submitEvent": "NEXT",
1742
- "cancelEvent": "INIT",
1743
- "fields": [
1744
- "studentName",
1745
- "email"
1746
- ]
1747
- },
2303
+ "label": "Progress",
2304
+ "href": "/progress",
2305
+ "icon": "layout-list"
2306
+ }
2307
+ ],
2308
+ "children": [
1748
2309
  {
1749
- "type": "stack",
1750
- "direction": "horizontal",
1751
- "gap": "sm",
1752
- "justify": "end",
2310
+ "type": "container",
2311
+ "maxWidth": "lg",
2312
+ "padding": "lg",
1753
2313
  "children": [
1754
2314
  {
1755
- "type": "button",
1756
- "label": "Next",
1757
- "event": "NEXT",
1758
- "variant": "primary",
1759
- "icon": "arrow-right"
2315
+ "type": "stack",
2316
+ "direction": "vertical",
2317
+ "gap": "lg",
2318
+ "children": [
2319
+ {
2320
+ "type": "stack",
2321
+ "direction": "horizontal",
2322
+ "gap": "sm",
2323
+ "align": "center",
2324
+ "children": [
2325
+ {
2326
+ "type": "icon",
2327
+ "name": "user-plus",
2328
+ "size": "lg"
2329
+ },
2330
+ {
2331
+ "type": "typography",
2332
+ "content": "Course Enrollment",
2333
+ "variant": "h2"
2334
+ }
2335
+ ]
2336
+ },
2337
+ {
2338
+ "type": "progress-dots",
2339
+ "count": 2,
2340
+ "currentIndex": 0
2341
+ },
2342
+ {
2343
+ "type": "wizard-progress",
2344
+ "steps": [
2345
+ "Student Info",
2346
+ "Course Selection"
2347
+ ],
2348
+ "currentStep": 0
2349
+ },
2350
+ {
2351
+ "type": "divider"
2352
+ },
2353
+ {
2354
+ "type": "typography",
2355
+ "content": "Student Info",
2356
+ "variant": "h3"
2357
+ },
2358
+ {
2359
+ "type": "form-section",
2360
+ "entity": "Enrollment",
2361
+ "mode": "create",
2362
+ "submitEvent": "NEXT",
2363
+ "cancelEvent": "INIT",
2364
+ "fields": [
2365
+ "studentName",
2366
+ "email"
2367
+ ]
2368
+ },
2369
+ {
2370
+ "type": "stack",
2371
+ "direction": "horizontal",
2372
+ "gap": "sm",
2373
+ "justify": "end",
2374
+ "children": [
2375
+ {
2376
+ "type": "button",
2377
+ "label": "Next",
2378
+ "event": "NEXT",
2379
+ "variant": "primary",
2380
+ "icon": "arrow-right"
2381
+ }
2382
+ ]
2383
+ }
2384
+ ]
1760
2385
  }
1761
2386
  ]
1762
2387
  }
@@ -1778,72 +2403,103 @@
1778
2403
  "render-ui",
1779
2404
  "main",
1780
2405
  {
1781
- "type": "stack",
1782
- "direction": "vertical",
1783
- "gap": "lg",
1784
- "children": [
1785
- {
1786
- "type": "stack",
1787
- "direction": "horizontal",
1788
- "gap": "sm",
1789
- "align": "center",
1790
- "children": [
1791
- {
1792
- "type": "icon",
1793
- "name": "user-plus",
1794
- "size": "lg"
1795
- },
1796
- {
1797
- "type": "typography",
1798
- "content": "Course Enrollment",
1799
- "variant": "h2"
1800
- }
1801
- ]
1802
- },
1803
- {
1804
- "type": "badge",
1805
- "label": "Step 1 of 2"
1806
- },
1807
- {
1808
- "type": "wizard-progress",
1809
- "steps": [
1810
- "Student Info",
1811
- "Course Selection"
1812
- ],
1813
- "currentStep": 0
1814
- },
2406
+ "type": "dashboard-layout",
2407
+ "appName": "LMS",
2408
+ "navItems": [
1815
2409
  {
1816
- "type": "divider"
2410
+ "label": "Courses",
2411
+ "href": "/courses",
2412
+ "icon": "book-open"
1817
2413
  },
1818
2414
  {
1819
- "type": "typography",
1820
- "content": "Student Info",
1821
- "variant": "h3"
2415
+ "label": "Enroll",
2416
+ "href": "/enroll",
2417
+ "icon": "layout-list"
1822
2418
  },
1823
2419
  {
1824
- "type": "form-section",
1825
- "entity": "Enrollment",
1826
- "mode": "create",
1827
- "submitEvent": "NEXT",
1828
- "cancelEvent": "INIT",
1829
- "fields": [
1830
- "studentName",
1831
- "email"
1832
- ]
1833
- },
2420
+ "label": "Progress",
2421
+ "href": "/progress",
2422
+ "icon": "layout-list"
2423
+ }
2424
+ ],
2425
+ "children": [
1834
2426
  {
1835
- "type": "stack",
1836
- "direction": "horizontal",
1837
- "gap": "sm",
1838
- "justify": "end",
2427
+ "type": "container",
2428
+ "maxWidth": "lg",
2429
+ "padding": "lg",
1839
2430
  "children": [
1840
2431
  {
1841
- "type": "button",
1842
- "label": "Next",
1843
- "event": "NEXT",
1844
- "variant": "primary",
1845
- "icon": "arrow-right"
1846
- }
2432
+ "type": "stack",
2433
+ "direction": "vertical",
2434
+ "gap": "lg",
2435
+ "children": [
2436
+ {
2437
+ "type": "stack",
2438
+ "direction": "horizontal",
2439
+ "gap": "sm",
2440
+ "align": "center",
2441
+ "children": [
2442
+ {
2443
+ "type": "icon",
2444
+ "name": "user-plus",
2445
+ "size": "lg"
2446
+ },
2447
+ {
2448
+ "type": "typography",
2449
+ "content": "Course Enrollment",
2450
+ "variant": "h2"
2451
+ }
2452
+ ]
2453
+ },
2454
+ {
2455
+ "type": "progress-dots",
2456
+ "count": 2,
2457
+ "currentIndex": 0
2458
+ },
2459
+ {
2460
+ "type": "wizard-progress",
2461
+ "steps": [
2462
+ "Student Info",
2463
+ "Course Selection"
2464
+ ],
2465
+ "currentStep": 0
2466
+ },
2467
+ {
2468
+ "type": "divider"
2469
+ },
2470
+ {
2471
+ "type": "typography",
2472
+ "content": "Student Info",
2473
+ "variant": "h3"
2474
+ },
2475
+ {
2476
+ "type": "form-section",
2477
+ "entity": "Enrollment",
2478
+ "mode": "create",
2479
+ "submitEvent": "NEXT",
2480
+ "cancelEvent": "INIT",
2481
+ "fields": [
2482
+ "studentName",
2483
+ "email"
2484
+ ]
2485
+ },
2486
+ {
2487
+ "type": "stack",
2488
+ "direction": "horizontal",
2489
+ "gap": "sm",
2490
+ "justify": "end",
2491
+ "children": [
2492
+ {
2493
+ "type": "button",
2494
+ "label": "Next",
2495
+ "event": "NEXT",
2496
+ "variant": "primary",
2497
+ "icon": "arrow-right"
2498
+ }
2499
+ ]
2500
+ }
2501
+ ]
2502
+ }
1847
2503
  ]
1848
2504
  }
1849
2505
  ]
@@ -1921,7 +2577,7 @@
1921
2577
  },
1922
2578
  {
1923
2579
  "name": "lastActivity",
1924
- "type": "string",
2580
+ "type": "date",
1925
2581
  "default": ""
1926
2582
  }
1927
2583
  ]
@@ -1976,156 +2632,296 @@
1976
2632
  "render-ui",
1977
2633
  "main",
1978
2634
  {
1979
- "type": "stack",
1980
- "direction": "vertical",
1981
- "gap": "lg",
1982
- "children": [
2635
+ "type": "dashboard-layout",
2636
+ "appName": "LMS",
2637
+ "navItems": [
1983
2638
  {
1984
- "type": "stack",
1985
- "direction": "horizontal",
1986
- "gap": "md",
1987
- "justify": "space-between",
1988
- "children": [
1989
- {
1990
- "type": "stack",
1991
- "direction": "horizontal",
1992
- "gap": "md",
1993
- "children": [
1994
- {
1995
- "type": "icon",
1996
- "name": "trending-up",
1997
- "size": "lg"
1998
- },
1999
- {
2000
- "type": "typography",
2001
- "content": "Progress",
2002
- "variant": "h2"
2003
- }
2004
- ]
2005
- },
2006
- {
2007
- "type": "button",
2008
- "label": "Refresh",
2009
- "event": "REFRESH",
2010
- "variant": "secondary",
2011
- "icon": "refresh-cw"
2012
- }
2013
- ]
2639
+ "label": "Courses",
2640
+ "href": "/courses",
2641
+ "icon": "book-open"
2014
2642
  },
2015
2643
  {
2016
- "type": "divider"
2644
+ "label": "Enroll",
2645
+ "href": "/enroll",
2646
+ "icon": "layout-list"
2017
2647
  },
2018
2648
  {
2019
- "type": "simple-grid",
2020
- "columns": 3,
2649
+ "label": "Progress",
2650
+ "href": "/progress",
2651
+ "icon": "layout-list"
2652
+ }
2653
+ ],
2654
+ "children": [
2655
+ {
2656
+ "type": "scaled-diagram",
2021
2657
  "children": [
2022
2658
  {
2023
- "type": "card",
2659
+ "type": "stack",
2660
+ "direction": "vertical",
2661
+ "gap": "lg",
2024
2662
  "children": [
2025
2663
  {
2026
- "type": "stack",
2027
- "direction": "vertical",
2028
- "gap": "sm",
2029
- "children": [
2664
+ "type": "breadcrumb",
2665
+ "items": [
2030
2666
  {
2031
- "type": "typography",
2032
- "variant": "caption",
2033
- "content": "CourseName"
2667
+ "label": "Home",
2668
+ "href": "/"
2034
2669
  },
2035
2670
  {
2036
- "type": "typography",
2037
- "variant": "h3",
2038
- "content": "@entity.courseName"
2671
+ "label": "Progress"
2039
2672
  }
2040
2673
  ]
2041
- }
2042
- ]
2043
- },
2044
- {
2045
- "type": "card",
2046
- "children": [
2674
+ },
2047
2675
  {
2048
2676
  "type": "stack",
2049
- "direction": "vertical",
2050
- "gap": "sm",
2677
+ "direction": "horizontal",
2678
+ "gap": "md",
2679
+ "justify": "space-between",
2051
2680
  "children": [
2052
2681
  {
2053
- "type": "typography",
2054
- "variant": "caption",
2055
- "content": "LessonsCompleted"
2682
+ "type": "stack",
2683
+ "direction": "horizontal",
2684
+ "gap": "md",
2685
+ "children": [
2686
+ {
2687
+ "type": "icon",
2688
+ "name": "trending-up",
2689
+ "size": "lg"
2690
+ },
2691
+ {
2692
+ "type": "typography",
2693
+ "content": "Progress",
2694
+ "variant": "h2"
2695
+ }
2696
+ ]
2056
2697
  },
2057
2698
  {
2058
- "type": "typography",
2059
- "variant": "h3",
2060
- "content": "@entity.lessonsCompleted"
2699
+ "type": "button",
2700
+ "label": "Refresh",
2701
+ "event": "REFRESH",
2702
+ "variant": "secondary",
2703
+ "icon": "refresh-cw"
2061
2704
  }
2062
2705
  ]
2063
- }
2064
- ]
2065
- },
2066
- {
2067
- "type": "card",
2068
- "children": [
2706
+ },
2069
2707
  {
2070
- "type": "stack",
2071
- "direction": "vertical",
2072
- "gap": "sm",
2708
+ "type": "divider"
2709
+ },
2710
+ {
2711
+ "type": "box",
2712
+ "padding": "md",
2073
2713
  "children": [
2074
2714
  {
2075
- "type": "typography",
2076
- "variant": "caption",
2077
- "content": "TotalLessons"
2078
- },
2079
- {
2080
- "type": "typography",
2081
- "variant": "h3",
2082
- "content": "@entity.totalLessons"
2715
+ "type": "simple-grid",
2716
+ "columns": 3,
2717
+ "children": [
2718
+ {
2719
+ "type": "card",
2720
+ "children": [
2721
+ {
2722
+ "type": "stack",
2723
+ "direction": "vertical",
2724
+ "gap": "sm",
2725
+ "children": [
2726
+ {
2727
+ "type": "typography",
2728
+ "variant": "caption",
2729
+ "content": "CourseName"
2730
+ },
2731
+ {
2732
+ "type": "typography",
2733
+ "variant": "h3",
2734
+ "content": [
2735
+ "object/get",
2736
+ [
2737
+ "array/first",
2738
+ "@entity"
2739
+ ],
2740
+ "courseName"
2741
+ ]
2742
+ }
2743
+ ]
2744
+ }
2745
+ ]
2746
+ },
2747
+ {
2748
+ "type": "stat-display",
2749
+ "label": "LessonsCompleted",
2750
+ "value": [
2751
+ "object/get",
2752
+ [
2753
+ "array/first",
2754
+ "@entity"
2755
+ ],
2756
+ "lessonsCompleted"
2757
+ ]
2758
+ },
2759
+ {
2760
+ "type": "stat-display",
2761
+ "label": "TotalLessons",
2762
+ "value": [
2763
+ "object/get",
2764
+ [
2765
+ "array/first",
2766
+ "@entity"
2767
+ ],
2768
+ "totalLessons"
2769
+ ]
2770
+ },
2771
+ {
2772
+ "type": "stat-display",
2773
+ "label": "PercentComplete",
2774
+ "value": [
2775
+ "object/get",
2776
+ [
2777
+ "array/first",
2778
+ "@entity"
2779
+ ],
2780
+ "percentComplete"
2781
+ ]
2782
+ },
2783
+ {
2784
+ "type": "card",
2785
+ "children": [
2786
+ {
2787
+ "type": "stack",
2788
+ "direction": "vertical",
2789
+ "gap": "sm",
2790
+ "children": [
2791
+ {
2792
+ "type": "typography",
2793
+ "variant": "caption",
2794
+ "content": "LastActivity"
2795
+ },
2796
+ {
2797
+ "type": "typography",
2798
+ "variant": "h3",
2799
+ "content": [
2800
+ "object/get",
2801
+ [
2802
+ "array/first",
2803
+ "@entity"
2804
+ ],
2805
+ "lastActivity"
2806
+ ]
2807
+ }
2808
+ ]
2809
+ }
2810
+ ]
2811
+ }
2812
+ ]
2083
2813
  }
2084
2814
  ]
2085
- }
2086
- ]
2087
- },
2088
- {
2089
- "type": "card",
2090
- "children": [
2815
+ },
2091
2816
  {
2092
- "type": "stack",
2093
- "direction": "vertical",
2094
- "gap": "sm",
2817
+ "type": "divider"
2818
+ },
2819
+ {
2820
+ "type": "grid",
2821
+ "columns": 2,
2822
+ "gap": "md",
2095
2823
  "children": [
2096
2824
  {
2097
- "type": "typography",
2098
- "variant": "caption",
2099
- "content": "PercentComplete"
2825
+ "type": "card",
2826
+ "children": [
2827
+ {
2828
+ "type": "typography",
2829
+ "variant": "caption",
2830
+ "content": "Chart View"
2831
+ }
2832
+ ]
2100
2833
  },
2101
2834
  {
2102
- "type": "typography",
2103
- "variant": "h3",
2104
- "content": "@entity.percentComplete"
2835
+ "type": "card",
2836
+ "children": [
2837
+ {
2838
+ "type": "typography",
2839
+ "variant": "caption",
2840
+ "content": "Graph View"
2841
+ }
2842
+ ]
2105
2843
  }
2106
2844
  ]
2107
- }
2108
- ]
2109
- },
2110
- {
2111
- "type": "card",
2112
- "children": [
2845
+ },
2113
2846
  {
2114
- "type": "stack",
2115
- "direction": "vertical",
2116
- "gap": "sm",
2117
- "children": [
2847
+ "type": "line-chart",
2848
+ "data": [
2118
2849
  {
2119
- "type": "typography",
2120
- "variant": "caption",
2121
- "content": "LastActivity"
2850
+ "date": "Jan",
2851
+ "value": 12
2122
2852
  },
2123
2853
  {
2124
- "type": "typography",
2125
- "variant": "h3",
2126
- "content": "@entity.lastActivity"
2854
+ "date": "Feb",
2855
+ "value": 19
2856
+ },
2857
+ {
2858
+ "date": "Mar",
2859
+ "value": 15
2860
+ },
2861
+ {
2862
+ "date": "Apr",
2863
+ "value": 25
2864
+ },
2865
+ {
2866
+ "date": "May",
2867
+ "value": 22
2868
+ },
2869
+ {
2870
+ "date": "Jun",
2871
+ "value": 30
2872
+ }
2873
+ ],
2874
+ "xKey": "date",
2875
+ "yKey": "value",
2876
+ "title": "Trend"
2877
+ },
2878
+ {
2879
+ "type": "chart-legend",
2880
+ "items": [
2881
+ {
2882
+ "label": "Current",
2883
+ "color": "primary"
2884
+ },
2885
+ {
2886
+ "label": "Previous",
2887
+ "color": "muted"
2127
2888
  }
2128
2889
  ]
2890
+ },
2891
+ {
2892
+ "type": "graph-view",
2893
+ "nodes": [
2894
+ {
2895
+ "id": "a",
2896
+ "label": "Start",
2897
+ "x": 50,
2898
+ "y": 100
2899
+ },
2900
+ {
2901
+ "id": "b",
2902
+ "label": "Process",
2903
+ "x": 200,
2904
+ "y": 50
2905
+ },
2906
+ {
2907
+ "id": "c",
2908
+ "label": "End",
2909
+ "x": 350,
2910
+ "y": 100
2911
+ }
2912
+ ],
2913
+ "edges": [
2914
+ {
2915
+ "from": "a",
2916
+ "to": "b"
2917
+ },
2918
+ {
2919
+ "from": "b",
2920
+ "to": "c"
2921
+ }
2922
+ ],
2923
+ "width": 400,
2924
+ "height": 200
2129
2925
  }
2130
2926
  ]
2131
2927
  }
@@ -2149,156 +2945,296 @@
2149
2945
  "render-ui",
2150
2946
  "main",
2151
2947
  {
2152
- "type": "stack",
2153
- "direction": "vertical",
2154
- "gap": "lg",
2155
- "children": [
2948
+ "type": "dashboard-layout",
2949
+ "appName": "LMS",
2950
+ "navItems": [
2156
2951
  {
2157
- "type": "stack",
2158
- "direction": "horizontal",
2159
- "gap": "md",
2160
- "justify": "space-between",
2161
- "children": [
2162
- {
2163
- "type": "stack",
2164
- "direction": "horizontal",
2165
- "gap": "md",
2166
- "children": [
2167
- {
2168
- "type": "icon",
2169
- "name": "trending-up",
2170
- "size": "lg"
2171
- },
2172
- {
2173
- "type": "typography",
2174
- "content": "Progress",
2175
- "variant": "h2"
2176
- }
2177
- ]
2178
- },
2179
- {
2180
- "type": "button",
2181
- "label": "Refresh",
2182
- "event": "REFRESH",
2183
- "variant": "secondary",
2184
- "icon": "refresh-cw"
2185
- }
2186
- ]
2952
+ "label": "Courses",
2953
+ "href": "/courses",
2954
+ "icon": "book-open"
2187
2955
  },
2188
2956
  {
2189
- "type": "divider"
2957
+ "label": "Enroll",
2958
+ "href": "/enroll",
2959
+ "icon": "layout-list"
2190
2960
  },
2191
2961
  {
2192
- "type": "simple-grid",
2193
- "columns": 3,
2962
+ "label": "Progress",
2963
+ "href": "/progress",
2964
+ "icon": "layout-list"
2965
+ }
2966
+ ],
2967
+ "children": [
2968
+ {
2969
+ "type": "scaled-diagram",
2194
2970
  "children": [
2195
2971
  {
2196
- "type": "card",
2972
+ "type": "stack",
2973
+ "direction": "vertical",
2974
+ "gap": "lg",
2197
2975
  "children": [
2976
+ {
2977
+ "type": "breadcrumb",
2978
+ "items": [
2979
+ {
2980
+ "label": "Home",
2981
+ "href": "/"
2982
+ },
2983
+ {
2984
+ "label": "Progress"
2985
+ }
2986
+ ]
2987
+ },
2198
2988
  {
2199
2989
  "type": "stack",
2200
- "direction": "vertical",
2201
- "gap": "sm",
2990
+ "direction": "horizontal",
2991
+ "gap": "md",
2992
+ "justify": "space-between",
2202
2993
  "children": [
2203
2994
  {
2204
- "type": "typography",
2205
- "variant": "caption",
2206
- "content": "CourseName"
2995
+ "type": "stack",
2996
+ "direction": "horizontal",
2997
+ "gap": "md",
2998
+ "children": [
2999
+ {
3000
+ "type": "icon",
3001
+ "name": "trending-up",
3002
+ "size": "lg"
3003
+ },
3004
+ {
3005
+ "type": "typography",
3006
+ "content": "Progress",
3007
+ "variant": "h2"
3008
+ }
3009
+ ]
2207
3010
  },
2208
3011
  {
2209
- "type": "typography",
2210
- "variant": "h3",
2211
- "content": "@entity.courseName"
3012
+ "type": "button",
3013
+ "label": "Refresh",
3014
+ "event": "REFRESH",
3015
+ "variant": "secondary",
3016
+ "icon": "refresh-cw"
2212
3017
  }
2213
3018
  ]
2214
- }
2215
- ]
2216
- },
2217
- {
2218
- "type": "card",
2219
- "children": [
3019
+ },
2220
3020
  {
2221
- "type": "stack",
2222
- "direction": "vertical",
2223
- "gap": "sm",
3021
+ "type": "divider"
3022
+ },
3023
+ {
3024
+ "type": "box",
3025
+ "padding": "md",
3026
+ "children": [
3027
+ {
3028
+ "type": "simple-grid",
3029
+ "columns": 3,
3030
+ "children": [
3031
+ {
3032
+ "type": "card",
3033
+ "children": [
3034
+ {
3035
+ "type": "stack",
3036
+ "direction": "vertical",
3037
+ "gap": "sm",
3038
+ "children": [
3039
+ {
3040
+ "type": "typography",
3041
+ "variant": "caption",
3042
+ "content": "CourseName"
3043
+ },
3044
+ {
3045
+ "type": "typography",
3046
+ "variant": "h3",
3047
+ "content": [
3048
+ "object/get",
3049
+ [
3050
+ "array/first",
3051
+ "@entity"
3052
+ ],
3053
+ "courseName"
3054
+ ]
3055
+ }
3056
+ ]
3057
+ }
3058
+ ]
3059
+ },
3060
+ {
3061
+ "type": "stat-display",
3062
+ "label": "LessonsCompleted",
3063
+ "value": [
3064
+ "object/get",
3065
+ [
3066
+ "array/first",
3067
+ "@entity"
3068
+ ],
3069
+ "lessonsCompleted"
3070
+ ]
3071
+ },
3072
+ {
3073
+ "type": "stat-display",
3074
+ "label": "TotalLessons",
3075
+ "value": [
3076
+ "object/get",
3077
+ [
3078
+ "array/first",
3079
+ "@entity"
3080
+ ],
3081
+ "totalLessons"
3082
+ ]
3083
+ },
3084
+ {
3085
+ "type": "stat-display",
3086
+ "label": "PercentComplete",
3087
+ "value": [
3088
+ "object/get",
3089
+ [
3090
+ "array/first",
3091
+ "@entity"
3092
+ ],
3093
+ "percentComplete"
3094
+ ]
3095
+ },
3096
+ {
3097
+ "type": "card",
3098
+ "children": [
3099
+ {
3100
+ "type": "stack",
3101
+ "direction": "vertical",
3102
+ "gap": "sm",
3103
+ "children": [
3104
+ {
3105
+ "type": "typography",
3106
+ "variant": "caption",
3107
+ "content": "LastActivity"
3108
+ },
3109
+ {
3110
+ "type": "typography",
3111
+ "variant": "h3",
3112
+ "content": [
3113
+ "object/get",
3114
+ [
3115
+ "array/first",
3116
+ "@entity"
3117
+ ],
3118
+ "lastActivity"
3119
+ ]
3120
+ }
3121
+ ]
3122
+ }
3123
+ ]
3124
+ }
3125
+ ]
3126
+ }
3127
+ ]
3128
+ },
3129
+ {
3130
+ "type": "divider"
3131
+ },
3132
+ {
3133
+ "type": "grid",
3134
+ "columns": 2,
3135
+ "gap": "md",
2224
3136
  "children": [
2225
3137
  {
2226
- "type": "typography",
2227
- "variant": "caption",
2228
- "content": "LessonsCompleted"
3138
+ "type": "card",
3139
+ "children": [
3140
+ {
3141
+ "type": "typography",
3142
+ "variant": "caption",
3143
+ "content": "Chart View"
3144
+ }
3145
+ ]
3146
+ },
3147
+ {
3148
+ "type": "card",
3149
+ "children": [
3150
+ {
3151
+ "type": "typography",
3152
+ "variant": "caption",
3153
+ "content": "Graph View"
3154
+ }
3155
+ ]
3156
+ }
3157
+ ]
3158
+ },
3159
+ {
3160
+ "type": "line-chart",
3161
+ "data": [
3162
+ {
3163
+ "date": "Jan",
3164
+ "value": 12
2229
3165
  },
2230
3166
  {
2231
- "type": "typography",
2232
- "variant": "h3",
2233
- "content": "@entity.lessonsCompleted"
3167
+ "date": "Feb",
3168
+ "value": 19
3169
+ },
3170
+ {
3171
+ "date": "Mar",
3172
+ "value": 15
3173
+ },
3174
+ {
3175
+ "date": "Apr",
3176
+ "value": 25
3177
+ },
3178
+ {
3179
+ "date": "May",
3180
+ "value": 22
3181
+ },
3182
+ {
3183
+ "date": "Jun",
3184
+ "value": 30
2234
3185
  }
2235
- ]
2236
- }
2237
- ]
2238
- },
2239
- {
2240
- "type": "card",
2241
- "children": [
3186
+ ],
3187
+ "xKey": "date",
3188
+ "yKey": "value",
3189
+ "title": "Trend"
3190
+ },
2242
3191
  {
2243
- "type": "stack",
2244
- "direction": "vertical",
2245
- "gap": "sm",
2246
- "children": [
3192
+ "type": "chart-legend",
3193
+ "items": [
2247
3194
  {
2248
- "type": "typography",
2249
- "variant": "caption",
2250
- "content": "TotalLessons"
3195
+ "label": "Current",
3196
+ "color": "primary"
2251
3197
  },
2252
3198
  {
2253
- "type": "typography",
2254
- "variant": "h3",
2255
- "content": "@entity.totalLessons"
3199
+ "label": "Previous",
3200
+ "color": "muted"
2256
3201
  }
2257
3202
  ]
2258
- }
2259
- ]
2260
- },
2261
- {
2262
- "type": "card",
2263
- "children": [
3203
+ },
2264
3204
  {
2265
- "type": "stack",
2266
- "direction": "vertical",
2267
- "gap": "sm",
2268
- "children": [
3205
+ "type": "graph-view",
3206
+ "nodes": [
2269
3207
  {
2270
- "type": "typography",
2271
- "variant": "caption",
2272
- "content": "PercentComplete"
3208
+ "id": "a",
3209
+ "label": "Start",
3210
+ "x": 50,
3211
+ "y": 100
2273
3212
  },
2274
3213
  {
2275
- "type": "typography",
2276
- "variant": "h3",
2277
- "content": "@entity.percentComplete"
3214
+ "id": "b",
3215
+ "label": "Process",
3216
+ "x": 200,
3217
+ "y": 50
3218
+ },
3219
+ {
3220
+ "id": "c",
3221
+ "label": "End",
3222
+ "x": 350,
3223
+ "y": 100
2278
3224
  }
2279
- ]
2280
- }
2281
- ]
2282
- },
2283
- {
2284
- "type": "card",
2285
- "children": [
2286
- {
2287
- "type": "stack",
2288
- "direction": "vertical",
2289
- "gap": "sm",
2290
- "children": [
3225
+ ],
3226
+ "edges": [
2291
3227
  {
2292
- "type": "typography",
2293
- "variant": "caption",
2294
- "content": "LastActivity"
3228
+ "from": "a",
3229
+ "to": "b"
2295
3230
  },
2296
3231
  {
2297
- "type": "typography",
2298
- "variant": "h3",
2299
- "content": "@entity.lastActivity"
3232
+ "from": "b",
3233
+ "to": "c"
2300
3234
  }
2301
- ]
3235
+ ],
3236
+ "width": 400,
3237
+ "height": 200
2302
3238
  }
2303
3239
  ]
2304
3240
  }
@@ -2322,156 +3258,296 @@
2322
3258
  "render-ui",
2323
3259
  "main",
2324
3260
  {
2325
- "type": "stack",
2326
- "direction": "vertical",
2327
- "gap": "lg",
2328
- "children": [
3261
+ "type": "dashboard-layout",
3262
+ "appName": "LMS",
3263
+ "navItems": [
2329
3264
  {
2330
- "type": "stack",
2331
- "direction": "horizontal",
2332
- "gap": "md",
2333
- "justify": "space-between",
2334
- "children": [
2335
- {
2336
- "type": "stack",
2337
- "direction": "horizontal",
2338
- "gap": "md",
2339
- "children": [
2340
- {
2341
- "type": "icon",
2342
- "name": "trending-up",
2343
- "size": "lg"
2344
- },
2345
- {
2346
- "type": "typography",
2347
- "content": "Progress",
2348
- "variant": "h2"
2349
- }
2350
- ]
2351
- },
2352
- {
2353
- "type": "button",
2354
- "label": "Refresh",
2355
- "event": "REFRESH",
2356
- "variant": "secondary",
2357
- "icon": "refresh-cw"
2358
- }
2359
- ]
3265
+ "label": "Courses",
3266
+ "href": "/courses",
3267
+ "icon": "book-open"
2360
3268
  },
2361
3269
  {
2362
- "type": "divider"
3270
+ "label": "Enroll",
3271
+ "href": "/enroll",
3272
+ "icon": "layout-list"
2363
3273
  },
2364
3274
  {
2365
- "type": "simple-grid",
2366
- "columns": 3,
3275
+ "label": "Progress",
3276
+ "href": "/progress",
3277
+ "icon": "layout-list"
3278
+ }
3279
+ ],
3280
+ "children": [
3281
+ {
3282
+ "type": "scaled-diagram",
2367
3283
  "children": [
2368
3284
  {
2369
- "type": "card",
3285
+ "type": "stack",
3286
+ "direction": "vertical",
3287
+ "gap": "lg",
2370
3288
  "children": [
2371
3289
  {
2372
- "type": "stack",
2373
- "direction": "vertical",
2374
- "gap": "sm",
2375
- "children": [
3290
+ "type": "breadcrumb",
3291
+ "items": [
2376
3292
  {
2377
- "type": "typography",
2378
- "variant": "caption",
2379
- "content": "CourseName"
3293
+ "label": "Home",
3294
+ "href": "/"
2380
3295
  },
2381
3296
  {
2382
- "type": "typography",
2383
- "variant": "h3",
2384
- "content": "@entity.courseName"
3297
+ "label": "Progress"
2385
3298
  }
2386
3299
  ]
2387
- }
2388
- ]
2389
- },
2390
- {
2391
- "type": "card",
2392
- "children": [
3300
+ },
2393
3301
  {
2394
3302
  "type": "stack",
2395
- "direction": "vertical",
2396
- "gap": "sm",
3303
+ "direction": "horizontal",
3304
+ "gap": "md",
3305
+ "justify": "space-between",
2397
3306
  "children": [
2398
3307
  {
2399
- "type": "typography",
2400
- "variant": "caption",
2401
- "content": "LessonsCompleted"
3308
+ "type": "stack",
3309
+ "direction": "horizontal",
3310
+ "gap": "md",
3311
+ "children": [
3312
+ {
3313
+ "type": "icon",
3314
+ "name": "trending-up",
3315
+ "size": "lg"
3316
+ },
3317
+ {
3318
+ "type": "typography",
3319
+ "content": "Progress",
3320
+ "variant": "h2"
3321
+ }
3322
+ ]
2402
3323
  },
2403
3324
  {
2404
- "type": "typography",
2405
- "variant": "h3",
2406
- "content": "@entity.lessonsCompleted"
3325
+ "type": "button",
3326
+ "label": "Refresh",
3327
+ "event": "REFRESH",
3328
+ "variant": "secondary",
3329
+ "icon": "refresh-cw"
2407
3330
  }
2408
3331
  ]
2409
- }
2410
- ]
2411
- },
2412
- {
2413
- "type": "card",
2414
- "children": [
3332
+ },
2415
3333
  {
2416
- "type": "stack",
2417
- "direction": "vertical",
2418
- "gap": "sm",
3334
+ "type": "divider"
3335
+ },
3336
+ {
3337
+ "type": "box",
3338
+ "padding": "md",
2419
3339
  "children": [
2420
3340
  {
2421
- "type": "typography",
2422
- "variant": "caption",
2423
- "content": "TotalLessons"
2424
- },
2425
- {
2426
- "type": "typography",
2427
- "variant": "h3",
2428
- "content": "@entity.totalLessons"
3341
+ "type": "simple-grid",
3342
+ "columns": 3,
3343
+ "children": [
3344
+ {
3345
+ "type": "card",
3346
+ "children": [
3347
+ {
3348
+ "type": "stack",
3349
+ "direction": "vertical",
3350
+ "gap": "sm",
3351
+ "children": [
3352
+ {
3353
+ "type": "typography",
3354
+ "variant": "caption",
3355
+ "content": "CourseName"
3356
+ },
3357
+ {
3358
+ "type": "typography",
3359
+ "variant": "h3",
3360
+ "content": [
3361
+ "object/get",
3362
+ [
3363
+ "array/first",
3364
+ "@entity"
3365
+ ],
3366
+ "courseName"
3367
+ ]
3368
+ }
3369
+ ]
3370
+ }
3371
+ ]
3372
+ },
3373
+ {
3374
+ "type": "stat-display",
3375
+ "label": "LessonsCompleted",
3376
+ "value": [
3377
+ "object/get",
3378
+ [
3379
+ "array/first",
3380
+ "@entity"
3381
+ ],
3382
+ "lessonsCompleted"
3383
+ ]
3384
+ },
3385
+ {
3386
+ "type": "stat-display",
3387
+ "label": "TotalLessons",
3388
+ "value": [
3389
+ "object/get",
3390
+ [
3391
+ "array/first",
3392
+ "@entity"
3393
+ ],
3394
+ "totalLessons"
3395
+ ]
3396
+ },
3397
+ {
3398
+ "type": "stat-display",
3399
+ "label": "PercentComplete",
3400
+ "value": [
3401
+ "object/get",
3402
+ [
3403
+ "array/first",
3404
+ "@entity"
3405
+ ],
3406
+ "percentComplete"
3407
+ ]
3408
+ },
3409
+ {
3410
+ "type": "card",
3411
+ "children": [
3412
+ {
3413
+ "type": "stack",
3414
+ "direction": "vertical",
3415
+ "gap": "sm",
3416
+ "children": [
3417
+ {
3418
+ "type": "typography",
3419
+ "variant": "caption",
3420
+ "content": "LastActivity"
3421
+ },
3422
+ {
3423
+ "type": "typography",
3424
+ "variant": "h3",
3425
+ "content": [
3426
+ "object/get",
3427
+ [
3428
+ "array/first",
3429
+ "@entity"
3430
+ ],
3431
+ "lastActivity"
3432
+ ]
3433
+ }
3434
+ ]
3435
+ }
3436
+ ]
3437
+ }
3438
+ ]
2429
3439
  }
2430
3440
  ]
2431
- }
2432
- ]
2433
- },
2434
- {
2435
- "type": "card",
2436
- "children": [
3441
+ },
2437
3442
  {
2438
- "type": "stack",
2439
- "direction": "vertical",
2440
- "gap": "sm",
3443
+ "type": "divider"
3444
+ },
3445
+ {
3446
+ "type": "grid",
3447
+ "columns": 2,
3448
+ "gap": "md",
2441
3449
  "children": [
2442
3450
  {
2443
- "type": "typography",
2444
- "variant": "caption",
2445
- "content": "PercentComplete"
3451
+ "type": "card",
3452
+ "children": [
3453
+ {
3454
+ "type": "typography",
3455
+ "variant": "caption",
3456
+ "content": "Chart View"
3457
+ }
3458
+ ]
2446
3459
  },
2447
3460
  {
2448
- "type": "typography",
2449
- "variant": "h3",
2450
- "content": "@entity.percentComplete"
3461
+ "type": "card",
3462
+ "children": [
3463
+ {
3464
+ "type": "typography",
3465
+ "variant": "caption",
3466
+ "content": "Graph View"
3467
+ }
3468
+ ]
2451
3469
  }
2452
3470
  ]
2453
- }
2454
- ]
2455
- },
2456
- {
2457
- "type": "card",
2458
- "children": [
3471
+ },
2459
3472
  {
2460
- "type": "stack",
2461
- "direction": "vertical",
2462
- "gap": "sm",
2463
- "children": [
3473
+ "type": "line-chart",
3474
+ "data": [
2464
3475
  {
2465
- "type": "typography",
2466
- "variant": "caption",
2467
- "content": "LastActivity"
3476
+ "date": "Jan",
3477
+ "value": 12
2468
3478
  },
2469
3479
  {
2470
- "type": "typography",
2471
- "variant": "h3",
2472
- "content": "@entity.lastActivity"
3480
+ "date": "Feb",
3481
+ "value": 19
3482
+ },
3483
+ {
3484
+ "date": "Mar",
3485
+ "value": 15
3486
+ },
3487
+ {
3488
+ "date": "Apr",
3489
+ "value": 25
3490
+ },
3491
+ {
3492
+ "date": "May",
3493
+ "value": 22
3494
+ },
3495
+ {
3496
+ "date": "Jun",
3497
+ "value": 30
3498
+ }
3499
+ ],
3500
+ "xKey": "date",
3501
+ "yKey": "value",
3502
+ "title": "Trend"
3503
+ },
3504
+ {
3505
+ "type": "chart-legend",
3506
+ "items": [
3507
+ {
3508
+ "label": "Current",
3509
+ "color": "primary"
3510
+ },
3511
+ {
3512
+ "label": "Previous",
3513
+ "color": "muted"
2473
3514
  }
2474
3515
  ]
3516
+ },
3517
+ {
3518
+ "type": "graph-view",
3519
+ "nodes": [
3520
+ {
3521
+ "id": "a",
3522
+ "label": "Start",
3523
+ "x": 50,
3524
+ "y": 100
3525
+ },
3526
+ {
3527
+ "id": "b",
3528
+ "label": "Process",
3529
+ "x": 200,
3530
+ "y": 50
3531
+ },
3532
+ {
3533
+ "id": "c",
3534
+ "label": "End",
3535
+ "x": 350,
3536
+ "y": 100
3537
+ }
3538
+ ],
3539
+ "edges": [
3540
+ {
3541
+ "from": "a",
3542
+ "to": "b"
3543
+ },
3544
+ {
3545
+ "from": "b",
3546
+ "to": "c"
3547
+ }
3548
+ ],
3549
+ "width": 400,
3550
+ "height": 200
2475
3551
  }
2476
3552
  ]
2477
3553
  }
@@ -2495,156 +3571,296 @@
2495
3571
  "render-ui",
2496
3572
  "main",
2497
3573
  {
2498
- "type": "stack",
2499
- "direction": "vertical",
2500
- "gap": "lg",
3574
+ "type": "dashboard-layout",
3575
+ "appName": "LMS",
3576
+ "navItems": [
3577
+ {
3578
+ "label": "Courses",
3579
+ "href": "/courses",
3580
+ "icon": "book-open"
3581
+ },
3582
+ {
3583
+ "label": "Enroll",
3584
+ "href": "/enroll",
3585
+ "icon": "layout-list"
3586
+ },
3587
+ {
3588
+ "label": "Progress",
3589
+ "href": "/progress",
3590
+ "icon": "layout-list"
3591
+ }
3592
+ ],
2501
3593
  "children": [
2502
3594
  {
2503
- "type": "stack",
2504
- "direction": "horizontal",
2505
- "gap": "md",
2506
- "justify": "space-between",
3595
+ "type": "scaled-diagram",
2507
3596
  "children": [
2508
3597
  {
2509
3598
  "type": "stack",
2510
- "direction": "horizontal",
2511
- "gap": "md",
3599
+ "direction": "vertical",
3600
+ "gap": "lg",
2512
3601
  "children": [
2513
3602
  {
2514
- "type": "icon",
2515
- "name": "trending-up",
2516
- "size": "lg"
3603
+ "type": "breadcrumb",
3604
+ "items": [
3605
+ {
3606
+ "label": "Home",
3607
+ "href": "/"
3608
+ },
3609
+ {
3610
+ "label": "Progress"
3611
+ }
3612
+ ]
3613
+ },
3614
+ {
3615
+ "type": "stack",
3616
+ "direction": "horizontal",
3617
+ "gap": "md",
3618
+ "justify": "space-between",
3619
+ "children": [
3620
+ {
3621
+ "type": "stack",
3622
+ "direction": "horizontal",
3623
+ "gap": "md",
3624
+ "children": [
3625
+ {
3626
+ "type": "icon",
3627
+ "name": "trending-up",
3628
+ "size": "lg"
3629
+ },
3630
+ {
3631
+ "type": "typography",
3632
+ "content": "Progress",
3633
+ "variant": "h2"
3634
+ }
3635
+ ]
3636
+ },
3637
+ {
3638
+ "type": "button",
3639
+ "label": "Refresh",
3640
+ "event": "REFRESH",
3641
+ "variant": "secondary",
3642
+ "icon": "refresh-cw"
3643
+ }
3644
+ ]
3645
+ },
3646
+ {
3647
+ "type": "divider"
3648
+ },
3649
+ {
3650
+ "type": "box",
3651
+ "padding": "md",
3652
+ "children": [
3653
+ {
3654
+ "type": "simple-grid",
3655
+ "columns": 3,
3656
+ "children": [
3657
+ {
3658
+ "type": "card",
3659
+ "children": [
3660
+ {
3661
+ "type": "stack",
3662
+ "direction": "vertical",
3663
+ "gap": "sm",
3664
+ "children": [
3665
+ {
3666
+ "type": "typography",
3667
+ "variant": "caption",
3668
+ "content": "CourseName"
3669
+ },
3670
+ {
3671
+ "type": "typography",
3672
+ "variant": "h3",
3673
+ "content": [
3674
+ "object/get",
3675
+ [
3676
+ "array/first",
3677
+ "@entity"
3678
+ ],
3679
+ "courseName"
3680
+ ]
3681
+ }
3682
+ ]
3683
+ }
3684
+ ]
3685
+ },
3686
+ {
3687
+ "type": "stat-display",
3688
+ "label": "LessonsCompleted",
3689
+ "value": [
3690
+ "object/get",
3691
+ [
3692
+ "array/first",
3693
+ "@entity"
3694
+ ],
3695
+ "lessonsCompleted"
3696
+ ]
3697
+ },
3698
+ {
3699
+ "type": "stat-display",
3700
+ "label": "TotalLessons",
3701
+ "value": [
3702
+ "object/get",
3703
+ [
3704
+ "array/first",
3705
+ "@entity"
3706
+ ],
3707
+ "totalLessons"
3708
+ ]
3709
+ },
3710
+ {
3711
+ "type": "stat-display",
3712
+ "label": "PercentComplete",
3713
+ "value": [
3714
+ "object/get",
3715
+ [
3716
+ "array/first",
3717
+ "@entity"
3718
+ ],
3719
+ "percentComplete"
3720
+ ]
3721
+ },
3722
+ {
3723
+ "type": "card",
3724
+ "children": [
3725
+ {
3726
+ "type": "stack",
3727
+ "direction": "vertical",
3728
+ "gap": "sm",
3729
+ "children": [
3730
+ {
3731
+ "type": "typography",
3732
+ "variant": "caption",
3733
+ "content": "LastActivity"
3734
+ },
3735
+ {
3736
+ "type": "typography",
3737
+ "variant": "h3",
3738
+ "content": [
3739
+ "object/get",
3740
+ [
3741
+ "array/first",
3742
+ "@entity"
3743
+ ],
3744
+ "lastActivity"
3745
+ ]
3746
+ }
3747
+ ]
3748
+ }
3749
+ ]
3750
+ }
3751
+ ]
3752
+ }
3753
+ ]
2517
3754
  },
2518
3755
  {
2519
- "type": "typography",
2520
- "content": "Progress",
2521
- "variant": "h2"
2522
- }
2523
- ]
2524
- },
2525
- {
2526
- "type": "button",
2527
- "label": "Refresh",
2528
- "event": "REFRESH",
2529
- "variant": "secondary",
2530
- "icon": "refresh-cw"
2531
- }
2532
- ]
2533
- },
2534
- {
2535
- "type": "divider"
2536
- },
2537
- {
2538
- "type": "simple-grid",
2539
- "columns": 3,
2540
- "children": [
2541
- {
2542
- "type": "card",
2543
- "children": [
3756
+ "type": "divider"
3757
+ },
2544
3758
  {
2545
- "type": "stack",
2546
- "direction": "vertical",
2547
- "gap": "sm",
3759
+ "type": "grid",
3760
+ "columns": 2,
3761
+ "gap": "md",
2548
3762
  "children": [
2549
3763
  {
2550
- "type": "typography",
2551
- "variant": "caption",
2552
- "content": "CourseName"
3764
+ "type": "card",
3765
+ "children": [
3766
+ {
3767
+ "type": "typography",
3768
+ "variant": "caption",
3769
+ "content": "Chart View"
3770
+ }
3771
+ ]
2553
3772
  },
2554
3773
  {
2555
- "type": "typography",
2556
- "variant": "h3",
2557
- "content": "@entity.courseName"
3774
+ "type": "card",
3775
+ "children": [
3776
+ {
3777
+ "type": "typography",
3778
+ "variant": "caption",
3779
+ "content": "Graph View"
3780
+ }
3781
+ ]
2558
3782
  }
2559
3783
  ]
2560
- }
2561
- ]
2562
- },
2563
- {
2564
- "type": "card",
2565
- "children": [
3784
+ },
2566
3785
  {
2567
- "type": "stack",
2568
- "direction": "vertical",
2569
- "gap": "sm",
2570
- "children": [
3786
+ "type": "line-chart",
3787
+ "data": [
2571
3788
  {
2572
- "type": "typography",
2573
- "variant": "caption",
2574
- "content": "LessonsCompleted"
3789
+ "date": "Jan",
3790
+ "value": 12
2575
3791
  },
2576
3792
  {
2577
- "type": "typography",
2578
- "variant": "h3",
2579
- "content": "@entity.lessonsCompleted"
3793
+ "date": "Feb",
3794
+ "value": 19
3795
+ },
3796
+ {
3797
+ "date": "Mar",
3798
+ "value": 15
3799
+ },
3800
+ {
3801
+ "date": "Apr",
3802
+ "value": 25
3803
+ },
3804
+ {
3805
+ "date": "May",
3806
+ "value": 22
3807
+ },
3808
+ {
3809
+ "date": "Jun",
3810
+ "value": 30
2580
3811
  }
2581
- ]
2582
- }
2583
- ]
2584
- },
2585
- {
2586
- "type": "card",
2587
- "children": [
3812
+ ],
3813
+ "xKey": "date",
3814
+ "yKey": "value",
3815
+ "title": "Trend"
3816
+ },
2588
3817
  {
2589
- "type": "stack",
2590
- "direction": "vertical",
2591
- "gap": "sm",
2592
- "children": [
3818
+ "type": "chart-legend",
3819
+ "items": [
2593
3820
  {
2594
- "type": "typography",
2595
- "variant": "caption",
2596
- "content": "TotalLessons"
3821
+ "label": "Current",
3822
+ "color": "primary"
2597
3823
  },
2598
3824
  {
2599
- "type": "typography",
2600
- "variant": "h3",
2601
- "content": "@entity.totalLessons"
3825
+ "label": "Previous",
3826
+ "color": "muted"
2602
3827
  }
2603
3828
  ]
2604
- }
2605
- ]
2606
- },
2607
- {
2608
- "type": "card",
2609
- "children": [
3829
+ },
2610
3830
  {
2611
- "type": "stack",
2612
- "direction": "vertical",
2613
- "gap": "sm",
2614
- "children": [
3831
+ "type": "graph-view",
3832
+ "nodes": [
2615
3833
  {
2616
- "type": "typography",
2617
- "variant": "caption",
2618
- "content": "PercentComplete"
3834
+ "id": "a",
3835
+ "label": "Start",
3836
+ "x": 50,
3837
+ "y": 100
2619
3838
  },
2620
3839
  {
2621
- "type": "typography",
2622
- "variant": "h3",
2623
- "content": "@entity.percentComplete"
3840
+ "id": "b",
3841
+ "label": "Process",
3842
+ "x": 200,
3843
+ "y": 50
3844
+ },
3845
+ {
3846
+ "id": "c",
3847
+ "label": "End",
3848
+ "x": 350,
3849
+ "y": 100
2624
3850
  }
2625
- ]
2626
- }
2627
- ]
2628
- },
2629
- {
2630
- "type": "card",
2631
- "children": [
2632
- {
2633
- "type": "stack",
2634
- "direction": "vertical",
2635
- "gap": "sm",
2636
- "children": [
3851
+ ],
3852
+ "edges": [
2637
3853
  {
2638
- "type": "typography",
2639
- "variant": "caption",
2640
- "content": "LastActivity"
3854
+ "from": "a",
3855
+ "to": "b"
2641
3856
  },
2642
3857
  {
2643
- "type": "typography",
2644
- "variant": "h3",
2645
- "content": "@entity.lastActivity"
3858
+ "from": "b",
3859
+ "to": "c"
2646
3860
  }
2647
- ]
3861
+ ],
3862
+ "width": 400,
3863
+ "height": 200
2648
3864
  }
2649
3865
  ]
2650
3866
  }
@@ -2668,156 +3884,296 @@
2668
3884
  "render-ui",
2669
3885
  "main",
2670
3886
  {
2671
- "type": "stack",
2672
- "direction": "vertical",
2673
- "gap": "lg",
2674
- "children": [
3887
+ "type": "dashboard-layout",
3888
+ "appName": "LMS",
3889
+ "navItems": [
2675
3890
  {
2676
- "type": "stack",
2677
- "direction": "horizontal",
2678
- "gap": "md",
2679
- "justify": "space-between",
2680
- "children": [
2681
- {
2682
- "type": "stack",
2683
- "direction": "horizontal",
2684
- "gap": "md",
2685
- "children": [
2686
- {
2687
- "type": "icon",
2688
- "name": "trending-up",
2689
- "size": "lg"
2690
- },
2691
- {
2692
- "type": "typography",
2693
- "content": "Progress",
2694
- "variant": "h2"
2695
- }
2696
- ]
2697
- },
2698
- {
2699
- "type": "button",
2700
- "label": "Refresh",
2701
- "event": "REFRESH",
2702
- "variant": "secondary",
2703
- "icon": "refresh-cw"
2704
- }
2705
- ]
3891
+ "label": "Courses",
3892
+ "href": "/courses",
3893
+ "icon": "book-open"
2706
3894
  },
2707
3895
  {
2708
- "type": "divider"
3896
+ "label": "Enroll",
3897
+ "href": "/enroll",
3898
+ "icon": "layout-list"
2709
3899
  },
2710
3900
  {
2711
- "type": "simple-grid",
2712
- "columns": 3,
3901
+ "label": "Progress",
3902
+ "href": "/progress",
3903
+ "icon": "layout-list"
3904
+ }
3905
+ ],
3906
+ "children": [
3907
+ {
3908
+ "type": "scaled-diagram",
2713
3909
  "children": [
2714
3910
  {
2715
- "type": "card",
3911
+ "type": "stack",
3912
+ "direction": "vertical",
3913
+ "gap": "lg",
2716
3914
  "children": [
2717
3915
  {
2718
- "type": "stack",
2719
- "direction": "vertical",
2720
- "gap": "sm",
2721
- "children": [
3916
+ "type": "breadcrumb",
3917
+ "items": [
2722
3918
  {
2723
- "type": "typography",
2724
- "variant": "caption",
2725
- "content": "CourseName"
3919
+ "label": "Home",
3920
+ "href": "/"
2726
3921
  },
2727
3922
  {
2728
- "type": "typography",
2729
- "variant": "h3",
2730
- "content": "@entity.courseName"
3923
+ "label": "Progress"
2731
3924
  }
2732
3925
  ]
2733
- }
2734
- ]
2735
- },
2736
- {
2737
- "type": "card",
2738
- "children": [
3926
+ },
2739
3927
  {
2740
3928
  "type": "stack",
2741
- "direction": "vertical",
2742
- "gap": "sm",
3929
+ "direction": "horizontal",
3930
+ "gap": "md",
3931
+ "justify": "space-between",
2743
3932
  "children": [
2744
3933
  {
2745
- "type": "typography",
2746
- "variant": "caption",
2747
- "content": "LessonsCompleted"
3934
+ "type": "stack",
3935
+ "direction": "horizontal",
3936
+ "gap": "md",
3937
+ "children": [
3938
+ {
3939
+ "type": "icon",
3940
+ "name": "trending-up",
3941
+ "size": "lg"
3942
+ },
3943
+ {
3944
+ "type": "typography",
3945
+ "content": "Progress",
3946
+ "variant": "h2"
3947
+ }
3948
+ ]
2748
3949
  },
2749
3950
  {
2750
- "type": "typography",
2751
- "variant": "h3",
2752
- "content": "@entity.lessonsCompleted"
3951
+ "type": "button",
3952
+ "label": "Refresh",
3953
+ "event": "REFRESH",
3954
+ "variant": "secondary",
3955
+ "icon": "refresh-cw"
2753
3956
  }
2754
3957
  ]
2755
- }
2756
- ]
2757
- },
2758
- {
2759
- "type": "card",
2760
- "children": [
3958
+ },
2761
3959
  {
2762
- "type": "stack",
2763
- "direction": "vertical",
2764
- "gap": "sm",
3960
+ "type": "divider"
3961
+ },
3962
+ {
3963
+ "type": "box",
3964
+ "padding": "md",
2765
3965
  "children": [
2766
3966
  {
2767
- "type": "typography",
2768
- "variant": "caption",
2769
- "content": "TotalLessons"
2770
- },
2771
- {
2772
- "type": "typography",
2773
- "variant": "h3",
2774
- "content": "@entity.totalLessons"
3967
+ "type": "simple-grid",
3968
+ "columns": 3,
3969
+ "children": [
3970
+ {
3971
+ "type": "card",
3972
+ "children": [
3973
+ {
3974
+ "type": "stack",
3975
+ "direction": "vertical",
3976
+ "gap": "sm",
3977
+ "children": [
3978
+ {
3979
+ "type": "typography",
3980
+ "variant": "caption",
3981
+ "content": "CourseName"
3982
+ },
3983
+ {
3984
+ "type": "typography",
3985
+ "variant": "h3",
3986
+ "content": [
3987
+ "object/get",
3988
+ [
3989
+ "array/first",
3990
+ "@entity"
3991
+ ],
3992
+ "courseName"
3993
+ ]
3994
+ }
3995
+ ]
3996
+ }
3997
+ ]
3998
+ },
3999
+ {
4000
+ "type": "stat-display",
4001
+ "label": "LessonsCompleted",
4002
+ "value": [
4003
+ "object/get",
4004
+ [
4005
+ "array/first",
4006
+ "@entity"
4007
+ ],
4008
+ "lessonsCompleted"
4009
+ ]
4010
+ },
4011
+ {
4012
+ "type": "stat-display",
4013
+ "label": "TotalLessons",
4014
+ "value": [
4015
+ "object/get",
4016
+ [
4017
+ "array/first",
4018
+ "@entity"
4019
+ ],
4020
+ "totalLessons"
4021
+ ]
4022
+ },
4023
+ {
4024
+ "type": "stat-display",
4025
+ "label": "PercentComplete",
4026
+ "value": [
4027
+ "object/get",
4028
+ [
4029
+ "array/first",
4030
+ "@entity"
4031
+ ],
4032
+ "percentComplete"
4033
+ ]
4034
+ },
4035
+ {
4036
+ "type": "card",
4037
+ "children": [
4038
+ {
4039
+ "type": "stack",
4040
+ "direction": "vertical",
4041
+ "gap": "sm",
4042
+ "children": [
4043
+ {
4044
+ "type": "typography",
4045
+ "variant": "caption",
4046
+ "content": "LastActivity"
4047
+ },
4048
+ {
4049
+ "type": "typography",
4050
+ "variant": "h3",
4051
+ "content": [
4052
+ "object/get",
4053
+ [
4054
+ "array/first",
4055
+ "@entity"
4056
+ ],
4057
+ "lastActivity"
4058
+ ]
4059
+ }
4060
+ ]
4061
+ }
4062
+ ]
4063
+ }
4064
+ ]
2775
4065
  }
2776
4066
  ]
2777
- }
2778
- ]
2779
- },
2780
- {
2781
- "type": "card",
2782
- "children": [
4067
+ },
2783
4068
  {
2784
- "type": "stack",
2785
- "direction": "vertical",
2786
- "gap": "sm",
4069
+ "type": "divider"
4070
+ },
4071
+ {
4072
+ "type": "grid",
4073
+ "columns": 2,
4074
+ "gap": "md",
2787
4075
  "children": [
2788
4076
  {
2789
- "type": "typography",
2790
- "variant": "caption",
2791
- "content": "PercentComplete"
4077
+ "type": "card",
4078
+ "children": [
4079
+ {
4080
+ "type": "typography",
4081
+ "variant": "caption",
4082
+ "content": "Chart View"
4083
+ }
4084
+ ]
2792
4085
  },
2793
4086
  {
2794
- "type": "typography",
2795
- "variant": "h3",
2796
- "content": "@entity.percentComplete"
4087
+ "type": "card",
4088
+ "children": [
4089
+ {
4090
+ "type": "typography",
4091
+ "variant": "caption",
4092
+ "content": "Graph View"
4093
+ }
4094
+ ]
2797
4095
  }
2798
4096
  ]
2799
- }
2800
- ]
2801
- },
2802
- {
2803
- "type": "card",
2804
- "children": [
4097
+ },
2805
4098
  {
2806
- "type": "stack",
2807
- "direction": "vertical",
2808
- "gap": "sm",
2809
- "children": [
4099
+ "type": "line-chart",
4100
+ "data": [
2810
4101
  {
2811
- "type": "typography",
2812
- "variant": "caption",
2813
- "content": "LastActivity"
4102
+ "date": "Jan",
4103
+ "value": 12
2814
4104
  },
2815
4105
  {
2816
- "type": "typography",
2817
- "variant": "h3",
2818
- "content": "@entity.lastActivity"
4106
+ "date": "Feb",
4107
+ "value": 19
4108
+ },
4109
+ {
4110
+ "date": "Mar",
4111
+ "value": 15
4112
+ },
4113
+ {
4114
+ "date": "Apr",
4115
+ "value": 25
4116
+ },
4117
+ {
4118
+ "date": "May",
4119
+ "value": 22
4120
+ },
4121
+ {
4122
+ "date": "Jun",
4123
+ "value": 30
4124
+ }
4125
+ ],
4126
+ "xKey": "date",
4127
+ "yKey": "value",
4128
+ "title": "Trend"
4129
+ },
4130
+ {
4131
+ "type": "chart-legend",
4132
+ "items": [
4133
+ {
4134
+ "label": "Current",
4135
+ "color": "primary"
4136
+ },
4137
+ {
4138
+ "label": "Previous",
4139
+ "color": "muted"
2819
4140
  }
2820
4141
  ]
4142
+ },
4143
+ {
4144
+ "type": "graph-view",
4145
+ "nodes": [
4146
+ {
4147
+ "id": "a",
4148
+ "label": "Start",
4149
+ "x": 50,
4150
+ "y": 100
4151
+ },
4152
+ {
4153
+ "id": "b",
4154
+ "label": "Process",
4155
+ "x": 200,
4156
+ "y": 50
4157
+ },
4158
+ {
4159
+ "id": "c",
4160
+ "label": "End",
4161
+ "x": 350,
4162
+ "y": 100
4163
+ }
4164
+ ],
4165
+ "edges": [
4166
+ {
4167
+ "from": "a",
4168
+ "to": "b"
4169
+ },
4170
+ {
4171
+ "from": "b",
4172
+ "to": "c"
4173
+ }
4174
+ ],
4175
+ "width": 400,
4176
+ "height": 200
2821
4177
  }
2822
4178
  ]
2823
4179
  }