@almadar/std 14.26.0 → 14.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  2. package/behaviors/registry/app/atoms/std-approval-chain.orb +106 -0
  3. package/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  4. package/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  5. package/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  6. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  7. package/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  8. package/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  9. package/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  10. package/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  11. package/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  12. package/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  13. package/behaviors/registry/app/atoms/std-donor.orb +445 -135
  14. package/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  15. package/behaviors/registry/app/atoms/std-driver.orb +465 -480
  16. package/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  17. package/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  18. package/behaviors/registry/app/atoms/std-event.orb +465 -667
  19. package/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  20. package/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  21. package/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  22. package/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  23. package/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  24. package/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  25. package/behaviors/registry/app/atoms/std-lease.orb +506 -190
  26. package/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  27. package/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  28. package/behaviors/registry/app/atoms/std-matter.orb +486 -318
  29. package/behaviors/registry/app/atoms/std-membership.orb +512 -102
  30. package/behaviors/registry/app/atoms/std-menu.orb +775 -183
  31. package/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  32. package/behaviors/registry/app/atoms/std-multi-party-transaction.orb +130 -0
  33. package/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  34. package/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  35. package/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  36. package/behaviors/registry/app/atoms/std-pipeline.orb +139 -0
  37. package/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  38. package/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  39. package/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  40. package/behaviors/registry/app/atoms/std-recurring-schedule.orb +94 -0
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  45. package/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  47. package/behaviors/registry/app/atoms/std-segment.orb +360 -98
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  49. package/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  50. package/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  54. package/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  57. package/behaviors/registry/app/atoms/std-timeline.orb +108 -0
  58. package/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  59. package/behaviors/registry/app/atoms/std-trial.orb +410 -317
  60. package/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  63. package/behaviors/registry/app/atoms/std-wizard-branching.orb +129 -0
  64. package/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  65. package/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  66. package/behaviors/registry/app/molecules/std-application.orb +178 -263
  67. package/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  68. package/behaviors/registry/app/molecules/std-cart.orb +78 -72
  69. package/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  70. package/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  71. package/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  72. package/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  73. package/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  74. package/behaviors/registry/core/atoms/std-board.orb +1367 -0
  75. package/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  76. package/behaviors/registry/core/atoms/std-event-log.orb +777 -0
  77. package/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  78. package/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  79. package/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  80. package/behaviors/registry/core/atoms/std-multi-party-flow.orb +1313 -0
  81. package/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  82. package/behaviors/registry/core/atoms/std-recurrence.orb +937 -0
  83. package/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  84. package/behaviors/registry/core/atoms/std-step-flow.orb +1155 -0
  85. package/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  86. package/behaviors/registry/core/atoms/std-wizard.orb +1085 -0
  87. package/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  88. package/dist/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  89. package/dist/behaviors/registry/app/atoms/std-approval-chain.orb +106 -0
  90. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  91. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  92. package/dist/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  93. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  94. package/dist/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  95. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  96. package/dist/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  97. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  98. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  99. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  100. package/dist/behaviors/registry/app/atoms/std-donor.orb +445 -135
  101. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  102. package/dist/behaviors/registry/app/atoms/std-driver.orb +465 -480
  103. package/dist/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  104. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  105. package/dist/behaviors/registry/app/atoms/std-event.orb +465 -667
  106. package/dist/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  107. package/dist/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  108. package/dist/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  109. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  110. package/dist/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  111. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  112. package/dist/behaviors/registry/app/atoms/std-lease.orb +506 -190
  113. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  114. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  115. package/dist/behaviors/registry/app/atoms/std-matter.orb +486 -318
  116. package/dist/behaviors/registry/app/atoms/std-membership.orb +512 -102
  117. package/dist/behaviors/registry/app/atoms/std-menu.orb +775 -183
  118. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  119. package/dist/behaviors/registry/app/atoms/std-multi-party-transaction.orb +130 -0
  120. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  121. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  122. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  123. package/dist/behaviors/registry/app/atoms/std-pipeline.orb +139 -0
  124. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  125. package/dist/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  126. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  127. package/dist/behaviors/registry/app/atoms/std-recurring-schedule.orb +94 -0
  128. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  129. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  130. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  131. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  132. package/dist/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  133. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  134. package/dist/behaviors/registry/app/atoms/std-segment.orb +360 -98
  135. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  136. package/dist/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  137. package/dist/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  138. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  139. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  140. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  141. package/dist/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  142. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  143. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  144. package/dist/behaviors/registry/app/atoms/std-timeline.orb +108 -0
  145. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  146. package/dist/behaviors/registry/app/atoms/std-trial.orb +410 -317
  147. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  148. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  149. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  150. package/dist/behaviors/registry/app/atoms/std-wizard-branching.orb +129 -0
  151. package/dist/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  152. package/dist/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  153. package/dist/behaviors/registry/app/molecules/std-application.orb +178 -263
  154. package/dist/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  155. package/dist/behaviors/registry/app/molecules/std-cart.orb +78 -72
  156. package/dist/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  157. package/dist/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  158. package/dist/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  159. package/dist/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  160. package/dist/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  161. package/dist/behaviors/registry/core/atoms/std-board.orb +1367 -0
  162. package/dist/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  163. package/dist/behaviors/registry/core/atoms/std-event-log.orb +777 -0
  164. package/dist/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  165. package/dist/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  166. package/dist/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  167. package/dist/behaviors/registry/core/atoms/std-multi-party-flow.orb +1313 -0
  168. package/dist/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  169. package/dist/behaviors/registry/core/atoms/std-recurrence.orb +937 -0
  170. package/dist/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  171. package/dist/behaviors/registry/core/atoms/std-step-flow.orb +1155 -0
  172. package/dist/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  173. package/dist/behaviors/registry/core/atoms/std-wizard.orb +1085 -0
  174. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  175. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-time-entry",
