@open-mercato/core 0.6.4-develop.4217.1.c9aa050183 → 0.6.4-develop.4239.1.4a264a5828

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 (408) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/generated/entities/staff_time_entry/index.js +37 -0
  3. package/dist/generated/entities/staff_time_entry/index.js.map +7 -0
  4. package/dist/generated/entities/staff_time_entry_segment/index.js +23 -0
  5. package/dist/generated/entities/staff_time_entry_segment/index.js.map +7 -0
  6. package/dist/generated/entities/staff_time_project/index.js +35 -0
  7. package/dist/generated/entities/staff_time_project/index.js.map +7 -0
  8. package/dist/generated/entities/staff_time_project_member/index.js +29 -0
  9. package/dist/generated/entities/staff_time_project_member/index.js.map +7 -0
  10. package/dist/generated/entities.ids.generated.js +5 -1
  11. package/dist/generated/entities.ids.generated.js.map +2 -2
  12. package/dist/generated/entity-fields-registry.js +64 -0
  13. package/dist/generated/entity-fields-registry.js.map +2 -2
  14. package/dist/helpers/integration/timesheetFixtures.js +50 -0
  15. package/dist/helpers/integration/timesheetFixtures.js.map +7 -0
  16. package/dist/modules/attachments/api/library/[id]/route.js +20 -16
  17. package/dist/modules/attachments/api/library/[id]/route.js.map +2 -2
  18. package/dist/modules/attachments/api/route.js +18 -14
  19. package/dist/modules/attachments/api/route.js.map +2 -2
  20. package/dist/modules/auth/api/roles/acl/route.js +10 -4
  21. package/dist/modules/auth/api/roles/acl/route.js.map +2 -2
  22. package/dist/modules/auth/api/sidebar/preferences/route.js +27 -20
  23. package/dist/modules/auth/api/sidebar/preferences/route.js.map +2 -2
  24. package/dist/modules/auth/api/users/acl/route.js +16 -11
  25. package/dist/modules/auth/api/users/acl/route.js.map +2 -2
  26. package/dist/modules/auth/commands/users.js +87 -71
  27. package/dist/modules/auth/commands/users.js.map +2 -2
  28. package/dist/modules/auth/services/sidebarPreferencesService.js +39 -30
  29. package/dist/modules/auth/services/sidebarPreferencesService.js.map +2 -2
  30. package/dist/modules/business_rules/backend/logs/[id]/page.js +24 -5
  31. package/dist/modules/business_rules/backend/logs/[id]/page.js.map +2 -2
  32. package/dist/modules/catalog/api/offers/route.js +15 -5
  33. package/dist/modules/catalog/api/offers/route.js.map +2 -2
  34. package/dist/modules/catalog/commands/categories.js +61 -12
  35. package/dist/modules/catalog/commands/categories.js.map +2 -2
  36. package/dist/modules/catalog/commands/products.js +79 -54
  37. package/dist/modules/catalog/commands/products.js.map +2 -2
  38. package/dist/modules/catalog/commands/variants.js +29 -16
  39. package/dist/modules/catalog/commands/variants.js.map +2 -2
  40. package/dist/modules/currencies/backend/currencies/[id]/page.js +19 -2
  41. package/dist/modules/currencies/backend/currencies/[id]/page.js.map +2 -2
  42. package/dist/modules/currencies/commands/currencies.js +15 -8
  43. package/dist/modules/currencies/commands/currencies.js.map +2 -2
  44. package/dist/modules/customer_accounts/api/admin/users.js +27 -26
  45. package/dist/modules/customer_accounts/api/admin/users.js.map +2 -2
  46. package/dist/modules/customer_accounts/api/password/reset-confirm.js +5 -5
  47. package/dist/modules/customer_accounts/api/password/reset-confirm.js.map +2 -2
  48. package/dist/modules/customer_accounts/api/portal/users/[id]/roles.js +11 -10
  49. package/dist/modules/customer_accounts/api/portal/users/[id]/roles.js.map +2 -2
  50. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js +27 -7
  51. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js.map +2 -2
  52. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +27 -7
  53. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
  54. package/dist/modules/customers/backend/customers/people/[id]/page.js +29 -8
  55. package/dist/modules/customers/backend/customers/people/[id]/page.js.map +2 -2
  56. package/dist/modules/customers/commands/addresses.js +35 -21
  57. package/dist/modules/customers/commands/addresses.js.map +2 -2
  58. package/dist/modules/customers/commands/companies.js +163 -162
  59. package/dist/modules/customers/commands/companies.js.map +2 -2
  60. package/dist/modules/customers/commands/deals.js +3 -4
  61. package/dist/modules/customers/commands/deals.js.map +2 -2
  62. package/dist/modules/customers/commands/interactions.js +19 -22
  63. package/dist/modules/customers/commands/interactions.js.map +2 -2
  64. package/dist/modules/customers/commands/people.js +18 -15
  65. package/dist/modules/customers/commands/people.js.map +2 -2
  66. package/dist/modules/customers/commands/personCompanyLinks.js +105 -94
  67. package/dist/modules/customers/commands/personCompanyLinks.js.map +2 -2
  68. package/dist/modules/customers/commands/pipeline-stages.js +30 -23
  69. package/dist/modules/customers/commands/pipeline-stages.js.map +2 -2
  70. package/dist/modules/customers/commands/pipelines.js +27 -20
  71. package/dist/modules/customers/commands/pipelines.js.map +2 -2
  72. package/dist/modules/customers/commands/tags.js +13 -5
  73. package/dist/modules/customers/commands/tags.js.map +2 -2
  74. package/dist/modules/dashboards/api/users/widgets/route.js +0 -1
  75. package/dist/modules/dashboards/api/users/widgets/route.js.map +2 -2
  76. package/dist/modules/dashboards/api/widgets/data/route.js +29 -1
  77. package/dist/modules/dashboards/api/widgets/data/route.js.map +2 -2
  78. package/dist/modules/data_sync/lib/sync-engine.js +4 -4
  79. package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
  80. package/dist/modules/data_sync/lib/sync-run-service.js +51 -27
  81. package/dist/modules/data_sync/lib/sync-run-service.js.map +2 -2
  82. package/dist/modules/directory/commands/organizations.js +192 -158
  83. package/dist/modules/directory/commands/organizations.js.map +3 -3
  84. package/dist/modules/inbox_ops/api/emails/[id]/reprocess/route.js +22 -16
  85. package/dist/modules/inbox_ops/api/emails/[id]/reprocess/route.js.map +2 -2
  86. package/dist/modules/messages/commands/messages.js +77 -75
  87. package/dist/modules/messages/commands/messages.js.map +2 -2
  88. package/dist/modules/messages/commands/shared.js +132 -132
  89. package/dist/modules/messages/commands/shared.js.map +2 -2
  90. package/dist/modules/perspectives/api/[tableId]/route.js +37 -26
  91. package/dist/modules/perspectives/api/[tableId]/route.js.map +2 -2
  92. package/dist/modules/progress/acl.js +8 -4
  93. package/dist/modules/progress/acl.js.map +2 -2
  94. package/dist/modules/resources/commands/resources.js +125 -117
  95. package/dist/modules/resources/commands/resources.js.map +2 -2
  96. package/dist/modules/resources/commands/tags.js +7 -3
  97. package/dist/modules/resources/commands/tags.js.map +2 -2
  98. package/dist/modules/sales/api/quotes/send/route.js +12 -11
  99. package/dist/modules/sales/api/quotes/send/route.js.map +2 -2
  100. package/dist/modules/sales/commands/documents.js +629 -478
  101. package/dist/modules/sales/commands/documents.js.map +2 -2
  102. package/dist/modules/sales/commands/payments.js +146 -146
  103. package/dist/modules/sales/commands/payments.js.map +2 -2
  104. package/dist/modules/sales/commands/returns.js +68 -60
  105. package/dist/modules/sales/commands/returns.js.map +2 -2
  106. package/dist/modules/staff/acl.js +10 -1
  107. package/dist/modules/staff/acl.js.map +2 -2
  108. package/dist/modules/staff/analytics.js +33 -0
  109. package/dist/modules/staff/analytics.js.map +7 -0
  110. package/dist/modules/staff/api/guards.js +31 -0
  111. package/dist/modules/staff/api/guards.js.map +7 -0
  112. package/dist/modules/staff/api/interceptors.js +96 -0
  113. package/dist/modules/staff/api/interceptors.js.map +7 -0
  114. package/dist/modules/staff/api/timesheets/my-projects/[projectId]/route.js +170 -0
  115. package/dist/modules/staff/api/timesheets/my-projects/[projectId]/route.js.map +7 -0
  116. package/dist/modules/staff/api/timesheets/my-projects/route.js +103 -0
  117. package/dist/modules/staff/api/timesheets/my-projects/route.js.map +7 -0
  118. package/dist/modules/staff/api/timesheets/projects/kpis/route.js +147 -0
  119. package/dist/modules/staff/api/timesheets/projects/kpis/route.js.map +7 -0
  120. package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/[segmentId]/route.js +171 -0
  121. package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/[segmentId]/route.js.map +7 -0
  122. package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/route.js +180 -0
  123. package/dist/modules/staff/api/timesheets/time-entries/[id]/segments/route.js.map +7 -0
  124. package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-start/route.js +155 -0
  125. package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-start/route.js.map +7 -0
  126. package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-stop/route.js +173 -0
  127. package/dist/modules/staff/api/timesheets/time-entries/[id]/timer-stop/route.js.map +7 -0
  128. package/dist/modules/staff/api/timesheets/time-entries/bulk/route.js +260 -0
  129. package/dist/modules/staff/api/timesheets/time-entries/bulk/route.js.map +7 -0
  130. package/dist/modules/staff/api/timesheets/time-entries/route.js +188 -0
  131. package/dist/modules/staff/api/timesheets/time-entries/route.js.map +7 -0
  132. package/dist/modules/staff/api/timesheets/time-projects/[id]/employees/route.js +159 -0
  133. package/dist/modules/staff/api/timesheets/time-projects/[id]/employees/route.js.map +7 -0
  134. package/dist/modules/staff/api/timesheets/time-projects/route.js +230 -0
  135. package/dist/modules/staff/api/timesheets/time-projects/route.js.map +7 -0
  136. package/dist/modules/staff/backend/staff/timesheets/page.js +710 -0
  137. package/dist/modules/staff/backend/staff/timesheets/page.js.map +7 -0
  138. package/dist/modules/staff/backend/staff/timesheets/page.meta.js +22 -0
  139. package/dist/modules/staff/backend/staff/timesheets/page.meta.js.map +7 -0
  140. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.js +125 -0
  141. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.js.map +7 -0
  142. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.meta.js +16 -0
  143. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.meta.js.map +7 -0
  144. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.js +418 -0
  145. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.js.map +7 -0
  146. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.meta.js +16 -0
  147. package/dist/modules/staff/backend/staff/timesheets/projects/[id]/page.meta.js.map +7 -0
  148. package/dist/modules/staff/backend/staff/timesheets/projects/create/page.js +79 -0
  149. package/dist/modules/staff/backend/staff/timesheets/projects/create/page.js.map +7 -0
  150. package/dist/modules/staff/backend/staff/timesheets/projects/create/page.meta.js +16 -0
  151. package/dist/modules/staff/backend/staff/timesheets/projects/create/page.meta.js.map +7 -0
  152. package/dist/modules/staff/backend/staff/timesheets/projects/page.js +602 -0
  153. package/dist/modules/staff/backend/staff/timesheets/projects/page.js.map +7 -0
  154. package/dist/modules/staff/backend/staff/timesheets/projects/page.meta.js +25 -0
  155. package/dist/modules/staff/backend/staff/timesheets/projects/page.meta.js.map +7 -0
  156. package/dist/modules/staff/backend/staff/timesheets/projects/projectFormConfig.js +123 -0
  157. package/dist/modules/staff/backend/staff/timesheets/projects/projectFormConfig.js.map +7 -0
  158. package/dist/modules/staff/cli.js +38 -1
  159. package/dist/modules/staff/cli.js.map +2 -2
  160. package/dist/modules/staff/commands/index.js +2 -0
  161. package/dist/modules/staff/commands/index.js.map +2 -2
  162. package/dist/modules/staff/commands/leave-requests.js +30 -28
  163. package/dist/modules/staff/commands/leave-requests.js.map +3 -3
  164. package/dist/modules/staff/commands/team-members.js +21 -20
  165. package/dist/modules/staff/commands/team-members.js.map +2 -2
  166. package/dist/modules/staff/commands/timesheets-entries.js +409 -0
  167. package/dist/modules/staff/commands/timesheets-entries.js.map +7 -0
  168. package/dist/modules/staff/commands/timesheets-projects.js +618 -0
  169. package/dist/modules/staff/commands/timesheets-projects.js.map +7 -0
  170. package/dist/modules/staff/data/enrichers.js +104 -0
  171. package/dist/modules/staff/data/enrichers.js.map +7 -0
  172. package/dist/modules/staff/data/entities.js +226 -1
  173. package/dist/modules/staff/data/entities.js.map +2 -2
  174. package/dist/modules/staff/data/validators.js +113 -1
  175. package/dist/modules/staff/data/validators.js.map +2 -2
  176. package/dist/modules/staff/events.js +13 -1
  177. package/dist/modules/staff/events.js.map +2 -2
  178. package/dist/modules/staff/lib/crud.js +7 -1
  179. package/dist/modules/staff/lib/crud.js.map +2 -2
  180. package/dist/modules/staff/lib/staffMemberResolver.js +15 -0
  181. package/dist/modules/staff/lib/staffMemberResolver.js.map +7 -0
  182. package/dist/modules/staff/lib/timesheets-projects/computeProjectHoursTrend.js +60 -0
  183. package/dist/modules/staff/lib/timesheets-projects/computeProjectHoursTrend.js.map +7 -0
  184. package/dist/modules/staff/lib/timesheets-projects/computeProjectsKpis.js +260 -0
  185. package/dist/modules/staff/lib/timesheets-projects/computeProjectsKpis.js.map +7 -0
  186. package/dist/modules/staff/lib/timesheets-projects/dateBuckets.js +41 -0
  187. package/dist/modules/staff/lib/timesheets-projects/dateBuckets.js.map +7 -0
  188. package/dist/modules/staff/lib/timesheets-projects/initials.js +10 -0
  189. package/dist/modules/staff/lib/timesheets-projects/initials.js.map +7 -0
  190. package/dist/modules/staff/lib/timesheets-projects/kpiMath.js +12 -0
  191. package/dist/modules/staff/lib/timesheets-projects/kpiMath.js.map +7 -0
  192. package/dist/modules/staff/lib/timesheets-projects/listProjectMembersPreview.js +55 -0
  193. package/dist/modules/staff/lib/timesheets-projects/listProjectMembersPreview.js.map +7 -0
  194. package/dist/modules/staff/lib/timesheets-projects-ui/HoursSparkline.js +66 -0
  195. package/dist/modules/staff/lib/timesheets-projects-ui/HoursSparkline.js.map +7 -0
  196. package/dist/modules/staff/lib/timesheets-projects-ui/ProjectCard.js +81 -0
  197. package/dist/modules/staff/lib/timesheets-projects-ui/ProjectCard.js.map +7 -0
  198. package/dist/modules/staff/lib/timesheets-projects-ui/ProjectMembersAvatarStack.js +58 -0
  199. package/dist/modules/staff/lib/timesheets-projects-ui/ProjectMembersAvatarStack.js.map +7 -0
  200. package/dist/modules/staff/lib/timesheets-projects-ui/ProjectsKpiStrip.js +152 -0
  201. package/dist/modules/staff/lib/timesheets-projects-ui/ProjectsKpiStrip.js.map +7 -0
  202. package/dist/modules/staff/lib/timesheets-projects-ui/SavedViewTabs.js +37 -0
  203. package/dist/modules/staff/lib/timesheets-projects-ui/SavedViewTabs.js.map +7 -0
  204. package/dist/modules/staff/lib/timesheets-projects-ui/ViewModeToggle.js +57 -0
  205. package/dist/modules/staff/lib/timesheets-projects-ui/ViewModeToggle.js.map +7 -0
  206. package/dist/modules/staff/lib/timesheets-projects-ui/useProjectsViewMode.js +50 -0
  207. package/dist/modules/staff/lib/timesheets-projects-ui/useProjectsViewMode.js.map +7 -0
  208. package/dist/modules/staff/lib/timesheets-ui/AddRowDropdown.js +163 -0
  209. package/dist/modules/staff/lib/timesheets-ui/AddRowDropdown.js.map +7 -0
  210. package/dist/modules/staff/lib/timesheets-ui/CalendarPicker.js +209 -0
  211. package/dist/modules/staff/lib/timesheets-ui/CalendarPicker.js.map +7 -0
  212. package/dist/modules/staff/lib/timesheets-ui/ColorPicker.js +52 -0
  213. package/dist/modules/staff/lib/timesheets-ui/ColorPicker.js.map +7 -0
  214. package/dist/modules/staff/lib/timesheets-ui/CreateProjectDialog.js +77 -0
  215. package/dist/modules/staff/lib/timesheets-ui/CreateProjectDialog.js.map +7 -0
  216. package/dist/modules/staff/lib/timesheets-ui/ListView.js +173 -0
  217. package/dist/modules/staff/lib/timesheets-ui/ListView.js.map +7 -0
  218. package/dist/modules/staff/lib/timesheets-ui/ProjectColorDot.js +32 -0
  219. package/dist/modules/staff/lib/timesheets-ui/ProjectColorDot.js.map +7 -0
  220. package/dist/modules/staff/lib/timesheets-ui/TimerBar.js +270 -0
  221. package/dist/modules/staff/lib/timesheets-ui/TimerBar.js.map +7 -0
  222. package/dist/modules/staff/lib/timesheets-ui/ViewSwitcher.js +57 -0
  223. package/dist/modules/staff/lib/timesheets-ui/ViewSwitcher.js.map +7 -0
  224. package/dist/modules/staff/lib/timesheets-ui/colors.js +43 -0
  225. package/dist/modules/staff/lib/timesheets-ui/colors.js.map +7 -0
  226. package/dist/modules/staff/migrations/Migration20260326135612.js +24 -0
  227. package/dist/modules/staff/migrations/Migration20260326135612.js.map +7 -0
  228. package/dist/modules/staff/migrations/Migration20260413102715.js +23 -0
  229. package/dist/modules/staff/migrations/Migration20260413102715.js.map +7 -0
  230. package/dist/modules/staff/migrations/Migration20260413111602.js +13 -0
  231. package/dist/modules/staff/migrations/Migration20260413111602.js.map +7 -0
  232. package/dist/modules/staff/migrations/Migration20260511112759.js +19 -0
  233. package/dist/modules/staff/migrations/Migration20260511112759.js.map +7 -0
  234. package/dist/modules/staff/search.js +35 -0
  235. package/dist/modules/staff/search.js.map +2 -2
  236. package/dist/modules/staff/setup.js +15 -1
  237. package/dist/modules/staff/setup.js.map +2 -2
  238. package/dist/modules/staff/widgets/dashboard/timesheets-hours-by-project/config.js +16 -0
  239. package/dist/modules/staff/widgets/dashboard/timesheets-hours-by-project/config.js.map +7 -0
  240. package/dist/modules/staff/widgets/dashboard/timesheets-hours-by-project/widget.client.js +126 -0
  241. package/dist/modules/staff/widgets/dashboard/timesheets-hours-by-project/widget.client.js.map +7 -0
  242. package/dist/modules/staff/widgets/dashboard/timesheets-hours-by-project/widget.js +26 -0
  243. package/dist/modules/staff/widgets/dashboard/timesheets-hours-by-project/widget.js.map +7 -0
  244. package/dist/modules/staff/widgets/dashboard/timesheets-time-reporting/config.js +15 -0
  245. package/dist/modules/staff/widgets/dashboard/timesheets-time-reporting/config.js.map +7 -0
  246. package/dist/modules/staff/widgets/dashboard/timesheets-time-reporting/widget.client.js +238 -0
  247. package/dist/modules/staff/widgets/dashboard/timesheets-time-reporting/widget.client.js.map +7 -0
  248. package/dist/modules/staff/widgets/dashboard/timesheets-time-reporting/widget.js +26 -0
  249. package/dist/modules/staff/widgets/dashboard/timesheets-time-reporting/widget.js.map +7 -0
  250. package/dist/modules/staff/widgets/injection/timer-sidebar-indicator/widget.js +145 -0
  251. package/dist/modules/staff/widgets/injection/timer-sidebar-indicator/widget.js.map +7 -0
  252. package/dist/modules/staff/widgets/injection-table.js +12 -0
  253. package/dist/modules/staff/widgets/injection-table.js.map +7 -0
  254. package/dist/modules/sync_excel/api/import/route.js +19 -17
  255. package/dist/modules/sync_excel/api/import/route.js.map +2 -2
  256. package/dist/modules/translations/commands/translations.js +22 -19
  257. package/dist/modules/translations/commands/translations.js.map +2 -2
  258. package/dist/modules/workflows/backend/events/[id]/page.js +24 -6
  259. package/dist/modules/workflows/backend/events/[id]/page.js.map +2 -2
  260. package/dist/modules/workflows/backend/instances/[id]/page.js +27 -5
  261. package/dist/modules/workflows/backend/instances/[id]/page.js.map +2 -2
  262. package/dist/modules/workflows/backend/tasks/[id]/page.js +25 -6
  263. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
  264. package/generated/entities/staff_time_entry/index.ts +17 -0
  265. package/generated/entities/staff_time_entry_segment/index.ts +10 -0
  266. package/generated/entities/staff_time_project/index.ts +16 -0
  267. package/generated/entities/staff_time_project_member/index.ts +13 -0
  268. package/generated/entities.ids.generated.ts +5 -1
  269. package/generated/entity-fields-registry.ts +64 -0
  270. package/package.json +7 -7
  271. package/src/helpers/integration/timesheetFixtures.ts +61 -0
  272. package/src/modules/attachments/api/library/[id]/route.ts +24 -17
  273. package/src/modules/attachments/api/route.ts +20 -14
  274. package/src/modules/auth/api/roles/acl/route.ts +11 -5
  275. package/src/modules/auth/api/sidebar/preferences/route.ts +33 -24
  276. package/src/modules/auth/api/users/acl/route.ts +17 -12
  277. package/src/modules/auth/commands/users.ts +96 -80
  278. package/src/modules/auth/services/sidebarPreferencesService.ts +40 -32
  279. package/src/modules/business_rules/backend/logs/[id]/page.tsx +32 -7
  280. package/src/modules/catalog/api/offers/route.ts +20 -5
  281. package/src/modules/catalog/commands/categories.ts +61 -12
  282. package/src/modules/catalog/commands/products.ts +93 -60
  283. package/src/modules/catalog/commands/variants.ts +29 -16
  284. package/src/modules/currencies/backend/currencies/[id]/page.tsx +21 -2
  285. package/src/modules/currencies/commands/currencies.ts +27 -14
  286. package/src/modules/currencies/i18n/de.json +1 -0
  287. package/src/modules/currencies/i18n/en.json +1 -0
  288. package/src/modules/currencies/i18n/es.json +1 -0
  289. package/src/modules/currencies/i18n/pl.json +1 -0
  290. package/src/modules/customer_accounts/api/admin/users.ts +31 -26
  291. package/src/modules/customer_accounts/api/password/reset-confirm.ts +5 -6
  292. package/src/modules/customer_accounts/api/portal/users/[id]/roles.ts +14 -13
  293. package/src/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.tsx +34 -11
  294. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +34 -11
  295. package/src/modules/customers/backend/customers/people/[id]/page.tsx +35 -11
  296. package/src/modules/customers/commands/addresses.ts +35 -23
  297. package/src/modules/customers/commands/companies.ts +166 -165
  298. package/src/modules/customers/commands/deals.ts +2 -4
  299. package/src/modules/customers/commands/interactions.ts +20 -26
  300. package/src/modules/customers/commands/people.ts +18 -15
  301. package/src/modules/customers/commands/personCompanyLinks.ts +109 -100
  302. package/src/modules/customers/commands/pipeline-stages.ts +31 -27
  303. package/src/modules/customers/commands/pipelines.ts +29 -23
  304. package/src/modules/customers/commands/tags.ts +13 -5
  305. package/src/modules/dashboards/api/users/widgets/route.ts +0 -1
  306. package/src/modules/dashboards/api/widgets/data/route.ts +36 -1
  307. package/src/modules/data_sync/lib/sync-engine.ts +4 -5
  308. package/src/modules/data_sync/lib/sync-run-service.ts +57 -28
  309. package/src/modules/directory/commands/organizations.ts +203 -166
  310. package/src/modules/inbox_ops/api/emails/[id]/reprocess/route.ts +26 -18
  311. package/src/modules/messages/commands/messages.ts +82 -80
  312. package/src/modules/messages/commands/shared.ts +138 -133
  313. package/src/modules/perspectives/api/[tableId]/route.ts +38 -27
  314. package/src/modules/progress/acl.ts +4 -0
  315. package/src/modules/resources/commands/resources.ts +127 -117
  316. package/src/modules/resources/commands/tags.ts +7 -3
  317. package/src/modules/sales/api/quotes/send/route.ts +17 -12
  318. package/src/modules/sales/commands/documents.ts +673 -481
  319. package/src/modules/sales/commands/payments.ts +158 -152
  320. package/src/modules/sales/commands/returns.ts +74 -63
  321. package/src/modules/staff/acl.ts +11 -0
  322. package/src/modules/staff/analytics.ts +30 -0
  323. package/src/modules/staff/api/guards.ts +59 -0
  324. package/src/modules/staff/api/interceptors.ts +122 -0
  325. package/src/modules/staff/api/timesheets/my-projects/[projectId]/route.ts +191 -0
  326. package/src/modules/staff/api/timesheets/my-projects/route.ts +115 -0
  327. package/src/modules/staff/api/timesheets/projects/kpis/route.ts +159 -0
  328. package/src/modules/staff/api/timesheets/time-entries/[id]/segments/[segmentId]/route.ts +187 -0
  329. package/src/modules/staff/api/timesheets/time-entries/[id]/segments/route.ts +191 -0
  330. package/src/modules/staff/api/timesheets/time-entries/[id]/timer-start/route.ts +168 -0
  331. package/src/modules/staff/api/timesheets/time-entries/[id]/timer-stop/route.ts +191 -0
  332. package/src/modules/staff/api/timesheets/time-entries/bulk/route.ts +292 -0
  333. package/src/modules/staff/api/timesheets/time-entries/route.ts +193 -0
  334. package/src/modules/staff/api/timesheets/time-projects/[id]/employees/route.ts +167 -0
  335. package/src/modules/staff/api/timesheets/time-projects/route.ts +244 -0
  336. package/src/modules/staff/backend/staff/timesheets/page.meta.ts +20 -0
  337. package/src/modules/staff/backend/staff/timesheets/page.tsx +899 -0
  338. package/src/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.meta.ts +12 -0
  339. package/src/modules/staff/backend/staff/timesheets/projects/[id]/edit/page.tsx +141 -0
  340. package/src/modules/staff/backend/staff/timesheets/projects/[id]/page.meta.ts +12 -0
  341. package/src/modules/staff/backend/staff/timesheets/projects/[id]/page.tsx +579 -0
  342. package/src/modules/staff/backend/staff/timesheets/projects/create/page.meta.ts +12 -0
  343. package/src/modules/staff/backend/staff/timesheets/projects/create/page.tsx +90 -0
  344. package/src/modules/staff/backend/staff/timesheets/projects/page.meta.ts +23 -0
  345. package/src/modules/staff/backend/staff/timesheets/projects/page.tsx +765 -0
  346. package/src/modules/staff/backend/staff/timesheets/projects/projectFormConfig.ts +138 -0
  347. package/src/modules/staff/cli.ts +40 -1
  348. package/src/modules/staff/commands/index.ts +2 -0
  349. package/src/modules/staff/commands/leave-requests.ts +37 -29
  350. package/src/modules/staff/commands/team-members.ts +25 -20
  351. package/src/modules/staff/commands/timesheets-entries.ts +504 -0
  352. package/src/modules/staff/commands/timesheets-projects.ts +699 -0
  353. package/src/modules/staff/data/enrichers.ts +134 -0
  354. package/src/modules/staff/data/entities.ts +198 -0
  355. package/src/modules/staff/data/validators.ts +129 -0
  356. package/src/modules/staff/events.ts +13 -0
  357. package/src/modules/staff/i18n/de.json +209 -1
  358. package/src/modules/staff/i18n/en.json +209 -1
  359. package/src/modules/staff/i18n/es.json +209 -1
  360. package/src/modules/staff/i18n/pl.json +209 -1
  361. package/src/modules/staff/lib/crud.ts +8 -0
  362. package/src/modules/staff/lib/staffMemberResolver.ts +22 -0
  363. package/src/modules/staff/lib/timesheets-projects/computeProjectHoursTrend.ts +89 -0
  364. package/src/modules/staff/lib/timesheets-projects/computeProjectsKpis.ts +311 -0
  365. package/src/modules/staff/lib/timesheets-projects/dateBuckets.ts +37 -0
  366. package/src/modules/staff/lib/timesheets-projects/initials.ts +6 -0
  367. package/src/modules/staff/lib/timesheets-projects/kpiMath.ts +8 -0
  368. package/src/modules/staff/lib/timesheets-projects/listProjectMembersPreview.ts +83 -0
  369. package/src/modules/staff/lib/timesheets-projects-ui/HoursSparkline.tsx +75 -0
  370. package/src/modules/staff/lib/timesheets-projects-ui/ProjectCard.tsx +110 -0
  371. package/src/modules/staff/lib/timesheets-projects-ui/ProjectMembersAvatarStack.tsx +73 -0
  372. package/src/modules/staff/lib/timesheets-projects-ui/ProjectsKpiStrip.tsx +185 -0
  373. package/src/modules/staff/lib/timesheets-projects-ui/SavedViewTabs.tsx +53 -0
  374. package/src/modules/staff/lib/timesheets-projects-ui/ViewModeToggle.tsx +63 -0
  375. package/src/modules/staff/lib/timesheets-projects-ui/useProjectsViewMode.ts +63 -0
  376. package/src/modules/staff/lib/timesheets-ui/AddRowDropdown.tsx +188 -0
  377. package/src/modules/staff/lib/timesheets-ui/CalendarPicker.tsx +229 -0
  378. package/src/modules/staff/lib/timesheets-ui/ColorPicker.tsx +65 -0
  379. package/src/modules/staff/lib/timesheets-ui/CreateProjectDialog.tsx +99 -0
  380. package/src/modules/staff/lib/timesheets-ui/ListView.tsx +230 -0
  381. package/src/modules/staff/lib/timesheets-ui/ProjectColorDot.tsx +40 -0
  382. package/src/modules/staff/lib/timesheets-ui/TimerBar.tsx +327 -0
  383. package/src/modules/staff/lib/timesheets-ui/ViewSwitcher.tsx +60 -0
  384. package/src/modules/staff/lib/timesheets-ui/colors.ts +58 -0
  385. package/src/modules/staff/migrations/.snapshot-open-mercato.json +1148 -0
  386. package/src/modules/staff/migrations/Migration20260326135612.ts +26 -0
  387. package/src/modules/staff/migrations/Migration20260413102715.ts +25 -0
  388. package/src/modules/staff/migrations/Migration20260413111602.ts +13 -0
  389. package/src/modules/staff/migrations/Migration20260511112759.ts +21 -0
  390. package/src/modules/staff/search.ts +35 -0
  391. package/src/modules/staff/setup.ts +15 -0
  392. package/src/modules/staff/widgets/dashboard/timesheets-hours-by-project/config.ts +17 -0
  393. package/src/modules/staff/widgets/dashboard/timesheets-hours-by-project/widget.client.tsx +158 -0
  394. package/src/modules/staff/widgets/dashboard/timesheets-hours-by-project/widget.ts +25 -0
  395. package/src/modules/staff/widgets/dashboard/timesheets-time-reporting/config.ts +15 -0
  396. package/src/modules/staff/widgets/dashboard/timesheets-time-reporting/widget.client.tsx +297 -0
  397. package/src/modules/staff/widgets/dashboard/timesheets-time-reporting/widget.ts +25 -0
  398. package/src/modules/staff/widgets/injection/timer-sidebar-indicator/widget.tsx +161 -0
  399. package/src/modules/staff/widgets/injection-table.ts +10 -0
  400. package/src/modules/sync_excel/api/import/route.ts +23 -18
  401. package/src/modules/translations/commands/translations.ts +49 -41
  402. package/src/modules/workflows/backend/events/[id]/page.tsx +32 -10
  403. package/src/modules/workflows/backend/instances/[id]/page.tsx +33 -9
  404. package/src/modules/workflows/backend/tasks/[id]/page.tsx +33 -10
  405. package/src/modules/workflows/i18n/de.json +1 -0
  406. package/src/modules/workflows/i18n/en.json +1 -0
  407. package/src/modules/workflows/i18n/es.json +1 -0
  408. package/src/modules/workflows/i18n/pl.json +1 -0
