@almadar/std 15.15.0 → 15.15.1

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 (273) hide show
  1. package/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  2. package/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  3. package/behaviors/registry/app/atoms/std-application.orb +300 -188
  4. package/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  5. package/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  6. package/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  7. package/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  8. package/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  9. package/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  10. package/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  11. package/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  12. package/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  13. package/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  14. package/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  15. package/behaviors/registry/app/atoms/std-donor.orb +191 -156
  16. package/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  17. package/behaviors/registry/app/atoms/std-driver.orb +440 -202
  18. package/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  19. package/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  20. package/behaviors/registry/app/atoms/std-event.orb +309 -178
  21. package/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  22. package/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  23. package/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  24. package/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  25. package/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  26. package/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  27. package/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  28. package/behaviors/registry/app/atoms/std-lease.orb +411 -178
  29. package/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  30. package/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  31. package/behaviors/registry/app/atoms/std-matter.orb +415 -189
  32. package/behaviors/registry/app/atoms/std-membership.orb +387 -167
  33. package/behaviors/registry/app/atoms/std-menu.orb +232 -175
  34. package/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  35. package/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  36. package/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  37. package/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  38. package/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  39. package/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  40. package/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  41. package/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  42. package/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  43. package/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  44. package/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  45. package/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  46. package/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  47. package/behaviors/registry/app/atoms/std-segment.orb +173 -139
  48. package/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  49. package/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  50. package/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  51. package/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  52. package/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  53. package/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  54. package/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  55. package/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  56. package/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  57. package/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  58. package/behaviors/registry/app/atoms/std-trial.orb +401 -183
  59. package/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  60. package/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  61. package/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  62. package/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  63. package/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  64. package/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  65. package/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  66. package/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  67. package/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  68. package/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  69. package/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  70. package/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  71. package/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  72. package/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  73. package/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  74. package/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  75. package/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  76. package/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  77. package/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  78. package/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  79. package/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  80. package/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  81. package/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  82. package/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  83. package/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  84. package/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  85. package/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  86. package/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  87. package/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  88. package/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  89. package/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  90. package/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  91. package/dist/behaviors/behaviors-registry.json +2913 -156
  92. package/dist/behaviors/registry/app/atoms/std-ap-bill.orb +423 -171
  93. package/dist/behaviors/registry/app/atoms/std-applicant.orb +207 -165
  94. package/dist/behaviors/registry/app/atoms/std-application.orb +300 -188
  95. package/dist/behaviors/registry/app/atoms/std-approval-request.orb +370 -215
  96. package/dist/behaviors/registry/app/atoms/std-campaign-goal.orb +382 -167
  97. package/dist/behaviors/registry/app/atoms/std-change-order.orb +458 -194
  98. package/dist/behaviors/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  99. package/dist/behaviors/registry/app/atoms/std-checkin.orb +215 -151
  100. package/dist/behaviors/registry/app/atoms/std-checkout-terminal.orb +322 -133
  101. package/dist/behaviors/registry/app/atoms/std-class-roster.orb +343 -170
  102. package/dist/behaviors/registry/app/atoms/std-class-session.orb +321 -190
  103. package/dist/behaviors/registry/app/atoms/std-court-deadline.orb +353 -182
  104. package/dist/behaviors/registry/app/atoms/std-customer-account.orb +376 -157
  105. package/dist/behaviors/registry/app/atoms/std-donation-receipt.orb +214 -143
  106. package/dist/behaviors/registry/app/atoms/std-donor.orb +191 -156
  107. package/dist/behaviors/registry/app/atoms/std-drip-sequence.orb +409 -170
  108. package/dist/behaviors/registry/app/atoms/std-driver.orb +440 -202
  109. package/dist/behaviors/registry/app/atoms/std-dunning.orb +431 -167
  110. package/dist/behaviors/registry/app/atoms/std-email-broadcast.orb +386 -143
  111. package/dist/behaviors/registry/app/atoms/std-event.orb +309 -178
  112. package/dist/behaviors/registry/app/atoms/std-form-builder.orb +353 -220
  113. package/dist/behaviors/registry/app/atoms/std-health-score.orb +218 -183
  114. package/dist/behaviors/registry/app/atoms/std-help-article.orb +425 -162
  115. package/dist/behaviors/registry/app/atoms/std-help-category.orb +409 -166
  116. package/dist/behaviors/registry/app/atoms/std-interview-slot.orb +311 -138
  117. package/dist/behaviors/registry/app/atoms/std-invoice.orb +349 -211
  118. package/dist/behaviors/registry/app/atoms/std-kitchen-display.orb +308 -184
  119. package/dist/behaviors/registry/app/atoms/std-lease.orb +411 -178
  120. package/dist/behaviors/registry/app/atoms/std-ledger-entry.orb +266 -195
  121. package/dist/behaviors/registry/app/atoms/std-maintenance-request.orb +396 -177
  122. package/dist/behaviors/registry/app/atoms/std-matter.orb +415 -189
  123. package/dist/behaviors/registry/app/atoms/std-membership.orb +387 -167
  124. package/dist/behaviors/registry/app/atoms/std-menu.orb +232 -175
  125. package/dist/behaviors/registry/app/atoms/std-modifier-group.orb +224 -167
  126. package/dist/behaviors/registry/app/atoms/std-nps-survey.orb +390 -138
  127. package/dist/behaviors/registry/app/atoms/std-offer-letter.orb +242 -133
  128. package/dist/behaviors/registry/app/atoms/std-payout-ledger.orb +428 -176
  129. package/dist/behaviors/registry/app/atoms/std-question-bank.orb +211 -145
  130. package/dist/behaviors/registry/app/atoms/std-receipt.orb +248 -177
  131. package/dist/behaviors/registry/app/atoms/std-recurring-charge.orb +421 -149
  132. package/dist/behaviors/registry/app/atoms/std-renewal-risk.orb +382 -153
  133. package/dist/behaviors/registry/app/atoms/std-rent-charge.orb +476 -176
  134. package/dist/behaviors/registry/app/atoms/std-reorder-rule.orb +246 -176
  135. package/dist/behaviors/registry/app/atoms/std-response-collector.orb +213 -150
  136. package/dist/behaviors/registry/app/atoms/std-rfi.orb +365 -210
  137. package/dist/behaviors/registry/app/atoms/std-route-optimize.orb +195 -146
  138. package/dist/behaviors/registry/app/atoms/std-segment.orb +173 -139
  139. package/dist/behaviors/registry/app/atoms/std-stock-level.orb +205 -135
  140. package/dist/behaviors/registry/app/atoms/std-submittal.orb +323 -166
  141. package/dist/behaviors/registry/app/atoms/std-table-map.orb +187 -63
  142. package/dist/behaviors/registry/app/atoms/std-technician-dispatch.orb +290 -202
  143. package/dist/behaviors/registry/app/atoms/std-telematics-event.orb +156 -128
  144. package/dist/behaviors/registry/app/atoms/std-template-editor.orb +255 -189
  145. package/dist/behaviors/registry/app/atoms/std-tenant.orb +375 -147
  146. package/dist/behaviors/registry/app/atoms/std-ticket-tier.orb +463 -150
  147. package/dist/behaviors/registry/app/atoms/std-time-entry.orb +259 -150
  148. package/dist/behaviors/registry/app/atoms/std-timesheet.orb +292 -183
  149. package/dist/behaviors/registry/app/atoms/std-trial.orb +401 -183
  150. package/dist/behaviors/registry/app/atoms/std-vehicle.orb +447 -205
  151. package/dist/behaviors/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  152. package/dist/behaviors/registry/app/atoms/std-waitlist.orb +308 -177
  153. package/dist/behaviors/registry/app/atoms/std-warehouse.orb +211 -141
  154. package/dist/behaviors/registry/app/atoms/std-work-order.orb +374 -219
  155. package/dist/behaviors/registry/app/organisms/std-subscription-billing.orb +282 -195
  156. package/dist/behaviors/registry/core/atoms/std-approval-gate.orb +703 -0
  157. package/dist/behaviors/registry/core/atoms/std-audit-capture.orb +150 -64
  158. package/dist/behaviors/registry/core/atoms/std-data-erasure.orb +546 -0
  159. package/dist/behaviors/registry/core/atoms/std-lifecycle.orb +343 -0
  160. package/dist/behaviors/registry/core/atoms/std-notify-on-event.orb +132 -46
  161. package/dist/behaviors/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  162. package/dist/behaviors/registry/marketing/atoms/std-marketing-article.orb +96 -0
  163. package/dist/behaviors/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  164. package/dist/behaviors/registry/marketing/atoms/std-marketing-community.orb +134 -0
  165. package/dist/behaviors/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  166. package/dist/behaviors/registry/marketing/atoms/std-marketing-features.orb +193 -0
  167. package/dist/behaviors/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  168. package/dist/behaviors/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  169. package/dist/behaviors/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  170. package/dist/behaviors/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  171. package/dist/behaviors/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  172. package/dist/behaviors/registry/marketing/atoms/std-marketing-split.orb +135 -0
  173. package/dist/behaviors/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  174. package/dist/behaviors/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  175. package/dist/behaviors/registry/marketing/atoms/std-marketing-team.orb +192 -0
  176. package/dist/behaviors/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  177. package/dist/behaviors/registry/marketing/molecules/std-about-page.orb +440 -0
  178. package/dist/behaviors/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  179. package/dist/behaviors/registry/marketing/molecules/std-landing-page.orb +521 -0
  180. package/dist/behaviors/registry/marketing/molecules/std-pricing-page.orb +406 -0
  181. package/dist/behaviors/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  182. package/dist/behaviors-registry.json +2913 -156
  183. package/dist/registry/app/atoms/std-ap-bill.orb +423 -171
  184. package/dist/registry/app/atoms/std-applicant.orb +207 -165
  185. package/dist/registry/app/atoms/std-application.orb +300 -188
  186. package/dist/registry/app/atoms/std-approval-request.orb +370 -215
  187. package/dist/registry/app/atoms/std-campaign-goal.orb +382 -167
  188. package/dist/registry/app/atoms/std-change-order.orb +458 -194
  189. package/dist/registry/app/atoms/std-chart-of-accounts.orb +201 -130
  190. package/dist/registry/app/atoms/std-checkin.orb +215 -151
  191. package/dist/registry/app/atoms/std-checkout-terminal.orb +322 -133
  192. package/dist/registry/app/atoms/std-class-roster.orb +343 -170
  193. package/dist/registry/app/atoms/std-class-session.orb +321 -190
  194. package/dist/registry/app/atoms/std-court-deadline.orb +353 -182
  195. package/dist/registry/app/atoms/std-customer-account.orb +376 -157
  196. package/dist/registry/app/atoms/std-donation-receipt.orb +214 -143
  197. package/dist/registry/app/atoms/std-donor.orb +191 -156
  198. package/dist/registry/app/atoms/std-drip-sequence.orb +409 -170
  199. package/dist/registry/app/atoms/std-driver.orb +440 -202
  200. package/dist/registry/app/atoms/std-dunning.orb +431 -167
  201. package/dist/registry/app/atoms/std-email-broadcast.orb +386 -143
  202. package/dist/registry/app/atoms/std-event.orb +309 -178
  203. package/dist/registry/app/atoms/std-form-builder.orb +353 -220
  204. package/dist/registry/app/atoms/std-health-score.orb +218 -183
  205. package/dist/registry/app/atoms/std-help-article.orb +425 -162
  206. package/dist/registry/app/atoms/std-help-category.orb +409 -166
  207. package/dist/registry/app/atoms/std-interview-slot.orb +311 -138
  208. package/dist/registry/app/atoms/std-invoice.orb +349 -211
  209. package/dist/registry/app/atoms/std-kitchen-display.orb +308 -184
  210. package/dist/registry/app/atoms/std-lease.orb +411 -178
  211. package/dist/registry/app/atoms/std-ledger-entry.orb +266 -195
  212. package/dist/registry/app/atoms/std-maintenance-request.orb +396 -177
  213. package/dist/registry/app/atoms/std-matter.orb +415 -189
  214. package/dist/registry/app/atoms/std-membership.orb +387 -167
  215. package/dist/registry/app/atoms/std-menu.orb +232 -175
  216. package/dist/registry/app/atoms/std-modifier-group.orb +224 -167
  217. package/dist/registry/app/atoms/std-nps-survey.orb +390 -138
  218. package/dist/registry/app/atoms/std-offer-letter.orb +242 -133
  219. package/dist/registry/app/atoms/std-payout-ledger.orb +428 -176
  220. package/dist/registry/app/atoms/std-question-bank.orb +211 -145
  221. package/dist/registry/app/atoms/std-receipt.orb +248 -177
  222. package/dist/registry/app/atoms/std-recurring-charge.orb +421 -149
  223. package/dist/registry/app/atoms/std-renewal-risk.orb +382 -153
  224. package/dist/registry/app/atoms/std-rent-charge.orb +476 -176
  225. package/dist/registry/app/atoms/std-reorder-rule.orb +246 -176
  226. package/dist/registry/app/atoms/std-response-collector.orb +213 -150
  227. package/dist/registry/app/atoms/std-rfi.orb +365 -210
  228. package/dist/registry/app/atoms/std-route-optimize.orb +195 -146
  229. package/dist/registry/app/atoms/std-segment.orb +173 -139
  230. package/dist/registry/app/atoms/std-stock-level.orb +205 -135
  231. package/dist/registry/app/atoms/std-submittal.orb +323 -166
  232. package/dist/registry/app/atoms/std-table-map.orb +187 -63
  233. package/dist/registry/app/atoms/std-technician-dispatch.orb +290 -202
  234. package/dist/registry/app/atoms/std-telematics-event.orb +156 -128
  235. package/dist/registry/app/atoms/std-template-editor.orb +255 -189
  236. package/dist/registry/app/atoms/std-tenant.orb +375 -147
  237. package/dist/registry/app/atoms/std-ticket-tier.orb +463 -150
  238. package/dist/registry/app/atoms/std-time-entry.orb +259 -150
  239. package/dist/registry/app/atoms/std-timesheet.orb +292 -183
  240. package/dist/registry/app/atoms/std-trial.orb +401 -183
  241. package/dist/registry/app/atoms/std-vehicle.orb +447 -205
  242. package/dist/registry/app/atoms/std-vendor-onboarding.orb +289 -245
  243. package/dist/registry/app/atoms/std-waitlist.orb +308 -177
  244. package/dist/registry/app/atoms/std-warehouse.orb +211 -141
  245. package/dist/registry/app/atoms/std-work-order.orb +374 -219
  246. package/dist/registry/app/organisms/std-subscription-billing.orb +282 -195
  247. package/dist/registry/core/atoms/std-approval-gate.orb +703 -0
  248. package/dist/registry/core/atoms/std-audit-capture.orb +150 -64
  249. package/dist/registry/core/atoms/std-data-erasure.orb +546 -0
  250. package/dist/registry/core/atoms/std-lifecycle.orb +343 -0
  251. package/dist/registry/core/atoms/std-notify-on-event.orb +132 -46
  252. package/dist/registry/core/atoms/std-reminder-scheduler.orb +330 -0
  253. package/dist/registry/marketing/atoms/std-marketing-article.orb +96 -0
  254. package/dist/registry/marketing/atoms/std-marketing-case-studies.orb +243 -0
  255. package/dist/registry/marketing/atoms/std-marketing-community.orb +134 -0
  256. package/dist/registry/marketing/atoms/std-marketing-cta.orb +206 -0
  257. package/dist/registry/marketing/atoms/std-marketing-features.orb +193 -0
  258. package/dist/registry/marketing/atoms/std-marketing-footer.orb +192 -0
  259. package/dist/registry/marketing/atoms/std-marketing-hero.orb +262 -0
  260. package/dist/registry/marketing/atoms/std-marketing-nav.orb +190 -0
  261. package/dist/registry/marketing/atoms/std-marketing-pricing.orb +232 -0
  262. package/dist/registry/marketing/atoms/std-marketing-showcase.orb +276 -0
  263. package/dist/registry/marketing/atoms/std-marketing-split.orb +135 -0
  264. package/dist/registry/marketing/atoms/std-marketing-stats.orb +120 -0
  265. package/dist/registry/marketing/atoms/std-marketing-steps.orb +179 -0
  266. package/dist/registry/marketing/atoms/std-marketing-team.orb +192 -0
  267. package/dist/registry/marketing/atoms/std-marketing-testimonials.orb +124 -0
  268. package/dist/registry/marketing/molecules/std-about-page.orb +440 -0
  269. package/dist/registry/marketing/molecules/std-feature-detail-page.orb +371 -0
  270. package/dist/registry/marketing/molecules/std-landing-page.orb +521 -0
  271. package/dist/registry/marketing/molecules/std-pricing-page.orb +406 -0
  272. package/dist/registry/marketing/organisms/std-marketing-site.orb +1654 -0
  273. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "std-time-entry",