3
3
  "version": "1.0.0",
4
- "description": "std-time-entry — Time tracking line within a timesheet: project/task, hours, date, billable flag, and rate.",
4
+ "description": "std-time-entry — time tracking line within a timesheet: project/task, hours, date, billable flag, rate. Lists entries in `browsing`; opens entry detail in `viewing_single` with Delete action.",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "TimeEntryOrbital",
@@ -85,7 +85,7 @@
85
85
  "linkedEntity": "TimeEntry",
86
86
  "emits": [
87
87
  {
88
- "event": "VIEW",
88
+ "event": "OPEN_ENTRY",
89
89
  "payloadSchema": [
90
90
  {
91
91
  "name": "id",
@@ -93,34 +93,62 @@
93
93
  "required": true
94
94
  },
95
95
  {
96
- "name": "source",
96
+ "name": "row.id",
97
+ "type": "string",
98
+ "required": true
99
+ },
100
+ {
101
+ "name": "row.timesheetId",
102
+ "type": "string",
103
+ "required": true
104
+ },
105
+ {
106
+ "name": "row.projectId",
97
107
  "type": "string"
98
- }
99
- ]
100
- },
101
- {
102
- "event": "EDIT",
103
- "payloadSchema": [
108
+ },
104
109
  {
105
- "name": "id",
110
+ "name": "row.projectName",
111
+ "type": "string"
112
+ },
113
+ {
114
+ "name": "row.taskDescription",
115
+ "type": "string",
116
+ "required": true
117
+ },
118
+ {
119
+ "name": "row.workDate",
106
120
  "type": "string",
107
121
  "required": true
108
122
  },
109
123
  {
110
- "name": "source",
124
+ "name": "row.hours",
125
+ "type": "number"
126
+ },
127
+ {
128
+ "name": "row.billable",
129
+ "type": "boolean"
130
+ },
131
+ {
132
+ "name": "row.hourlyRate",
133
+ "type": "number"
134
+ },
135
+ {
136
+ "name": "row.status",
111
137
  "type": "string"
112
- }
113
- ]
114
- },
115
- {
116
- "event": "CREATE",
117
- "payloadSchema": [
138
+ },
139
+ {
140
+ "name": "row.notes",
141
+ "type": "string"
142
+ },
118
143
  {
119
- "name": "source",
144
+ "name": "row.pendingId",
120
145
  "type": "string"
121
146
  }
122
147
  ]
123
148
  },
149
+ {
150
+ "event": "CLOSE_VIEW"
151
+ },
124
152
  {
125
153
  "event": "REQUEST_DELETE",
126
154
  "payloadSchema": [
@@ -128,10 +156,6 @@
128
156
  "name": "id",
129
157
  "type": "string",
130
158
  "required": true
131
- },
132
- {
133
- "name": "source",
134
- "type": "string"
135
159
  }
136
160
  ]