@@ -917,5 +917,213 @@
917
917
  "staff.teams.table.updatedAt": "Aktualisiert",
918
918
  "staff.teams.tabs.details": "Details",
919
919
  "staff.teams.tabs.label": "Teamabschnitte",
920
- "staff.teams.tabs.members": "Teammitglieder"
920
+ "staff.teams.tabs.members": "Teammitglieder",
921
+ "staff.timesheets.errors.entryNotFound": "Zeiteintrag nicht gefunden, gelöscht oder Ihnen nicht zugeordnet.",
922
+ "staff.timesheets.errors.noStaffMember": "Ihrem Konto ist kein Mitarbeiter zugeordnet.",
923
+ "staff.timesheets.errors.notOwner": "Sie können nur Ihre eigenen Zeiteinträge verwalten.",
924
+ "staff.timesheets.errors.projectCodeDuplicate": "Ein Projekt mit diesem Code existiert bereits.",
925
+ "staff.timesheets.errors.projectNotFound": "Zeitprojekt nicht gefunden oder nicht zugänglich.",
926
+ "staff.timesheets.errors.projectsKpis": "Failed to load project KPIs.",
927
+ "staff.timesheets.errors.staffMemberNotFound": "Mitarbeiter nicht gefunden oder nicht zugänglich.",
928
+ "staff.timesheets.my.addRow.createProject": "Create a new project",
929
+ "staff.timesheets.my.addRow.error": "Das Projekt konnte nicht hinzugefügt werden. Bitte erneut versuchen.",
930
+ "staff.timesheets.my.addRow.noProjects": "No projects assigned",
931
+ "staff.timesheets.my.addRow.searchPlaceholder": "Search by project",
932
+ "staff.timesheets.my.addRow.trigger": "Add row",
933
+ "staff.timesheets.my.calendar.lastWeek": "Last week",
934
+ "staff.timesheets.my.calendar.nextMonth": "Next month",
935
+ "staff.timesheets.my.calendar.open": "Open calendar",
936
+ "staff.timesheets.my.calendar.prevMonth": "Previous month",
937
+ "staff.timesheets.my.calendar.thisWeek": "This week",
938
+ "staff.timesheets.my.confirm_save.body": "Your timesheet entries will be saved.",
939
+ "staff.timesheets.my.confirm_save.title": "Save changes?",
940
+ "staff.timesheets.my.createProfile": "Create Team Member Profile",
941
+ "staff.timesheets.my.daily_average": "Daily Average",
942
+ "staff.timesheets.my.daily_total": "Daily Total",
943
+ "staff.timesheets.my.durationPlaceholder": "0",
944
+ "staff.timesheets.my.errors.load": "Failed to load timesheets.",
945
+ "staff.timesheets.my.errors.save": "Failed to save timesheets.",
946
+ "staff.timesheets.my.errors.updateAssignment": "Failed to update projects.",
947
+ "staff.timesheets.my.list.addDescription": "Add description",
948
+ "staff.timesheets.my.list.noEntries": "No entries for this period.",
949
+ "staff.timesheets.my.list.today": "Today",
950
+ "staff.timesheets.my.list.yesterday": "Yesterday",
951
+ "staff.timesheets.my.loading": "Loading timesheets...",
952
+ "staff.timesheets.my.noProfile": "You need a Team Member profile to track time.",
953
+ "staff.timesheets.my.noProfile.title": "Set up your profile to start tracking time",
954
+ "staff.timesheets.my.noProjects": "No active projects. Create a project first.",
955
+ "staff.timesheets.my.noProjects.admin": "Create a project and assign yourself to start tracking time.",
956
+ "staff.timesheets.my.noProjects.createProject": "Create Project",
957
+ "staff.timesheets.my.noProjects.employee": "Ask your manager to assign you to a project.",
958
+ "staff.timesheets.my.noProjects.title": "No projects assigned yet",
959
+ "staff.timesheets.my.noProjects.viewProjects": "View Projects",
960
+ "staff.timesheets.my.project": "Project",
961
+ "staff.timesheets.my.removeRow": "Aus der Tabelle entfernen",
962
+ "staff.timesheets.my.removeRow.confirm": "{projectName} aus deiner Zeiterfassung entfernen? Du kannst es jederzeit über \"+ Zeile hinzufügen\" wieder einfügen.",
963
+ "staff.timesheets.my.removeRow.error": "Das Projekt konnte nicht entfernt werden. Bitte erneut versuchen.",
964
+ "staff.timesheets.my.save_changes": "Save Changes",
965
+ "staff.timesheets.my.saved": "Timesheet saved.",
966
+ "staff.timesheets.my.saving": "Saving...",
967
+ "staff.timesheets.my.status": "Status",
968
+ "staff.timesheets.my.status_open": "Open",
969
+ "staff.timesheets.my.timer.noProjects": "No projects found",
970
+ "staff.timesheets.my.timer.placeholder": "What are you working on?",
971
+ "staff.timesheets.my.timer.searchProject": "Search projects...",
972
+ "staff.timesheets.my.timer.selectProject": "Project",
973
+ "staff.timesheets.my.timer.start": "Start timer",
974
+ "staff.timesheets.my.timer.startError": "Failed to start timer",
975
+ "staff.timesheets.my.timer.stop": "Stop timer",
976
+ "staff.timesheets.my.timer.stopError": "Failed to stop timer",
977
+ "staff.timesheets.my.timerStart": "Start Timer",
978
+ "staff.timesheets.my.timerStop": "Stop Timer",
979
+ "staff.timesheets.my.total": "Total",
980
+ "staff.timesheets.my.total_hours": "Total Hours",
981
+ "staff.timesheets.my.unsaved": "Unsaved changes",
982
+ "staff.timesheets.my.viewMode.monthly": "Monthly",
983
+ "staff.timesheets.my.viewMode.weekly": "Weekly",
984
+ "staff.timesheets.my.viewType.list": "List view",
985
+ "staff.timesheets.my.viewType.timesheet": "Timesheet",
986
+ "staff.timesheets.my.weekTotal": "Week Total",
987
+ "staff.timesheets.my.working_days": "Working Days",
988
+ "staff.timesheets.nav.create_project": "Create Project",
989
+ "staff.timesheets.nav.edit_project": "Edit Project",
990
+ "staff.timesheets.nav.my_timesheets": "My Timesheets",
991
+ "staff.timesheets.nav.project_details": "Project Details",
992
+ "staff.timesheets.nav.projects": "Projects",
993
+ "staff.timesheets.projects.actions.add": "Add Project",
994
+ "staff.timesheets.projects.actions.addFirst": "+ Add first project",
995
+ "staff.timesheets.projects.actions.delete": "Delete",
996
+ "staff.timesheets.projects.actions.deleteConfirm": "Delete project \"{{name}}\"?",
997
+ "staff.timesheets.projects.actions.refresh": "Refresh",
998
+ "staff.timesheets.projects.actions.viewDetails": "View Details",
999
+ "staff.timesheets.projects.active_employees": "Active Employees",
1000
+ "staff.timesheets.projects.add_employee": "Add Employee",
1001
+ "staff.timesheets.projects.detail.subtitle": "Project Settings",
1002
+ "staff.timesheets.projects.employees.addError": "Failed to add employee.",
1003
+ "staff.timesheets.projects.employees.added": "Employee added.",
1004
+ "staff.timesheets.projects.employees.assignmentStartDate": "Assignment Start Date",
1005
+ "staff.timesheets.projects.employees.department": "Department",
1006
+ "staff.timesheets.projects.employees.empty": "No employees assigned yet.",
1007
+ "staff.timesheets.projects.employees.endDate": "Assignment end",
1008
+ "staff.timesheets.projects.employees.loading": "Loading employees...",
1009
+ "staff.timesheets.projects.employees.noResults": "No team members found",
1010
+ "staff.timesheets.projects.employees.remove": "Remove",
1011
+ "staff.timesheets.projects.employees.removeConfirm": "Remove this employee from the project?",
1012
+ "staff.timesheets.projects.employees.removeError": "Failed to remove employee.",
1013
+ "staff.timesheets.projects.employees.removed": "Employee removed.",
1014
+ "staff.timesheets.projects.employees.role": "Role",
1015
+ "staff.timesheets.projects.employees.roleOnProject": "Role on Project",
1016
+ "staff.timesheets.projects.employees.rolePlaceholder": "e.g. Developer, Designer...",
1017
+ "staff.timesheets.projects.employees.searchEmployee": "Search team members...",
1018
+ "staff.timesheets.projects.employees.selectEmployee": "Select Employee",
1019
+ "staff.timesheets.projects.employees.startDate": "Assignment start",
1020
+ "staff.timesheets.projects.employees.status": "Status",
1021
+ "staff.timesheets.projects.employees.title": "Assigned Employees",
1022
+ "staff.timesheets.projects.errors.delete": "Failed to delete project.",
1023
+ "staff.timesheets.projects.errors.fieldRequired": "Required",
1024
+ "staff.timesheets.projects.errors.load": "Failed to load project.",
1025
+ "staff.timesheets.projects.errors.notFound": "Project not found.",
1026
+ "staff.timesheets.projects.errors.required": "Name and code are required.",
1027
+ "staff.timesheets.projects.errors.save": "Failed to save project.",
1028
+ "staff.timesheets.projects.form.actions.cancel": "Cancel",
1029
+ "staff.timesheets.projects.form.actions.create": "Create",
1030
+ "staff.timesheets.projects.form.actions.edit": "Edit Project",
1031
+ "staff.timesheets.projects.form.actions.save": "Save",
1032
+ "staff.timesheets.projects.form.code": "Code",
1033
+ "staff.timesheets.projects.form.codePlaceholder": "PROJECT-001",
1034
+ "staff.timesheets.projects.form.color": "Projektfarbe",
1035
+ "staff.timesheets.projects.form.colorAuto": "Auto",
1036
+ "staff.timesheets.projects.form.costCenter": "Cost center",
1037
+ "staff.timesheets.projects.form.costCenterPlaceholder": "Cost center code",
1038
+ "staff.timesheets.projects.form.createTitle": "Create project",
1039
+ "staff.timesheets.projects.form.description": "Description",
1040
+ "staff.timesheets.projects.form.descriptionPlaceholder": "Project description",
1041
+ "staff.timesheets.projects.form.editTitle": "Edit project",
1042
+ "staff.timesheets.projects.form.groupDetails": "Additional Information",
1043
+ "staff.timesheets.projects.form.groupMain": "Project Details",
1044
+ "staff.timesheets.projects.form.name": "Name",
1045
+ "staff.timesheets.projects.form.namePlaceholder": "Project name",
1046
+ "staff.timesheets.projects.form.projectType": "Project type",
1047
+ "staff.timesheets.projects.form.projectTypePlaceholder": "e.g. Internal, Client, R&D",
1048
+ "staff.timesheets.projects.form.startDate": "Start date",
1049
+ "staff.timesheets.projects.form.status": "Status",
1050
+ "staff.timesheets.projects.inactive_employees": "Inactive Employees",
1051
+ "staff.timesheets.projects.loading": "Loading project...",
1052
+ "staff.timesheets.projects.messages.deleted": "Project deleted.",
1053
+ "staff.timesheets.projects.messages.saved": "Project saved.",
1054
+ "staff.timesheets.projects.page.description": "Manage time tracking projects.",
1055
+ "staff.timesheets.projects.page.title": "Projects",
1056
+ "staff.timesheets.projects.portfolio.card.hoursPanelCollab": "My hours · last 7w",
1057
+ "staff.timesheets.projects.portfolio.card.hoursPanelPm": "Team hours · last 7w",
1058
+ "staff.timesheets.projects.portfolio.card.role": "Role",
1059
+ "staff.timesheets.projects.portfolio.emptyState.noAssignments": "You aren't assigned to any projects yet. Ask a PM to add you.",
1060
+ "staff.timesheets.projects.portfolio.emptyState.noMatches": "No projects match these filters.",
1061
+ "staff.timesheets.projects.portfolio.emptyState.noProjects": "No projects yet.",
1062
+ "staff.timesheets.projects.portfolio.hoursWeek": "Hours / week",
1063
+ "staff.timesheets.projects.portfolio.kpi.assignedToMe": "Assigned to me",
1064
+ "staff.timesheets.projects.portfolio.kpi.deltaFlat": "no change",
1065
+ "staff.timesheets.projects.portfolio.kpi.hoursMonth": "Hours this month",
1066
+ "staff.timesheets.projects.portfolio.kpi.hoursMonthSub": "vs previous month",
1067
+ "staff.timesheets.projects.portfolio.kpi.hoursWeek": "Hours this week",
1068
+ "staff.timesheets.projects.portfolio.kpi.hoursWeekSub": "vs previous week",
1069
+ "staff.timesheets.projects.portfolio.kpi.myHoursMonth": "My hours this month",
1070
+ "staff.timesheets.projects.portfolio.kpi.myHoursWeek": "My hours this week",
1071
+ "staff.timesheets.projects.portfolio.kpi.myProjects": "My projects",
1072
+ "staff.timesheets.projects.portfolio.kpi.noPrevious": "no previous data",
1073
+ "staff.timesheets.projects.portfolio.kpi.onHold": "On Hold",
1074
+ "staff.timesheets.projects.portfolio.kpi.teamActive": "Active team",
1075
+ "staff.timesheets.projects.portfolio.kpi.teamActiveSub": "Members with entries this month",
1076
+ "staff.timesheets.projects.portfolio.kpi.totalProjects": "Total Projects",
1077
+ "staff.timesheets.projects.portfolio.myHoursWeek": "My hours / week",
1078
+ "staff.timesheets.projects.portfolio.myRole": "My role",
1079
+ "staff.timesheets.projects.portfolio.relativeTime.daysAgo": "vor {days}T",
1080
+ "staff.timesheets.projects.portfolio.relativeTime.hoursAgo": "vor {hours}Std",
1081
+ "staff.timesheets.projects.portfolio.relativeTime.justNow": "gerade eben",
1082
+ "staff.timesheets.projects.portfolio.relativeTime.minutesAgo": "vor {minutes}Min",
1083
+ "staff.timesheets.projects.portfolio.savedViews.ariaLabel": "Gespeicherte Ansichten",
1084
+ "staff.timesheets.projects.portfolio.sparkline.ariaLabel": "Hours per week, last 7 weeks",
1085
+ "staff.timesheets.projects.portfolio.tabs.active": "Active",
1086
+ "staff.timesheets.projects.portfolio.tabs.all": "All",
1087
+ "staff.timesheets.projects.portfolio.tabs.completed": "Completed",
1088
+ "staff.timesheets.projects.portfolio.tabs.mine": "Mine",
1089
+ "staff.timesheets.projects.portfolio.tabs.onHold": "On Hold",
1090
+ "staff.timesheets.projects.portfolio.team": "Team",
1091
+ "staff.timesheets.projects.portfolio.viewMode.ariaLabel": "Anzeigemodus",
1092
+ "staff.timesheets.projects.portfolio.viewMode.cards": "Cards",
1093
+ "staff.timesheets.projects.portfolio.viewMode.table": "Table",
1094
+ "staff.timesheets.projects.stats.active": "Active Projects",
1095
+ "staff.timesheets.projects.stats.onHold": "On Hold",
1096
+ "staff.timesheets.projects.stats.total": "Total Projects",
1097
+ "staff.timesheets.projects.statuses.active": "Active",
1098
+ "staff.timesheets.projects.statuses.all": "All",
1099
+ "staff.timesheets.projects.statuses.completed": "Completed",
1100
+ "staff.timesheets.projects.statuses.onHold": "On Hold",
1101
+ "staff.timesheets.projects.table.empty": "No projects yet.",
1102
+ "staff.timesheets.projects.table.name": "Name",
1103
+ "staff.timesheets.projects.table.search": "Search projects...",
1104
+ "staff.timesheets.projects.table.startDate": "Start Date",
1105
+ "staff.timesheets.projects.table.status": "Status",
1106
+ "staff.timesheets.projects.table.type": "Type",
1107
+ "staff.timesheets.projects.table.updatedAt": "Updated",
1108
+ "staff.timesheets.sidebar.timerRunning": "Timer läuft — klicken zum Anzeigen",
1109
+ "staff.timesheets.widgets.hoursByProject.empty": "No hours tracked in this period.",
1110
+ "staff.timesheets.widgets.hoursByProject.error": "Failed to load data",
1111
+ "staff.timesheets.widgets.hoursByProject.loading": "Loading...",
1112
+ "staff.timesheets.widgets.hoursByProject.settings.dateRange": "Date Range",
1113
+ "staff.timesheets.widgets.hoursByProject.total": "Total",
1114
+ "staff.timesheets.widgets.timeReporting.error": "Failed to load timer state",
1115
+ "staff.timesheets.widgets.timeReporting.loading": "Loading...",
1116
+ "staff.timesheets.widgets.timeReporting.noProjects": "No projects assigned.",
1117
+ "staff.timesheets.widgets.timeReporting.notRunning": "Not running",
1118
+ "staff.timesheets.widgets.timeReporting.notesPlaceholder": "What are you working on?",
1119
+ "staff.timesheets.widgets.timeReporting.project": "Project",
1120
+ "staff.timesheets.widgets.timeReporting.running": "Timer running",
1121
+ "staff.timesheets.widgets.timeReporting.selectProject": "Select project...",
1122
+ "staff.timesheets.widgets.timeReporting.settings.description": "No additional settings. Select a project and start tracking from the widget.",
1123
+ "staff.timesheets.widgets.timeReporting.start": "Start Timer",
1124
+ "staff.timesheets.widgets.timeReporting.startError": "Failed to start timer",
1125
+ "staff.timesheets.widgets.timeReporting.stop": "Stop Timer",
1126
+ "staff.timesheets.widgets.timeReporting.stopError": "Failed to stop timer",
1127
+ "staff.timesheets.widgets.timeReporting.taskNote": "Task / Note",
1128
+ "staff.timesheets.widgets.timeReporting.unknownProject": "Unknown project"
921
1129
  }