3
- "version": "1.1.0",
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. Agents tune the list shape via `config.fields` + `config.itemActions`.",
3
+ "version": "1.2.0",
4
+ "description": "std-time-entry — time tracking line within a timesheet. Listens for SET_STATUS so std-lifecycle can auto-submit / auto-approve. Exposes HR knobs (backgroundCheckRequired, anonymizeOnRejection, …).",
5
5
  "orbitals": [
6
6
  {
7
7
  "name": "TimeEntryOrbital",
@@ -261,6 +261,22 @@
261
261
  }
262
262
  ]
263
263
  },
264
+ {
265
+ "key": "SET_STATUS",
266
+ "name": "Set Status",
267
+ "payloadSchema": [
268
+ {
269
+ "name": "entityId",
270
+ "type": "string",
271
+ "required": true
272
+ },
273
+ {
274
+ "name": "newStatus",
275
+ "type": "string",
276
+ "required": true
277
+ }
278
+ ]
279
+ },
264
280
  {
265
281
  "key": "CLOSE_VIEW",
266
282
  "name": "Close View"
@@ -286,22 +302,22 @@
286
302
  "render-ui",
287
303
  "main",
288
304
  {
289
- "className": "py-12",
305
+ "direction": "vertical",
306
+ "align": "center",
290
307
  "children": [
291
308
  {
292
309
  "type": "spinner"
293
310
  },
294
311
  {
295
- "variant": "caption",
296
- "color": "muted",
297
312
  "type": "typography",
298
- "content": "Loading time entries…"
313
+ "content": "Loading time entries…",
314
+ "variant": "caption",
315
+ "color": "muted"
299
316
  }
300
317
  ],
318
+ "className": "py-12",
301
319
  "type": "stack",
302
- "direction": "vertical",
303
- "gap": "md",
304
- "align": "center"
320
+ "gap": "md"
305
321
  }
306
322
  ]