137
161
  },
@@ -169,7 +193,10 @@
169
193
  "isInitial": true
170
194
  },
171
195
  {
172
- "name": "viewing"
196
+ "name": "browsing"
197
+ },
198
+ {
199
+ "name": "viewing_single"
173
200
  },
174
201
  {
175
202
  "name": "error"
@@ -209,74 +236,17 @@
209
236
  ]
210
237
  },
211
238
  {
212
- "key": "REFRESH",
213
- "name": "Refresh",
214
- "payloadSchema": [
215
- {
216
- "name": "source",
217
- "type": "string"
218
- }
219
- ]
220
- },
221
- {
222
- "key": "SEARCH",
223
- "name": "Search",
224
- "payloadSchema": [
225
- {
226
- "name": "query",
227
- "type": "string"
228
- }
229
- ]
230
- },
231
- {
232
- "key": "FILTER_BILLABLE",
233
- "name": "Filter Billable",
234
- "payloadSchema": [
235
- {
236
- "name": "billable",
237
- "type": "boolean"
238
- }
239
- ]
240
- },
241
- {
242
- "key": "FILTER_STATUS",
243
- "name": "Filter Status",
244
- "payloadSchema": [
245
- {
246
- "name": "status",
247
- "type": "string"
248
- }
249
- ]
250
- },
251
- {
252
- "key": "CREATE",
253
- "name": "Create",
254
- "payloadSchema": [
255
- {
256
- "name": "source",
257
- "type": "string"
258
- }
259
- ]
260
- },
261
- {
262
- "key": "VIEW",
263
- "name": "View",
239
+ "key": "OPEN_ENTRY",
240
+ "name": "Open Entry",
264
241
  "payloadSchema": [
265
242
  {
266
243
  "name": "id",
267
244
  "type": "string",
268
245
  "required": true
269
- }
270
- ]
271
- },
272
- {
273
- "key": "EDIT",
274
- "name": "Edit",
275
- "payloadSchema": [
246
+ },
276
247
  {
277
- "name": "id",
278
- "type": "string",
279
- "required": true
248
+ "name": "row",
249
+ "type": "TimeEntry"
280
250
  }
281
251
  ]
282
252
  },
@@ -290,6 +260,10 @@
290
260
  "required": true
291
261
  }
292
262
  ]
263
+ },
264
+ {
265
+ "key": "CLOSE_VIEW",
266
+ "name": "Close View"
293
267
  }
294
268
  ],
295
269
  "transitions": [
@@ -303,8 +277,8 @@
303
277
  "TimeEntry",
304
278
  {
305
279
  "emit": {
306
- "success": "TimeEntryLoaded",
307
- "failure": "TimeEntryLoadFailed"
280
+ "failure": "TimeEntryLoadFailed",
281
+ "success": "TimeEntryLoaded"
308
282
  }
309
283
  }
310
284
  ],
@@ -312,126 +286,115 @@
312
286
  "render-ui",
313
287
  "main",
314
288
  {
289
+ "gap": "md",
290
+ "type": "stack",
291
+ "direction": "vertical",
315
292
  "align": "center",
293
+ "className": "py-12",
316
294
  "children": [
317
295
  {
318
296
  "type": "spinner"
319
297
  },
320
298
  {
321
- "variant": "caption",
322
- "type": "typography",
323
299
  "content": "Loading time entries…",
300
+ "type": "typography",
301
+ "variant": "caption",
324
302
  "color": "muted"
325
303
  }
326
- ],
327
- "direction": "vertical",
328
- "gap": "md",
329
- "type": "stack",
330
- "className": "py-12"
304
+ ]
331
305
  }
332
306
  ]
333
307
  ]
334
308
  },
