@almadar/std 14.26.0 → 14.27.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 (151) hide show
  1. package/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  2. package/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  3. package/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  4. package/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  5. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  6. package/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  7. package/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  8. package/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  9. package/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  10. package/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  11. package/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  12. package/behaviors/registry/app/atoms/std-donor.orb +445 -135
  13. package/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  14. package/behaviors/registry/app/atoms/std-driver.orb +465 -480
  15. package/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  16. package/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  17. package/behaviors/registry/app/atoms/std-event.orb +465 -667
  18. package/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  19. package/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  20. package/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  21. package/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  22. package/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  23. package/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  24. package/behaviors/registry/app/atoms/std-lease.orb +506 -190
  25. package/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  26. package/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  27. package/behaviors/registry/app/atoms/std-matter.orb +486 -318
  28. package/behaviors/registry/app/atoms/std-membership.orb +512 -102
  29. package/behaviors/registry/app/atoms/std-menu.orb +775 -183
  30. package/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  31. package/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  32. package/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  33. package/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  34. package/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  35. package/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  36. package/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  37. package/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  38. package/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  39. package/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  40. package/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  41. package/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  42. package/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  43. package/behaviors/registry/app/atoms/std-segment.orb +360 -98
  44. package/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  45. package/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  46. package/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  47. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  48. package/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  49. package/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  50. package/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  51. package/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  52. package/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  53. package/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  54. package/behaviors/registry/app/atoms/std-trial.orb +410 -317
  55. package/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  56. package/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  57. package/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  58. package/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  59. package/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  60. package/behaviors/registry/app/molecules/std-application.orb +178 -263
  61. package/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  62. package/behaviors/registry/app/molecules/std-cart.orb +78 -72
  63. package/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  64. package/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  65. package/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  66. package/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  67. package/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  68. package/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  69. package/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  70. package/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  71. package/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  72. package/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  73. package/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  74. package/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  75. package/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  76. package/dist/behaviors/registry/app/atoms/std-applicant.orb +496 -42
  77. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +433 -593
  78. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +438 -228
  79. package/dist/behaviors/registry/app/atoms/std-change-order.orb +565 -307
  80. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +434 -97
  81. package/dist/behaviors/registry/app/atoms/std-checkin.orb +434 -270
  82. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +495 -61
  83. package/dist/behaviors/registry/app/atoms/std-class-session.orb +485 -104
  84. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +519 -88
  85. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +577 -97
  86. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +498 -55
  87. package/dist/behaviors/registry/app/atoms/std-donor.orb +445 -135
  88. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +445 -62
  89. package/dist/behaviors/registry/app/atoms/std-driver.orb +465 -480
  90. package/dist/behaviors/registry/app/atoms/std-dunning.orb +450 -512
  91. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +517 -64
  92. package/dist/behaviors/registry/app/atoms/std-event.orb +465 -667
  93. package/dist/behaviors/registry/app/atoms/std-health-score.orb +368 -371
  94. package/dist/behaviors/registry/app/atoms/std-help-article.orb +373 -506
  95. package/dist/behaviors/registry/app/atoms/std-help-category.orb +344 -359
  96. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +490 -48
  97. package/dist/behaviors/registry/app/atoms/std-invoice.orb +494 -291
  98. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +588 -96
  99. package/dist/behaviors/registry/app/atoms/std-lease.orb +506 -190
  100. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +483 -154
  101. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +642 -192
  102. package/dist/behaviors/registry/app/atoms/std-matter.orb +486 -318
  103. package/dist/behaviors/registry/app/atoms/std-membership.orb +512 -102
  104. package/dist/behaviors/registry/app/atoms/std-menu.orb +775 -183
  105. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +522 -104
  106. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +319 -327
  107. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +497 -47
  108. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +378 -362
  109. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +379 -346
  110. package/dist/behaviors/registry/app/atoms/std-receipt.orb +553 -44
  111. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +419 -832
  112. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +370 -421
  113. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +657 -55
  114. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +510 -59
  115. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +451 -144
  116. package/dist/behaviors/registry/app/atoms/std-rfi.orb +502 -461
  117. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +448 -158
  118. package/dist/behaviors/registry/app/atoms/std-segment.orb +360 -98
  119. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +486 -103
  120. package/dist/behaviors/registry/app/atoms/std-submittal.orb +538 -526
  121. package/dist/behaviors/registry/app/atoms/std-table-map.orb +88 -51
  122. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +653 -71
  123. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +310 -215
  124. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +513 -90
  125. package/dist/behaviors/registry/app/atoms/std-tenant.orb +525 -66
  126. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +472 -460
  127. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +354 -317
  128. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +551 -284
  129. package/dist/behaviors/registry/app/atoms/std-trial.orb +410 -317
  130. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +398 -563
  131. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +372 -283
  132. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +273 -214
  133. package/dist/behaviors/registry/app/atoms/std-work-order.orb +628 -240
  134. package/dist/behaviors/registry/app/molecules/std-applicant-form.orb +89 -83
  135. package/dist/behaviors/registry/app/molecules/std-application.orb +178 -263
  136. package/dist/behaviors/registry/app/molecules/std-broadcast-builder.orb +67 -176
  137. package/dist/behaviors/registry/app/molecules/std-cart.orb +78 -72
  138. package/dist/behaviors/registry/app/molecules/std-form-builder.orb +437 -176
  139. package/dist/behaviors/registry/app/molecules/std-ledger-entry-form.orb +608 -89
  140. package/dist/behaviors/registry/app/molecules/std-stock-adjustment.orb +501 -102
  141. package/dist/behaviors/registry/app/molecules/std-vendor-onboarding.orb +383 -469
  142. package/dist/behaviors/registry/core/atoms/std-billable-hour.orb +495 -91
  143. package/dist/behaviors/registry/core/atoms/std-branching-logic.orb +271 -600
  144. package/dist/behaviors/registry/core/atoms/std-file-store.orb +534 -164
  145. package/dist/behaviors/registry/core/atoms/std-gallery.orb +118 -101
  146. package/dist/behaviors/registry/core/atoms/std-image-upload-multi.orb +87 -57
  147. package/dist/behaviors/registry/core/atoms/std-page-tree.orb +342 -484
  148. package/dist/behaviors/registry/core/atoms/std-rich-editor.orb +288 -416
  149. package/dist/behaviors/registry/core/atoms/std-version-history.orb +454 -430
  150. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +222 -147
  151. 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
  ]