307
323
  ]
@@ -315,12 +331,13 @@
315
331
  "render-ui",
316
332
  "main",
317
333
  {
318
- "gap": "md",
319
334
  "direction": "vertical",
320
- "type": "stack",
335
+ "gap": "md",
321
336
  "children": [
322
337
  {
323
338
  "direction": "horizontal",
339
+ "gap": "sm",
340
+ "type": "stack",
324
341
  "children": [
325
342
  {
326
343
  "type": "icon",
@@ -328,56 +345,55 @@
328
345
  },
329
346
  {
330
347
  "type": "typography",
331
- "content": "@config.title",
332
- "variant": "h3"
348
+ "variant": "h3",
349
+ "content": "@config.title"
333
350
  }
334
351
  ],
335
- "align": "center",
336
- "type": "stack",
337
- "gap": "sm"
352
+ "align": "center"
338
353
  },
339
354
  {
340
355
  "type": "simple-grid",
356
+ "cols": 4.0,
341
357
  "children": [
342
358
  {
343
- "value": "@payload.data.length",
344
- "type": "stat-display",
359
+ "label": "Total entries",
345
360
  "icon": "list",
346
- "label": "Total entries"
361
+ "type": "stat-display",
362
+ "value": "@payload.data.length"
347
363
  },
348
364
  {
349
365
  "value": "32",
366
+ "label": "Hours this week",
350
367
  "type": "stat-display",
351
- "icon": "clock",
352
- "label": "Hours this week"
368
+ "icon": "clock"
353
369
  },
354
370
  {
371
+ "icon": "dollar-sign",
355
372
  "value": "78%",
356
- "type": "stat-display",
357
373
  "label": "Billable %",
358
- "icon": "dollar-sign"
374
+ "type": "stat-display"
359
375
  },
360
376
  {
361
- "label": "Avg per day",
377
+ "type": "stat-display",
362
378
  "icon": "trending-up",
363
- "value": "6.4h",
364
- "type": "stat-display"
379
+ "label": "Avg per day",
380
+ "value": "6.4h"
365
381
  }
366
- ],
367
- "cols": 4.0
382
+ ]
368
383
  },
369
384
  {
370
385
  "type": "divider"
371
386
  },
372
387
  {
373
- "entity": "@payload.data",
374
388
  "cols": 1.0,
389
+ "itemActions": "@config.itemActions",
375
390
  "fields": "@config.fields",
376
- "type": "data-grid",
377
391
  "gap": "sm",
378
- "itemActions": "@config.itemActions"
392
+ "type": "data-grid",
393
+ "entity": "@payload.data"
379
394
  }
380
- ]
395
+ ],
396
+ "type": "stack"
381
397
  }