335
309
  {
336
310
  "from": "loading",
337
- "to": "viewing",
311
+ "to": "browsing",
338
312
  "event": "TimeEntryLoaded",
339
313
  "effects": [
340
314
  [
341
315
  "render-ui",
342
316
  "main",
343
317
  {
318
+ "type": "stack",
319
+ "gap": "md",
344
320
  "children": [
345
321
  {
346
- "align": "center",
347
- "type": "stack",
348
- "direction": "horizontal",
349
322
  "gap": "sm",
323
+ "type": "stack",
350
324
  "children": [
351
325
  {
352
- "name": "clock",
353
- "type": "icon"
326
+ "type": "icon",
327
+ "name": "clock"
354
328
  },
355
329
  {
356
- "variant": "h3",
330
+ "type": "typography",
357
331
  "content": "@config.title",
358
- "type": "typography"
359
- },
360
- {
361
- "variant": "primary",
362
- "type": "button",
363
- "label": "Log Time",
364
- "action": "CREATE"
332
+ "variant": "h3"
365
333
  }
366
- ]
334
+ ],
335
+ "direction": "horizontal",
336
+ "align": "center"
367
337
  },
368
338
  {
369
- "tabs": [
339
+ "children": [
370
340
  {
371
- "id": "active",
372
- "label": "Active"
341
+ "value": "@payload.data.length",
342
+ "type": "stat-display",
343
+ "label": "Total entries",
344
+ "icon": "list"
373
345
  },
374
346
  {
375
- "label": "Logged",
376
- "id": "logged"
347
+ "value": "32",
348
+ "icon": "clock",
349
+ "type": "stat-display",
350
+ "label": "Hours this week"
377
351
  },
378
352
  {
379
- "label": "Approved",
380
- "id": "approved"
381
- }
382
- ],
383
- "defaultActiveTab": "active",
384
- "type": "tabs",
385
- "variant": "underline"
386
- },
387
- {
388
- "gap": "md",
389
- "type": "stack",
390
- "direction": "horizontal",
391
- "children": [
392
- {
393
- "type": "timer-display",
394
- "seconds": 1845.0,
395
- "running": true,
396
- "format": "mm:ss",
397
- "size": "lg"
353
+ "type": "stat-display",
354
+ "label": "Billable %",
355
+ "value": "78%",
356
+ "icon": "dollar-sign"
398
357
  },
399
358
  {
400
- "thresholds": [
401
- {
402
- "color": "warning",
403
- "value": 20.0
404
- },
405
- {
406
- "value": 35.0,
407
- "color": "success"
408
- }
409
- ],
410
- "variant": "linear",
411
- "label": "Weekly Utilization",
412
- "min": 0.0,
413
- "type": "meter",
414
- "max": 40.0,
415
- "unit": "h",
416
- "value": 32.0
359
+ "label": "Avg per day",
360
+ "icon": "trending-up",
361
+ "type": "stat-display",
362
+ "value": "6.4h"
417
363
  }
418
364
  ],
419
- "align": "center"
365
+ "cols": 4.0,
366
+ "type": "simple-grid"
420
367
  },
421
368
  {
422
369
  "type": "divider"
423
370
  },
424
371
  {
372
+ "cols": 1.0,
373
+ "itemActions": [
374
+ {
375
+ "icon": "arrow-right",
376
+ "variant": "primary",
377
+ "label": "Open",
378
+ "event": "OPEN_ENTRY"
379
+ },
380
+ {
381
+ "label": "Delete",
382
+ "event": "REQUEST_DELETE",
383
+ "variant": "danger"
384
+ }
385
+ ],
386
+ "type": "data-grid",
387
+ "entity": "@payload.data",
425
388
  "fields": [
426
389
  {
427
- "variant": "caption",
428
390
  "name": "projectName",
429
- "label": "Project"
391
+ "label": "Project",
392
+ "variant": "caption"
430
393
  },
431
394
  {
432
- "label": "Task",
433
395
  "variant": "caption",
434
- "name": "taskDescription"
396
+ "name": "taskDescription",
397
+ "label": "Task"
435
398
  },
436
399
  {
437
400
  "label": "Date",
@@ -439,19 +402,19 @@
439
402
  "name": "workDate"
440
403
  },
441
404
  {
405
+ "name": "hours",
442
406
  "label": "Hours",
443
- "variant": "caption",
444
- "name": "hours"
407
+ "variant": "caption"
445
408
  },
446
409
  {
447
- "variant": "badge",
448
410
  "name": "billable",
411
+ "variant": "badge",
449
412
  "label": "Billable"
450
413
  },
451
414
  {
452
415
  "name": "hourlyRate",
453
- "variant": "caption",
454
- "label": "Rate"
416
+ "label": "Rate",
417
+ "variant": "caption"
455
418
  },
456
419
  {
457
420
  "label": "Status",
@@ -459,32 +422,10 @@
459
422
  "variant": "badge"
460
423
  }
461
424
  ],
462
- "type": "data-grid",
463
- "cols": 1.0,
464
- "gap": "sm",
465
- "itemActions": [
466
- {
467
- "event": "VIEW",
468
- "variant": "secondary",
469
- "label": "View"
470
- },
471
- {
472
- "label": "Edit",
473
- "event": "EDIT",
474
- "variant": "secondary"
475
- },
476
- {
477
- "event": "REQUEST_DELETE",
478
- "variant": "danger",
479
- "label": "Delete"
480
- }
481
- ],
482
- "entity": "@payload.data"
425
+ "gap": "sm"
483
426
  }
484
427
  ],
485
- "type": "stack",
486
- "direction": "vertical",
487
- "gap": "md"
428
+ "direction": "vertical"
488
429
  }
489
430
  ]
490
431
  ]
@@ -498,57 +439,227 @@
498
439
  "render-ui",
499
440
  "main",
500
441
  {
501
- "variant": "error",
442
+ "type": "alert",
502
443
  "message": "@payload.error",
503
- "type": "alert"
444
+ "variant": "error"
504
445
  }
505
446
  ]