@@ -917,5 +917,213 @@
917
917
  "staff.teams.table.updatedAt": "Updated",
918
918
  "staff.teams.tabs.details": "Details",
919
919
  "staff.teams.tabs.label": "Team sections",
920
- "staff.teams.tabs.members": "Team members"
920
+ "staff.teams.tabs.members": "Team members",
921
+ "staff.timesheets.errors.entryNotFound": "Time entry not found, deleted, or not owned by you.",
922
+ "staff.timesheets.errors.noStaffMember": "No staff member linked to your account.",
923
+ "staff.timesheets.errors.notOwner": "You can only manage your own time entries.",
924
+ "staff.timesheets.errors.projectCodeDuplicate": "A project with this code already exists.",
925
+ "staff.timesheets.errors.projectNotFound": "Time project not found or not accessible.",
926
+ "staff.timesheets.errors.projectsKpis": "Failed to load project KPIs.",
927
+ "staff.timesheets.errors.staffMemberNotFound": "Staff member not found or not accessible.",
928
+ "staff.timesheets.my.addRow.createProject": "Create a new project",
929
+ "staff.timesheets.my.addRow.error": "Could not add the project. Please try again.",
930
+ "staff.timesheets.my.addRow.noProjects": "No projects assigned",
931
+ "staff.timesheets.my.addRow.searchPlaceholder": "Search by project",
932
+ "staff.timesheets.my.addRow.trigger": "Add row",
933
+ "staff.timesheets.my.calendar.lastWeek": "Last week",
934
+ "staff.timesheets.my.calendar.nextMonth": "Next month",
935
+ "staff.timesheets.my.calendar.open": "Open calendar",
936
+ "staff.timesheets.my.calendar.prevMonth": "Previous month",
937
+ "staff.timesheets.my.calendar.thisWeek": "This week",
938
+ "staff.timesheets.my.confirm_save.body": "Your timesheet entries will be saved.",
939
+ "staff.timesheets.my.confirm_save.title": "Save changes?",
940
+ "staff.timesheets.my.createProfile": "Create My Profile",
941
+ "staff.timesheets.my.daily_average": "Daily Average",
942
+ "staff.timesheets.my.daily_total": "Daily Total",
943
+ "staff.timesheets.my.durationPlaceholder": "0",
944
+ "staff.timesheets.my.errors.load": "Failed to load timesheets.",
945
+ "staff.timesheets.my.errors.save": "Failed to save timesheets.",
946
+ "staff.timesheets.my.errors.updateAssignment": "Failed to update projects.",
947
+ "staff.timesheets.my.list.addDescription": "Add description",
948
+ "staff.timesheets.my.list.noEntries": "No entries for this period.",
949
+ "staff.timesheets.my.list.today": "Today",
950
+ "staff.timesheets.my.list.yesterday": "Yesterday",
951
+ "staff.timesheets.my.loading": "Loading timesheets...",
952
+ "staff.timesheets.my.noProfile": "You need a Team Member profile to track time.",
953
+ "staff.timesheets.my.noProfile.title": "Set up your profile to start tracking time",
954
+ "staff.timesheets.my.noProjects": "No active projects. Create a project first.",
955
+ "staff.timesheets.my.noProjects.admin": "Create a project and assign yourself to start tracking time.",
956
+ "staff.timesheets.my.noProjects.createProject": "Create Project",
957
+ "staff.timesheets.my.noProjects.employee": "Ask your manager to assign you to a project.",
958
+ "staff.timesheets.my.noProjects.title": "No projects assigned yet",
959
+ "staff.timesheets.my.noProjects.viewProjects": "View Projects",
960
+ "staff.timesheets.my.project": "Project",
961
+ "staff.timesheets.my.removeRow": "Remove from grid",
962
+ "staff.timesheets.my.removeRow.confirm": "Remove {projectName} from your timesheet grid? You can re-add it anytime via \"+ Add row\".",
963
+ "staff.timesheets.my.removeRow.error": "Could not remove the project. Please try again.",
964
+ "staff.timesheets.my.save_changes": "Save Changes",
965
+ "staff.timesheets.my.saved": "Timesheet saved.",
966
+ "staff.timesheets.my.saving": "Saving...",
967
+ "staff.timesheets.my.status": "Status",
968
+ "staff.timesheets.my.status_open": "Open",
969
+ "staff.timesheets.my.timer.noProjects": "No projects found",
970
+ "staff.timesheets.my.timer.placeholder": "What are you working on?",
971
+ "staff.timesheets.my.timer.searchProject": "Search projects...",
972
+ "staff.timesheets.my.timer.selectProject": "Project",
973
+ "staff.timesheets.my.timer.start": "Start timer",
974
+ "staff.timesheets.my.timer.startError": "Failed to start timer",
975
+ "staff.timesheets.my.timer.stop": "Stop timer",
976
+ "staff.timesheets.my.timer.stopError": "Failed to stop timer",
977
+ "staff.timesheets.my.timerStart": "Start Timer",
978
+ "staff.timesheets.my.timerStop": "Stop Timer",
979
+ "staff.timesheets.my.total": "Total",
980
+ "staff.timesheets.my.total_hours": "Total Hours",
981
+ "staff.timesheets.my.unsaved": "Unsaved changes",
982
+ "staff.timesheets.my.viewMode.monthly": "Monthly",
983
+ "staff.timesheets.my.viewMode.weekly": "Weekly",
984
+ "staff.timesheets.my.viewType.list": "List view",
985
+ "staff.timesheets.my.viewType.timesheet": "Timesheet",
986
+ "staff.timesheets.my.weekTotal": "Week Total",
987
+ "staff.timesheets.my.working_days": "Working Days",
988
+ "staff.timesheets.nav.create_project": "Create Project",
989
+ "staff.timesheets.nav.edit_project": "Edit Project",
990
+ "staff.timesheets.nav.my_timesheets": "My Timesheets",
991
+ "staff.timesheets.nav.project_details": "Project Details",
992
+ "staff.timesheets.nav.projects": "Projects",
993
+ "staff.timesheets.projects.actions.add": "Add Project",
994
+ "staff.timesheets.projects.actions.addFirst": "+ Add first project",
995
+ "staff.timesheets.projects.actions.delete": "Delete",
996
+ "staff.timesheets.projects.actions.deleteConfirm": "Delete project \"{{name}}\"?",
997
+ "staff.timesheets.projects.actions.refresh": "Refresh",
998
+ "staff.timesheets.projects.actions.viewDetails": "View Details",
999
+ "staff.timesheets.projects.active_employees": "Active Employees",
1000
+ "staff.timesheets.projects.add_employee": "Add Employee",
1001
+ "staff.timesheets.projects.detail.subtitle": "Project Settings",
1002
+ "staff.timesheets.projects.employees.addError": "Failed to add employee.",
1003
+ "staff.timesheets.projects.employees.added": "Employee added.",
1004
+ "staff.timesheets.projects.employees.assignmentStartDate": "Assignment Start Date",
1005
+ "staff.timesheets.projects.employees.department": "Department",
1006
+ "staff.timesheets.projects.employees.empty": "No employees assigned yet.",
1007
+ "staff.timesheets.projects.employees.endDate": "Assignment end",
1008
+ "staff.timesheets.projects.employees.loading": "Loading employees...",
1009
+ "staff.timesheets.projects.employees.noResults": "No team members found",
1010
+ "staff.timesheets.projects.employees.remove": "Remove",
1011
+ "staff.timesheets.projects.employees.removeConfirm": "Remove this employee from the project?",
1012
+ "staff.timesheets.projects.employees.removeError": "Failed to remove employee.",
1013
+ "staff.timesheets.projects.employees.removed": "Employee removed.",
1014
+ "staff.timesheets.projects.employees.role": "Role",
1015
+ "staff.timesheets.projects.employees.roleOnProject": "Role on Project",
1016
+ "staff.timesheets.projects.employees.rolePlaceholder": "e.g. Developer, Designer...",
1017
+ "staff.timesheets.projects.employees.searchEmployee": "Search team members...",
1018
+ "staff.timesheets.projects.employees.selectEmployee": "Select Employee",
1019
+ "staff.timesheets.projects.employees.startDate": "Assignment start",
1020
+ "staff.timesheets.projects.employees.status": "Status",
1021
+ "staff.timesheets.projects.employees.title": "Assigned Employees",
1022
+ "staff.timesheets.projects.errors.delete": "Failed to delete project.",
1023
+ "staff.timesheets.projects.errors.fieldRequired": "Required",
1024
+ "staff.timesheets.projects.errors.load": "Failed to load project.",
1025
+ "staff.timesheets.projects.errors.notFound": "Project not found.",
1026
+ "staff.timesheets.projects.errors.required": "Name and code are required.",
1027
+ "staff.timesheets.projects.errors.save": "Failed to save project.",
1028
+ "staff.timesheets.projects.form.actions.cancel": "Cancel",
1029
+ "staff.timesheets.projects.form.actions.create": "Create",
1030
+ "staff.timesheets.projects.form.actions.edit": "Edit Project",
1031
+ "staff.timesheets.projects.form.actions.save": "Save",
1032
+ "staff.timesheets.projects.form.code": "Code",
1033
+ "staff.timesheets.projects.form.codePlaceholder": "PROJECT-001",
1034
+ "staff.timesheets.projects.form.color": "Project color",
1035
+ "staff.timesheets.projects.form.colorAuto": "Auto",
1036
+ "staff.timesheets.projects.form.costCenter": "Cost center",
1037
+ "staff.timesheets.projects.form.costCenterPlaceholder": "Cost center code",
1038
+ "staff.timesheets.projects.form.createTitle": "Create project",
1039
+ "staff.timesheets.projects.form.description": "Description",
1040
+ "staff.timesheets.projects.form.descriptionPlaceholder": "Project description",
1041
+ "staff.timesheets.projects.form.editTitle": "Edit project",
1042
+ "staff.timesheets.projects.form.groupDetails": "Additional Information",
1043
+ "staff.timesheets.projects.form.groupMain": "Project Details",
1044
+ "staff.timesheets.projects.form.name": "Name",
1045
+ "staff.timesheets.projects.form.namePlaceholder": "Project name",
1046
+ "staff.timesheets.projects.form.projectType": "Project type",
1047
+ "staff.timesheets.projects.form.projectTypePlaceholder": "e.g. Internal, Client, R&D",
1048
+ "staff.timesheets.projects.form.startDate": "Start date",
1049
+ "staff.timesheets.projects.form.status": "Status",
1050
+ "staff.timesheets.projects.inactive_employees": "Inactive Employees",
1051
+ "staff.timesheets.projects.loading": "Loading project...",
1052
+ "staff.timesheets.projects.messages.deleted": "Project deleted.",
1053
+ "staff.timesheets.projects.messages.saved": "Project saved.",
1054
+ "staff.timesheets.projects.page.description": "Manage time tracking projects.",
1055
+ "staff.timesheets.projects.page.title": "Projects",
1056
+ "staff.timesheets.projects.portfolio.card.hoursPanelCollab": "My hours · last 7w",
1057
+ "staff.timesheets.projects.portfolio.card.hoursPanelPm": "Team hours · last 7w",
1058
+ "staff.timesheets.projects.portfolio.card.role": "Role",
1059
+ "staff.timesheets.projects.portfolio.emptyState.noAssignments": "You aren't assigned to any projects yet. Ask a PM to add you.",
1060
+ "staff.timesheets.projects.portfolio.emptyState.noMatches": "No projects match these filters.",
1061
+ "staff.timesheets.projects.portfolio.emptyState.noProjects": "No projects yet.",
1062
+ "staff.timesheets.projects.portfolio.hoursWeek": "Hours / week",
1063
+ "staff.timesheets.projects.portfolio.kpi.assignedToMe": "Assigned to me",
1064
+ "staff.timesheets.projects.portfolio.kpi.deltaFlat": "no change",
1065
+ "staff.timesheets.projects.portfolio.kpi.hoursMonth": "Hours this month",
1066
+ "staff.timesheets.projects.portfolio.kpi.hoursMonthSub": "vs previous month",
1067
+ "staff.timesheets.projects.portfolio.kpi.hoursWeek": "Hours this week",
1068
+ "staff.timesheets.projects.portfolio.kpi.hoursWeekSub": "vs previous week",
1069
+ "staff.timesheets.projects.portfolio.kpi.myHoursMonth": "My hours this month",
1070
+ "staff.timesheets.projects.portfolio.kpi.myHoursWeek": "My hours this week",
1071
+ "staff.timesheets.projects.portfolio.kpi.myProjects": "My projects",
1072
+ "staff.timesheets.projects.portfolio.kpi.noPrevious": "no previous data",
1073
+ "staff.timesheets.projects.portfolio.kpi.onHold": "On Hold",
1074
+ "staff.timesheets.projects.portfolio.kpi.teamActive": "Active team",
1075
+ "staff.timesheets.projects.portfolio.kpi.teamActiveSub": "Members with entries this month",
1076
+ "staff.timesheets.projects.portfolio.kpi.totalProjects": "Total Projects",
1077
+ "staff.timesheets.projects.portfolio.myHoursWeek": "My hours / week",
1078
+ "staff.timesheets.projects.portfolio.myRole": "My role",
1079
+ "staff.timesheets.projects.portfolio.relativeTime.daysAgo": "{days}d ago",
1080
+ "staff.timesheets.projects.portfolio.relativeTime.hoursAgo": "{hours}h ago",
1081
+ "staff.timesheets.projects.portfolio.relativeTime.justNow": "just now",
1082
+ "staff.timesheets.projects.portfolio.relativeTime.minutesAgo": "{minutes}m ago",
1083
+ "staff.timesheets.projects.portfolio.savedViews.ariaLabel": "Saved views",
1084
+ "staff.timesheets.projects.portfolio.sparkline.ariaLabel": "Hours per week, last 7 weeks",
1085
+ "staff.timesheets.projects.portfolio.tabs.active": "Active",
1086
+ "staff.timesheets.projects.portfolio.tabs.all": "All",
1087
+ "staff.timesheets.projects.portfolio.tabs.completed": "Completed",
1088
+ "staff.timesheets.projects.portfolio.tabs.mine": "Mine",
1089
+ "staff.timesheets.projects.portfolio.tabs.onHold": "On Hold",
1090
+ "staff.timesheets.projects.portfolio.team": "Team",
1091
+ "staff.timesheets.projects.portfolio.viewMode.ariaLabel": "View mode",
1092
+ "staff.timesheets.projects.portfolio.viewMode.cards": "Cards",
1093
+ "staff.timesheets.projects.portfolio.viewMode.table": "Table",
1094
+ "staff.timesheets.projects.stats.active": "Active Projects",
1095
+ "staff.timesheets.projects.stats.onHold": "On Hold",
1096
+ "staff.timesheets.projects.stats.total": "Total Projects",
1097
+ "staff.timesheets.projects.statuses.active": "Active",
1098
+ "staff.timesheets.projects.statuses.all": "All",
1099
+ "staff.timesheets.projects.statuses.completed": "Completed",
1100
+ "staff.timesheets.projects.statuses.onHold": "On Hold",
1101
+ "staff.timesheets.projects.table.empty": "No projects yet.",
1102
+ "staff.timesheets.projects.table.name": "Name",
1103
+ "staff.timesheets.projects.table.search": "Search projects...",
1104
+ "staff.timesheets.projects.table.startDate": "Start Date",
1105
+ "staff.timesheets.projects.table.status": "Status",
1106
+ "staff.timesheets.projects.table.type": "Type",
1107
+ "staff.timesheets.projects.table.updatedAt": "Updated",
1108
+ "staff.timesheets.sidebar.timerRunning": "Timer running — click to view",
1109
+ "staff.timesheets.widgets.hoursByProject.empty": "No hours tracked in this period.",
1110
+ "staff.timesheets.widgets.hoursByProject.error": "Failed to load data",
1111
+ "staff.timesheets.widgets.hoursByProject.loading": "Loading...",
1112
+ "staff.timesheets.widgets.hoursByProject.settings.dateRange": "Date Range",
1113
+ "staff.timesheets.widgets.hoursByProject.total": "Total",
1114
+ "staff.timesheets.widgets.timeReporting.error": "Failed to load timer state",
1115
+ "staff.timesheets.widgets.timeReporting.loading": "Loading...",
1116
+ "staff.timesheets.widgets.timeReporting.noProjects": "No projects assigned.",
1117
+ "staff.timesheets.widgets.timeReporting.notRunning": "Not running",
1118
+ "staff.timesheets.widgets.timeReporting.notesPlaceholder": "What are you working on?",
1119
+ "staff.timesheets.widgets.timeReporting.project": "Project",
1120
+ "staff.timesheets.widgets.timeReporting.running": "Timer running",
1121
+ "staff.timesheets.widgets.timeReporting.selectProject": "Select project...",
1122
+ "staff.timesheets.widgets.timeReporting.settings.description": "No additional settings. Select a project and start tracking from the widget.",
1123
+ "staff.timesheets.widgets.timeReporting.start": "Start Timer",
1124
+ "staff.timesheets.widgets.timeReporting.startError": "Failed to start timer",
1125
+ "staff.timesheets.widgets.timeReporting.stop": "Stop Timer",
1126
+ "staff.timesheets.widgets.timeReporting.stopError": "Failed to stop timer",
1127
+ "staff.timesheets.widgets.timeReporting.taskNote": "Task / Note",
1128
+ "staff.timesheets.widgets.timeReporting.unknownProject": "Unknown project"
921
1129
  }