382
398
  ]
383
399
  ]
@@ -391,9 +407,9 @@
391
407
  "render-ui",
392
408
  "main",
393
409
  {
394
- "variant": "error",
410
+ "type": "alert",
395
411
  "message": "@payload.error",
396
- "type": "alert"
412
+ "variant": "error"
397
413
  }
398
414
  ]
399
415
  ]
@@ -457,13 +473,11 @@
457
473
  "render-ui",
458
474
  "main",
459
475
  {
460
- "gap": "md",
461
- "direction": "vertical",
462
- "type": "stack",
463
476
  "children": [
464
477
  {
465
- "gap": "sm",
466
478
  "type": "stack",
479
+ "direction": "horizontal",
480
+ "gap": "sm",
467
481
  "align": "center",
468
482
  "children": [
469
483
  {
@@ -473,83 +487,82 @@
473
487
  "action": "CLOSE_VIEW"
474
488
  },
475
489
  {
476
- "name": "clock",
477
- "type": "icon"
490
+ "type": "icon",
491
+ "name": "clock"
478
492
  },
479
493
  {
494
+ "type": "typography",
480
495
  "content": "@entity.projectName",
481
- "variant": "h3",
482
- "type": "typography"
496
+ "variant": "h3"
483
497
  },
484
498
  {
499
+ "variant": "default",
485
500
  "type": "badge",
486
- "label": "@entity.status",
487
- "variant": "default"
501
+ "label": "@entity.status"
488
502
  }
489
- ],
490
- "direction": "horizontal"
503
+ ]
491
504
  },
492
505
  {
493
506
  "type": "divider"
494
507
  },
495
508
  {
496
- "direction": "vertical",
497
509
  "children": [
498
510
  {
499
- "direction": "horizontal",
511
+ "gap": "md",
500
512
  "type": "stack",
513
+ "direction": "horizontal",
501
514
  "children": [
502
515
  {
503
- "content": "Task",
504
- "color": "muted",
505
516
  "type": "typography",
506
- "variant": "caption"
517
+ "content": "Task",
518
+ "variant": "caption",
519
+ "color": "muted"
507
520
  },
508
521
  {
509
- "content": "@entity.taskDescription",
510
522
  "type": "typography",
511
- "variant": "body"
523
+ "variant": "body",
524
+ "content": "@entity.taskDescription"
512
525
  }
513
- ],
514
- "gap": "md"
526
+ ]
515
527
  },
516
528
  {
517
529
  "gap": "md",
518
- "direction": "horizontal",
519
530
  "type": "stack",
531
+ "direction": "horizontal",
520
532
  "children": [
521
533
  {
522
- "type": "typography",
523
- "variant": "caption",
534
+ "color": "muted",
524
535
  "content": "Timesheet",
525
- "color": "muted"
536
+ "type": "typography",
537
+ "variant": "caption"
526
538
  },
527
539
  {
528
- "content": "@entity.timesheetId",
529
540
  "type": "typography",
530
- "variant": "body"
541
+ "variant": "body",
542
+ "content": "@entity.timesheetId"
531
543
  }
532
544
  ]
533
545
  },
534
546
  {
547
+ "gap": "md",
535
548
  "type": "stack",
536
- "direction": "horizontal",
537
549
  "children": [
538
550
  {
539
- "type": "typography",
540
- "content": "Notes",
541
551
  "color": "muted",
542
- "variant": "caption"
552
+ "type": "typography",
553
+ "variant": "caption",
554
+ "content": "Notes"
543
555
  },
544
556
  {
545
- "variant": "body",
557
+ "type": "typography",
546
558
  "content": "@entity.notes",
547
- "type": "typography"
559
+ "variant": "body"
548
560
  }
549
561
  ],
550
- "gap": "md"
562
+ "direction": "horizontal"
551
563
  }
552
564
  ],
565
+ "direction": "vertical",
553
566
  "gap": "sm",
554
567
  "type": "stack"
555
568
  },