506
447
  ]
507
448
  },
508
449
  {
509
- "from": "viewing",
510
- "to": "loading",
511
- "event": "REFRESH",
450
+ "from": "browsing",
451
+ "to": "viewing_single",
452
+ "event": "OPEN_ENTRY",
512
453
  "effects": [
513
454
  [
514
- "fetch",
515
- "TimeEntry",
516
- {
517
- "emit": {
518
- "success": "TimeEntryLoaded",
519
- "failure": "TimeEntryLoadFailed"
520
- }
521
- }
455
+ "set",
456
+ "@entity.id",
457
+ "@payload.row.id"
458
+ ],
459
+ [
460
+ "set",
461
+ "@entity.timesheetId",
462
+ "@payload.row.timesheetId"
463
+ ],
464
+ [
465
+ "set",
466
+ "@entity.projectId",
467
+ "@payload.row.projectId"
468
+ ],
469
+ [
470
+ "set",
471
+ "@entity.projectName",
472
+ "@payload.row.projectName"
473
+ ],
474
+ [
475
+ "set",
476
+ "@entity.taskDescription",
477
+ "@payload.row.taskDescription"
478
+ ],
479
+ [
480
+ "set",
481
+ "@entity.workDate",
482
+ "@payload.row.workDate"
483
+ ],
484
+ [
485
+ "set",
486
+ "@entity.hours",
487
+ "@payload.row.hours"
488
+ ],
489
+ [
490
+ "set",
491
+ "@entity.hourlyRate",
492
+ "@payload.row.hourlyRate"
493
+ ],
494
+ [
495
+ "set",
496
+ "@entity.status",
497
+ "@payload.row.status"
498
+ ],
499
+ [
500
+ "set",
501
+ "@entity.notes",
502
+ "@payload.row.notes"
522
503
  ],
523
504
  [
524
505
  "render-ui",
525
506
  "main",
526
507
  {
527
- "align": "center",
508
+ "direction": "vertical",
509
+ "type": "stack",
510
+ "gap": "md",
528
511
  "children": [
529
512
  {
530
- "type": "spinner"
513
+ "direction": "horizontal",
514
+ "gap": "sm",
515
+ "align": "center",
516
+ "type": "stack",
517
+ "children": [
518
+ {
519
+ "action": "CLOSE_VIEW",
520
+ "variant": "ghost",
521
+ "type": "button",
522
+ "label": "Back"
523
+ },
524
+ {
525
+ "type": "icon",
526
+ "name": "clock"
527
+ },
528
+ {
529
+ "type": "typography",
530
+ "variant": "h3",
531
+ "content": "@entity.projectName"
532
+ },
533
+ {
534
+ "label": "@entity.status",
535
+ "variant": "default",
536
+ "type": "badge"
537
+ }
538
+ ]
531
539
  },
532
540
  {
533
- "color": "muted",
534
- "variant": "caption",
535
- "content": "Refreshing time entries…",
536
- "type": "typography"
541
+ "type": "divider"
542
+ },
543
+ {
544
+ "direction": "vertical",
545
+ "children": [
546
+ {
547
+ "gap": "md",
548
+ "direction": "horizontal",
549
+ "type": "stack",
550
+ "children": [
551
+ {
552
+ "color": "muted",
553
+ "type": "typography",
554
+ "content": "Task",
555
+ "variant": "caption"
556
+ },
557
+ {
558
+ "content": "@entity.taskDescription",
559
+ "type": "typography",
560
+ "variant": "body"
561
+ }
562
+ ]
563
+ },
564
+ {
565
+ "type": "stack",
566
+ "direction": "horizontal",
567
+ "gap": "md",
568
+ "children": [
569
+ {
570
+ "variant": "caption",
571
+ "type": "typography",
572
+ "color": "muted",
573
+ "content": "Timesheet"
574
+ },
575
+ {
576
+ "type": "typography",
577
+ "variant": "body",
578
+ "content": "@entity.timesheetId"
579
+ }
580
+ ]
581
+ },
582
+ {
583
+ "gap": "md",
584
+ "type": "stack",
585
+ "children": [
586
+ {
587
+ "content": "Notes",
588
+ "type": "typography",
589
+ "color": "muted",
590
+ "variant": "caption"
591
+ },
592
+ {
593
+ "variant": "body",
594
+ "content": "@entity.notes",
595
+ "type": "typography"
596
+ }
597
+ ],
598
+ "direction": "horizontal"
599
+ }
600
+ ],
601
+ "gap": "sm",
602
+ "type": "stack"
603
+ },
604
+ {
605
+ "type": "divider"
606
+ },
607
+ {
608
+ "cols": 3.0,
609
+ "children": [
610
+ {
611
+ "value": "@entity.hours",
612
+ "type": "stat-display",
613
+ "icon": "clock",
614
+ "label": "Hours"
615
+ },
616
+ {
617
+ "type": "stat-display",
618
+ "value": "@entity.hourlyRate",
619
+ "label": "Rate",
620
+ "icon": "dollar-sign"
621
+ },
622
+ {
623
+ "type": "stat-display",
624
+ "label": "Date",
625
+ "value": "@entity.workDate",
626
+ "icon": "calendar"
627
+ }
628
+ ],
629
+ "type": "simple-grid"
630
+ },
631
+ {
632
+ "type": "stack",
633
+ "children": [
634
+ {
635
+ "label": "Delete",
636
+ "action": "REQUEST_DELETE",
637
+ "actionPayload": {
638
+ "id": "@entity.id"
639
+ },
640
+ "type": "button",
641
+ "variant": "danger"
642
+ }
643
+ ],
644
+ "direction": "horizontal",
645
+ "gap": "sm",
646
+ "align": "center"
537
647
  }
538
- ],
539
- "direction": "vertical",
540
- "className": "py-12",
541
- "type": "stack",
542
- "gap": "md"
648
+ ]
543
649
  }
544
650
  ]
545
651
  ]
546
652
  },
547
653
  {
548
- "from": "viewing",
654
+ "from": "browsing",
549
655
  "to": "loading",
550
- "event": "SEARCH",
656
+ "event": "REQUEST_DELETE",
551
657
  "effects": [
658
+ [
659
+ "set",
660
+ "@entity.id",
661
+ "@payload.id"
662
+ ],
552
663
  [
553
664
  "fetch",
554
665
  "TimeEntry",
@@ -563,30 +674,30 @@
563
674
  "render-ui",
564
675
  "main",
565
676
  {
566
- "direction": "vertical",
567
- "gap": "md",
568
- "className": "py-12",
569
677
  "children": [
570
678
  {
571
679
  "type": "spinner"
572
680
  },
573
681
  {
574
682
  "color": "muted",
683
+ "content": "Deleting time entry…",
575
684
  "variant": "caption",
576
- "content": "Searching time entries…",
577
685
  "type": "typography"
578
686
  }
579
687
  ],
580
- "type": "stack",
581
- "align": "center"
688
+ "align": "center",
689
+ "className": "py-12",
690
+ "direction": "vertical",
691
+ "gap": "md",
692
+ "type": "stack"
582
693
  }
583
694
  ]
584
695
  ]
585
696
  },
586
697
  {
587
- "from": "viewing",
698
+ "from": "viewing_single",
588
699
  "to": "loading",
589
- "event": "FILTER_BILLABLE",
700
+ "event": "CLOSE_VIEW",
590
701
  "effects": [
591
702
  [
592
703
  "fetch",
@@ -602,38 +713,43 @@
602
713
  "render-ui",
603
714
  "main",
604
715
  {
605
- "gap": "md",
606
716
  "direction": "vertical",
607
- "align": "center",
608
- "type": "stack",
609
717
  "children": [
610
718
  {
611
719
  "type": "spinner"
612
720
  },
613
721
  {
722
+ "variant": "caption",
723
+ "content": "Loading time entries…",
614
724
  "color": "muted",
615
- "content": "Filtering time entries…",
616
- "type": "typography",
617
- "variant": "caption"
725
+ "type": "typography"
618
726
  }
619
727
  ],
728
+ "type": "stack",
729
+ "align": "center",
730
+ "gap": "md",
620
731
  "className": "py-12"
621
732
  }
622
733
  ]
623
734
  ]
624
735
  },