@@ -557,47 +570,50 @@
557
570
  "type": "divider"
558
571
  },
559
572
  {
560
- "type": "simple-grid",
561
- "cols": 3.0,
562
573
  "children": [
563
574
  {
564
- "icon": "clock",
565
575
  "label": "Hours",
566
- "type": "stat-display",
567
- "value": "@entity.hours"
576
+ "icon": "clock",
577
+ "value": "@entity.hours",
578
+ "type": "stat-display"
568
579
  },
569
580
  {
570
581
  "label": "Rate",
571
582
  "type": "stat-display",
572
- "icon": "dollar-sign",
573
- "value": "@entity.hourlyRate"
583
+ "value": "@entity.hourlyRate",
584
+ "icon": "dollar-sign"
574
585
  },
575
586
  {
576
587
  "label": "Date",
577
- "type": "stat-display",
578
588
  "icon": "calendar",
579
- "value": "@entity.workDate"
589
+ "value": "@entity.workDate",
590
+ "type": "stat-display"
580
591
  }
581
- ]
592
+ ],
593
+ "cols": 3.0,
594
+ "type": "simple-grid"
582
595
  },
583
596
  {
597
+ "type": "stack",
598
+ "direction": "horizontal",
584
599
  "gap": "sm",
600
+ "align": "center",
585
601
  "children": [
586
602
  {
587
- "action": "REQUEST_DELETE",
603
+ "label": "Delete",
604
+ "variant": "danger",
605
+ "type": "button",
588
606
  "actionPayload": {
589
607
  "id": "@entity.id"
590
608
  },
591
- "label": "Delete",
592
- "type": "button",
593
- "variant": "danger"
609
+ "action": "REQUEST_DELETE"
594
610
  }
595
- ],
596
- "direction": "horizontal",
597
- "align": "center",
598
- "type": "stack"
611
+ ]
599
612
  }