625
736
  {
626
- "from": "viewing",
737
+ "from": "viewing_single",
627
738
  "to": "loading",
628
- "event": "FILTER_STATUS",
739
+ "event": "REQUEST_DELETE",
629
740
  "effects": [
741
+ [
742
+ "set",
743
+ "@entity.id",
744
+ "@payload.id"
745
+ ],
630
746
  [
631
747
  "fetch",
632
748
  "TimeEntry",
633
749
  {
634
750
  "emit": {
635
- "success": "TimeEntryLoaded",
636
- "failure": "TimeEntryLoadFailed"
751
+ "failure": "TimeEntryLoadFailed",
752
+ "success": "TimeEntryLoaded"
637
753
  }
638
754
  }
639
755
  ],
@@ -641,101 +757,22 @@
641
757
  "render-ui",
642
758
  "main",
643
759
  {
644
- "direction": "vertical",
645
- "gap": "md",
646
- "className": "py-12",
647
- "align": "center",
648
760
  "children": [
649
761
  {
650
762
  "type": "spinner"
651
763
  },
652
764
  {
653
- "content": "Filtering time entries…",
654
- "color": "muted",
765
+ "variant": "caption",
655
766
  "type": "typography",
656
- "variant": "caption"
767
+ "color": "muted",
768
+ "content": "Deleting time entry…"
657
769
  }
658
770
  ],
659
- "type": "stack"
660
- }
661
- ]
662
- ]
663
- },
664
- {
665
- "from": "viewing",
666
- "to": "viewing",
667
- "event": "CREATE",
668
- "effects": [
669
- [
670
- "render-ui",
671
- "main",
672
- {
673
- "variant": "info",
674
- "message": "Logging new time entry",
675
- "type": "alert"
676
- }
677
- ]
678
- ]
679
- },
680
- {
681
- "from": "viewing",
682
- "to": "viewing",
683
- "event": "VIEW",
684
- "effects": [
685
- [
686
- "set",
687
- "@entity.id",
688
- "@payload.id"
689
- ],
690
- [
691
- "render-ui",
692
- "main",
693
- {
694
- "type": "alert",
695
- "variant": "info",
696
- "message": "Viewing time entry"
697
- }
698
- ]
699
- ]
700
- },
701
- {
702
- "from": "viewing",
703
- "to": "viewing",
704
- "event": "EDIT",
705
- "effects": [
706
- [
707
- "set",
708
- "@entity.id",
709
- "@payload.id"
710
- ],
711
- [
712
- "render-ui",
713
- "main",
714
- {
715
- "message": "Editing time entry",
716
- "type": "alert",
717
- "variant": "info"
718
- }
719
- ]
720
- ]
721
- },
722
- {
723
- "from": "viewing",
724
- "to": "viewing",
725
- "event": "REQUEST_DELETE",
726
- "effects": [
727
- [
728
- "set",
729
- "@entity.id",
730
- "@payload.id"
731
- ],
732
- [
733
- "render-ui",
734
- "main",
735
- {
736
- "type": "alert",
737
- "variant": "warning",
738
- "message": "Delete requested"
771
+ "direction": "vertical",
772
+ "type": "stack",
773
+ "align": "center",
774
+ "className": "py-12",
775
+ "gap": "md"
739
776
  }
740
777
  ]
741
778
  ]
@@ -759,8 +796,8 @@
759
796
  "render-ui",
760
797
  "main",
761
798
  {
762
- "size": "sm",
763
- "type": "spinner"
799
+ "type": "spinner",
800
+ "size": "sm"
764
801
  }
765
802
  ]
766
803
  ]