600
- ]
613
+ ],
614
+ "type": "stack",
615
+ "gap": "md",
616
+ "direction": "vertical"
601
617
  }
602
618
  ]
603
619
  ]
@@ -626,20 +642,71 @@
626
642
  "render-ui",
627
643
  "main",
628
644
  {
629
- "gap": "md",
630
645
  "type": "stack",
631
646
  "align": "center",
647
+ "gap": "md",
632
648
  "direction": "vertical",
633
- "className": "py-12",
634
649
  "children": [
635
650
  {
636
651
  "type": "spinner"
637
652
  },
638
653
  {
639
654
  "variant": "caption",
640
- "type": "typography",
641
655
  "content": "Deleting time entry…",
642
- "color": "muted"
656
+ "color": "muted",
657
+ "type": "typography"
658
+ }
659
+ ],
660
+ "className": "py-12"
661
+ }
662
+ ]
663
+ ]
664
+ },
665
+ {
666
+ "from": "browsing",
667
+ "to": "loading",
668
+ "event": "SET_STATUS",
669
+ "effects": [
670
+ [
671
+ "set",
672
+ "@entity.id",
673
+ "@payload.entityId"
674
+ ],
675
+ [
676
+ "set",
677
+ "@entity.status",
678
+ "@payload.newStatus"
679
+ ],
680
+ [
681
+ "persist",
682
+ "update",
683
+ "TimeEntry",
684
+ "@entity",
685
+ {
686
+ "emit": {
687
+ "failure": "TimeEntryLoadFailed",
688
+ "success": "TimeEntryLoaded"
689
+ }
690
+ }
691
+ ],
692
+ [
693
+ "render-ui",
694
+ "main",
695
+ {
696
+ "gap": "md",
697
+ "direction": "vertical",
698
+ "align": "center",
699
+ "className": "py-12",
700
+ "type": "stack",
701
+ "children": [
702
+ {
703
+ "type": "spinner"
704
+ },
705
+ {
706
+ "type": "typography",
707
+ "color": "muted",
708
+ "content": "Updating time entry status…",
709
+ "variant": "caption"
643
710
  }
644
711
  ]
645
712
  }
@@ -665,22 +732,22 @@
665
732
  "render-ui",
666
733
  "main",
667
734
  {
668
- "gap": "md",
669
735
  "type": "stack",
736
+ "direction": "vertical",
737
+ "align": "center",
738
+ "className": "py-12",
670
739
  "children": [
671
740
  {
672
741
  "type": "spinner"
673
742
  },
674
743
  {
675
744
  "type": "typography",
676
- "variant": "caption",
677
745
  "color": "muted",
746
+ "variant": "caption",
678
747
  "content": "Loading time entries…"
679
748
  }
680
749
  ],
681
- "direction": "vertical",
682
- "align": "center",
683
- "className": "py-12"
750
+ "gap": "md"
684
751
  }
685
752
  ]
686
753
  ]
@@ -700,8 +767,8 @@
700
767
  "TimeEntry",
701
768
  {
702
769
  "emit": {
703
- "failure": "TimeEntryLoadFailed",
704
- "success": "TimeEntryLoaded"
770
+ "success": "TimeEntryLoaded",
771
+ "failure": "TimeEntryLoadFailed"
705
772
  }
706
773
  }
707
774
  ],
@@ -709,22 +776,22 @@
709
776
  "render-ui",
710
777
  "main",
711
778
  {
712
- "type": "stack",
779
+ "gap": "md",
780
+ "direction": "vertical",
781
+ "align": "center",
782
+ "className": "py-12",
713
783
  "children": [
714
784
  {
715
785
  "type": "spinner"
716
786
  },
717
787
  {
718
788
  "type": "typography",
719
- "variant": "caption",
720
789
  "color": "muted",
721
- "content": "Deleting time entry…"
790
+ "content": "Deleting time entry…",
791
+ "variant": "caption"
722
792
  }
723
793
  ],
724
- "className": "py-12",
725
- "align": "center",
726
- "direction": "vertical",
727
- "gap": "md"
794
+ "type": "stack"
728
795
  }
729
796
  ]
730
797
  ]
@@ -748,8 +815,8 @@
748
815
  "render-ui",
749
816
  "main",
750
817
  {
751
- "size": "sm",
752
- "type": "spinner"
818
+ "type": "spinner",
819
+ "size": "sm"
753
820
  }
754
821
  ]
755
822
  ]
@@ -757,25 +824,39 @@
757
824
  ]
758
825
  },
759
826
  "config": {
760
- "title": {
761
- "type": "string",
762
- "default": "Time Entries",
763
- "label": "Section title",
764
- "description": "Heading shown above the time entry log",
827
+ "i9DocumentsRequired": {
828
+ "type": "boolean",
829
+ "default": false,
830
+ "label": "I-9 documents required",
831
+ "description": "Require I-9 on file before billable hours are submitted.",
832
+ "tier": "customization"
833
+ },
834
+ "equalOpportunityTrackingEnabled": {
835
+ "type": "boolean",
836
+ "default": false,
837
+ "label": "Equal opportunity tracking",
838
+ "description": "Capture demographic data separately for EEO reporting (sibling collection).",
839
+ "tier": "advanced"
840
+ },
841
+ "eVerifyRequired": {
842
+ "type": "boolean",
843
+ "default": false,
844
+ "label": "E-Verify required",
845
+ "description": "Block submission until E-Verify confirms work eligibility.",
765
846
  "tier": "customization"
766
847
  },
767
848
  "itemActions": {
768
849
  "type": "[ItemAction]",
769
850
  "default": [
770
851
  {
771
- "variant": "primary",
772
852
  "icon": "arrow-right",
773
853
  "event": "OPEN_ENTRY",
854
+ "variant": "primary",
774
855
  "label": "Open"
775
856
  },
776
857
  {
777
- "event": "REQUEST_DELETE",
778
858
  "label": "Delete",
859
+ "event": "REQUEST_DELETE",
779
860
  "variant": "danger"
780
861
  }
781
862
  ],
@@ -785,6 +866,16 @@
785
866
  "items": {
786
867
  "type": "object",
787
868
  "properties": {
869
+ "icon": {
870
+ "name": "icon",
871
+ "type": "string",
872
+ "required": false
873
+ },
874
+ "variant": {
875
+ "name": "variant",
876
+ "type": "string",
877
+ "required": false
878
+ },
788
879
  "label": {
789
880
  "name": "label",
790
881
  "type": "string",
@@ -794,57 +885,54 @@
794
885
  "name": "event",
795
886
  "type": "string",
796
887
  "required": true
797
- },
798
- "variant": {
799
- "name": "variant",
800
- "type": "string",
801
- "required": false
802
- },
803
- "icon": {
804
- "name": "icon",
805
- "type": "string",
806
- "required": false
807
888
  }
808
889
  }
809
890
  }
810
891
  },
892
+ "retentionAfterRejectionDays": {
893
+ "type": "number",
894
+ "default": 1095.0,
895
+ "label": "Retention after rejection (days)",
896
+ "description": "Days to keep rejected time entries. Default 1095 (3 years) typical wage-and-hour.",
897
+ "tier": "advanced"
898
+ },
811
899
  "fields": {
812
900
  "type": "[FieldSpec]",
813
901
  "default": [
814
902
  {
815
- "label": "Project",
903
+ "variant": "caption",
816
904
  "name": "projectName",
817
- "variant": "caption"
905
+ "label": "Project"
818
906
  },
819
907
  {
908
+ "variant": "caption",
820
909
  "name": "taskDescription",
821
- "label": "Task",
822
- "variant": "caption"
910
+ "label": "Task"
823
911
  },
824
912
  {
825
- "variant": "caption",
826
913
  "name": "workDate",
827
- "label": "Date"
914
+ "label": "Date",
915
+ "variant": "caption"
828
916
  },
829
917
  {
830
- "label": "Hours",
918
+ "name": "hours",
831
919
  "variant": "caption",
832
- "name": "hours"
920
+ "label": "Hours"
833
921
  },
834
922
  {
835
923
  "name": "billable",
836
- "variant": "badge",
837
- "label": "Billable"
924
+ "label": "Billable",
925
+ "variant": "badge"
838
926
  },
839
927
  {
840
928
  "variant": "caption",
841
- "label": "Rate",
842
- "name": "hourlyRate"
929
+ "name": "hourlyRate",
930
+ "label": "Rate"
843
931
  },
844
932
  {
845
- "label": "Status",
846
933
  "name": "status",
847
- "variant": "badge"
934
+ "variant": "badge",
935
+ "label": "Status"
848
936
  }
849
937
  ],
850
938
  "label": "Columns to show",
@@ -853,6 +941,11 @@
853
941
  "items": {
854
942
  "type": "object",
855
943
  "properties": {
944
+ "header": {
945
+ "name": "header",
946
+ "type": "string",
947
+ "required": false
948
+ },
856
949
  "variant": {
857
950
  "name": "variant",
858
951
  "type": "string",
@@ -863,8 +956,8 @@
863
956
  "type": "string",
864
957
  "required": true
865
958
  },
866
- "icon": {
867
- "name": "icon",
959
+ "key": {
960
+ "name": "key",
868
961
  "type": "string",
869
962
  "required": false
870
963
  },
@@ -873,23 +966,39 @@
873
966
  "type": "string",
874
967
  "required": false
875
968
  },
876
- "header": {
877
- "name": "header",
878
- "type": "string",
879
- "required": false
880
- },
881
- "key": {
882
- "name": "key",
969
+ "label": {
970
+ "name": "label",
883
971
  "type": "string",
884
972
  "required": false
885
973
  },
886
- "label": {
887
- "name": "label",
974
+ "icon": {
975
+ "name": "icon",
888
976
  "type": "string",
889
977
  "required": false
890
978
  }
891
979
  }
892
980
  }
981
+ },
982
+ "title": {
983
+ "type": "string",
984
+ "default": "Time Entries",
985
+ "label": "Section title",
986
+ "description": "Heading shown above the time entry log",
987
+ "tier": "customization"
988
+ },
989
+ "anonymizeOnRejection": {
990
+ "type": "boolean",
991
+ "default": false,
992
+ "label": "Anonymize on rejection",
993
+ "description": "When true, scrub worker PII on rejected entries. Pair with std-data-erasure.",
994
+ "tier": "customization"
995
+ },
996
+ "backgroundCheckRequired": {
997
+ "type": "boolean",
998
+ "default": false,
999
+ "label": "Background check required",
1000
+ "description": "Block billable submission until a background check is on file.",
1001
+ "tier": "customization"
893
1002
  }
894
1003
  },
895
1004
  "scope": "collection"
@@ -908,4 +1017,4 @@
908
1017
  ]
909
1018
  }
910
1019
  ]
911
- }
1020
+ }