@corensystem/coren-ui 1.0.0-next.20260924.75108.887a9c2

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 (1671) hide show
  1. package/bin/intent.js +20 -0
  2. package/dist/accordion.d.mts +11 -0
  3. package/dist/accordion.d.mts.map +1 -0
  4. package/dist/accordion.mjs +42 -0
  5. package/dist/accordion.mjs.map +1 -0
  6. package/dist/activity-log.d.mts +29 -0
  7. package/dist/activity-log.d.mts.map +1 -0
  8. package/dist/activity-log.mjs +60 -0
  9. package/dist/activity-log.mjs.map +1 -0
  10. package/dist/activity-sheet.d.mts +18 -0
  11. package/dist/activity-sheet.d.mts.map +1 -0
  12. package/dist/activity-sheet.mjs +167 -0
  13. package/dist/activity-sheet.mjs.map +1 -0
  14. package/dist/add-clinic-location-dialog.d.mts +21 -0
  15. package/dist/add-clinic-location-dialog.d.mts.map +1 -0
  16. package/dist/add-clinic-location-dialog.mjs +96 -0
  17. package/dist/add-clinic-location-dialog.mjs.map +1 -0
  18. package/dist/add-clinic-visit-dialog.d.mts +51 -0
  19. package/dist/add-clinic-visit-dialog.d.mts.map +1 -0
  20. package/dist/add-clinic-visit-dialog.mjs +307 -0
  21. package/dist/add-clinic-visit-dialog.mjs.map +1 -0
  22. package/dist/add-observation-dialog.d.mts +36 -0
  23. package/dist/add-observation-dialog.d.mts.map +1 -0
  24. package/dist/add-observation-dialog.mjs +269 -0
  25. package/dist/add-observation-dialog.mjs.map +1 -0
  26. package/dist/alert-dialog.d.mts +24 -0
  27. package/dist/alert-dialog.d.mts.map +1 -0
  28. package/dist/alert-dialog.mjs +62 -0
  29. package/dist/alert-dialog.mjs.map +1 -0
  30. package/dist/alert.d.mts +12 -0
  31. package/dist/alert.d.mts.map +1 -0
  32. package/dist/alert.mjs +36 -0
  33. package/dist/alert.mjs.map +1 -0
  34. package/dist/app-card.d.mts +21 -0
  35. package/dist/app-card.d.mts.map +1 -0
  36. package/dist/app-card.mjs +49 -0
  37. package/dist/app-card.mjs.map +1 -0
  38. package/dist/app-shell.d.mts +39 -0
  39. package/dist/app-shell.d.mts.map +1 -0
  40. package/dist/app-shell.mjs +79 -0
  41. package/dist/app-shell.mjs.map +1 -0
  42. package/dist/aspect-ratio.d.mts +8 -0
  43. package/dist/aspect-ratio.d.mts.map +1 -0
  44. package/dist/aspect-ratio.mjs +14 -0
  45. package/dist/aspect-ratio.mjs.map +1 -0
  46. package/dist/asset-list-item.d.mts +36 -0
  47. package/dist/asset-list-item.d.mts.map +1 -0
  48. package/dist/asset-list-item.mjs +51 -0
  49. package/dist/asset-list-item.mjs.map +1 -0
  50. package/dist/assign-doctor-dialog.d.mts +28 -0
  51. package/dist/assign-doctor-dialog.d.mts.map +1 -0
  52. package/dist/assign-doctor-dialog.mjs +194 -0
  53. package/dist/assign-doctor-dialog.mjs.map +1 -0
  54. package/dist/attention-list.d.mts +29 -0
  55. package/dist/attention-list.d.mts.map +1 -0
  56. package/dist/attention-list.mjs +82 -0
  57. package/dist/attention-list.mjs.map +1 -0
  58. package/dist/avatar-status-dot.d.mts +22 -0
  59. package/dist/avatar-status-dot.d.mts.map +1 -0
  60. package/dist/avatar-status-dot.mjs +72 -0
  61. package/dist/avatar-status-dot.mjs.map +1 -0
  62. package/dist/avatar.d.mts +34 -0
  63. package/dist/avatar.d.mts.map +1 -0
  64. package/dist/avatar.mjs +103 -0
  65. package/dist/avatar.mjs.map +1 -0
  66. package/dist/badge.d.mts +18 -0
  67. package/dist/badge.d.mts.map +1 -0
  68. package/dist/badge.mjs +39 -0
  69. package/dist/badge.mjs.map +1 -0
  70. package/dist/banner.d.mts +18 -0
  71. package/dist/banner.d.mts.map +1 -0
  72. package/dist/banner.mjs +74 -0
  73. package/dist/banner.mjs.map +1 -0
  74. package/dist/blockquote.d.mts +13 -0
  75. package/dist/blockquote.d.mts.map +1 -0
  76. package/dist/blockquote.mjs +22 -0
  77. package/dist/blockquote.mjs.map +1 -0
  78. package/dist/blueprint-segment.d.mts +33 -0
  79. package/dist/blueprint-segment.d.mts.map +1 -0
  80. package/dist/blueprint-segment.mjs +59 -0
  81. package/dist/blueprint-segment.mjs.map +1 -0
  82. package/dist/bottom-sheet-switcher.d.mts +32 -0
  83. package/dist/bottom-sheet-switcher.d.mts.map +1 -0
  84. package/dist/bottom-sheet-switcher.mjs +40 -0
  85. package/dist/bottom-sheet-switcher.mjs.map +1 -0
  86. package/dist/bottom-sheet.d.mts +23 -0
  87. package/dist/bottom-sheet.d.mts.map +1 -0
  88. package/dist/bottom-sheet.mjs +91 -0
  89. package/dist/bottom-sheet.mjs.map +1 -0
  90. package/dist/breadcrumb.d.mts +39 -0
  91. package/dist/breadcrumb.d.mts.map +1 -0
  92. package/dist/breadcrumb.mjs +95 -0
  93. package/dist/breadcrumb.mjs.map +1 -0
  94. package/dist/breadcrumbs.d.mts +2 -0
  95. package/dist/breadcrumbs.mjs +2 -0
  96. package/dist/browser-tabs.d.mts +40 -0
  97. package/dist/browser-tabs.d.mts.map +1 -0
  98. package/dist/browser-tabs.mjs +127 -0
  99. package/dist/browser-tabs.mjs.map +1 -0
  100. package/dist/building-model-placeholder.d.mts +46 -0
  101. package/dist/building-model-placeholder.d.mts.map +1 -0
  102. package/dist/building-model-placeholder.mjs +175 -0
  103. package/dist/building-model-placeholder.mjs.map +1 -0
  104. package/dist/building-progress.d.mts +32 -0
  105. package/dist/building-progress.d.mts.map +1 -0
  106. package/dist/building-progress.mjs +74 -0
  107. package/dist/building-progress.mjs.map +1 -0
  108. package/dist/building-viewer.d.mts +91 -0
  109. package/dist/building-viewer.d.mts.map +1 -0
  110. package/dist/building-viewer.mjs +567 -0
  111. package/dist/building-viewer.mjs.map +1 -0
  112. package/dist/button-group.d.mts +8 -0
  113. package/dist/button-group.d.mts.map +1 -0
  114. package/dist/button-group.mjs +21 -0
  115. package/dist/button-group.mjs.map +1 -0
  116. package/dist/button.d.mts +21 -0
  117. package/dist/button.d.mts.map +1 -0
  118. package/dist/button.mjs +79 -0
  119. package/dist/button.mjs.map +1 -0
  120. package/dist/calendar-view.d.mts +47 -0
  121. package/dist/calendar-view.d.mts.map +1 -0
  122. package/dist/calendar-view.mjs +165 -0
  123. package/dist/calendar-view.mjs.map +1 -0
  124. package/dist/calendar.d.mts +15 -0
  125. package/dist/calendar.d.mts.map +1 -0
  126. package/dist/calendar.mjs +94 -0
  127. package/dist/calendar.mjs.map +1 -0
  128. package/dist/camera-detail-panel.d.mts +44 -0
  129. package/dist/camera-detail-panel.d.mts.map +1 -0
  130. package/dist/camera-detail-panel.mjs +105 -0
  131. package/dist/camera-detail-panel.mjs.map +1 -0
  132. package/dist/canvas-file-picker.d.mts +28 -0
  133. package/dist/canvas-file-picker.d.mts.map +1 -0
  134. package/dist/canvas-file-picker.mjs +90 -0
  135. package/dist/canvas-file-picker.mjs.map +1 -0
  136. package/dist/canvas-header.d.mts +28 -0
  137. package/dist/canvas-header.d.mts.map +1 -0
  138. package/dist/canvas-header.mjs +42 -0
  139. package/dist/canvas-header.mjs.map +1 -0
  140. package/dist/canvas-navigator.d.mts +87 -0
  141. package/dist/canvas-navigator.d.mts.map +1 -0
  142. package/dist/canvas-navigator.mjs +426 -0
  143. package/dist/canvas-navigator.mjs.map +1 -0
  144. package/dist/canvas-toolbar.d.mts +37 -0
  145. package/dist/canvas-toolbar.d.mts.map +1 -0
  146. package/dist/canvas-toolbar.mjs +65 -0
  147. package/dist/canvas-toolbar.mjs.map +1 -0
  148. package/dist/capture-route-minimap.d.mts +40 -0
  149. package/dist/capture-route-minimap.d.mts.map +1 -0
  150. package/dist/capture-route-minimap.mjs +438 -0
  151. package/dist/capture-route-minimap.mjs.map +1 -0
  152. package/dist/card.d.mts +17 -0
  153. package/dist/card.d.mts.map +1 -0
  154. package/dist/card.mjs +63 -0
  155. package/dist/card.mjs.map +1 -0
  156. package/dist/carousel.d.mts +23 -0
  157. package/dist/carousel.d.mts.map +1 -0
  158. package/dist/carousel.mjs +141 -0
  159. package/dist/carousel.mjs.map +1 -0
  160. package/dist/catalogue-view-toggle.d.mts +53 -0
  161. package/dist/catalogue-view-toggle.d.mts.map +1 -0
  162. package/dist/catalogue-view-toggle.mjs +54 -0
  163. package/dist/catalogue-view-toggle.mjs.map +1 -0
  164. package/dist/chart.d.mts +91 -0
  165. package/dist/chart.d.mts.map +1 -0
  166. package/dist/chart.mjs +254 -0
  167. package/dist/chart.mjs.map +1 -0
  168. package/dist/chat/core-ai-chat-header.d.mts +95 -0
  169. package/dist/chat/core-ai-chat-header.d.mts.map +1 -0
  170. package/dist/chat/core-ai-chat-header.mjs +237 -0
  171. package/dist/chat/core-ai-chat-header.mjs.map +1 -0
  172. package/dist/chat/core-ai-chat-message.d.mts +18 -0
  173. package/dist/chat/core-ai-chat-message.d.mts.map +1 -0
  174. package/dist/chat/core-ai-chat-message.mjs +82 -0
  175. package/dist/chat/core-ai-chat-message.mjs.map +1 -0
  176. package/dist/chat/core-ai-chat.d.mts +116 -0
  177. package/dist/chat/core-ai-chat.d.mts.map +1 -0
  178. package/dist/chat/core-ai-chat.mjs +325 -0
  179. package/dist/chat/core-ai-chat.mjs.map +1 -0
  180. package/dist/chat/core-chart-renderer.d.mts +10 -0
  181. package/dist/chat/core-chart-renderer.d.mts.map +1 -0
  182. package/dist/chat/core-chart-renderer.mjs +177 -0
  183. package/dist/chat/core-chart-renderer.mjs.map +1 -0
  184. package/dist/chat/core-chat-input.d.mts +9 -0
  185. package/dist/chat/core-chat-input.d.mts.map +1 -0
  186. package/dist/chat/core-chat-input.mjs +66 -0
  187. package/dist/chat/core-chat-input.mjs.map +1 -0
  188. package/dist/chat/core-chat-message.d.mts +11 -0
  189. package/dist/chat/core-chat-message.d.mts.map +1 -0
  190. package/dist/chat/core-chat-message.mjs +101 -0
  191. package/dist/chat/core-chat-message.mjs.map +1 -0
  192. package/dist/chat/core-chat-panel.d.mts +16 -0
  193. package/dist/chat/core-chat-panel.d.mts.map +1 -0
  194. package/dist/chat/core-chat-panel.mjs +139 -0
  195. package/dist/chat/core-chat-panel.mjs.map +1 -0
  196. package/dist/chat/core-chat-widget.d.mts +12 -0
  197. package/dist/chat/core-chat-widget.d.mts.map +1 -0
  198. package/dist/chat/core-chat-widget.mjs +116 -0
  199. package/dist/chat/core-chat-widget.mjs.map +1 -0
  200. package/dist/chat-layout.d.mts +38 -0
  201. package/dist/chat-layout.d.mts.map +1 -0
  202. package/dist/chat-layout.mjs +94 -0
  203. package/dist/chat-layout.mjs.map +1 -0
  204. package/dist/chat-message.d.mts +40 -0
  205. package/dist/chat-message.d.mts.map +1 -0
  206. package/dist/chat-message.mjs +84 -0
  207. package/dist/chat-message.mjs.map +1 -0
  208. package/dist/checkbox.d.mts +8 -0
  209. package/dist/checkbox.d.mts.map +1 -0
  210. package/dist/checkbox.mjs +22 -0
  211. package/dist/checkbox.mjs.map +1 -0
  212. package/dist/chip.d.mts +54 -0
  213. package/dist/chip.d.mts.map +1 -0
  214. package/dist/chip.mjs +142 -0
  215. package/dist/chip.mjs.map +1 -0
  216. package/dist/citation.d.mts +22 -0
  217. package/dist/citation.d.mts.map +1 -0
  218. package/dist/citation.mjs +70 -0
  219. package/dist/citation.mjs.map +1 -0
  220. package/dist/clickable-card.d.mts +28 -0
  221. package/dist/clickable-card.d.mts.map +1 -0
  222. package/dist/clickable-card.mjs +87 -0
  223. package/dist/clickable-card.mjs.map +1 -0
  224. package/dist/code.d.mts +21 -0
  225. package/dist/code.d.mts.map +1 -0
  226. package/dist/code.mjs +48 -0
  227. package/dist/code.mjs.map +1 -0
  228. package/dist/collapsible.d.mts +10 -0
  229. package/dist/collapsible.d.mts.map +1 -0
  230. package/dist/collapsible.mjs +16 -0
  231. package/dist/collapsible.mjs.map +1 -0
  232. package/dist/combobox.d.mts +116 -0
  233. package/dist/combobox.d.mts.map +1 -0
  234. package/dist/combobox.mjs +149 -0
  235. package/dist/combobox.mjs.map +1 -0
  236. package/dist/command-palette.d.mts +43 -0
  237. package/dist/command-palette.d.mts.map +1 -0
  238. package/dist/command-palette.mjs +70 -0
  239. package/dist/command-palette.mjs.map +1 -0
  240. package/dist/command.d.mts +91 -0
  241. package/dist/command.d.mts.map +1 -0
  242. package/dist/command.mjs +82 -0
  243. package/dist/command.mjs.map +1 -0
  244. package/dist/comment-composer.d.mts +29 -0
  245. package/dist/comment-composer.d.mts.map +1 -0
  246. package/dist/comment-composer.mjs +253 -0
  247. package/dist/comment-composer.mjs.map +1 -0
  248. package/dist/comment-thread.d.mts +66 -0
  249. package/dist/comment-thread.d.mts.map +1 -0
  250. package/dist/comment-thread.mjs +180 -0
  251. package/dist/comment-thread.mjs.map +1 -0
  252. package/dist/compare-bars.d.mts +29 -0
  253. package/dist/compare-bars.d.mts.map +1 -0
  254. package/dist/compare-bars.mjs +118 -0
  255. package/dist/compare-bars.mjs.map +1 -0
  256. package/dist/compare-view.d.mts +75 -0
  257. package/dist/compare-view.d.mts.map +1 -0
  258. package/dist/compare-view.mjs +383 -0
  259. package/dist/compare-view.mjs.map +1 -0
  260. package/dist/confirm-dialog.d.mts +37 -0
  261. package/dist/confirm-dialog.d.mts.map +1 -0
  262. package/dist/confirm-dialog.mjs +40 -0
  263. package/dist/confirm-dialog.mjs.map +1 -0
  264. package/dist/context-menu.d.mts +31 -0
  265. package/dist/context-menu.d.mts.map +1 -0
  266. package/dist/context-menu.mjs +84 -0
  267. package/dist/context-menu.mjs.map +1 -0
  268. package/dist/context-toolbar.d.mts +22 -0
  269. package/dist/context-toolbar.d.mts.map +1 -0
  270. package/dist/context-toolbar.mjs +81 -0
  271. package/dist/context-toolbar.mjs.map +1 -0
  272. package/dist/copy-button.d.mts +15 -0
  273. package/dist/copy-button.d.mts.map +1 -0
  274. package/dist/copy-button.mjs +33 -0
  275. package/dist/copy-button.mjs.map +1 -0
  276. package/dist/core-mark.d.mts +25 -0
  277. package/dist/core-mark.d.mts.map +1 -0
  278. package/dist/core-mark.mjs +74 -0
  279. package/dist/core-mark.mjs.map +1 -0
  280. package/dist/data/mock-data.d.mts +9 -0
  281. package/dist/data/mock-data.d.mts.map +1 -0
  282. package/dist/data/mock-data.mjs +159 -0
  283. package/dist/data/mock-data.mjs.map +1 -0
  284. package/dist/data/rnglf-zones.d.mts +17 -0
  285. package/dist/data/rnglf-zones.d.mts.map +1 -0
  286. package/dist/data/rnglf-zones.mjs +1400 -0
  287. package/dist/data/rnglf-zones.mjs.map +1 -0
  288. package/dist/data-table.d.mts +202 -0
  289. package/dist/data-table.d.mts.map +1 -0
  290. package/dist/data-table.mjs +520 -0
  291. package/dist/data-table.mjs.map +1 -0
  292. package/dist/date-picker.d.mts +111 -0
  293. package/dist/date-picker.d.mts.map +1 -0
  294. package/dist/date-picker.mjs +546 -0
  295. package/dist/date-picker.mjs.map +1 -0
  296. package/dist/date-range-input.d.mts +26 -0
  297. package/dist/date-range-input.d.mts.map +1 -0
  298. package/dist/date-range-input.mjs +60 -0
  299. package/dist/date-range-input.mjs.map +1 -0
  300. package/dist/date-time-input.d.mts +27 -0
  301. package/dist/date-time-input.d.mts.map +1 -0
  302. package/dist/date-time-input.mjs +110 -0
  303. package/dist/date-time-input.mjs.map +1 -0
  304. package/dist/detail-panel-shell.d.mts +37 -0
  305. package/dist/detail-panel-shell.d.mts.map +1 -0
  306. package/dist/detail-panel-shell.mjs +86 -0
  307. package/dist/detail-panel-shell.mjs.map +1 -0
  308. package/dist/dialog.d.mts +105 -0
  309. package/dist/dialog.d.mts.map +1 -0
  310. package/dist/dialog.mjs +137 -0
  311. package/dist/dialog.mjs.map +1 -0
  312. package/dist/divider.d.mts +8 -0
  313. package/dist/divider.d.mts.map +1 -0
  314. package/dist/divider.mjs +18 -0
  315. package/dist/divider.mjs.map +1 -0
  316. package/dist/drawer.d.mts +26 -0
  317. package/dist/drawer.d.mts.map +1 -0
  318. package/dist/drawer.mjs +53 -0
  319. package/dist/drawer.mjs.map +1 -0
  320. package/dist/drawing-actions.d.mts +29 -0
  321. package/dist/drawing-actions.d.mts.map +1 -0
  322. package/dist/drawing-actions.mjs +124 -0
  323. package/dist/drawing-actions.mjs.map +1 -0
  324. package/dist/dropdown-menu.d.mts +31 -0
  325. package/dist/dropdown-menu.d.mts.map +1 -0
  326. package/dist/dropdown-menu.mjs +84 -0
  327. package/dist/dropdown-menu.mjs.map +1 -0
  328. package/dist/empty.d.mts +34 -0
  329. package/dist/empty.d.mts.map +1 -0
  330. package/dist/empty.mjs +119 -0
  331. package/dist/empty.mjs.map +1 -0
  332. package/dist/error-page.d.mts +20 -0
  333. package/dist/error-page.d.mts.map +1 -0
  334. package/dist/error-page.mjs +96 -0
  335. package/dist/error-page.mjs.map +1 -0
  336. package/dist/export-dialog.d.mts +58 -0
  337. package/dist/export-dialog.d.mts.map +1 -0
  338. package/dist/export-dialog.mjs +248 -0
  339. package/dist/export-dialog.mjs.map +1 -0
  340. package/dist/field.d.mts +11 -0
  341. package/dist/field.d.mts.map +1 -0
  342. package/dist/field.mjs +34 -0
  343. package/dist/field.mjs.map +1 -0
  344. package/dist/file-input.d.mts +17 -0
  345. package/dist/file-input.d.mts.map +1 -0
  346. package/dist/file-input.mjs +114 -0
  347. package/dist/file-input.mjs.map +1 -0
  348. package/dist/file-system/context.d.mts +28 -0
  349. package/dist/file-system/context.d.mts.map +1 -0
  350. package/dist/file-system/context.mjs +42 -0
  351. package/dist/file-system/context.mjs.map +1 -0
  352. package/dist/file-system/file-system-details.d.mts +12 -0
  353. package/dist/file-system/file-system-details.d.mts.map +1 -0
  354. package/dist/file-system/file-system-details.mjs +166 -0
  355. package/dist/file-system/file-system-details.mjs.map +1 -0
  356. package/dist/file-system/file-system-filters.d.mts +16 -0
  357. package/dist/file-system/file-system-filters.d.mts.map +1 -0
  358. package/dist/file-system/file-system-filters.mjs +205 -0
  359. package/dist/file-system/file-system-filters.mjs.map +1 -0
  360. package/dist/file-system/file-system-new.d.mts +16 -0
  361. package/dist/file-system/file-system-new.d.mts.map +1 -0
  362. package/dist/file-system/file-system-new.mjs +204 -0
  363. package/dist/file-system/file-system-new.mjs.map +1 -0
  364. package/dist/file-system/file-system-path.d.mts +7 -0
  365. package/dist/file-system/file-system-path.d.mts.map +1 -0
  366. package/dist/file-system/file-system-path.mjs +22 -0
  367. package/dist/file-system/file-system-path.mjs.map +1 -0
  368. package/dist/file-system/file-system-project.d.mts +16 -0
  369. package/dist/file-system/file-system-project.d.mts.map +1 -0
  370. package/dist/file-system/file-system-project.mjs +253 -0
  371. package/dist/file-system/file-system-project.mjs.map +1 -0
  372. package/dist/file-system/file-system-table.d.mts +17 -0
  373. package/dist/file-system/file-system-table.d.mts.map +1 -0
  374. package/dist/file-system/file-system-table.mjs +95 -0
  375. package/dist/file-system/file-system-table.mjs.map +1 -0
  376. package/dist/file-system/file-system.d.mts +35 -0
  377. package/dist/file-system/file-system.d.mts.map +1 -0
  378. package/dist/file-system/file-system.mjs +179 -0
  379. package/dist/file-system/file-system.mjs.map +1 -0
  380. package/dist/file-system/index.d.mts +9 -0
  381. package/dist/file-system/index.mjs +9 -0
  382. package/dist/file-system/model.d.mts +156 -0
  383. package/dist/file-system/model.d.mts.map +1 -0
  384. package/dist/file-system/model.mjs +200 -0
  385. package/dist/file-system/model.mjs.map +1 -0
  386. package/dist/filter.d.mts +92 -0
  387. package/dist/filter.d.mts.map +1 -0
  388. package/dist/filter.mjs +267 -0
  389. package/dist/filter.mjs.map +1 -0
  390. package/dist/float-shadow.d.mts +10 -0
  391. package/dist/float-shadow.d.mts.map +1 -0
  392. package/dist/float-shadow.mjs +11 -0
  393. package/dist/float-shadow.mjs.map +1 -0
  394. package/dist/floating-assistant.d.mts +75 -0
  395. package/dist/floating-assistant.d.mts.map +1 -0
  396. package/dist/floating-assistant.mjs +114 -0
  397. package/dist/floating-assistant.mjs.map +1 -0
  398. package/dist/floor-progress-bar.d.mts +17 -0
  399. package/dist/floor-progress-bar.d.mts.map +1 -0
  400. package/dist/floor-progress-bar.mjs +38 -0
  401. package/dist/floor-progress-bar.mjs.map +1 -0
  402. package/dist/fonts/LICENSE.md +41 -0
  403. package/dist/fonts/figtree-italic-300-900-latin-ext.woff2 +0 -0
  404. package/dist/fonts/figtree-italic-300-900-latin.woff2 +0 -0
  405. package/dist/fonts/figtree-normal-300-900-latin-ext.woff2 +0 -0
  406. package/dist/fonts/figtree-normal-300-900-latin.woff2 +0 -0
  407. package/dist/fonts/ibm-plex-mono-italic-400-latin-ext.woff2 +0 -0
  408. package/dist/fonts/ibm-plex-mono-italic-400-latin.woff2 +0 -0
  409. package/dist/fonts/ibm-plex-mono-normal-400-latin-ext.woff2 +0 -0
  410. package/dist/fonts/ibm-plex-mono-normal-400-latin.woff2 +0 -0
  411. package/dist/fonts/ibm-plex-mono-normal-500-latin-ext.woff2 +0 -0
  412. package/dist/fonts/ibm-plex-mono-normal-500-latin.woff2 +0 -0
  413. package/dist/fonts/ibm-plex-mono-normal-600-latin-ext.woff2 +0 -0
  414. package/dist/fonts/ibm-plex-mono-normal-600-latin.woff2 +0 -0
  415. package/dist/fonts/lora-italic-400-700-latin-ext.woff2 +0 -0
  416. package/dist/fonts/lora-italic-400-700-latin.woff2 +0 -0
  417. package/dist/fonts/lora-normal-400-700-latin-ext.woff2 +0 -0
  418. package/dist/fonts/lora-normal-400-700-latin.woff2 +0 -0
  419. package/dist/footprint-viewer.d.mts +88 -0
  420. package/dist/footprint-viewer.d.mts.map +1 -0
  421. package/dist/footprint-viewer.mjs +657 -0
  422. package/dist/footprint-viewer.mjs.map +1 -0
  423. package/dist/form-action-bar.d.mts +32 -0
  424. package/dist/form-action-bar.d.mts.map +1 -0
  425. package/dist/form-action-bar.mjs +42 -0
  426. package/dist/form-action-bar.mjs.map +1 -0
  427. package/dist/form-dialog.d.mts +116 -0
  428. package/dist/form-dialog.d.mts.map +1 -0
  429. package/dist/form-dialog.mjs +149 -0
  430. package/dist/form-dialog.mjs.map +1 -0
  431. package/dist/form-layout.d.mts +33 -0
  432. package/dist/form-layout.d.mts.map +1 -0
  433. package/dist/form-layout.mjs +90 -0
  434. package/dist/form-layout.mjs.map +1 -0
  435. package/dist/form.d.mts +29 -0
  436. package/dist/form.d.mts.map +1 -0
  437. package/dist/form.mjs +93 -0
  438. package/dist/form.mjs.map +1 -0
  439. package/dist/fragment-viewer/cinematic.d.mts +76 -0
  440. package/dist/fragment-viewer/cinematic.d.mts.map +1 -0
  441. package/dist/fragment-viewer/cinematic.mjs +382 -0
  442. package/dist/fragment-viewer/cinematic.mjs.map +1 -0
  443. package/dist/fragment-viewer/context.d.mts +106 -0
  444. package/dist/fragment-viewer/context.d.mts.map +1 -0
  445. package/dist/fragment-viewer/context.mjs +168 -0
  446. package/dist/fragment-viewer/context.mjs.map +1 -0
  447. package/dist/fragment-viewer/runtime.d.mts +288 -0
  448. package/dist/fragment-viewer/runtime.d.mts.map +1 -0
  449. package/dist/fragment-viewer/runtime.mjs +782 -0
  450. package/dist/fragment-viewer/runtime.mjs.map +1 -0
  451. package/dist/fragment-viewer.d.mts +62 -0
  452. package/dist/fragment-viewer.d.mts.map +1 -0
  453. package/dist/fragment-viewer.mjs +144 -0
  454. package/dist/fragment-viewer.mjs.map +1 -0
  455. package/dist/gantt.d.mts +72 -0
  456. package/dist/gantt.d.mts.map +1 -0
  457. package/dist/gantt.mjs +281 -0
  458. package/dist/gantt.mjs.map +1 -0
  459. package/dist/graph-canvas.d.mts +60 -0
  460. package/dist/graph-canvas.d.mts.map +1 -0
  461. package/dist/graph-canvas.mjs +105 -0
  462. package/dist/graph-canvas.mjs.map +1 -0
  463. package/dist/grid.d.mts +16 -0
  464. package/dist/grid.d.mts.map +1 -0
  465. package/dist/grid.mjs +47 -0
  466. package/dist/grid.mjs.map +1 -0
  467. package/dist/heading.d.mts +16 -0
  468. package/dist/heading.d.mts.map +1 -0
  469. package/dist/heading.mjs +43 -0
  470. package/dist/heading.mjs.map +1 -0
  471. package/dist/house-shape.d.mts +22 -0
  472. package/dist/house-shape.d.mts.map +1 -0
  473. package/dist/house-shape.mjs +103 -0
  474. package/dist/house-shape.mjs.map +1 -0
  475. package/dist/hover-card.d.mts +10 -0
  476. package/dist/hover-card.d.mts.map +1 -0
  477. package/dist/hover-card.mjs +22 -0
  478. package/dist/hover-card.mjs.map +1 -0
  479. package/dist/icon-button.d.mts +20 -0
  480. package/dist/icon-button.d.mts.map +1 -0
  481. package/dist/icon-button.mjs +52 -0
  482. package/dist/icon-button.mjs.map +1 -0
  483. package/dist/icon.d.mts +16 -0
  484. package/dist/icon.d.mts.map +1 -0
  485. package/dist/icon.mjs +32 -0
  486. package/dist/icon.mjs.map +1 -0
  487. package/dist/image-zoom.d.mts +23 -0
  488. package/dist/image-zoom.d.mts.map +1 -0
  489. package/dist/image-zoom.mjs +51 -0
  490. package/dist/image-zoom.mjs.map +1 -0
  491. package/dist/index.d.mts +3 -0
  492. package/dist/index.mjs +2 -0
  493. package/dist/inline-comment-composer.d.mts +40 -0
  494. package/dist/inline-comment-composer.d.mts.map +1 -0
  495. package/dist/inline-comment-composer.mjs +174 -0
  496. package/dist/inline-comment-composer.mjs.map +1 -0
  497. package/dist/input-group.d.mts +8 -0
  498. package/dist/input-group.d.mts.map +1 -0
  499. package/dist/input-group.mjs +21 -0
  500. package/dist/input-group.mjs.map +1 -0
  501. package/dist/input-otp.d.mts +40 -0
  502. package/dist/input-otp.d.mts.map +1 -0
  503. package/dist/input-otp.mjs +44 -0
  504. package/dist/input-otp.mjs.map +1 -0
  505. package/dist/input.d.mts +7 -0
  506. package/dist/input.d.mts.map +1 -0
  507. package/dist/input.mjs +18 -0
  508. package/dist/input.mjs.map +1 -0
  509. package/dist/item.d.mts +10 -0
  510. package/dist/item.d.mts.map +1 -0
  511. package/dist/item.mjs +33 -0
  512. package/dist/item.mjs.map +1 -0
  513. package/dist/kbd.d.mts +8 -0
  514. package/dist/kbd.d.mts.map +1 -0
  515. package/dist/kbd.mjs +15 -0
  516. package/dist/kbd.mjs.map +1 -0
  517. package/dist/kiosk-body.d.mts +13 -0
  518. package/dist/kiosk-body.d.mts.map +1 -0
  519. package/dist/kiosk-body.mjs +352 -0
  520. package/dist/kiosk-body.mjs.map +1 -0
  521. package/dist/kpi-bar.d.mts +29 -0
  522. package/dist/kpi-bar.d.mts.map +1 -0
  523. package/dist/kpi-bar.mjs +46 -0
  524. package/dist/kpi-bar.mjs.map +1 -0
  525. package/dist/kpi-summary.d.mts +24 -0
  526. package/dist/kpi-summary.d.mts.map +1 -0
  527. package/dist/kpi-summary.mjs +22 -0
  528. package/dist/kpi-summary.mjs.map +1 -0
  529. package/dist/label.d.mts +19 -0
  530. package/dist/label.d.mts.map +1 -0
  531. package/dist/label.mjs +27 -0
  532. package/dist/label.mjs.map +1 -0
  533. package/dist/legend.d.mts +87 -0
  534. package/dist/legend.d.mts.map +1 -0
  535. package/dist/legend.mjs +210 -0
  536. package/dist/legend.mjs.map +1 -0
  537. package/dist/lightbox.d.mts +28 -0
  538. package/dist/lightbox.d.mts.map +1 -0
  539. package/dist/lightbox.mjs +142 -0
  540. package/dist/lightbox.mjs.map +1 -0
  541. package/dist/link-type-detail.d.mts +73 -0
  542. package/dist/link-type-detail.d.mts.map +1 -0
  543. package/dist/link-type-detail.mjs +628 -0
  544. package/dist/link-type-detail.mjs.map +1 -0
  545. package/dist/link-type-wizard.d.mts +35 -0
  546. package/dist/link-type-wizard.d.mts.map +1 -0
  547. package/dist/link-type-wizard.mjs +303 -0
  548. package/dist/link-type-wizard.mjs.map +1 -0
  549. package/dist/link.d.mts +14 -0
  550. package/dist/link.d.mts.map +1 -0
  551. package/dist/link.mjs +30 -0
  552. package/dist/link.mjs.map +1 -0
  553. package/dist/list.d.mts +19 -0
  554. package/dist/list.d.mts.map +1 -0
  555. package/dist/list.mjs +27 -0
  556. package/dist/list.mjs.map +1 -0
  557. package/dist/map-compare-layout.d.mts +53 -0
  558. package/dist/map-compare-layout.d.mts.map +1 -0
  559. package/dist/map-compare-layout.mjs +164 -0
  560. package/dist/map-compare-layout.mjs.map +1 -0
  561. package/dist/map-compass.d.mts +22 -0
  562. package/dist/map-compass.d.mts.map +1 -0
  563. package/dist/map-compass.mjs +56 -0
  564. package/dist/map-compass.mjs.map +1 -0
  565. package/dist/map-control-panel.d.mts +92 -0
  566. package/dist/map-control-panel.d.mts.map +1 -0
  567. package/dist/map-control-panel.mjs +153 -0
  568. package/dist/map-control-panel.mjs.map +1 -0
  569. package/dist/map-controls.d.mts +24 -0
  570. package/dist/map-controls.d.mts.map +1 -0
  571. package/dist/map-controls.mjs +322 -0
  572. package/dist/map-controls.mjs.map +1 -0
  573. package/dist/map-hover-card.d.mts +28 -0
  574. package/dist/map-hover-card.d.mts.map +1 -0
  575. package/dist/map-hover-card.mjs +56 -0
  576. package/dist/map-hover-card.mjs.map +1 -0
  577. package/dist/map-legend.d.mts +41 -0
  578. package/dist/map-legend.d.mts.map +1 -0
  579. package/dist/map-legend.mjs +97 -0
  580. package/dist/map-legend.mjs.map +1 -0
  581. package/dist/map-minimap.d.mts +44 -0
  582. package/dist/map-minimap.d.mts.map +1 -0
  583. package/dist/map-minimap.mjs +108 -0
  584. package/dist/map-minimap.mjs.map +1 -0
  585. package/dist/map-toolbar.d.mts +60 -0
  586. package/dist/map-toolbar.d.mts.map +1 -0
  587. package/dist/map-toolbar.mjs +195 -0
  588. package/dist/map-toolbar.mjs.map +1 -0
  589. package/dist/map-transition.d.mts +51 -0
  590. package/dist/map-transition.d.mts.map +1 -0
  591. package/dist/map-transition.mjs +59 -0
  592. package/dist/map-transition.mjs.map +1 -0
  593. package/dist/map.d.mts +14 -0
  594. package/dist/map.d.mts.map +1 -0
  595. package/dist/map.mjs +47 -0
  596. package/dist/map.mjs.map +1 -0
  597. package/dist/mapbox-token.d.mts +12 -0
  598. package/dist/mapbox-token.d.mts.map +1 -0
  599. package/dist/mapbox-token.mjs +15 -0
  600. package/dist/mapbox-token.mjs.map +1 -0
  601. package/dist/markdown.d.mts +18 -0
  602. package/dist/markdown.d.mts.map +1 -0
  603. package/dist/markdown.mjs +41 -0
  604. package/dist/markdown.mjs.map +1 -0
  605. package/dist/mega-menu.d.mts +36 -0
  606. package/dist/mega-menu.d.mts.map +1 -0
  607. package/dist/mega-menu.mjs +89 -0
  608. package/dist/mega-menu.mjs.map +1 -0
  609. package/dist/menubar.d.mts +32 -0
  610. package/dist/menubar.d.mts.map +1 -0
  611. package/dist/menubar.mjs +96 -0
  612. package/dist/menubar.mjs.map +1 -0
  613. package/dist/metadata-list.d.mts +2 -0
  614. package/dist/metadata-list.mjs +2 -0
  615. package/dist/metric-card.d.mts +28 -0
  616. package/dist/metric-card.d.mts.map +1 -0
  617. package/dist/metric-card.mjs +55 -0
  618. package/dist/metric-card.mjs.map +1 -0
  619. package/dist/milestone-table.d.mts +35 -0
  620. package/dist/milestone-table.d.mts.map +1 -0
  621. package/dist/milestone-table.mjs +84 -0
  622. package/dist/milestone-table.mjs.map +1 -0
  623. package/dist/minimap.d.mts +23 -0
  624. package/dist/minimap.d.mts.map +1 -0
  625. package/dist/minimap.mjs +64 -0
  626. package/dist/minimap.mjs.map +1 -0
  627. package/dist/more-menu.d.mts +27 -0
  628. package/dist/more-menu.d.mts.map +1 -0
  629. package/dist/more-menu.mjs +34 -0
  630. package/dist/more-menu.mjs.map +1 -0
  631. package/dist/multi-select.d.mts +38 -0
  632. package/dist/multi-select.d.mts.map +1 -0
  633. package/dist/multi-select.mjs +106 -0
  634. package/dist/multi-select.mjs.map +1 -0
  635. package/dist/navigation/core-app-sidebar.d.mts +461 -0
  636. package/dist/navigation/core-app-sidebar.d.mts.map +1 -0
  637. package/dist/navigation/core-app-sidebar.mjs +1288 -0
  638. package/dist/navigation/core-app-sidebar.mjs.map +1 -0
  639. package/dist/navigation/core-app-top-bar.d.mts +116 -0
  640. package/dist/navigation/core-app-top-bar.d.mts.map +1 -0
  641. package/dist/navigation/core-app-top-bar.mjs +224 -0
  642. package/dist/navigation/core-app-top-bar.mjs.map +1 -0
  643. package/dist/navigation/core-context-tabs.d.mts +12 -0
  644. package/dist/navigation/core-context-tabs.d.mts.map +1 -0
  645. package/dist/navigation/core-context-tabs.mjs +32 -0
  646. package/dist/navigation/core-context-tabs.mjs.map +1 -0
  647. package/dist/navigation/core-dashboard-header.d.mts +20 -0
  648. package/dist/navigation/core-dashboard-header.d.mts.map +1 -0
  649. package/dist/navigation/core-dashboard-header.mjs +227 -0
  650. package/dist/navigation/core-dashboard-header.mjs.map +1 -0
  651. package/dist/navigation/core-filter-strip.d.mts +12 -0
  652. package/dist/navigation/core-filter-strip.d.mts.map +1 -0
  653. package/dist/navigation/core-filter-strip.mjs +289 -0
  654. package/dist/navigation/core-filter-strip.mjs.map +1 -0
  655. package/dist/navigation/core-org-project-switcher.d.mts +12 -0
  656. package/dist/navigation/core-org-project-switcher.d.mts.map +1 -0
  657. package/dist/navigation/core-org-project-switcher.mjs +201 -0
  658. package/dist/navigation/core-org-project-switcher.mjs.map +1 -0
  659. package/dist/navigation/switcher.d.mts +38 -0
  660. package/dist/navigation/switcher.d.mts.map +1 -0
  661. package/dist/navigation/switcher.mjs +144 -0
  662. package/dist/navigation/switcher.mjs.map +1 -0
  663. package/dist/navigation-menu.d.mts +16 -0
  664. package/dist/navigation-menu.d.mts.map +1 -0
  665. package/dist/navigation-menu.mjs +64 -0
  666. package/dist/navigation-menu.mjs.map +1 -0
  667. package/dist/neighborhood-scene.d.mts +21 -0
  668. package/dist/neighborhood-scene.d.mts.map +1 -0
  669. package/dist/neighborhood-scene.mjs +285 -0
  670. package/dist/neighborhood-scene.mjs.map +1 -0
  671. package/dist/node-graph.d.mts +154 -0
  672. package/dist/node-graph.d.mts.map +1 -0
  673. package/dist/node-graph.mjs +349 -0
  674. package/dist/node-graph.mjs.map +1 -0
  675. package/dist/notification-center.d.mts +40 -0
  676. package/dist/notification-center.d.mts.map +1 -0
  677. package/dist/notification-center.mjs +224 -0
  678. package/dist/notification-center.mjs.map +1 -0
  679. package/dist/number-input.d.mts +23 -0
  680. package/dist/number-input.d.mts.map +1 -0
  681. package/dist/number-input.mjs +79 -0
  682. package/dist/number-input.mjs.map +1 -0
  683. package/dist/object-drawing-toolbar.d.mts +38 -0
  684. package/dist/object-drawing-toolbar.d.mts.map +1 -0
  685. package/dist/object-drawing-toolbar.mjs +172 -0
  686. package/dist/object-drawing-toolbar.mjs.map +1 -0
  687. package/dist/object-type-detail.d.mts +27 -0
  688. package/dist/object-type-detail.d.mts.map +1 -0
  689. package/dist/object-type-detail.mjs +1389 -0
  690. package/dist/object-type-detail.mjs.map +1 -0
  691. package/dist/object-type-wizard.d.mts +78 -0
  692. package/dist/object-type-wizard.d.mts.map +1 -0
  693. package/dist/object-type-wizard.mjs +885 -0
  694. package/dist/object-type-wizard.mjs.map +1 -0
  695. package/dist/observation-detail-panel.d.mts +89 -0
  696. package/dist/observation-detail-panel.d.mts.map +1 -0
  697. package/dist/observation-detail-panel.mjs +168 -0
  698. package/dist/observation-detail-panel.mjs.map +1 -0
  699. package/dist/observations-map.d.mts +288 -0
  700. package/dist/observations-map.d.mts.map +1 -0
  701. package/dist/observations-map.mjs +1087 -0
  702. package/dist/observations-map.mjs.map +1 -0
  703. package/dist/operations-drawer.d.mts +51 -0
  704. package/dist/operations-drawer.d.mts.map +1 -0
  705. package/dist/operations-drawer.mjs +193 -0
  706. package/dist/operations-drawer.mjs.map +1 -0
  707. package/dist/outline.d.mts +27 -0
  708. package/dist/outline.d.mts.map +1 -0
  709. package/dist/outline.mjs +47 -0
  710. package/dist/outline.mjs.map +1 -0
  711. package/dist/overflow-list.d.mts +23 -0
  712. package/dist/overflow-list.d.mts.map +1 -0
  713. package/dist/overflow-list.mjs +38 -0
  714. package/dist/overflow-list.mjs.map +1 -0
  715. package/dist/overlay.d.mts +17 -0
  716. package/dist/overlay.d.mts.map +1 -0
  717. package/dist/overlay.mjs +32 -0
  718. package/dist/overlay.mjs.map +1 -0
  719. package/dist/page-content-header.d.mts +43 -0
  720. package/dist/page-content-header.d.mts.map +1 -0
  721. package/dist/page-content-header.mjs +224 -0
  722. package/dist/page-content-header.mjs.map +1 -0
  723. package/dist/pages/almanar-blocks-data.d.mts +4 -0
  724. package/dist/pages/almanar-blocks-data.d.mts.map +1 -0
  725. package/dist/pages/almanar-blocks-data.mjs +691 -0
  726. package/dist/pages/almanar-blocks-data.mjs.map +1 -0
  727. package/dist/pages/almanar-hierarchy-data.d.mts +9 -0
  728. package/dist/pages/almanar-hierarchy-data.d.mts.map +1 -0
  729. package/dist/pages/almanar-hierarchy-data.mjs +816 -0
  730. package/dist/pages/almanar-hierarchy-data.mjs.map +1 -0
  731. package/dist/pages/almanar-villa-taxonomy.d.mts +9 -0
  732. package/dist/pages/almanar-villa-taxonomy.d.mts.map +1 -0
  733. package/dist/pages/almanar-villa-taxonomy.mjs +1569 -0
  734. package/dist/pages/almanar-villa-taxonomy.mjs.map +1 -0
  735. package/dist/pages/app-marketplace-shared.d.mts +146 -0
  736. package/dist/pages/app-marketplace-shared.d.mts.map +1 -0
  737. package/dist/pages/app-marketplace-shared.mjs +739 -0
  738. package/dist/pages/app-marketplace-shared.mjs.map +1 -0
  739. package/dist/pages/capture-ui-enhanced.d.mts +125 -0
  740. package/dist/pages/capture-ui-enhanced.d.mts.map +1 -0
  741. package/dist/pages/capture-ui-enhanced.mjs +915 -0
  742. package/dist/pages/capture-ui-enhanced.mjs.map +1 -0
  743. package/dist/pages/core-admin-panel.d.mts +10 -0
  744. package/dist/pages/core-admin-panel.d.mts.map +1 -0
  745. package/dist/pages/core-admin-panel.mjs +3076 -0
  746. package/dist/pages/core-admin-panel.mjs.map +1 -0
  747. package/dist/pages/core-analytics-overview.d.mts +10 -0
  748. package/dist/pages/core-analytics-overview.d.mts.map +1 -0
  749. package/dist/pages/core-analytics-overview.mjs +904 -0
  750. package/dist/pages/core-analytics-overview.mjs.map +1 -0
  751. package/dist/pages/core-app-installer.d.mts +17 -0
  752. package/dist/pages/core-app-installer.d.mts.map +1 -0
  753. package/dist/pages/core-app-installer.mjs +94 -0
  754. package/dist/pages/core-app-installer.mjs.map +1 -0
  755. package/dist/pages/core-blueprint-viewer-3.d.mts +25 -0
  756. package/dist/pages/core-blueprint-viewer-3.d.mts.map +1 -0
  757. package/dist/pages/core-blueprint-viewer-3.mjs +688 -0
  758. package/dist/pages/core-blueprint-viewer-3.mjs.map +1 -0
  759. package/dist/pages/core-blueprint-viewer.d.mts +14 -0
  760. package/dist/pages/core-blueprint-viewer.d.mts.map +1 -0
  761. package/dist/pages/core-blueprint-viewer.mjs +665 -0
  762. package/dist/pages/core-blueprint-viewer.mjs.map +1 -0
  763. package/dist/pages/core-building-viewer-capture.d.mts +18 -0
  764. package/dist/pages/core-building-viewer-capture.d.mts.map +1 -0
  765. package/dist/pages/core-building-viewer-capture.mjs +268 -0
  766. package/dist/pages/core-building-viewer-capture.mjs.map +1 -0
  767. package/dist/pages/core-building-viewer.d.mts +20 -0
  768. package/dist/pages/core-building-viewer.d.mts.map +1 -0
  769. package/dist/pages/core-building-viewer.mjs +299 -0
  770. package/dist/pages/core-building-viewer.mjs.map +1 -0
  771. package/dist/pages/core-clinic.d.mts +14 -0
  772. package/dist/pages/core-clinic.d.mts.map +1 -0
  773. package/dist/pages/core-clinic.mjs +2175 -0
  774. package/dist/pages/core-clinic.mjs.map +1 -0
  775. package/dist/pages/core-content-area.d.mts +15 -0
  776. package/dist/pages/core-content-area.d.mts.map +1 -0
  777. package/dist/pages/core-content-area.mjs +192 -0
  778. package/dist/pages/core-content-area.mjs.map +1 -0
  779. package/dist/pages/core-core-connect-v3.d.mts +16 -0
  780. package/dist/pages/core-core-connect-v3.d.mts.map +1 -0
  781. package/dist/pages/core-core-connect-v3.mjs +30 -0
  782. package/dist/pages/core-core-connect-v3.mjs.map +1 -0
  783. package/dist/pages/core-core-connect.d.mts +15 -0
  784. package/dist/pages/core-core-connect.d.mts.map +1 -0
  785. package/dist/pages/core-core-connect.mjs +21 -0
  786. package/dist/pages/core-core-connect.mjs.map +1 -0
  787. package/dist/pages/core-design-canvas.d.mts +10 -0
  788. package/dist/pages/core-design-canvas.d.mts.map +1 -0
  789. package/dist/pages/core-design-canvas.mjs +322 -0
  790. package/dist/pages/core-design-canvas.mjs.map +1 -0
  791. package/dist/pages/core-login-page.d.mts +8 -0
  792. package/dist/pages/core-login-page.d.mts.map +1 -0
  793. package/dist/pages/core-login-page.mjs +141 -0
  794. package/dist/pages/core-login-page.mjs.map +1 -0
  795. package/dist/pages/core-map-compare-layout.d.mts +20 -0
  796. package/dist/pages/core-map-compare-layout.d.mts.map +1 -0
  797. package/dist/pages/core-map-compare-layout.mjs +187 -0
  798. package/dist/pages/core-map-compare-layout.mjs.map +1 -0
  799. package/dist/pages/core-observations-map-view.d.mts +19 -0
  800. package/dist/pages/core-observations-map-view.d.mts.map +1 -0
  801. package/dist/pages/core-observations-map-view.mjs +1273 -0
  802. package/dist/pages/core-observations-map-view.mjs.map +1 -0
  803. package/dist/pages/core-org-ai-report.d.mts +9 -0
  804. package/dist/pages/core-org-ai-report.d.mts.map +1 -0
  805. package/dist/pages/core-org-ai-report.mjs +474 -0
  806. package/dist/pages/core-org-ai-report.mjs.map +1 -0
  807. package/dist/pages/core-org-overview.d.mts +11 -0
  808. package/dist/pages/core-org-overview.d.mts.map +1 -0
  809. package/dist/pages/core-org-overview.mjs +718 -0
  810. package/dist/pages/core-org-overview.mjs.map +1 -0
  811. package/dist/pages/core-org-performance.d.mts +11 -0
  812. package/dist/pages/core-org-performance.d.mts.map +1 -0
  813. package/dist/pages/core-org-performance.mjs +1398 -0
  814. package/dist/pages/core-org-performance.mjs.map +1 -0
  815. package/dist/pages/core-org-reality-capture.d.mts +10 -0
  816. package/dist/pages/core-org-reality-capture.d.mts.map +1 -0
  817. package/dist/pages/core-org-reality-capture.mjs +1962 -0
  818. package/dist/pages/core-org-reality-capture.mjs.map +1 -0
  819. package/dist/pages/core-org-workforce-intelligence.d.mts +12 -0
  820. package/dist/pages/core-org-workforce-intelligence.d.mts.map +1 -0
  821. package/dist/pages/core-org-workforce-intelligence.mjs +1215 -0
  822. package/dist/pages/core-org-workforce-intelligence.mjs.map +1 -0
  823. package/dist/pages/core-progress-details.d.mts +10 -0
  824. package/dist/pages/core-progress-details.d.mts.map +1 -0
  825. package/dist/pages/core-progress-details.mjs +758 -0
  826. package/dist/pages/core-progress-details.mjs.map +1 -0
  827. package/dist/pages/core-project-overview.d.mts +9 -0
  828. package/dist/pages/core-project-overview.d.mts.map +1 -0
  829. package/dist/pages/core-project-overview.mjs +246 -0
  830. package/dist/pages/core-project-overview.mjs.map +1 -0
  831. package/dist/pages/core-project-quality-issues.d.mts +9 -0
  832. package/dist/pages/core-project-quality-issues.d.mts.map +1 -0
  833. package/dist/pages/core-project-quality-issues.mjs +508 -0
  834. package/dist/pages/core-project-quality-issues.mjs.map +1 -0
  835. package/dist/pages/core-project-reality-capture.d.mts +9 -0
  836. package/dist/pages/core-project-reality-capture.d.mts.map +1 -0
  837. package/dist/pages/core-project-reality-capture.mjs +496 -0
  838. package/dist/pages/core-project-reality-capture.mjs.map +1 -0
  839. package/dist/pages/core-project-schedule-cost.d.mts +9 -0
  840. package/dist/pages/core-project-schedule-cost.d.mts.map +1 -0
  841. package/dist/pages/core-project-schedule-cost.mjs +548 -0
  842. package/dist/pages/core-project-schedule-cost.mjs.map +1 -0
  843. package/dist/pages/core-project-setup.d.mts +10 -0
  844. package/dist/pages/core-project-setup.d.mts.map +1 -0
  845. package/dist/pages/core-project-setup.mjs +283 -0
  846. package/dist/pages/core-project-setup.mjs.map +1 -0
  847. package/dist/pages/core-project-workforce-safety.d.mts +9 -0
  848. package/dist/pages/core-project-workforce-safety.d.mts.map +1 -0
  849. package/dist/pages/core-project-workforce-safety.mjs +465 -0
  850. package/dist/pages/core-project-workforce-safety.mjs.map +1 -0
  851. package/dist/pages/core-safety-manager.d.mts +14 -0
  852. package/dist/pages/core-safety-manager.d.mts.map +1 -0
  853. package/dist/pages/core-safety-manager.mjs +3081 -0
  854. package/dist/pages/core-safety-manager.mjs.map +1 -0
  855. package/dist/pages/core-site-reality.d.mts +25 -0
  856. package/dist/pages/core-site-reality.d.mts.map +1 -0
  857. package/dist/pages/core-site-reality.mjs +505 -0
  858. package/dist/pages/core-site-reality.mjs.map +1 -0
  859. package/dist/pages/core-task-monitor.d.mts +4 -0
  860. package/dist/pages/core-task-monitor.d.mts.map +1 -0
  861. package/dist/pages/core-task-monitor.mjs +587 -0
  862. package/dist/pages/core-task-monitor.mjs.map +1 -0
  863. package/dist/pages/core-timesheet.d.mts +2 -0
  864. package/dist/pages/core-timesheet.mjs +2 -0
  865. package/dist/pages/core-verifytime-command-center.d.mts +4 -0
  866. package/dist/pages/core-verifytime-command-center.d.mts.map +1 -0
  867. package/dist/pages/core-verifytime-command-center.mjs +1089 -0
  868. package/dist/pages/core-verifytime-command-center.mjs.map +1 -0
  869. package/dist/pages/core-wc3-workspace.d.mts +71 -0
  870. package/dist/pages/core-wc3-workspace.d.mts.map +1 -0
  871. package/dist/pages/core-wc3-workspace.mjs +1015 -0
  872. package/dist/pages/core-wc3-workspace.mjs.map +1 -0
  873. package/dist/pages/core-work-permit.d.mts +14 -0
  874. package/dist/pages/core-work-permit.d.mts.map +1 -0
  875. package/dist/pages/core-work-permit.mjs +281 -0
  876. package/dist/pages/core-work-permit.mjs.map +1 -0
  877. package/dist/pages/core-workforce.d.mts +24 -0
  878. package/dist/pages/core-workforce.d.mts.map +1 -0
  879. package/dist/pages/core-workforce.mjs +1253 -0
  880. package/dist/pages/core-workforce.mjs.map +1 -0
  881. package/dist/pages/org-logos.d.mts +9 -0
  882. package/dist/pages/org-logos.d.mts.map +1 -0
  883. package/dist/pages/org-logos.mjs +11 -0
  884. package/dist/pages/org-logos.mjs.map +1 -0
  885. package/dist/pages/state-machine-fixtures.d.mts +34 -0
  886. package/dist/pages/state-machine-fixtures.d.mts.map +1 -0
  887. package/dist/pages/state-machine-fixtures.mjs +73 -0
  888. package/dist/pages/state-machine-fixtures.mjs.map +1 -0
  889. package/dist/pages/state-machine.d.mts +407 -0
  890. package/dist/pages/state-machine.d.mts.map +1 -0
  891. package/dist/pages/state-machine.mjs +2254 -0
  892. package/dist/pages/state-machine.mjs.map +1 -0
  893. package/dist/pages/typeform/AttachmentInput.d.mts +11 -0
  894. package/dist/pages/typeform/AttachmentInput.d.mts.map +1 -0
  895. package/dist/pages/typeform/AttachmentInput.mjs +59 -0
  896. package/dist/pages/typeform/AttachmentInput.mjs.map +1 -0
  897. package/dist/pages/typeform/BuildMethodScreen.d.mts +10 -0
  898. package/dist/pages/typeform/BuildMethodScreen.d.mts.map +1 -0
  899. package/dist/pages/typeform/BuildMethodScreen.mjs +176 -0
  900. package/dist/pages/typeform/BuildMethodScreen.mjs.map +1 -0
  901. package/dist/pages/typeform/BuilderFlow.d.mts +29 -0
  902. package/dist/pages/typeform/BuilderFlow.d.mts.map +1 -0
  903. package/dist/pages/typeform/BuilderFlow.mjs +111 -0
  904. package/dist/pages/typeform/BuilderFlow.mjs.map +1 -0
  905. package/dist/pages/typeform/BuilderScreen.d.mts +14 -0
  906. package/dist/pages/typeform/BuilderScreen.d.mts.map +1 -0
  907. package/dist/pages/typeform/BuilderScreen.mjs +668 -0
  908. package/dist/pages/typeform/BuilderScreen.mjs.map +1 -0
  909. package/dist/pages/typeform/DataSourceSelect.d.mts +13 -0
  910. package/dist/pages/typeform/DataSourceSelect.d.mts.map +1 -0
  911. package/dist/pages/typeform/DataSourceSelect.mjs +36 -0
  912. package/dist/pages/typeform/DataSourceSelect.mjs.map +1 -0
  913. package/dist/pages/typeform/DerivedCountDisplay.d.mts +10 -0
  914. package/dist/pages/typeform/DerivedCountDisplay.d.mts.map +1 -0
  915. package/dist/pages/typeform/DerivedCountDisplay.mjs +20 -0
  916. package/dist/pages/typeform/DerivedCountDisplay.mjs.map +1 -0
  917. package/dist/pages/typeform/FillerRJSF.d.mts +10 -0
  918. package/dist/pages/typeform/FillerRJSF.d.mts.map +1 -0
  919. package/dist/pages/typeform/FillerRJSF.mjs +314 -0
  920. package/dist/pages/typeform/FillerRJSF.mjs.map +1 -0
  921. package/dist/pages/typeform/FormBuilderWidgetRJSF.d.mts +9 -0
  922. package/dist/pages/typeform/FormBuilderWidgetRJSF.d.mts.map +1 -0
  923. package/dist/pages/typeform/FormBuilderWidgetRJSF.mjs +22 -0
  924. package/dist/pages/typeform/FormBuilderWidgetRJSF.mjs.map +1 -0
  925. package/dist/pages/typeform/PublishScreen.d.mts +18 -0
  926. package/dist/pages/typeform/PublishScreen.d.mts.map +1 -0
  927. package/dist/pages/typeform/PublishScreen.mjs +163 -0
  928. package/dist/pages/typeform/PublishScreen.mjs.map +1 -0
  929. package/dist/pages/typeform/QuestionInspector.d.mts +7 -0
  930. package/dist/pages/typeform/QuestionInspector.d.mts.map +1 -0
  931. package/dist/pages/typeform/QuestionInspector.mjs +749 -0
  932. package/dist/pages/typeform/QuestionInspector.mjs.map +1 -0
  933. package/dist/pages/typeform/QuestionRenderer.d.mts +23 -0
  934. package/dist/pages/typeform/QuestionRenderer.d.mts.map +1 -0
  935. package/dist/pages/typeform/QuestionRenderer.mjs +170 -0
  936. package/dist/pages/typeform/QuestionRenderer.mjs.map +1 -0
  937. package/dist/pages/typeform/RatingInput.d.mts +14 -0
  938. package/dist/pages/typeform/RatingInput.d.mts.map +1 -0
  939. package/dist/pages/typeform/RatingInput.mjs +58 -0
  940. package/dist/pages/typeform/RatingInput.mjs.map +1 -0
  941. package/dist/pages/typeform/RuleGroupEditor.d.mts +9 -0
  942. package/dist/pages/typeform/RuleGroupEditor.d.mts.map +1 -0
  943. package/dist/pages/typeform/RuleGroupEditor.mjs +183 -0
  944. package/dist/pages/typeform/RuleGroupEditor.mjs.map +1 -0
  945. package/dist/pages/typeform/SignaturePad.d.mts +11 -0
  946. package/dist/pages/typeform/SignaturePad.d.mts.map +1 -0
  947. package/dist/pages/typeform/SignaturePad.mjs +111 -0
  948. package/dist/pages/typeform/SignaturePad.mjs.map +1 -0
  949. package/dist/pages/typeform/TableInput.d.mts +15 -0
  950. package/dist/pages/typeform/TableInput.d.mts.map +1 -0
  951. package/dist/pages/typeform/TableInput.mjs +73 -0
  952. package/dist/pages/typeform/TableInput.mjs.map +1 -0
  953. package/dist/pages/typeform/WorkspaceScreen.d.mts +20 -0
  954. package/dist/pages/typeform/WorkspaceScreen.d.mts.map +1 -0
  955. package/dist/pages/typeform/WorkspaceScreen.mjs +158 -0
  956. package/dist/pages/typeform/WorkspaceScreen.mjs.map +1 -0
  957. package/dist/pages/typeform/coreRjsfTheme.d.mts +4 -0
  958. package/dist/pages/typeform/coreRjsfTheme.d.mts.map +1 -0
  959. package/dist/pages/typeform/coreRjsfTheme.mjs +142 -0
  960. package/dist/pages/typeform/coreRjsfTheme.mjs.map +1 -0
  961. package/dist/pages/typeform/dataSources.d.mts +35 -0
  962. package/dist/pages/typeform/dataSources.d.mts.map +1 -0
  963. package/dist/pages/typeform/dataSources.mjs +210 -0
  964. package/dist/pages/typeform/dataSources.mjs.map +1 -0
  965. package/dist/pages/typeform/fillerShared.d.mts +21 -0
  966. package/dist/pages/typeform/fillerShared.d.mts.map +1 -0
  967. package/dist/pages/typeform/fillerShared.mjs +112 -0
  968. package/dist/pages/typeform/fillerShared.mjs.map +1 -0
  969. package/dist/pages/typeform/logic.d.mts +46 -0
  970. package/dist/pages/typeform/logic.d.mts.map +1 -0
  971. package/dist/pages/typeform/logic.mjs +193 -0
  972. package/dist/pages/typeform/logic.mjs.map +1 -0
  973. package/dist/pages/typeform/model.d.mts +144 -0
  974. package/dist/pages/typeform/model.d.mts.map +1 -0
  975. package/dist/pages/typeform/model.mjs +328 -0
  976. package/dist/pages/typeform/model.mjs.map +1 -0
  977. package/dist/pages/typeform/schemaToJsonSchema.d.mts +9 -0
  978. package/dist/pages/typeform/schemaToJsonSchema.d.mts.map +1 -0
  979. package/dist/pages/typeform/schemaToJsonSchema.mjs +119 -0
  980. package/dist/pages/typeform/schemaToJsonSchema.mjs.map +1 -0
  981. package/dist/pages/typeform/useFormBuilder.d.mts +34 -0
  982. package/dist/pages/typeform/useFormBuilder.d.mts.map +1 -0
  983. package/dist/pages/typeform/useFormBuilder.mjs +389 -0
  984. package/dist/pages/typeform/useFormBuilder.mjs.map +1 -0
  985. package/dist/pages/view-mode-thumbs.d.mts +6 -0
  986. package/dist/pages/view-mode-thumbs.d.mts.map +1 -0
  987. package/dist/pages/view-mode-thumbs.mjs +8 -0
  988. package/dist/pages/view-mode-thumbs.mjs.map +1 -0
  989. package/dist/pages/wc3-action-type-detail.d.mts +166 -0
  990. package/dist/pages/wc3-action-type-detail.d.mts.map +1 -0
  991. package/dist/pages/wc3-action-type-detail.mjs +2182 -0
  992. package/dist/pages/wc3-action-type-detail.mjs.map +1 -0
  993. package/dist/pages/wc3-action-type-run-dialog.d.mts +23 -0
  994. package/dist/pages/wc3-action-type-run-dialog.d.mts.map +1 -0
  995. package/dist/pages/wc3-action-type-run-dialog.mjs +383 -0
  996. package/dist/pages/wc3-action-type-run-dialog.mjs.map +1 -0
  997. package/dist/pages/wc3-action-type-wizard.d.mts +75 -0
  998. package/dist/pages/wc3-action-type-wizard.d.mts.map +1 -0
  999. package/dist/pages/wc3-action-type-wizard.mjs +702 -0
  1000. package/dist/pages/wc3-action-type-wizard.mjs.map +1 -0
  1001. package/dist/pages/wc3-analysis-data-view.d.mts +15 -0
  1002. package/dist/pages/wc3-analysis-data-view.d.mts.map +1 -0
  1003. package/dist/pages/wc3-analysis-data-view.mjs +129 -0
  1004. package/dist/pages/wc3-analysis-data-view.mjs.map +1 -0
  1005. package/dist/pages/wc3-analysis-data.d.mts +181 -0
  1006. package/dist/pages/wc3-analysis-data.d.mts.map +1 -0
  1007. package/dist/pages/wc3-analysis-data.mjs +4074 -0
  1008. package/dist/pages/wc3-analysis-data.mjs.map +1 -0
  1009. package/dist/pages/wc3-analysis-object-view.d.mts +12 -0
  1010. package/dist/pages/wc3-analysis-object-view.d.mts.map +1 -0
  1011. package/dist/pages/wc3-analysis-object-view.mjs +196 -0
  1012. package/dist/pages/wc3-analysis-object-view.mjs.map +1 -0
  1013. package/dist/pages/wc3-analysis-saved-view.d.mts +6 -0
  1014. package/dist/pages/wc3-analysis-saved-view.d.mts.map +1 -0
  1015. package/dist/pages/wc3-analysis-saved-view.mjs +540 -0
  1016. package/dist/pages/wc3-analysis-saved-view.mjs.map +1 -0
  1017. package/dist/pages/wc3-analysis-shared.d.mts +346 -0
  1018. package/dist/pages/wc3-analysis-shared.d.mts.map +1 -0
  1019. package/dist/pages/wc3-analysis-shared.mjs +1119 -0
  1020. package/dist/pages/wc3-analysis-shared.mjs.map +1 -0
  1021. package/dist/pages/wc3-analysis-views.d.mts +25 -0
  1022. package/dist/pages/wc3-analysis-views.d.mts.map +1 -0
  1023. package/dist/pages/wc3-analysis-views.mjs +48 -0
  1024. package/dist/pages/wc3-analysis-views.mjs.map +1 -0
  1025. package/dist/pages/wc3-fs-data.d.mts +12 -0
  1026. package/dist/pages/wc3-fs-data.d.mts.map +1 -0
  1027. package/dist/pages/wc3-fs-data.mjs +745 -0
  1028. package/dist/pages/wc3-fs-data.mjs.map +1 -0
  1029. package/dist/pages/wc3-fs-location-field.d.mts +13 -0
  1030. package/dist/pages/wc3-fs-location-field.d.mts.map +1 -0
  1031. package/dist/pages/wc3-fs-location-field.mjs +56 -0
  1032. package/dist/pages/wc3-fs-location-field.mjs.map +1 -0
  1033. package/dist/pages/wc3-fs-path-label.d.mts +12 -0
  1034. package/dist/pages/wc3-fs-path-label.d.mts.map +1 -0
  1035. package/dist/pages/wc3-fs-path-label.mjs +36 -0
  1036. package/dist/pages/wc3-fs-path-label.mjs.map +1 -0
  1037. package/dist/pages/wc3-fs-records.d.mts +17 -0
  1038. package/dist/pages/wc3-fs-records.d.mts.map +1 -0
  1039. package/dist/pages/wc3-fs-records.mjs +107 -0
  1040. package/dist/pages/wc3-fs-records.mjs.map +1 -0
  1041. package/dist/pages/wc3-fs-store.d.mts +43 -0
  1042. package/dist/pages/wc3-fs-store.d.mts.map +1 -0
  1043. package/dist/pages/wc3-fs-store.mjs +81 -0
  1044. package/dist/pages/wc3-fs-store.mjs.map +1 -0
  1045. package/dist/pages/wc3-fs-types.d.mts +19 -0
  1046. package/dist/pages/wc3-fs-types.d.mts.map +1 -0
  1047. package/dist/pages/wc3-fs-types.mjs +66 -0
  1048. package/dist/pages/wc3-fs-types.mjs.map +1 -0
  1049. package/dist/pages/wc3-graph-explorer-flow.d.mts +14 -0
  1050. package/dist/pages/wc3-graph-explorer-flow.d.mts.map +1 -0
  1051. package/dist/pages/wc3-graph-explorer-flow.mjs +275 -0
  1052. package/dist/pages/wc3-graph-explorer-flow.mjs.map +1 -0
  1053. package/dist/pages/wc3-group-detail.d.mts +26 -0
  1054. package/dist/pages/wc3-group-detail.d.mts.map +1 -0
  1055. package/dist/pages/wc3-group-detail.mjs +358 -0
  1056. package/dist/pages/wc3-group-detail.mjs.map +1 -0
  1057. package/dist/pages/wc3-group-wizard.d.mts +28 -0
  1058. package/dist/pages/wc3-group-wizard.d.mts.map +1 -0
  1059. package/dist/pages/wc3-group-wizard.mjs +120 -0
  1060. package/dist/pages/wc3-group-wizard.mjs.map +1 -0
  1061. package/dist/pages/wc3-health-view.d.mts +34 -0
  1062. package/dist/pages/wc3-health-view.d.mts.map +1 -0
  1063. package/dist/pages/wc3-health-view.mjs +413 -0
  1064. package/dist/pages/wc3-health-view.mjs.map +1 -0
  1065. package/dist/pages/wc3-home-view.d.mts +24 -0
  1066. package/dist/pages/wc3-home-view.d.mts.map +1 -0
  1067. package/dist/pages/wc3-home-view.mjs +59 -0
  1068. package/dist/pages/wc3-home-view.mjs.map +1 -0
  1069. package/dist/pages/wc3-interface-detail.d.mts +66 -0
  1070. package/dist/pages/wc3-interface-detail.d.mts.map +1 -0
  1071. package/dist/pages/wc3-interface-detail.mjs +1060 -0
  1072. package/dist/pages/wc3-interface-detail.mjs.map +1 -0
  1073. package/dist/pages/wc3-interface-wizard.d.mts +39 -0
  1074. package/dist/pages/wc3-interface-wizard.d.mts.map +1 -0
  1075. package/dist/pages/wc3-interface-wizard.mjs +226 -0
  1076. package/dist/pages/wc3-interface-wizard.mjs.map +1 -0
  1077. package/dist/pages/wc3-lineage-data-view.d.mts +6 -0
  1078. package/dist/pages/wc3-lineage-data-view.d.mts.map +1 -0
  1079. package/dist/pages/wc3-lineage-data-view.mjs +481 -0
  1080. package/dist/pages/wc3-lineage-data-view.mjs.map +1 -0
  1081. package/dist/pages/wc3-lineage-data.d.mts +191 -0
  1082. package/dist/pages/wc3-lineage-data.d.mts.map +1 -0
  1083. package/dist/pages/wc3-lineage-data.mjs +1061 -0
  1084. package/dist/pages/wc3-lineage-data.mjs.map +1 -0
  1085. package/dist/pages/wc3-lineage-impact-view.d.mts +13 -0
  1086. package/dist/pages/wc3-lineage-impact-view.d.mts.map +1 -0
  1087. package/dist/pages/wc3-lineage-impact-view.mjs +247 -0
  1088. package/dist/pages/wc3-lineage-impact-view.mjs.map +1 -0
  1089. package/dist/pages/wc3-lineage-shared.d.mts +137 -0
  1090. package/dist/pages/wc3-lineage-shared.d.mts.map +1 -0
  1091. package/dist/pages/wc3-lineage-shared.mjs +150 -0
  1092. package/dist/pages/wc3-lineage-shared.mjs.map +1 -0
  1093. package/dist/pages/wc3-lineage-views.d.mts +7 -0
  1094. package/dist/pages/wc3-lineage-views.d.mts.map +1 -0
  1095. package/dist/pages/wc3-lineage-views.mjs +13 -0
  1096. package/dist/pages/wc3-lineage-views.mjs.map +1 -0
  1097. package/dist/pages/wc3-lineage-workflow-view.d.mts +12 -0
  1098. package/dist/pages/wc3-lineage-workflow-view.d.mts.map +1 -0
  1099. package/dist/pages/wc3-lineage-workflow-view.mjs +326 -0
  1100. package/dist/pages/wc3-lineage-workflow-view.mjs.map +1 -0
  1101. package/dist/pages/wc3-object-type-detail.d.mts +18 -0
  1102. package/dist/pages/wc3-object-type-detail.d.mts.map +1 -0
  1103. package/dist/pages/wc3-object-type-detail.mjs +977 -0
  1104. package/dist/pages/wc3-object-type-detail.mjs.map +1 -0
  1105. package/dist/pages/wc3-ontology-data.d.mts +246 -0
  1106. package/dist/pages/wc3-ontology-data.d.mts.map +1 -0
  1107. package/dist/pages/wc3-ontology-data.mjs +8542 -0
  1108. package/dist/pages/wc3-ontology-data.mjs.map +1 -0
  1109. package/dist/pages/wc3-ontology-glyphs.d.mts +14 -0
  1110. package/dist/pages/wc3-ontology-glyphs.d.mts.map +1 -0
  1111. package/dist/pages/wc3-ontology-glyphs.mjs +53 -0
  1112. package/dist/pages/wc3-ontology-glyphs.mjs.map +1 -0
  1113. package/dist/pages/wc3-ontology-scope.d.mts +62 -0
  1114. package/dist/pages/wc3-ontology-scope.d.mts.map +1 -0
  1115. package/dist/pages/wc3-ontology-scope.mjs +109 -0
  1116. package/dist/pages/wc3-ontology-scope.mjs.map +1 -0
  1117. package/dist/pages/wc3-ontology-views.d.mts +34 -0
  1118. package/dist/pages/wc3-ontology-views.d.mts.map +1 -0
  1119. package/dist/pages/wc3-ontology-views.mjs +1253 -0
  1120. package/dist/pages/wc3-ontology-views.mjs.map +1 -0
  1121. package/dist/pages/wc3-permit-policy.d.mts +56 -0
  1122. package/dist/pages/wc3-permit-policy.d.mts.map +1 -0
  1123. package/dist/pages/wc3-permit-policy.mjs +478 -0
  1124. package/dist/pages/wc3-permit-policy.mjs.map +1 -0
  1125. package/dist/pages/wc3-pipeline-detail.d.mts +13 -0
  1126. package/dist/pages/wc3-pipeline-detail.d.mts.map +1 -0
  1127. package/dist/pages/wc3-pipeline-detail.mjs +818 -0
  1128. package/dist/pages/wc3-pipeline-detail.mjs.map +1 -0
  1129. package/dist/pages/wc3-pipeline-list-view.d.mts +5 -0
  1130. package/dist/pages/wc3-pipeline-list-view.d.mts.map +1 -0
  1131. package/dist/pages/wc3-pipeline-list-view.mjs +692 -0
  1132. package/dist/pages/wc3-pipeline-list-view.mjs.map +1 -0
  1133. package/dist/pages/wc3-pipeline-shared.d.mts +301 -0
  1134. package/dist/pages/wc3-pipeline-shared.d.mts.map +1 -0
  1135. package/dist/pages/wc3-pipeline-shared.mjs +703 -0
  1136. package/dist/pages/wc3-pipeline-shared.mjs.map +1 -0
  1137. package/dist/pages/wc3-pipeline-side-views.d.mts +7 -0
  1138. package/dist/pages/wc3-pipeline-side-views.d.mts.map +1 -0
  1139. package/dist/pages/wc3-pipeline-side-views.mjs +998 -0
  1140. package/dist/pages/wc3-pipeline-side-views.mjs.map +1 -0
  1141. package/dist/pages/wc3-pipeline-views.d.mts +15 -0
  1142. package/dist/pages/wc3-pipeline-views.d.mts.map +1 -0
  1143. package/dist/pages/wc3-pipeline-views.mjs +23 -0
  1144. package/dist/pages/wc3-pipeline-views.mjs.map +1 -0
  1145. package/dist/pages/wc3-process-bottlenecks.d.mts +22 -0
  1146. package/dist/pages/wc3-process-bottlenecks.d.mts.map +1 -0
  1147. package/dist/pages/wc3-process-bottlenecks.mjs +352 -0
  1148. package/dist/pages/wc3-process-bottlenecks.mjs.map +1 -0
  1149. package/dist/pages/wc3-process-create.d.mts +24 -0
  1150. package/dist/pages/wc3-process-create.d.mts.map +1 -0
  1151. package/dist/pages/wc3-process-create.mjs +230 -0
  1152. package/dist/pages/wc3-process-create.mjs.map +1 -0
  1153. package/dist/pages/wc3-process-data.d.mts +238 -0
  1154. package/dist/pages/wc3-process-data.d.mts.map +1 -0
  1155. package/dist/pages/wc3-process-data.mjs +2251 -0
  1156. package/dist/pages/wc3-process-data.mjs.map +1 -0
  1157. package/dist/pages/wc3-process-detail.d.mts +21 -0
  1158. package/dist/pages/wc3-process-detail.d.mts.map +1 -0
  1159. package/dist/pages/wc3-process-detail.mjs +21 -0
  1160. package/dist/pages/wc3-process-detail.mjs.map +1 -0
  1161. package/dist/pages/wc3-process-list-view.d.mts +5 -0
  1162. package/dist/pages/wc3-process-list-view.d.mts.map +1 -0
  1163. package/dist/pages/wc3-process-list-view.mjs +602 -0
  1164. package/dist/pages/wc3-process-list-view.mjs.map +1 -0
  1165. package/dist/pages/wc3-process-shared.d.mts +443 -0
  1166. package/dist/pages/wc3-process-shared.d.mts.map +1 -0
  1167. package/dist/pages/wc3-process-shared.mjs +980 -0
  1168. package/dist/pages/wc3-process-shared.mjs.map +1 -0
  1169. package/dist/pages/wc3-process-views.d.mts +19 -0
  1170. package/dist/pages/wc3-process-views.d.mts.map +1 -0
  1171. package/dist/pages/wc3-process-views.mjs +23 -0
  1172. package/dist/pages/wc3-process-views.mjs.map +1 -0
  1173. package/dist/pages/wc3-product-catalogue-view.d.mts +5 -0
  1174. package/dist/pages/wc3-product-catalogue-view.d.mts.map +1 -0
  1175. package/dist/pages/wc3-product-catalogue-view.mjs +587 -0
  1176. package/dist/pages/wc3-product-catalogue-view.mjs.map +1 -0
  1177. package/dist/pages/wc3-product-data.d.mts +206 -0
  1178. package/dist/pages/wc3-product-data.d.mts.map +1 -0
  1179. package/dist/pages/wc3-product-data.mjs +2669 -0
  1180. package/dist/pages/wc3-product-data.mjs.map +1 -0
  1181. package/dist/pages/wc3-product-detail.d.mts +31 -0
  1182. package/dist/pages/wc3-product-detail.d.mts.map +1 -0
  1183. package/dist/pages/wc3-product-detail.mjs +1137 -0
  1184. package/dist/pages/wc3-product-detail.mjs.map +1 -0
  1185. package/dist/pages/wc3-product-install-dialog.d.mts +99 -0
  1186. package/dist/pages/wc3-product-install-dialog.d.mts.map +1 -0
  1187. package/dist/pages/wc3-product-install-dialog.mjs +808 -0
  1188. package/dist/pages/wc3-product-install-dialog.mjs.map +1 -0
  1189. package/dist/pages/wc3-product-shared.d.mts +152 -0
  1190. package/dist/pages/wc3-product-shared.d.mts.map +1 -0
  1191. package/dist/pages/wc3-product-shared.mjs +268 -0
  1192. package/dist/pages/wc3-product-shared.mjs.map +1 -0
  1193. package/dist/pages/wc3-product-views.d.mts +7 -0
  1194. package/dist/pages/wc3-product-views.d.mts.map +1 -0
  1195. package/dist/pages/wc3-product-views.mjs +7 -0
  1196. package/dist/pages/wc3-product-views.mjs.map +1 -0
  1197. package/dist/pages/wc3-shared-property-detail.d.mts +95 -0
  1198. package/dist/pages/wc3-shared-property-detail.d.mts.map +1 -0
  1199. package/dist/pages/wc3-shared-property-detail.mjs +546 -0
  1200. package/dist/pages/wc3-shared-property-detail.mjs.map +1 -0
  1201. package/dist/pages/wc3-shared-property-view.d.mts +10 -0
  1202. package/dist/pages/wc3-shared-property-view.d.mts.map +1 -0
  1203. package/dist/pages/wc3-shared-property-view.mjs +455 -0
  1204. package/dist/pages/wc3-shared-property-view.mjs.map +1 -0
  1205. package/dist/pages/wc3-shared-property-wizard.d.mts +31 -0
  1206. package/dist/pages/wc3-shared-property-wizard.d.mts.map +1 -0
  1207. package/dist/pages/wc3-shared-property-wizard.mjs +181 -0
  1208. package/dist/pages/wc3-shared-property-wizard.mjs.map +1 -0
  1209. package/dist/pages/work-permit-templates.d.mts +30 -0
  1210. package/dist/pages/work-permit-templates.d.mts.map +1 -0
  1211. package/dist/pages/work-permit-templates.mjs +793 -0
  1212. package/dist/pages/work-permit-templates.mjs.map +1 -0
  1213. package/dist/pages/workforce-analytics.d.mts +11 -0
  1214. package/dist/pages/workforce-analytics.d.mts.map +1 -0
  1215. package/dist/pages/workforce-analytics.mjs +561 -0
  1216. package/dist/pages/workforce-analytics.mjs.map +1 -0
  1217. package/dist/pages/workforce-compliance-settings.d.mts +9 -0
  1218. package/dist/pages/workforce-compliance-settings.d.mts.map +1 -0
  1219. package/dist/pages/workforce-compliance-settings.mjs +375 -0
  1220. package/dist/pages/workforce-compliance-settings.mjs.map +1 -0
  1221. package/dist/pages/workforce-compliance.d.mts +81 -0
  1222. package/dist/pages/workforce-compliance.d.mts.map +1 -0
  1223. package/dist/pages/workforce-compliance.mjs +805 -0
  1224. package/dist/pages/workforce-compliance.mjs.map +1 -0
  1225. package/dist/pages/workforce-crews.d.mts +5 -0
  1226. package/dist/pages/workforce-crews.d.mts.map +1 -0
  1227. package/dist/pages/workforce-crews.mjs +1091 -0
  1228. package/dist/pages/workforce-crews.mjs.map +1 -0
  1229. package/dist/pages/workforce-map-view.d.mts +8 -0
  1230. package/dist/pages/workforce-map-view.d.mts.map +1 -0
  1231. package/dist/pages/workforce-map-view.mjs +953 -0
  1232. package/dist/pages/workforce-map-view.mjs.map +1 -0
  1233. package/dist/pages/workforce-obs.d.mts +5 -0
  1234. package/dist/pages/workforce-obs.d.mts.map +1 -0
  1235. package/dist/pages/workforce-obs.mjs +649 -0
  1236. package/dist/pages/workforce-obs.mjs.map +1 -0
  1237. package/dist/pagination.d.mts +32 -0
  1238. package/dist/pagination.d.mts.map +1 -0
  1239. package/dist/pagination.mjs +67 -0
  1240. package/dist/pagination.mjs.map +1 -0
  1241. package/dist/permission-matrix.d.mts +43 -0
  1242. package/dist/permission-matrix.d.mts.map +1 -0
  1243. package/dist/permission-matrix.mjs +146 -0
  1244. package/dist/permission-matrix.mjs.map +1 -0
  1245. package/dist/popover.d.mts +19 -0
  1246. package/dist/popover.d.mts.map +1 -0
  1247. package/dist/popover.mjs +31 -0
  1248. package/dist/popover.mjs.map +1 -0
  1249. package/dist/product-package-detail.d.mts +173 -0
  1250. package/dist/product-package-detail.d.mts.map +1 -0
  1251. package/dist/product-package-detail.mjs +521 -0
  1252. package/dist/product-package-detail.mjs.map +1 -0
  1253. package/dist/progress-comparison.d.mts +93 -0
  1254. package/dist/progress-comparison.d.mts.map +1 -0
  1255. package/dist/progress-comparison.mjs +253 -0
  1256. package/dist/progress-comparison.mjs.map +1 -0
  1257. package/dist/progress-list-item.d.mts +46 -0
  1258. package/dist/progress-list-item.d.mts.map +1 -0
  1259. package/dist/progress-list-item.mjs +79 -0
  1260. package/dist/progress-list-item.mjs.map +1 -0
  1261. package/dist/progress-sheet.d.mts +39 -0
  1262. package/dist/progress-sheet.d.mts.map +1 -0
  1263. package/dist/progress-sheet.mjs +760 -0
  1264. package/dist/progress-sheet.mjs.map +1 -0
  1265. package/dist/progress-stat.d.mts +26 -0
  1266. package/dist/progress-stat.d.mts.map +1 -0
  1267. package/dist/progress-stat.mjs +54 -0
  1268. package/dist/progress-stat.mjs.map +1 -0
  1269. package/dist/progress.d.mts +13 -0
  1270. package/dist/progress.d.mts.map +1 -0
  1271. package/dist/progress.mjs +32 -0
  1272. package/dist/progress.mjs.map +1 -0
  1273. package/dist/prompt-input.d.mts +108 -0
  1274. package/dist/prompt-input.d.mts.map +1 -0
  1275. package/dist/prompt-input.mjs +400 -0
  1276. package/dist/prompt-input.mjs.map +1 -0
  1277. package/dist/property-list.d.mts +37 -0
  1278. package/dist/property-list.d.mts.map +1 -0
  1279. package/dist/property-list.mjs +60 -0
  1280. package/dist/property-list.mjs.map +1 -0
  1281. package/dist/push-panel.d.mts +75 -0
  1282. package/dist/push-panel.d.mts.map +1 -0
  1283. package/dist/push-panel.mjs +182 -0
  1284. package/dist/push-panel.mjs.map +1 -0
  1285. package/dist/radio-group.d.mts +9 -0
  1286. package/dist/radio-group.d.mts.map +1 -0
  1287. package/dist/radio-group.mjs +27 -0
  1288. package/dist/radio-group.mjs.map +1 -0
  1289. package/dist/record-detail-shell.d.mts +46 -0
  1290. package/dist/record-detail-shell.d.mts.map +1 -0
  1291. package/dist/record-detail-shell.mjs +29 -0
  1292. package/dist/record-detail-shell.mjs.map +1 -0
  1293. package/dist/resizable.d.mts +11 -0
  1294. package/dist/resizable.d.mts.map +1 -0
  1295. package/dist/resizable.mjs +23 -0
  1296. package/dist/resizable.mjs.map +1 -0
  1297. package/dist/resize-handle.d.mts +19 -0
  1298. package/dist/resize-handle.d.mts.map +1 -0
  1299. package/dist/resize-handle.mjs +45 -0
  1300. package/dist/resize-handle.mjs.map +1 -0
  1301. package/dist/responder-detail-panel.d.mts +72 -0
  1302. package/dist/responder-detail-panel.d.mts.map +1 -0
  1303. package/dist/responder-detail-panel.mjs +232 -0
  1304. package/dist/responder-detail-panel.mjs.map +1 -0
  1305. package/dist/rule-row.d.mts +63 -0
  1306. package/dist/rule-row.d.mts.map +1 -0
  1307. package/dist/rule-row.mjs +97 -0
  1308. package/dist/rule-row.mjs.map +1 -0
  1309. package/dist/schedule-week-bar.d.mts +24 -0
  1310. package/dist/schedule-week-bar.d.mts.map +1 -0
  1311. package/dist/schedule-week-bar.mjs +99 -0
  1312. package/dist/schedule-week-bar.mjs.map +1 -0
  1313. package/dist/score-gauge.d.mts +24 -0
  1314. package/dist/score-gauge.d.mts.map +1 -0
  1315. package/dist/score-gauge.mjs +73 -0
  1316. package/dist/score-gauge.mjs.map +1 -0
  1317. package/dist/scroll-area.d.mts +27 -0
  1318. package/dist/scroll-area.d.mts.map +1 -0
  1319. package/dist/scroll-area.mjs +35 -0
  1320. package/dist/scroll-area.mjs.map +1 -0
  1321. package/dist/search-filter-bar.d.mts +22 -0
  1322. package/dist/search-filter-bar.d.mts.map +1 -0
  1323. package/dist/search-filter-bar.mjs +56 -0
  1324. package/dist/search-filter-bar.mjs.map +1 -0
  1325. package/dist/section-header.d.mts +22 -0
  1326. package/dist/section-header.d.mts.map +1 -0
  1327. package/dist/section-header.mjs +32 -0
  1328. package/dist/section-header.mjs.map +1 -0
  1329. package/dist/section-panel.d.mts +47 -0
  1330. package/dist/section-panel.d.mts.map +1 -0
  1331. package/dist/section-panel.mjs +78 -0
  1332. package/dist/section-panel.mjs.map +1 -0
  1333. package/dist/section.d.mts +15 -0
  1334. package/dist/section.d.mts.map +1 -0
  1335. package/dist/section.mjs +34 -0
  1336. package/dist/section.mjs.map +1 -0
  1337. package/dist/segmented-control.d.mts +26 -0
  1338. package/dist/segmented-control.d.mts.map +1 -0
  1339. package/dist/segmented-control.mjs +70 -0
  1340. package/dist/segmented-control.mjs.map +1 -0
  1341. package/dist/select.d.mts +87 -0
  1342. package/dist/select.d.mts.map +1 -0
  1343. package/dist/select.mjs +280 -0
  1344. package/dist/select.mjs.map +1 -0
  1345. package/dist/selectable-card.d.mts +39 -0
  1346. package/dist/selectable-card.d.mts.map +1 -0
  1347. package/dist/selectable-card.mjs +102 -0
  1348. package/dist/selectable-card.mjs.map +1 -0
  1349. package/dist/separator.d.mts +8 -0
  1350. package/dist/separator.d.mts.map +1 -0
  1351. package/dist/separator.mjs +18 -0
  1352. package/dist/separator.mjs.map +1 -0
  1353. package/dist/services/chatService.d.mts +11 -0
  1354. package/dist/services/chatService.d.mts.map +1 -0
  1355. package/dist/services/chatService.mjs +44 -0
  1356. package/dist/services/chatService.mjs.map +1 -0
  1357. package/dist/setup-steps-checklist.d.mts +50 -0
  1358. package/dist/setup-steps-checklist.d.mts.map +1 -0
  1359. package/dist/setup-steps-checklist.mjs +183 -0
  1360. package/dist/setup-steps-checklist.mjs.map +1 -0
  1361. package/dist/sheet.d.mts +41 -0
  1362. package/dist/sheet.d.mts.map +1 -0
  1363. package/dist/sheet.mjs +71 -0
  1364. package/dist/sheet.mjs.map +1 -0
  1365. package/dist/side-menu.d.mts +61 -0
  1366. package/dist/side-menu.d.mts.map +1 -0
  1367. package/dist/side-menu.mjs +160 -0
  1368. package/dist/side-menu.mjs.map +1 -0
  1369. package/dist/sidebar.d.mts +36 -0
  1370. package/dist/sidebar.d.mts.map +1 -0
  1371. package/dist/sidebar.mjs +159 -0
  1372. package/dist/sidebar.mjs.map +1 -0
  1373. package/dist/single-house-view.d.mts +13 -0
  1374. package/dist/single-house-view.d.mts.map +1 -0
  1375. package/dist/single-house-view.mjs +506 -0
  1376. package/dist/single-house-view.mjs.map +1 -0
  1377. package/dist/site-image-viewer/batches.mjs +362 -0
  1378. package/dist/site-image-viewer/batches.mjs.map +1 -0
  1379. package/dist/site-image-viewer/blocks-zone-1a.mjs +1815 -0
  1380. package/dist/site-image-viewer/blocks-zone-1a.mjs.map +1 -0
  1381. package/dist/site-image-viewer/blocks-zone-1b.mjs +2623 -0
  1382. package/dist/site-image-viewer/blocks-zone-1b.mjs.map +1 -0
  1383. package/dist/site-image-viewer/legend-items.d.mts +6 -0
  1384. package/dist/site-image-viewer/legend-items.d.mts.map +1 -0
  1385. package/dist/site-image-viewer/legend-items.mjs +104 -0
  1386. package/dist/site-image-viewer/legend-items.mjs.map +1 -0
  1387. package/dist/site-image-viewer/milestone-ramp.d.mts +81 -0
  1388. package/dist/site-image-viewer/milestone-ramp.d.mts.map +1 -0
  1389. package/dist/site-image-viewer/milestone-ramp.mjs +112 -0
  1390. package/dist/site-image-viewer/milestone-ramp.mjs.map +1 -0
  1391. package/dist/site-image-viewer/phases.mjs +60 -0
  1392. package/dist/site-image-viewer/phases.mjs.map +1 -0
  1393. package/dist/site-image-viewer/site-legend.d.mts +20 -0
  1394. package/dist/site-image-viewer/site-legend.d.mts.map +1 -0
  1395. package/dist/site-image-viewer/site-legend.mjs +113 -0
  1396. package/dist/site-image-viewer/site-legend.mjs.map +1 -0
  1397. package/dist/site-image-viewer/types.d.mts +32 -0
  1398. package/dist/site-image-viewer/types.d.mts.map +1 -0
  1399. package/dist/site-image-viewer/types.mjs +1 -0
  1400. package/dist/site-image-viewer/villa-hover-card.d.mts +15 -0
  1401. package/dist/site-image-viewer/villa-hover-card.d.mts.map +1 -0
  1402. package/dist/site-image-viewer/villa-hover-card.mjs +48 -0
  1403. package/dist/site-image-viewer/villa-hover-card.mjs.map +1 -0
  1404. package/dist/site-image-viewer/villas.mjs +34494 -0
  1405. package/dist/site-image-viewer/villas.mjs.map +1 -0
  1406. package/dist/site-image-viewer/zone1b-villas.mjs +36211 -0
  1407. package/dist/site-image-viewer/zone1b-villas.mjs.map +1 -0
  1408. package/dist/site-image-viewer/zones-marketing.mjs +114 -0
  1409. package/dist/site-image-viewer/zones-marketing.mjs.map +1 -0
  1410. package/dist/site-image-viewer/zones.mjs +114 -0
  1411. package/dist/site-image-viewer/zones.mjs.map +1 -0
  1412. package/dist/site-image-viewer-fixtures.d.mts +44 -0
  1413. package/dist/site-image-viewer-fixtures.d.mts.map +1 -0
  1414. package/dist/site-image-viewer-fixtures.mjs +112 -0
  1415. package/dist/site-image-viewer-fixtures.mjs.map +1 -0
  1416. package/dist/site-image-viewer.d.mts +98 -0
  1417. package/dist/site-image-viewer.d.mts.map +1 -0
  1418. package/dist/site-image-viewer.mjs +501 -0
  1419. package/dist/site-image-viewer.mjs.map +1 -0
  1420. package/dist/site-panel.d.mts +123 -0
  1421. package/dist/site-panel.d.mts.map +1 -0
  1422. package/dist/site-panel.mjs +1413 -0
  1423. package/dist/site-panel.mjs.map +1 -0
  1424. package/dist/site-reality-viewer.d.mts +46 -0
  1425. package/dist/site-reality-viewer.d.mts.map +1 -0
  1426. package/dist/site-reality-viewer.mjs +436 -0
  1427. package/dist/site-reality-viewer.mjs.map +1 -0
  1428. package/dist/site-toolbar.d.mts +54 -0
  1429. package/dist/site-toolbar.d.mts.map +1 -0
  1430. package/dist/site-toolbar.mjs +110 -0
  1431. package/dist/site-toolbar.mjs.map +1 -0
  1432. package/dist/skeleton.d.mts +6 -0
  1433. package/dist/skeleton.d.mts.map +1 -0
  1434. package/dist/skeleton.mjs +14 -0
  1435. package/dist/skeleton.mjs.map +1 -0
  1436. package/dist/slider.d.mts +8 -0
  1437. package/dist/slider.d.mts.map +1 -0
  1438. package/dist/slider.mjs +20 -0
  1439. package/dist/slider.mjs.map +1 -0
  1440. package/dist/sonner.d.mts +8 -0
  1441. package/dist/sonner.d.mts.map +1 -0
  1442. package/dist/sonner.mjs +20 -0
  1443. package/dist/sonner.mjs.map +1 -0
  1444. package/dist/spinner.d.mts +12 -0
  1445. package/dist/spinner.d.mts.map +1 -0
  1446. package/dist/spinner.mjs +38 -0
  1447. package/dist/spinner.mjs.map +1 -0
  1448. package/dist/stack.d.mts +18 -0
  1449. package/dist/stack.d.mts.map +1 -0
  1450. package/dist/stack.mjs +61 -0
  1451. package/dist/stack.mjs.map +1 -0
  1452. package/dist/stage-content.d.mts +13 -0
  1453. package/dist/stage-content.d.mts.map +1 -0
  1454. package/dist/stage-content.mjs +664 -0
  1455. package/dist/stage-content.mjs.map +1 -0
  1456. package/dist/status-dot.d.mts +18 -0
  1457. package/dist/status-dot.d.mts.map +1 -0
  1458. package/dist/status-dot.mjs +89 -0
  1459. package/dist/status-dot.mjs.map +1 -0
  1460. package/dist/stepper.d.mts +19 -0
  1461. package/dist/stepper.d.mts.map +1 -0
  1462. package/dist/stepper.mjs +113 -0
  1463. package/dist/stepper.mjs.map +1 -0
  1464. package/dist/styles.css +1 -0
  1465. package/dist/styles.tw4.css +1 -0
  1466. package/dist/switch.d.mts +12 -0
  1467. package/dist/switch.d.mts.map +1 -0
  1468. package/dist/switch.mjs +17 -0
  1469. package/dist/switch.mjs.map +1 -0
  1470. package/dist/tab-list.d.mts +33 -0
  1471. package/dist/tab-list.d.mts.map +1 -0
  1472. package/dist/tab-list.mjs +90 -0
  1473. package/dist/tab-list.mjs.map +1 -0
  1474. package/dist/table.d.mts +14 -0
  1475. package/dist/table.d.mts.map +1 -0
  1476. package/dist/table.mjs +60 -0
  1477. package/dist/table.mjs.map +1 -0
  1478. package/dist/tabs.d.mts +42 -0
  1479. package/dist/tabs.d.mts.map +1 -0
  1480. package/dist/tabs.mjs +258 -0
  1481. package/dist/tabs.mjs.map +1 -0
  1482. package/dist/task-monitor.d.mts +70 -0
  1483. package/dist/task-monitor.d.mts.map +1 -0
  1484. package/dist/task-monitor.mjs +319 -0
  1485. package/dist/task-monitor.mjs.map +1 -0
  1486. package/dist/text.d.mts +18 -0
  1487. package/dist/text.d.mts.map +1 -0
  1488. package/dist/text.mjs +60 -0
  1489. package/dist/text.mjs.map +1 -0
  1490. package/dist/textarea.d.mts +7 -0
  1491. package/dist/textarea.d.mts.map +1 -0
  1492. package/dist/textarea.mjs +15 -0
  1493. package/dist/textarea.mjs.map +1 -0
  1494. package/dist/thinking-pill.d.mts +15 -0
  1495. package/dist/thinking-pill.d.mts.map +1 -0
  1496. package/dist/thinking-pill.mjs +28 -0
  1497. package/dist/thinking-pill.mjs.map +1 -0
  1498. package/dist/thumbnail.d.mts +20 -0
  1499. package/dist/thumbnail.d.mts.map +1 -0
  1500. package/dist/thumbnail.mjs +81 -0
  1501. package/dist/thumbnail.mjs.map +1 -0
  1502. package/dist/time-input.d.mts +15 -0
  1503. package/dist/time-input.d.mts.map +1 -0
  1504. package/dist/time-input.mjs +21 -0
  1505. package/dist/time-input.mjs.map +1 -0
  1506. package/dist/time-scrubber.d.mts +93 -0
  1507. package/dist/time-scrubber.d.mts.map +1 -0
  1508. package/dist/time-scrubber.mjs +420 -0
  1509. package/dist/time-scrubber.mjs.map +1 -0
  1510. package/dist/timeline-range-selector.d.mts +30 -0
  1511. package/dist/timeline-range-selector.d.mts.map +1 -0
  1512. package/dist/timeline-range-selector.mjs +232 -0
  1513. package/dist/timeline-range-selector.mjs.map +1 -0
  1514. package/dist/timestamp-picker.d.mts +32 -0
  1515. package/dist/timestamp-picker.d.mts.map +1 -0
  1516. package/dist/timestamp-picker.mjs +143 -0
  1517. package/dist/timestamp-picker.mjs.map +1 -0
  1518. package/dist/timestamp.d.mts +15 -0
  1519. package/dist/timestamp.d.mts.map +1 -0
  1520. package/dist/timestamp.mjs +61 -0
  1521. package/dist/timestamp.mjs.map +1 -0
  1522. package/dist/toast.d.mts +18 -0
  1523. package/dist/toast.d.mts.map +1 -0
  1524. package/dist/toast.mjs +59 -0
  1525. package/dist/toast.mjs.map +1 -0
  1526. package/dist/toaster.d.mts +5 -0
  1527. package/dist/toaster.d.mts.map +1 -0
  1528. package/dist/toaster.mjs +23 -0
  1529. package/dist/toaster.mjs.map +1 -0
  1530. package/dist/toggle-group.d.mts +16 -0
  1531. package/dist/toggle-group.d.mts.map +1 -0
  1532. package/dist/toggle-group.mjs +41 -0
  1533. package/dist/toggle-group.mjs.map +1 -0
  1534. package/dist/toggle.d.mts +16 -0
  1535. package/dist/toggle.d.mts.map +1 -0
  1536. package/dist/toggle.mjs +38 -0
  1537. package/dist/toggle.mjs.map +1 -0
  1538. package/dist/tokenizer.d.mts +23 -0
  1539. package/dist/tokenizer.d.mts.map +1 -0
  1540. package/dist/tokenizer.mjs +87 -0
  1541. package/dist/tokenizer.mjs.map +1 -0
  1542. package/dist/tones.d.mts +59 -0
  1543. package/dist/tones.d.mts.map +1 -0
  1544. package/dist/tones.mjs +177 -0
  1545. package/dist/tones.mjs.map +1 -0
  1546. package/dist/tool-call.d.mts +29 -0
  1547. package/dist/tool-call.d.mts.map +1 -0
  1548. package/dist/tool-call.mjs +89 -0
  1549. package/dist/tool-call.mjs.map +1 -0
  1550. package/dist/toolbar-color-picker.d.mts +50 -0
  1551. package/dist/toolbar-color-picker.d.mts.map +1 -0
  1552. package/dist/toolbar-color-picker.mjs +238 -0
  1553. package/dist/toolbar-color-picker.mjs.map +1 -0
  1554. package/dist/toolbar-pager.d.mts +17 -0
  1555. package/dist/toolbar-pager.d.mts.map +1 -0
  1556. package/dist/toolbar-pager.mjs +40 -0
  1557. package/dist/toolbar-pager.mjs.map +1 -0
  1558. package/dist/toolbar-stats.d.mts +34 -0
  1559. package/dist/toolbar-stats.d.mts.map +1 -0
  1560. package/dist/toolbar-stats.mjs +53 -0
  1561. package/dist/toolbar-stats.mjs.map +1 -0
  1562. package/dist/toolbar.d.mts +98 -0
  1563. package/dist/toolbar.d.mts.map +1 -0
  1564. package/dist/toolbar.mjs +86 -0
  1565. package/dist/toolbar.mjs.map +1 -0
  1566. package/dist/tooltip.d.mts +30 -0
  1567. package/dist/tooltip.d.mts.map +1 -0
  1568. package/dist/tooltip.mjs +83 -0
  1569. package/dist/tooltip.mjs.map +1 -0
  1570. package/dist/tree-list.d.mts +38 -0
  1571. package/dist/tree-list.d.mts.map +1 -0
  1572. package/dist/tree-list.mjs +95 -0
  1573. package/dist/tree-list.mjs.map +1 -0
  1574. package/dist/tree-row.d.mts +84 -0
  1575. package/dist/tree-row.d.mts.map +1 -0
  1576. package/dist/tree-row.mjs +150 -0
  1577. package/dist/tree-row.mjs.map +1 -0
  1578. package/dist/trend-chart.d.mts +28 -0
  1579. package/dist/trend-chart.d.mts.map +1 -0
  1580. package/dist/trend-chart.mjs +33 -0
  1581. package/dist/trend-chart.mjs.map +1 -0
  1582. package/dist/turn-timer.d.mts +23 -0
  1583. package/dist/turn-timer.d.mts.map +1 -0
  1584. package/dist/turn-timer.mjs +51 -0
  1585. package/dist/turn-timer.mjs.map +1 -0
  1586. package/dist/typeahead-item.d.mts +34 -0
  1587. package/dist/typeahead-item.d.mts.map +1 -0
  1588. package/dist/typeahead-item.mjs +74 -0
  1589. package/dist/typeahead-item.mjs.map +1 -0
  1590. package/dist/types/chat.d.mts +66 -0
  1591. package/dist/types/chat.d.mts.map +1 -0
  1592. package/dist/types/chat.mjs +1 -0
  1593. package/dist/types.d.mts +44 -0
  1594. package/dist/types.d.mts.map +1 -0
  1595. package/dist/types.mjs +49 -0
  1596. package/dist/types.mjs.map +1 -0
  1597. package/dist/typography.d.mts +17 -0
  1598. package/dist/typography.d.mts.map +1 -0
  1599. package/dist/typography.mjs +75 -0
  1600. package/dist/typography.mjs.map +1 -0
  1601. package/dist/use-debounced-value.d.mts +11 -0
  1602. package/dist/use-debounced-value.d.mts.map +1 -0
  1603. package/dist/use-debounced-value.mjs +25 -0
  1604. package/dist/use-debounced-value.mjs.map +1 -0
  1605. package/dist/use-document-dir.d.mts +15 -0
  1606. package/dist/use-document-dir.d.mts.map +1 -0
  1607. package/dist/use-document-dir.mjs +33 -0
  1608. package/dist/use-document-dir.mjs.map +1 -0
  1609. package/dist/use-persistent-state.d.mts +9 -0
  1610. package/dist/use-persistent-state.d.mts.map +1 -0
  1611. package/dist/use-persistent-state.mjs +29 -0
  1612. package/dist/use-persistent-state.mjs.map +1 -0
  1613. package/dist/use-toast.d.mts +47 -0
  1614. package/dist/use-toast.d.mts.map +1 -0
  1615. package/dist/use-toast.mjs +119 -0
  1616. package/dist/use-toast.mjs.map +1 -0
  1617. package/dist/vertical-zoom-tools.d.mts +27 -0
  1618. package/dist/vertical-zoom-tools.d.mts.map +1 -0
  1619. package/dist/vertical-zoom-tools.mjs +66 -0
  1620. package/dist/vertical-zoom-tools.mjs.map +1 -0
  1621. package/dist/view-tab-bar.d.mts +75 -0
  1622. package/dist/view-tab-bar.d.mts.map +1 -0
  1623. package/dist/view-tab-bar.mjs +80 -0
  1624. package/dist/view-tab-bar.mjs.map +1 -0
  1625. package/dist/viewer-toolbar.d.mts +41 -0
  1626. package/dist/viewer-toolbar.d.mts.map +1 -0
  1627. package/dist/viewer-toolbar.mjs +271 -0
  1628. package/dist/viewer-toolbar.mjs.map +1 -0
  1629. package/dist/violation-list.d.mts +26 -0
  1630. package/dist/violation-list.d.mts.map +1 -0
  1631. package/dist/violation-list.mjs +53 -0
  1632. package/dist/violation-list.mjs.map +1 -0
  1633. package/dist/walkthrough-modal.d.mts +12 -0
  1634. package/dist/walkthrough-modal.d.mts.map +1 -0
  1635. package/dist/walkthrough-modal.mjs +28 -0
  1636. package/dist/walkthrough-modal.mjs.map +1 -0
  1637. package/dist/walkthrough-tile.d.mts +17 -0
  1638. package/dist/walkthrough-tile.d.mts.map +1 -0
  1639. package/dist/walkthrough-tile.mjs +75 -0
  1640. package/dist/walkthrough-tile.mjs.map +1 -0
  1641. package/dist/week-selector.d.mts +45 -0
  1642. package/dist/week-selector.d.mts.map +1 -0
  1643. package/dist/week-selector.mjs +101 -0
  1644. package/dist/week-selector.mjs.map +1 -0
  1645. package/dist/widget-card.d.mts +18 -0
  1646. package/dist/widget-card.d.mts.map +1 -0
  1647. package/dist/widget-card.mjs +46 -0
  1648. package/dist/widget-card.mjs.map +1 -0
  1649. package/dist/wizard-dialog.d.mts +68 -0
  1650. package/dist/wizard-dialog.d.mts.map +1 -0
  1651. package/dist/wizard-dialog.mjs +108 -0
  1652. package/dist/wizard-dialog.mjs.map +1 -0
  1653. package/dist/work-item-card.d.mts +38 -0
  1654. package/dist/work-item-card.d.mts.map +1 -0
  1655. package/dist/work-item-card.mjs +231 -0
  1656. package/dist/work-item-card.mjs.map +1 -0
  1657. package/dist/worker-profile.d.mts +244 -0
  1658. package/dist/worker-profile.d.mts.map +1 -0
  1659. package/dist/worker-profile.mjs +621 -0
  1660. package/dist/worker-profile.mjs.map +1 -0
  1661. package/dist/zoom-tools.d.mts +29 -0
  1662. package/dist/zoom-tools.d.mts.map +1 -0
  1663. package/dist/zoom-tools.mjs +94 -0
  1664. package/dist/zoom-tools.mjs.map +1 -0
  1665. package/package.json +1792 -0
  1666. package/skills/core-ui-charts/SKILL.md +243 -0
  1667. package/skills/core-ui-chat/SKILL.md +260 -0
  1668. package/skills/core-ui-components/SKILL.md +299 -0
  1669. package/skills/core-ui-composition/SKILL.md +186 -0
  1670. package/skills/core-ui-data-table/SKILL.md +243 -0
  1671. package/skills/core-ui-forms/SKILL.md +289 -0
@@ -0,0 +1,4074 @@
1
+ import { WC3_DATASOURCE_CATALOG } from "./wc3-ontology-data.mjs";
2
+ import { WC3_PROCESS_INSTANCES } from "./wc3-process-data.mjs";
3
+ //#region src/pages/wc3-analysis-data.ts
4
+ /**
5
+ * WC3 Analysis fixture — the inputs the Analysis perspective needs that no other fixture
6
+ * already holds.
7
+ *
8
+ * Extracted verbatim from the prototype (06-unified-workspace.html, #/analysis) through
9
+ * `window.__STORE__.state` and the page globals AN_STAGES / AN_METRICS / anDatasetRows().
10
+ *
11
+ * DELIBERATELY NOT DUPLICATED — reused from the fixtures that already ship:
12
+ * DS_CATALOG === WC3_DATASOURCE_CATALOG (wc3-ontology-data, 26 entries, byte-identical)
13
+ * instOf("ot_observation") === WC3_PROCESS_INSTANCES.ot_observation (wc3-process-data, 65 rows, byte-identical)
14
+ * FIXTURE_NOW_STR === WC3_PROCESS_FIXTURE_NOW (wc3-process-data, "2026-07-22 08:00")
15
+ * PERSONAS === WC3_PERSONAS (wc3-product-shared)
16
+ *
17
+ * HONESTY CONTRACT — every number the Analysis page renders is computed from these seeded
18
+ * rows. `ds_badge_import` (badge_events_import_raw) is declared in the catalogue with NO
19
+ * materialised rows, so the two metrics that depend on it are unsupported rather than
20
+ * invented. Nothing here is estimated or interpolated.
21
+ */
22
+ /** The stage rail, verbatim from the prototype's `AN_STAGES`. */
23
+ const WC3_ANALYSIS_STAGES = [
24
+ {
25
+ id: "source",
26
+ label: "Source"
27
+ },
28
+ {
29
+ id: "filter",
30
+ label: "Filter"
31
+ },
32
+ {
33
+ id: "traverse",
34
+ label: "Traverse / Join"
35
+ },
36
+ {
37
+ id: "derive",
38
+ label: "Derive metric"
39
+ },
40
+ {
41
+ id: "group",
42
+ label: "Group / Aggregate"
43
+ },
44
+ {
45
+ id: "viz",
46
+ label: "Visualize"
47
+ },
48
+ {
49
+ id: "publish",
50
+ label: "Save / Publish"
51
+ }
52
+ ];
53
+ /** `ot_worker` instances — 145 rows, verbatim from the prototype store. */
54
+ const WC3_WORKER_ROWS = [
55
+ {
56
+ worker_id: "WK-2001",
57
+ full_name: "Rafael Okafor",
58
+ trade: "Steel fixer",
59
+ employer: "Kaldreth Steel Fixing",
60
+ contractor: "Kaldreth Steel Fixing",
61
+ badge_id: "BDG-77121",
62
+ crew_id: "CR-01",
63
+ last_seen_at: "2026-07-22 07:41",
64
+ risk_score: 31,
65
+ current_zone_id: "ZN-001",
66
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
67
+ induction_date: "2026-02-10"
68
+ },
69
+ {
70
+ worker_id: "WK-2002",
71
+ full_name: "Suneeta Bhatt",
72
+ trade: "Steel fixer",
73
+ employer: "Kaldreth Steel Fixing",
74
+ contractor: "Kaldreth Steel Fixing",
75
+ badge_id: "BDG-77122",
76
+ crew_id: "CR-01",
77
+ last_seen_at: "2026-07-22 07:38",
78
+ risk_score: 18,
79
+ current_zone_id: "ZN-001",
80
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
81
+ induction_date: "2026-03-14"
82
+ },
83
+ {
84
+ worker_id: "WK-2003",
85
+ full_name: "Emeka Duru",
86
+ trade: "Carpenter",
87
+ employer: "Vorenthal Contracting",
88
+ contractor: "Vorenthal Contracting",
89
+ badge_id: "BDG-77201",
90
+ crew_id: "CR-02",
91
+ last_seen_at: "2026-07-22 07:52",
92
+ risk_score: 24,
93
+ current_zone_id: "ZN-001",
94
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
95
+ induction_date: "2026-01-06"
96
+ },
97
+ {
98
+ worker_id: "WK-2004",
99
+ full_name: "Lucia Ferreira",
100
+ trade: "Carpenter",
101
+ employer: "Vorenthal Contracting",
102
+ contractor: "Vorenthal Contracting",
103
+ badge_id: "BDG-77202",
104
+ crew_id: "CR-02",
105
+ last_seen_at: "2026-07-22 06:59",
106
+ risk_score: 12,
107
+ current_zone_id: "ZN-003",
108
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
109
+ induction_date: "2026-01-11"
110
+ },
111
+ {
112
+ worker_id: "WK-2005",
113
+ full_name: "Tomas Vandenberg",
114
+ trade: "Crane operator",
115
+ employer: "Zeltrave Lifting",
116
+ contractor: "Zeltrave Lifting",
117
+ badge_id: "BDG-77301",
118
+ crew_id: "CR-03",
119
+ last_seen_at: "2026-07-22 07:15",
120
+ risk_score: 44,
121
+ current_zone_id: "ZN-002",
122
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
123
+ induction_date: "2026-03-15"
124
+ },
125
+ {
126
+ worker_id: "WK-2006",
127
+ full_name: "Aisha Kamara",
128
+ trade: "Rigger",
129
+ employer: "Zeltrave Lifting",
130
+ contractor: "Zeltrave Lifting",
131
+ badge_id: "BDG-77302",
132
+ crew_id: "CR-03",
133
+ last_seen_at: "2026-07-22 07:22",
134
+ risk_score: 37,
135
+ current_zone_id: "ZN-002",
136
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
137
+ induction_date: "2026-01-15"
138
+ },
139
+ {
140
+ worker_id: "WK-2007",
141
+ full_name: "Dmitri Volkov",
142
+ trade: "Electrician",
143
+ employer: "Pravendi MEP",
144
+ contractor: "Pravendi MEP",
145
+ badge_id: "BDG-77401",
146
+ crew_id: "CR-04",
147
+ last_seen_at: "2026-07-21 17:44",
148
+ risk_score: 15,
149
+ current_zone_id: null,
150
+ shift: "Night · 19:00–04:00",
151
+ induction_date: "2026-02-25"
152
+ },
153
+ {
154
+ worker_id: "WK-2008",
155
+ full_name: "Grace Mwangi",
156
+ trade: "Electrician",
157
+ employer: "Pravendi MEP",
158
+ contractor: "Pravendi MEP",
159
+ badge_id: "BDG-77402",
160
+ crew_id: "CR-04",
161
+ last_seen_at: "2026-07-22 07:03",
162
+ risk_score: 9,
163
+ current_zone_id: "ZN-004",
164
+ shift: "Night · 19:00–04:00",
165
+ induction_date: "2026-02-13"
166
+ },
167
+ {
168
+ worker_id: "WK-2009",
169
+ full_name: "Hakan Yildiz",
170
+ trade: "Concrete finisher",
171
+ employer: "Vorenthal Contracting",
172
+ contractor: "Vorenthal Contracting",
173
+ badge_id: "BDG-77203",
174
+ crew_id: "CR-02",
175
+ last_seen_at: "2026-07-22 07:47",
176
+ risk_score: 28,
177
+ current_zone_id: "ZN-004",
178
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
179
+ induction_date: "2026-05-19"
180
+ },
181
+ {
182
+ worker_id: "WK-2010",
183
+ full_name: "Nadia Boulos",
184
+ trade: "Safety marshal",
185
+ employer: "Olmerith Field Services",
186
+ contractor: "Olmerith Field Services",
187
+ badge_id: "BDG-77501",
188
+ crew_id: null,
189
+ last_seen_at: "2026-07-22 07:55",
190
+ risk_score: 5,
191
+ current_zone_id: "ZN-002",
192
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
193
+ induction_date: "2026-02-17"
194
+ },
195
+ {
196
+ worker_id: "WK-2011",
197
+ full_name: "Ivan Mansour",
198
+ trade: "Steel fixer",
199
+ employer: "Kaldreth Steel Fixing",
200
+ contractor: "Kaldreth Steel Fixing",
201
+ badge_id: "BDG-78001",
202
+ crew_id: "CR-01",
203
+ last_seen_at: "2026-07-22 06:14",
204
+ risk_score: 23,
205
+ current_zone_id: "ZN-001",
206
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
207
+ induction_date: "2026-02-24"
208
+ },
209
+ {
210
+ worker_id: "WK-2012",
211
+ full_name: "Suneeta Duru",
212
+ trade: "Steel fixer",
213
+ employer: "Kaldreth Steel Fixing",
214
+ contractor: "Kaldreth Steel Fixing",
215
+ badge_id: "BDG-78002",
216
+ crew_id: "CR-01",
217
+ last_seen_at: "2026-07-22 07:22",
218
+ risk_score: 20,
219
+ current_zone_id: "ZN-011",
220
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
221
+ induction_date: "2026-01-08"
222
+ },
223
+ {
224
+ worker_id: "WK-2013",
225
+ full_name: "Fatima Qureshi",
226
+ trade: "Steel fixer",
227
+ employer: "Kaldreth Steel Fixing",
228
+ contractor: "Kaldreth Steel Fixing",
229
+ badge_id: "BDG-78003",
230
+ crew_id: "CR-01",
231
+ last_seen_at: "2026-07-22 06:16",
232
+ risk_score: 25,
233
+ current_zone_id: "ZN-001",
234
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
235
+ induction_date: "2026-03-16"
236
+ },
237
+ {
238
+ worker_id: "WK-2014",
239
+ full_name: "Hafsa Chaudhry",
240
+ trade: "Steel fixer",
241
+ employer: "Kaldreth Steel Fixing",
242
+ contractor: "Kaldreth Steel Fixing",
243
+ badge_id: "BDG-78004",
244
+ crew_id: "CR-01",
245
+ last_seen_at: "2026-07-22 07:52",
246
+ risk_score: 25,
247
+ current_zone_id: "ZN-001",
248
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
249
+ induction_date: "2026-06-13"
250
+ },
251
+ {
252
+ worker_id: "WK-2015",
253
+ full_name: "Karim Qureshi",
254
+ trade: "Steel fixer",
255
+ employer: "Kaldreth Steel Fixing",
256
+ contractor: "Kaldreth Steel Fixing",
257
+ badge_id: "BDG-78005",
258
+ crew_id: "CR-01",
259
+ last_seen_at: "2026-07-22 07:29",
260
+ risk_score: 24,
261
+ current_zone_id: "ZN-001",
262
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
263
+ induction_date: "2026-05-25"
264
+ },
265
+ {
266
+ worker_id: "WK-2016",
267
+ full_name: "Ekaterina Kuznetsov",
268
+ trade: "Steel fixer",
269
+ employer: "Kaldreth Steel Fixing",
270
+ contractor: "Kaldreth Steel Fixing",
271
+ badge_id: "BDG-78006",
272
+ crew_id: "CR-01",
273
+ last_seen_at: "2026-07-22 07:48",
274
+ risk_score: 7,
275
+ current_zone_id: "ZN-001",
276
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
277
+ induction_date: "2026-02-20"
278
+ },
279
+ {
280
+ worker_id: "WK-2017",
281
+ full_name: "Suneeta Baig",
282
+ trade: "Steel fixer",
283
+ employer: "Kaldreth Steel Fixing",
284
+ contractor: "Kaldreth Steel Fixing",
285
+ badge_id: "BDG-78007",
286
+ crew_id: "CR-01",
287
+ last_seen_at: "2026-07-22 06:20",
288
+ risk_score: 13,
289
+ current_zone_id: "ZN-001",
290
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
291
+ induction_date: "2026-05-12"
292
+ },
293
+ {
294
+ worker_id: "WK-2018",
295
+ full_name: "Blessing Al-Farsi",
296
+ trade: "Steel fixer",
297
+ employer: "Kaldreth Steel Fixing",
298
+ contractor: "Kaldreth Steel Fixing",
299
+ badge_id: "BDG-78008",
300
+ crew_id: "CR-01",
301
+ last_seen_at: "2026-07-22 06:19",
302
+ risk_score: 23,
303
+ current_zone_id: "ZN-001",
304
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
305
+ induction_date: "2026-04-05"
306
+ },
307
+ {
308
+ worker_id: "WK-2019",
309
+ full_name: "Zahra Sultan",
310
+ trade: "Steel fixer",
311
+ employer: "Kaldreth Steel Fixing",
312
+ contractor: "Kaldreth Steel Fixing",
313
+ badge_id: "BDG-78009",
314
+ crew_id: "CR-01",
315
+ last_seen_at: "2026-07-22 06:17",
316
+ risk_score: 41,
317
+ current_zone_id: "ZN-011",
318
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
319
+ induction_date: "2026-05-03"
320
+ },
321
+ {
322
+ worker_id: "WK-2020",
323
+ full_name: "Bashir Bassam",
324
+ trade: "Steel fixer",
325
+ employer: "Kaldreth Steel Fixing",
326
+ contractor: "Kaldreth Steel Fixing",
327
+ badge_id: "BDG-78010",
328
+ crew_id: "CR-01",
329
+ last_seen_at: "2026-07-21 16:36",
330
+ risk_score: 56,
331
+ current_zone_id: null,
332
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
333
+ induction_date: "2026-06-19"
334
+ },
335
+ {
336
+ worker_id: "WK-2021",
337
+ full_name: "Nasser Castillo",
338
+ trade: "Steel fixer",
339
+ employer: "Kaldreth Steel Fixing",
340
+ contractor: "Kaldreth Steel Fixing",
341
+ badge_id: "BDG-78011",
342
+ crew_id: "CR-01",
343
+ last_seen_at: "2026-07-22 06:51",
344
+ risk_score: 26,
345
+ current_zone_id: "ZN-001",
346
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
347
+ induction_date: "2026-04-19"
348
+ },
349
+ {
350
+ worker_id: "WK-2022",
351
+ full_name: "Grace Barakat",
352
+ trade: "Carpenter",
353
+ employer: "Vorenthal Contracting",
354
+ contractor: "Vorenthal Contracting",
355
+ badge_id: "BDG-78012",
356
+ crew_id: "CR-02",
357
+ last_seen_at: "2026-07-22 07:10",
358
+ risk_score: 6,
359
+ current_zone_id: "ZN-001",
360
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
361
+ induction_date: "2026-02-11"
362
+ },
363
+ {
364
+ worker_id: "WK-2023",
365
+ full_name: "Rafael Nwosu",
366
+ trade: "Carpenter",
367
+ employer: "Vorenthal Contracting",
368
+ contractor: "Vorenthal Contracting",
369
+ badge_id: "BDG-78013",
370
+ crew_id: "CR-02",
371
+ last_seen_at: "2026-07-22 06:20",
372
+ risk_score: 13,
373
+ current_zone_id: "ZN-001",
374
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
375
+ induction_date: "2026-01-26"
376
+ },
377
+ {
378
+ worker_id: "WK-2024",
379
+ full_name: "Samir Pillai",
380
+ trade: "Carpenter",
381
+ employer: "Vorenthal Contracting",
382
+ contractor: "Vorenthal Contracting",
383
+ badge_id: "BDG-78014",
384
+ crew_id: "CR-02",
385
+ last_seen_at: "2026-07-22 07:43",
386
+ risk_score: 25,
387
+ current_zone_id: "ZN-001",
388
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
389
+ induction_date: "2026-02-10"
390
+ },
391
+ {
392
+ worker_id: "WK-2025",
393
+ full_name: "Rosa Nwosu",
394
+ trade: "Carpenter",
395
+ employer: "Vorenthal Contracting",
396
+ contractor: "Vorenthal Contracting",
397
+ badge_id: "BDG-78015",
398
+ crew_id: "CR-02",
399
+ last_seen_at: "2026-07-22 06:35",
400
+ risk_score: 27,
401
+ current_zone_id: "ZN-001",
402
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
403
+ induction_date: "2026-06-01"
404
+ },
405
+ {
406
+ worker_id: "WK-2026",
407
+ full_name: "Rania Osei",
408
+ trade: "Carpenter",
409
+ employer: "Vorenthal Contracting",
410
+ contractor: "Vorenthal Contracting",
411
+ badge_id: "BDG-78016",
412
+ crew_id: "CR-02",
413
+ last_seen_at: "2026-07-21 17:24",
414
+ risk_score: 52,
415
+ current_zone_id: null,
416
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
417
+ induction_date: "2026-06-05"
418
+ },
419
+ {
420
+ worker_id: "WK-2027",
421
+ full_name: "Gulzar Sokolov",
422
+ trade: "Carpenter",
423
+ employer: "Vorenthal Contracting",
424
+ contractor: "Vorenthal Contracting",
425
+ badge_id: "BDG-78017",
426
+ crew_id: "CR-02",
427
+ last_seen_at: "2026-07-22 07:00",
428
+ risk_score: 55,
429
+ current_zone_id: "ZN-004",
430
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
431
+ induction_date: "2026-04-04"
432
+ },
433
+ {
434
+ worker_id: "WK-2028",
435
+ full_name: "Elena Mkhize",
436
+ trade: "Carpenter",
437
+ employer: "Vorenthal Contracting",
438
+ contractor: "Vorenthal Contracting",
439
+ badge_id: "BDG-78018",
440
+ crew_id: "CR-02",
441
+ last_seen_at: "2026-07-21 15:26",
442
+ risk_score: 5,
443
+ current_zone_id: null,
444
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
445
+ induction_date: "2026-04-27"
446
+ },
447
+ {
448
+ worker_id: "WK-2029",
449
+ full_name: "Oleg Rahmani",
450
+ trade: "Carpenter",
451
+ employer: "Vorenthal Contracting",
452
+ contractor: "Vorenthal Contracting",
453
+ badge_id: "BDG-78019",
454
+ crew_id: "CR-02",
455
+ last_seen_at: "2026-07-21 16:54",
456
+ risk_score: 6,
457
+ current_zone_id: null,
458
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
459
+ induction_date: "2026-01-26"
460
+ },
461
+ {
462
+ worker_id: "WK-2030",
463
+ full_name: "Hassan Rahman",
464
+ trade: "Carpenter",
465
+ employer: "Vorenthal Contracting",
466
+ contractor: "Vorenthal Contracting",
467
+ badge_id: "BDG-78020",
468
+ crew_id: "CR-02",
469
+ last_seen_at: "2026-07-21 16:25",
470
+ risk_score: 16,
471
+ current_zone_id: null,
472
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
473
+ induction_date: "2026-01-16"
474
+ },
475
+ {
476
+ worker_id: "WK-2031",
477
+ full_name: "Zahra Aziz",
478
+ trade: "Carpenter",
479
+ employer: "Vorenthal Contracting",
480
+ contractor: "Vorenthal Contracting",
481
+ badge_id: "BDG-78021",
482
+ crew_id: "CR-02",
483
+ last_seen_at: "2026-07-22 07:38",
484
+ risk_score: 10,
485
+ current_zone_id: "ZN-001",
486
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
487
+ induction_date: "2026-01-25"
488
+ },
489
+ {
490
+ worker_id: "WK-2032",
491
+ full_name: "Sergei Osei",
492
+ trade: "Carpenter",
493
+ employer: "Vorenthal Contracting",
494
+ contractor: "Vorenthal Contracting",
495
+ badge_id: "BDG-78022",
496
+ crew_id: "CR-02",
497
+ last_seen_at: "2026-07-22 06:02",
498
+ risk_score: 22,
499
+ current_zone_id: "ZN-001",
500
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
501
+ induction_date: "2026-06-05"
502
+ },
503
+ {
504
+ worker_id: "WK-2033",
505
+ full_name: "Suneeta Al-Otaibi",
506
+ trade: "Rigger",
507
+ employer: "Zeltrave Lifting",
508
+ contractor: "Zeltrave Lifting",
509
+ badge_id: "BDG-78023",
510
+ crew_id: "CR-03",
511
+ last_seen_at: "2026-07-22 07:17",
512
+ risk_score: 22,
513
+ current_zone_id: "ZN-002",
514
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
515
+ induction_date: "2026-01-04"
516
+ },
517
+ {
518
+ worker_id: "WK-2034",
519
+ full_name: "Reza Volkov",
520
+ trade: "Rigger",
521
+ employer: "Zeltrave Lifting",
522
+ contractor: "Zeltrave Lifting",
523
+ badge_id: "BDG-78024",
524
+ crew_id: "CR-03",
525
+ last_seen_at: "2026-07-22 06:35",
526
+ risk_score: 14,
527
+ current_zone_id: "ZN-002",
528
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
529
+ induction_date: "2026-04-23"
530
+ },
531
+ {
532
+ worker_id: "WK-2035",
533
+ full_name: "Sunil Zubair",
534
+ trade: "Rigger",
535
+ employer: "Zeltrave Lifting",
536
+ contractor: "Zeltrave Lifting",
537
+ badge_id: "BDG-78025",
538
+ crew_id: "CR-03",
539
+ last_seen_at: "2026-07-22 07:27",
540
+ risk_score: 54,
541
+ current_zone_id: "ZN-002",
542
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
543
+ induction_date: "2026-03-23"
544
+ },
545
+ {
546
+ worker_id: "WK-2036",
547
+ full_name: "Vikram Adeyemi",
548
+ trade: "Rigger",
549
+ employer: "Zeltrave Lifting",
550
+ contractor: "Zeltrave Lifting",
551
+ badge_id: "BDG-78026",
552
+ crew_id: "CR-03",
553
+ last_seen_at: "2026-07-22 07:56",
554
+ risk_score: 55,
555
+ current_zone_id: "ZN-002",
556
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
557
+ induction_date: "2026-03-28"
558
+ },
559
+ {
560
+ worker_id: "WK-2037",
561
+ full_name: "Ravi Novak",
562
+ trade: "Rigger",
563
+ employer: "Zeltrave Lifting",
564
+ contractor: "Zeltrave Lifting",
565
+ badge_id: "BDG-78027",
566
+ crew_id: "CR-03",
567
+ last_seen_at: "2026-07-22 07:00",
568
+ risk_score: 42,
569
+ current_zone_id: "ZN-002",
570
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
571
+ induction_date: "2026-05-15"
572
+ },
573
+ {
574
+ worker_id: "WK-2038",
575
+ full_name: "Fatima Zubair",
576
+ trade: "Rigger",
577
+ employer: "Zeltrave Lifting",
578
+ contractor: "Zeltrave Lifting",
579
+ badge_id: "BDG-78028",
580
+ crew_id: "CR-03",
581
+ last_seen_at: "2026-07-22 06:26",
582
+ risk_score: 30,
583
+ current_zone_id: "ZN-002",
584
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
585
+ induction_date: "2026-01-13"
586
+ },
587
+ {
588
+ worker_id: "WK-2039",
589
+ full_name: "Ivan Amiri",
590
+ trade: "Electrician",
591
+ employer: "Pravendi MEP",
592
+ contractor: "Pravendi MEP",
593
+ badge_id: "BDG-78029",
594
+ crew_id: "CR-04",
595
+ last_seen_at: "2026-07-22 07:07",
596
+ risk_score: 56,
597
+ current_zone_id: "ZN-001",
598
+ shift: "Night · 19:00–04:00",
599
+ induction_date: "2026-06-05"
600
+ },
601
+ {
602
+ worker_id: "WK-2040",
603
+ full_name: "Ibrahim Barakat",
604
+ trade: "Electrician",
605
+ employer: "Pravendi MEP",
606
+ contractor: "Pravendi MEP",
607
+ badge_id: "BDG-78030",
608
+ crew_id: "CR-04",
609
+ last_seen_at: "2026-07-22 07:52",
610
+ risk_score: 32,
611
+ current_zone_id: "ZN-011",
612
+ shift: "Night · 19:00–04:00",
613
+ induction_date: "2026-01-06"
614
+ },
615
+ {
616
+ worker_id: "WK-2041",
617
+ full_name: "Ravi Mensah",
618
+ trade: "Electrician",
619
+ employer: "Pravendi MEP",
620
+ contractor: "Pravendi MEP",
621
+ badge_id: "BDG-78031",
622
+ crew_id: "CR-04",
623
+ last_seen_at: "2026-07-22 07:25",
624
+ risk_score: 47,
625
+ current_zone_id: "ZN-001",
626
+ shift: "Night · 19:00–04:00",
627
+ induction_date: "2026-06-11"
628
+ },
629
+ {
630
+ worker_id: "WK-2042",
631
+ full_name: "Tariq Al-Harbi",
632
+ trade: "Electrician",
633
+ employer: "Pravendi MEP",
634
+ contractor: "Pravendi MEP",
635
+ badge_id: "BDG-78032",
636
+ crew_id: "CR-04",
637
+ last_seen_at: "2026-07-22 06:56",
638
+ risk_score: 6,
639
+ current_zone_id: "ZN-001",
640
+ shift: "Night · 19:00–04:00",
641
+ induction_date: "2026-01-03"
642
+ },
643
+ {
644
+ worker_id: "WK-2043",
645
+ full_name: "Grace Al-Harbi",
646
+ trade: "Electrician",
647
+ employer: "Pravendi MEP",
648
+ contractor: "Pravendi MEP",
649
+ badge_id: "BDG-78033",
650
+ crew_id: "CR-04",
651
+ last_seen_at: "2026-07-22 06:47",
652
+ risk_score: 3,
653
+ current_zone_id: "ZN-001",
654
+ shift: "Night · 19:00–04:00",
655
+ induction_date: "2026-01-28"
656
+ },
657
+ {
658
+ worker_id: "WK-2044",
659
+ full_name: "Kwame Nwosu",
660
+ trade: "Electrician",
661
+ employer: "Pravendi MEP",
662
+ contractor: "Pravendi MEP",
663
+ badge_id: "BDG-78034",
664
+ crew_id: "CR-04",
665
+ last_seen_at: "2026-07-21 16:55",
666
+ risk_score: 11,
667
+ current_zone_id: null,
668
+ shift: "Night · 19:00–04:00",
669
+ induction_date: "2026-01-17"
670
+ },
671
+ {
672
+ worker_id: "WK-2045",
673
+ full_name: "Nasser Iyer",
674
+ trade: "Electrician",
675
+ employer: "Pravendi MEP",
676
+ contractor: "Pravendi MEP",
677
+ badge_id: "BDG-78035",
678
+ crew_id: "CR-04",
679
+ last_seen_at: "2026-07-22 06:00",
680
+ risk_score: 43,
681
+ current_zone_id: "ZN-008",
682
+ shift: "Night · 19:00–04:00",
683
+ induction_date: "2026-06-02"
684
+ },
685
+ {
686
+ worker_id: "WK-2046",
687
+ full_name: "Halima Barakat",
688
+ trade: "Electrician",
689
+ employer: "Pravendi MEP",
690
+ contractor: "Pravendi MEP",
691
+ badge_id: "BDG-78036",
692
+ crew_id: "CR-04",
693
+ last_seen_at: "2026-07-22 06:03",
694
+ risk_score: 50,
695
+ current_zone_id: "ZN-010",
696
+ shift: "Night · 19:00–04:00",
697
+ induction_date: "2026-03-14"
698
+ },
699
+ {
700
+ worker_id: "WK-2047",
701
+ full_name: "Mirela Bhatt",
702
+ trade: "Electrician",
703
+ employer: "Pravendi MEP",
704
+ contractor: "Pravendi MEP",
705
+ badge_id: "BDG-78037",
706
+ crew_id: "CR-04",
707
+ last_seen_at: "2026-07-21 16:37",
708
+ risk_score: 27,
709
+ current_zone_id: null,
710
+ shift: "Night · 19:00–04:00",
711
+ induction_date: "2026-02-18"
712
+ },
713
+ {
714
+ worker_id: "WK-2048",
715
+ full_name: "Layla Jibril",
716
+ trade: "Foreman",
717
+ employer: "Vorenthal Contracting",
718
+ contractor: "Vorenthal Contracting",
719
+ badge_id: "BDG-78038",
720
+ crew_id: "CR-05",
721
+ last_seen_at: "2026-07-22 06:53",
722
+ risk_score: 24,
723
+ current_zone_id: "ZN-001",
724
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
725
+ induction_date: "2026-04-11"
726
+ },
727
+ {
728
+ worker_id: "WK-2049",
729
+ full_name: "Nourah Kuznetsov",
730
+ trade: "Concrete finisher",
731
+ employer: "Vorenthal Contracting",
732
+ contractor: "Vorenthal Contracting",
733
+ badge_id: "BDG-78039",
734
+ crew_id: "CR-05",
735
+ last_seen_at: "2026-07-22 06:57",
736
+ risk_score: 14,
737
+ current_zone_id: "ZN-010",
738
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
739
+ induction_date: "2026-01-22"
740
+ },
741
+ {
742
+ worker_id: "WK-2050",
743
+ full_name: "Marek Venkat",
744
+ trade: "Concrete finisher",
745
+ employer: "Vorenthal Contracting",
746
+ contractor: "Vorenthal Contracting",
747
+ badge_id: "BDG-78040",
748
+ crew_id: "CR-05",
749
+ last_seen_at: "2026-07-22 06:46",
750
+ risk_score: 10,
751
+ current_zone_id: "ZN-001",
752
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
753
+ induction_date: "2026-06-23"
754
+ },
755
+ {
756
+ worker_id: "WK-2051",
757
+ full_name: "Hassan Aboud",
758
+ trade: "Concrete finisher",
759
+ employer: "Vorenthal Contracting",
760
+ contractor: "Vorenthal Contracting",
761
+ badge_id: "BDG-78041",
762
+ crew_id: "CR-05",
763
+ last_seen_at: "2026-07-22 06:27",
764
+ risk_score: 16,
765
+ current_zone_id: "ZN-001",
766
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
767
+ induction_date: "2026-01-25"
768
+ },
769
+ {
770
+ worker_id: "WK-2052",
771
+ full_name: "Sergei Amiri",
772
+ trade: "Concrete finisher",
773
+ employer: "Vorenthal Contracting",
774
+ contractor: "Vorenthal Contracting",
775
+ badge_id: "BDG-78042",
776
+ crew_id: "CR-05",
777
+ last_seen_at: "2026-07-22 07:52",
778
+ risk_score: 50,
779
+ current_zone_id: "ZN-001",
780
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
781
+ induction_date: "2026-02-26"
782
+ },
783
+ {
784
+ worker_id: "WK-2053",
785
+ full_name: "Sunil Saleh",
786
+ trade: "Concrete finisher",
787
+ employer: "Vorenthal Contracting",
788
+ contractor: "Vorenthal Contracting",
789
+ badge_id: "BDG-78043",
790
+ crew_id: "CR-05",
791
+ last_seen_at: "2026-07-21 15:39",
792
+ risk_score: 37,
793
+ current_zone_id: null,
794
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
795
+ induction_date: "2026-06-27"
796
+ },
797
+ {
798
+ worker_id: "WK-2054",
799
+ full_name: "Hakan Nair",
800
+ trade: "Concrete finisher",
801
+ employer: "Vorenthal Contracting",
802
+ contractor: "Vorenthal Contracting",
803
+ badge_id: "BDG-78044",
804
+ crew_id: "CR-05",
805
+ last_seen_at: "2026-07-22 06:12",
806
+ risk_score: 23,
807
+ current_zone_id: "ZN-001",
808
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
809
+ induction_date: "2026-02-25"
810
+ },
811
+ {
812
+ worker_id: "WK-2055",
813
+ full_name: "Sunil Bassam",
814
+ trade: "Concrete finisher",
815
+ employer: "Vorenthal Contracting",
816
+ contractor: "Vorenthal Contracting",
817
+ badge_id: "BDG-78045",
818
+ crew_id: "CR-05",
819
+ last_seen_at: "2026-07-21 17:48",
820
+ risk_score: 31,
821
+ current_zone_id: null,
822
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
823
+ induction_date: "2026-04-18"
824
+ },
825
+ {
826
+ worker_id: "WK-2056",
827
+ full_name: "Ravi Siddiqui",
828
+ trade: "Concrete finisher",
829
+ employer: "Vorenthal Contracting",
830
+ contractor: "Vorenthal Contracting",
831
+ badge_id: "BDG-78046",
832
+ crew_id: "CR-05",
833
+ last_seen_at: "2026-07-22 06:19",
834
+ risk_score: 39,
835
+ current_zone_id: "ZN-001",
836
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
837
+ induction_date: "2026-02-17"
838
+ },
839
+ {
840
+ worker_id: "WK-2057",
841
+ full_name: "Ibrahim Alvarez",
842
+ trade: "Concrete finisher",
843
+ employer: "Vorenthal Contracting",
844
+ contractor: "Vorenthal Contracting",
845
+ badge_id: "BDG-78047",
846
+ crew_id: "CR-05",
847
+ last_seen_at: "2026-07-22 06:12",
848
+ risk_score: 16,
849
+ current_zone_id: "ZN-008",
850
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
851
+ induction_date: "2026-06-24"
852
+ },
853
+ {
854
+ worker_id: "WK-2058",
855
+ full_name: "Lucia Kamara",
856
+ trade: "Concrete finisher",
857
+ employer: "Vorenthal Contracting",
858
+ contractor: "Vorenthal Contracting",
859
+ badge_id: "BDG-78048",
860
+ crew_id: "CR-05",
861
+ last_seen_at: "2026-07-21 15:00",
862
+ risk_score: 4,
863
+ current_zone_id: null,
864
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
865
+ induction_date: "2026-06-07"
866
+ },
867
+ {
868
+ worker_id: "WK-2059",
869
+ full_name: "Rania Khoury",
870
+ trade: "Concrete finisher",
871
+ employer: "Vorenthal Contracting",
872
+ contractor: "Vorenthal Contracting",
873
+ badge_id: "BDG-78049",
874
+ crew_id: "CR-05",
875
+ last_seen_at: "2026-07-22 06:19",
876
+ risk_score: 6,
877
+ current_zone_id: "ZN-001",
878
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
879
+ induction_date: "2026-06-10"
880
+ },
881
+ {
882
+ worker_id: "WK-2060",
883
+ full_name: "Halima Demir",
884
+ trade: "Foreman",
885
+ employer: "Serrindal Steel Works",
886
+ contractor: "Serrindal Steel Works",
887
+ badge_id: "BDG-78050",
888
+ crew_id: "CR-06",
889
+ last_seen_at: "2026-07-22 06:19",
890
+ risk_score: 8,
891
+ current_zone_id: "ZN-001",
892
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
893
+ induction_date: "2026-06-05"
894
+ },
895
+ {
896
+ worker_id: "WK-2061",
897
+ full_name: "Nadia Baig",
898
+ trade: "Steel fixer",
899
+ employer: "Serrindal Steel Works",
900
+ contractor: "Serrindal Steel Works",
901
+ badge_id: "BDG-78051",
902
+ crew_id: "CR-06",
903
+ last_seen_at: "2026-07-22 07:01",
904
+ risk_score: 59,
905
+ current_zone_id: "ZN-001",
906
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
907
+ induction_date: "2026-04-16"
908
+ },
909
+ {
910
+ worker_id: "WK-2062",
911
+ full_name: "Idris Mansour",
912
+ trade: "Steel fixer",
913
+ employer: "Serrindal Steel Works",
914
+ contractor: "Serrindal Steel Works",
915
+ badge_id: "BDG-78052",
916
+ crew_id: "CR-06",
917
+ last_seen_at: "2026-07-22 06:15",
918
+ risk_score: 9,
919
+ current_zone_id: "ZN-001",
920
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
921
+ induction_date: "2026-05-07"
922
+ },
923
+ {
924
+ worker_id: "WK-2063",
925
+ full_name: "Rosa Novak",
926
+ trade: "Steel fixer",
927
+ employer: "Serrindal Steel Works",
928
+ contractor: "Serrindal Steel Works",
929
+ badge_id: "BDG-78053",
930
+ crew_id: "CR-06",
931
+ last_seen_at: "2026-07-22 06:09",
932
+ risk_score: 15,
933
+ current_zone_id: "ZN-001",
934
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
935
+ induction_date: "2026-01-14"
936
+ },
937
+ {
938
+ worker_id: "WK-2064",
939
+ full_name: "Arun Haddad",
940
+ trade: "Steel fixer",
941
+ employer: "Serrindal Steel Works",
942
+ contractor: "Serrindal Steel Works",
943
+ badge_id: "BDG-78054",
944
+ crew_id: "CR-06",
945
+ last_seen_at: "2026-07-22 07:43",
946
+ risk_score: 61,
947
+ current_zone_id: "ZN-001",
948
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
949
+ induction_date: "2026-06-18"
950
+ },
951
+ {
952
+ worker_id: "WK-2065",
953
+ full_name: "Idris Saleh",
954
+ trade: "Steel fixer",
955
+ employer: "Serrindal Steel Works",
956
+ contractor: "Serrindal Steel Works",
957
+ badge_id: "BDG-78055",
958
+ crew_id: "CR-06",
959
+ last_seen_at: "2026-07-22 07:44",
960
+ risk_score: 54,
961
+ current_zone_id: "ZN-001",
962
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
963
+ induction_date: "2026-04-27"
964
+ },
965
+ {
966
+ worker_id: "WK-2066",
967
+ full_name: "Bashir Obi",
968
+ trade: "Steel fixer",
969
+ employer: "Serrindal Steel Works",
970
+ contractor: "Serrindal Steel Works",
971
+ badge_id: "BDG-78056",
972
+ crew_id: "CR-06",
973
+ last_seen_at: "2026-07-22 06:14",
974
+ risk_score: 55,
975
+ current_zone_id: "ZN-001",
976
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
977
+ induction_date: "2026-03-05"
978
+ },
979
+ {
980
+ worker_id: "WK-2067",
981
+ full_name: "Fatima Mensah",
982
+ trade: "Steel fixer",
983
+ employer: "Serrindal Steel Works",
984
+ contractor: "Serrindal Steel Works",
985
+ badge_id: "BDG-78057",
986
+ crew_id: "CR-06",
987
+ last_seen_at: "2026-07-22 06:03",
988
+ risk_score: 19,
989
+ current_zone_id: "ZN-001",
990
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
991
+ induction_date: "2026-05-08"
992
+ },
993
+ {
994
+ worker_id: "WK-2068",
995
+ full_name: "Musa Pillai",
996
+ trade: "Steel fixer",
997
+ employer: "Serrindal Steel Works",
998
+ contractor: "Serrindal Steel Works",
999
+ badge_id: "BDG-78058",
1000
+ crew_id: "CR-06",
1001
+ last_seen_at: "2026-07-22 07:50",
1002
+ risk_score: 51,
1003
+ current_zone_id: "ZN-001",
1004
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1005
+ induction_date: "2026-02-07"
1006
+ },
1007
+ {
1008
+ worker_id: "WK-2069",
1009
+ full_name: "Amara Qureshi",
1010
+ trade: "Steel fixer",
1011
+ employer: "Serrindal Steel Works",
1012
+ contractor: "Serrindal Steel Works",
1013
+ badge_id: "BDG-78059",
1014
+ crew_id: "CR-06",
1015
+ last_seen_at: "2026-07-22 06:39",
1016
+ risk_score: 40,
1017
+ current_zone_id: "ZN-001",
1018
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1019
+ induction_date: "2026-02-23"
1020
+ },
1021
+ {
1022
+ worker_id: "WK-2070",
1023
+ full_name: "Nourah Kowalski",
1024
+ trade: "Steel fixer",
1025
+ employer: "Serrindal Steel Works",
1026
+ contractor: "Serrindal Steel Works",
1027
+ badge_id: "BDG-78060",
1028
+ crew_id: "CR-06",
1029
+ last_seen_at: "2026-07-22 06:54",
1030
+ risk_score: 4,
1031
+ current_zone_id: "ZN-001",
1032
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1033
+ induction_date: "2026-05-03"
1034
+ },
1035
+ {
1036
+ worker_id: "WK-2071",
1037
+ full_name: "Omar Rahmani",
1038
+ trade: "Foreman",
1039
+ employer: "Halvenor Facades",
1040
+ contractor: "Halvenor Facades",
1041
+ badge_id: "BDG-78061",
1042
+ crew_id: "CR-07",
1043
+ last_seen_at: "2026-07-21 17:07",
1044
+ risk_score: 24,
1045
+ current_zone_id: null,
1046
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1047
+ induction_date: "2026-05-04"
1048
+ },
1049
+ {
1050
+ worker_id: "WK-2072",
1051
+ full_name: "Ravi Toure",
1052
+ trade: "Facade installer",
1053
+ employer: "Halvenor Facades",
1054
+ contractor: "Halvenor Facades",
1055
+ badge_id: "BDG-78062",
1056
+ crew_id: "CR-07",
1057
+ last_seen_at: "2026-07-22 07:47",
1058
+ risk_score: 30,
1059
+ current_zone_id: "ZN-009",
1060
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1061
+ induction_date: "2026-05-02"
1062
+ },
1063
+ {
1064
+ worker_id: "WK-2073",
1065
+ full_name: "Bashir Bakr",
1066
+ trade: "Facade installer",
1067
+ employer: "Halvenor Facades",
1068
+ contractor: "Halvenor Facades",
1069
+ badge_id: "BDG-78063",
1070
+ crew_id: "CR-07",
1071
+ last_seen_at: "2026-07-22 07:07",
1072
+ risk_score: 54,
1073
+ current_zone_id: "ZN-009",
1074
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1075
+ induction_date: "2026-03-21"
1076
+ },
1077
+ {
1078
+ worker_id: "WK-2074",
1079
+ full_name: "Yusuf Venkat",
1080
+ trade: "Facade installer",
1081
+ employer: "Halvenor Facades",
1082
+ contractor: "Halvenor Facades",
1083
+ badge_id: "BDG-78064",
1084
+ crew_id: "CR-07",
1085
+ last_seen_at: "2026-07-22 06:49",
1086
+ risk_score: 51,
1087
+ current_zone_id: "ZN-009",
1088
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1089
+ induction_date: "2026-05-13"
1090
+ },
1091
+ {
1092
+ worker_id: "WK-2075",
1093
+ full_name: "Amina Sesay",
1094
+ trade: "Facade installer",
1095
+ employer: "Halvenor Facades",
1096
+ contractor: "Halvenor Facades",
1097
+ badge_id: "BDG-78065",
1098
+ crew_id: "CR-07",
1099
+ last_seen_at: "2026-07-21 17:03",
1100
+ risk_score: 15,
1101
+ current_zone_id: null,
1102
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1103
+ induction_date: "2026-01-26"
1104
+ },
1105
+ {
1106
+ worker_id: "WK-2076",
1107
+ full_name: "Dmitri Kuznetsov",
1108
+ trade: "Facade installer",
1109
+ employer: "Halvenor Facades",
1110
+ contractor: "Halvenor Facades",
1111
+ badge_id: "BDG-78066",
1112
+ crew_id: "CR-07",
1113
+ last_seen_at: "2026-07-22 07:00",
1114
+ risk_score: 10,
1115
+ current_zone_id: "ZN-003",
1116
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1117
+ induction_date: "2026-02-10"
1118
+ },
1119
+ {
1120
+ worker_id: "WK-2077",
1121
+ full_name: "Blessing Zubair",
1122
+ trade: "Facade installer",
1123
+ employer: "Halvenor Facades",
1124
+ contractor: "Halvenor Facades",
1125
+ badge_id: "BDG-78067",
1126
+ crew_id: "CR-07",
1127
+ last_seen_at: "2026-07-21 16:23",
1128
+ risk_score: 54,
1129
+ current_zone_id: null,
1130
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1131
+ induction_date: "2026-03-04"
1132
+ },
1133
+ {
1134
+ worker_id: "WK-2078",
1135
+ full_name: "Yusuf Mensah",
1136
+ trade: "Facade installer",
1137
+ employer: "Halvenor Facades",
1138
+ contractor: "Halvenor Facades",
1139
+ badge_id: "BDG-78068",
1140
+ crew_id: "CR-07",
1141
+ last_seen_at: "2026-07-21 16:03",
1142
+ risk_score: 56,
1143
+ current_zone_id: null,
1144
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1145
+ induction_date: "2026-01-12"
1146
+ },
1147
+ {
1148
+ worker_id: "WK-2079",
1149
+ full_name: "Kwame Pillai",
1150
+ trade: "Facade installer",
1151
+ employer: "Halvenor Facades",
1152
+ contractor: "Halvenor Facades",
1153
+ badge_id: "BDG-78069",
1154
+ crew_id: "CR-07",
1155
+ last_seen_at: "2026-07-22 07:07",
1156
+ risk_score: 24,
1157
+ current_zone_id: "ZN-009",
1158
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1159
+ induction_date: "2026-02-28"
1160
+ },
1161
+ {
1162
+ worker_id: "WK-2080",
1163
+ full_name: "Zahra Khoury",
1164
+ trade: "Facade installer",
1165
+ employer: "Halvenor Facades",
1166
+ contractor: "Halvenor Facades",
1167
+ badge_id: "BDG-78070",
1168
+ crew_id: "CR-07",
1169
+ last_seen_at: "2026-07-22 07:07",
1170
+ risk_score: 31,
1171
+ current_zone_id: "ZN-009",
1172
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1173
+ induction_date: "2026-02-02"
1174
+ },
1175
+ {
1176
+ worker_id: "WK-2081",
1177
+ full_name: "Dmitri Sesay",
1178
+ trade: "Foreman",
1179
+ employer: "Threnalt MEP",
1180
+ contractor: "Threnalt MEP",
1181
+ badge_id: "BDG-78071",
1182
+ crew_id: "CR-08",
1183
+ last_seen_at: "2026-07-22 06:53",
1184
+ risk_score: 33,
1185
+ current_zone_id: "ZN-010",
1186
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1187
+ induction_date: "2026-04-12"
1188
+ },
1189
+ {
1190
+ worker_id: "WK-2082",
1191
+ full_name: "Fatima Menon",
1192
+ trade: "Ductwork fitter",
1193
+ employer: "Threnalt MEP",
1194
+ contractor: "Threnalt MEP",
1195
+ badge_id: "BDG-78072",
1196
+ crew_id: "CR-08",
1197
+ last_seen_at: "2026-07-21 16:18",
1198
+ risk_score: 61,
1199
+ current_zone_id: null,
1200
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1201
+ induction_date: "2026-02-09"
1202
+ },
1203
+ {
1204
+ worker_id: "WK-2083",
1205
+ full_name: "Suneeta Tesfaye",
1206
+ trade: "Ductwork fitter",
1207
+ employer: "Threnalt MEP",
1208
+ contractor: "Threnalt MEP",
1209
+ badge_id: "BDG-78073",
1210
+ crew_id: "CR-08",
1211
+ last_seen_at: "2026-07-22 06:45",
1212
+ risk_score: 49,
1213
+ current_zone_id: "ZN-010",
1214
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1215
+ induction_date: "2026-01-25"
1216
+ },
1217
+ {
1218
+ worker_id: "WK-2084",
1219
+ full_name: "Oleg Bassam",
1220
+ trade: "Ductwork fitter",
1221
+ employer: "Threnalt MEP",
1222
+ contractor: "Threnalt MEP",
1223
+ badge_id: "BDG-78074",
1224
+ crew_id: "CR-08",
1225
+ last_seen_at: "2026-07-22 06:58",
1226
+ risk_score: 50,
1227
+ current_zone_id: "ZN-010",
1228
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1229
+ induction_date: "2026-04-25"
1230
+ },
1231
+ {
1232
+ worker_id: "WK-2085",
1233
+ full_name: "Marek Amiri",
1234
+ trade: "Ductwork fitter",
1235
+ employer: "Threnalt MEP",
1236
+ contractor: "Threnalt MEP",
1237
+ badge_id: "BDG-78075",
1238
+ crew_id: "CR-08",
1239
+ last_seen_at: "2026-07-21 15:44",
1240
+ risk_score: 4,
1241
+ current_zone_id: null,
1242
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1243
+ induction_date: "2026-04-22"
1244
+ },
1245
+ {
1246
+ worker_id: "WK-2086",
1247
+ full_name: "Samir Saleh",
1248
+ trade: "Ductwork fitter",
1249
+ employer: "Threnalt MEP",
1250
+ contractor: "Threnalt MEP",
1251
+ badge_id: "BDG-78076",
1252
+ crew_id: "CR-08",
1253
+ last_seen_at: "2026-07-22 07:02",
1254
+ risk_score: 10,
1255
+ current_zone_id: "ZN-010",
1256
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1257
+ induction_date: "2026-03-03"
1258
+ },
1259
+ {
1260
+ worker_id: "WK-2087",
1261
+ full_name: "Marek Alvarez",
1262
+ trade: "Ductwork fitter",
1263
+ employer: "Threnalt MEP",
1264
+ contractor: "Threnalt MEP",
1265
+ badge_id: "BDG-78077",
1266
+ crew_id: "CR-08",
1267
+ last_seen_at: "2026-07-22 06:28",
1268
+ risk_score: 14,
1269
+ current_zone_id: "ZN-010",
1270
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1271
+ induction_date: "2026-02-11"
1272
+ },
1273
+ {
1274
+ worker_id: "WK-2088",
1275
+ full_name: "Idris Duru",
1276
+ trade: "Ductwork fitter",
1277
+ employer: "Threnalt MEP",
1278
+ contractor: "Threnalt MEP",
1279
+ badge_id: "BDG-78078",
1280
+ crew_id: "CR-08",
1281
+ last_seen_at: "2026-07-22 06:02",
1282
+ risk_score: 3,
1283
+ current_zone_id: "ZN-010",
1284
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1285
+ induction_date: "2026-03-10"
1286
+ },
1287
+ {
1288
+ worker_id: "WK-2089",
1289
+ full_name: "Rashid Petrov",
1290
+ trade: "Ductwork fitter",
1291
+ employer: "Threnalt MEP",
1292
+ contractor: "Threnalt MEP",
1293
+ badge_id: "BDG-78079",
1294
+ crew_id: "CR-08",
1295
+ last_seen_at: "2026-07-21 17:24",
1296
+ risk_score: 48,
1297
+ current_zone_id: null,
1298
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1299
+ induction_date: "2026-03-09"
1300
+ },
1301
+ {
1302
+ worker_id: "WK-2090",
1303
+ full_name: "Bilal Al-Farsi",
1304
+ trade: "Foreman",
1305
+ employer: "Threnalt MEP",
1306
+ contractor: "Threnalt MEP",
1307
+ badge_id: "BDG-78080",
1308
+ crew_id: "CR-09",
1309
+ last_seen_at: "2026-07-22 06:57",
1310
+ risk_score: 52,
1311
+ current_zone_id: "ZN-008",
1312
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1313
+ induction_date: "2026-05-19"
1314
+ },
1315
+ {
1316
+ worker_id: "WK-2091",
1317
+ full_name: "Obinna Diallo",
1318
+ trade: "Plumber",
1319
+ employer: "Threnalt MEP",
1320
+ contractor: "Threnalt MEP",
1321
+ badge_id: "BDG-78081",
1322
+ crew_id: "CR-09",
1323
+ last_seen_at: "2026-07-22 06:07",
1324
+ risk_score: 60,
1325
+ current_zone_id: "ZN-008",
1326
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1327
+ induction_date: "2026-06-25"
1328
+ },
1329
+ {
1330
+ worker_id: "WK-2092",
1331
+ full_name: "Nasser Mkhize",
1332
+ trade: "Plumber",
1333
+ employer: "Threnalt MEP",
1334
+ contractor: "Threnalt MEP",
1335
+ badge_id: "BDG-78082",
1336
+ crew_id: "CR-09",
1337
+ last_seen_at: "2026-07-22 07:39",
1338
+ risk_score: 19,
1339
+ current_zone_id: "ZN-008",
1340
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1341
+ induction_date: "2026-02-07"
1342
+ },
1343
+ {
1344
+ worker_id: "WK-2093",
1345
+ full_name: "Halima Tesfaye",
1346
+ trade: "Plumber",
1347
+ employer: "Threnalt MEP",
1348
+ contractor: "Threnalt MEP",
1349
+ badge_id: "BDG-78083",
1350
+ crew_id: "CR-09",
1351
+ last_seen_at: "2026-07-21 15:26",
1352
+ risk_score: 16,
1353
+ current_zone_id: null,
1354
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1355
+ induction_date: "2026-04-14"
1356
+ },
1357
+ {
1358
+ worker_id: "WK-2094",
1359
+ full_name: "Joy Bakr",
1360
+ trade: "Plumber",
1361
+ employer: "Threnalt MEP",
1362
+ contractor: "Threnalt MEP",
1363
+ badge_id: "BDG-78084",
1364
+ crew_id: "CR-09",
1365
+ last_seen_at: "2026-07-22 07:34",
1366
+ risk_score: 23,
1367
+ current_zone_id: "ZN-008",
1368
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1369
+ induction_date: "2026-06-20"
1370
+ },
1371
+ {
1372
+ worker_id: "WK-2095",
1373
+ full_name: "Rosa Ogunleye",
1374
+ trade: "Plumber",
1375
+ employer: "Threnalt MEP",
1376
+ contractor: "Threnalt MEP",
1377
+ badge_id: "BDG-78085",
1378
+ crew_id: "CR-09",
1379
+ last_seen_at: "2026-07-21 16:19",
1380
+ risk_score: 52,
1381
+ current_zone_id: null,
1382
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1383
+ induction_date: "2026-06-04"
1384
+ },
1385
+ {
1386
+ worker_id: "WK-2096",
1387
+ full_name: "Ibrahim Marinescu",
1388
+ trade: "Plumber",
1389
+ employer: "Threnalt MEP",
1390
+ contractor: "Threnalt MEP",
1391
+ badge_id: "BDG-78086",
1392
+ crew_id: "CR-09",
1393
+ last_seen_at: "2026-07-22 07:06",
1394
+ risk_score: 52,
1395
+ current_zone_id: "ZN-008",
1396
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1397
+ induction_date: "2026-01-04"
1398
+ },
1399
+ {
1400
+ worker_id: "WK-2097",
1401
+ full_name: "Nadia Haddad",
1402
+ trade: "Plumber",
1403
+ employer: "Threnalt MEP",
1404
+ contractor: "Threnalt MEP",
1405
+ badge_id: "BDG-78087",
1406
+ crew_id: "CR-09",
1407
+ last_seen_at: "2026-07-22 06:42",
1408
+ risk_score: 18,
1409
+ current_zone_id: "ZN-008",
1410
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1411
+ induction_date: "2026-02-06"
1412
+ },
1413
+ {
1414
+ worker_id: "WK-2098",
1415
+ full_name: "Idris Yildiz",
1416
+ trade: "Plumber",
1417
+ employer: "Threnalt MEP",
1418
+ contractor: "Threnalt MEP",
1419
+ badge_id: "BDG-78088",
1420
+ crew_id: "CR-09",
1421
+ last_seen_at: "2026-07-22 07:33",
1422
+ risk_score: 50,
1423
+ current_zone_id: "ZN-008",
1424
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1425
+ induction_date: "2026-04-10"
1426
+ },
1427
+ {
1428
+ worker_id: "WK-2099",
1429
+ full_name: "Thabo Molefe",
1430
+ trade: "Foreman",
1431
+ employer: "Ilmadrin Interiors",
1432
+ contractor: "Ilmadrin Interiors",
1433
+ badge_id: "BDG-78089",
1434
+ crew_id: "CR-10",
1435
+ last_seen_at: "2026-07-22 06:56",
1436
+ risk_score: 5,
1437
+ current_zone_id: "ZN-007",
1438
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1439
+ induction_date: "2026-06-21"
1440
+ },
1441
+ {
1442
+ worker_id: "WK-2100",
1443
+ full_name: "Farid Al-Farsi",
1444
+ trade: "Drywaller",
1445
+ employer: "Ilmadrin Interiors",
1446
+ contractor: "Ilmadrin Interiors",
1447
+ badge_id: "BDG-78090",
1448
+ crew_id: "CR-10",
1449
+ last_seen_at: "2026-07-22 07:11",
1450
+ risk_score: 35,
1451
+ current_zone_id: "ZN-007",
1452
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1453
+ induction_date: "2026-02-06"
1454
+ },
1455
+ {
1456
+ worker_id: "WK-2101",
1457
+ full_name: "Mirela Barakat",
1458
+ trade: "Drywaller",
1459
+ employer: "Ilmadrin Interiors",
1460
+ contractor: "Ilmadrin Interiors",
1461
+ badge_id: "BDG-78091",
1462
+ crew_id: "CR-10",
1463
+ last_seen_at: "2026-07-22 07:02",
1464
+ risk_score: 5,
1465
+ current_zone_id: "ZN-007",
1466
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1467
+ induction_date: "2026-01-12"
1468
+ },
1469
+ {
1470
+ worker_id: "WK-2102",
1471
+ full_name: "Musa Nwosu",
1472
+ trade: "Drywaller",
1473
+ employer: "Ilmadrin Interiors",
1474
+ contractor: "Ilmadrin Interiors",
1475
+ badge_id: "BDG-78092",
1476
+ crew_id: "CR-10",
1477
+ last_seen_at: "2026-07-22 06:54",
1478
+ risk_score: 18,
1479
+ current_zone_id: "ZN-014",
1480
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1481
+ induction_date: "2026-06-27"
1482
+ },
1483
+ {
1484
+ worker_id: "WK-2103",
1485
+ full_name: "Kofi Sesay",
1486
+ trade: "Drywaller",
1487
+ employer: "Ilmadrin Interiors",
1488
+ contractor: "Ilmadrin Interiors",
1489
+ badge_id: "BDG-78093",
1490
+ crew_id: "CR-10",
1491
+ last_seen_at: "2026-07-22 07:56",
1492
+ risk_score: 6,
1493
+ current_zone_id: "ZN-007",
1494
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1495
+ induction_date: "2026-02-13"
1496
+ },
1497
+ {
1498
+ worker_id: "WK-2104",
1499
+ full_name: "Noor Bassam",
1500
+ trade: "Drywaller",
1501
+ employer: "Ilmadrin Interiors",
1502
+ contractor: "Ilmadrin Interiors",
1503
+ badge_id: "BDG-78094",
1504
+ crew_id: "CR-10",
1505
+ last_seen_at: "2026-07-22 07:04",
1506
+ risk_score: 33,
1507
+ current_zone_id: "ZN-007",
1508
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1509
+ induction_date: "2026-05-27"
1510
+ },
1511
+ {
1512
+ worker_id: "WK-2105",
1513
+ full_name: "Thabo Farouk",
1514
+ trade: "Drywaller",
1515
+ employer: "Ilmadrin Interiors",
1516
+ contractor: "Ilmadrin Interiors",
1517
+ badge_id: "BDG-78095",
1518
+ crew_id: "CR-10",
1519
+ last_seen_at: "2026-07-22 06:19",
1520
+ risk_score: 34,
1521
+ current_zone_id: "ZN-007",
1522
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1523
+ induction_date: "2026-04-20"
1524
+ },
1525
+ {
1526
+ worker_id: "WK-2106",
1527
+ full_name: "Rosa Mansour",
1528
+ trade: "Drywaller",
1529
+ employer: "Ilmadrin Interiors",
1530
+ contractor: "Ilmadrin Interiors",
1531
+ badge_id: "BDG-78096",
1532
+ crew_id: "CR-10",
1533
+ last_seen_at: "2026-07-22 06:41",
1534
+ risk_score: 55,
1535
+ current_zone_id: "ZN-010",
1536
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1537
+ induction_date: "2026-06-02"
1538
+ },
1539
+ {
1540
+ worker_id: "WK-2107",
1541
+ full_name: "Ekaterina Chaudhry",
1542
+ trade: "Drywaller",
1543
+ employer: "Ilmadrin Interiors",
1544
+ contractor: "Ilmadrin Interiors",
1545
+ badge_id: "BDG-78097",
1546
+ crew_id: "CR-10",
1547
+ last_seen_at: "2026-07-22 06:42",
1548
+ risk_score: 14,
1549
+ current_zone_id: "ZN-007",
1550
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1551
+ induction_date: "2026-06-22"
1552
+ },
1553
+ {
1554
+ worker_id: "WK-2108",
1555
+ full_name: "Karim Petrov",
1556
+ trade: "Drywaller",
1557
+ employer: "Ilmadrin Interiors",
1558
+ contractor: "Ilmadrin Interiors",
1559
+ badge_id: "BDG-78098",
1560
+ crew_id: "CR-10",
1561
+ last_seen_at: "2026-07-22 07:06",
1562
+ risk_score: 34,
1563
+ current_zone_id: "ZN-007",
1564
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1565
+ induction_date: "2026-02-26"
1566
+ },
1567
+ {
1568
+ worker_id: "WK-2109",
1569
+ full_name: "Kofi Ogunleye",
1570
+ trade: "Drywaller",
1571
+ employer: "Ilmadrin Interiors",
1572
+ contractor: "Ilmadrin Interiors",
1573
+ badge_id: "BDG-78099",
1574
+ crew_id: "CR-10",
1575
+ last_seen_at: "2026-07-22 06:29",
1576
+ risk_score: 40,
1577
+ current_zone_id: "ZN-007",
1578
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1579
+ induction_date: "2026-03-06"
1580
+ },
1581
+ {
1582
+ worker_id: "WK-2110",
1583
+ full_name: "Marek Ivanova",
1584
+ trade: "Foreman",
1585
+ employer: "Brovaska Earthworks",
1586
+ contractor: "Brovaska Earthworks",
1587
+ badge_id: "BDG-78100",
1588
+ crew_id: "CR-11",
1589
+ last_seen_at: "2026-07-21 15:50",
1590
+ risk_score: 41,
1591
+ current_zone_id: null,
1592
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1593
+ induction_date: "2026-05-17"
1594
+ },
1595
+ {
1596
+ worker_id: "WK-2111",
1597
+ full_name: "Dmitri Rahimi",
1598
+ trade: "Plant operator",
1599
+ employer: "Brovaska Earthworks",
1600
+ contractor: "Brovaska Earthworks",
1601
+ badge_id: "BDG-78101",
1602
+ crew_id: "CR-11",
1603
+ last_seen_at: "2026-07-22 06:12",
1604
+ risk_score: 58,
1605
+ current_zone_id: "ZN-004",
1606
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1607
+ induction_date: "2026-04-24"
1608
+ },
1609
+ {
1610
+ worker_id: "WK-2112",
1611
+ full_name: "Adnan Aboud",
1612
+ trade: "Plant operator",
1613
+ employer: "Brovaska Earthworks",
1614
+ contractor: "Brovaska Earthworks",
1615
+ badge_id: "BDG-78102",
1616
+ crew_id: "CR-11",
1617
+ last_seen_at: "2026-07-22 07:35",
1618
+ risk_score: 34,
1619
+ current_zone_id: "ZN-004",
1620
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1621
+ induction_date: "2026-04-13"
1622
+ },
1623
+ {
1624
+ worker_id: "WK-2113",
1625
+ full_name: "Adnan Mwangi",
1626
+ trade: "Plant operator",
1627
+ employer: "Brovaska Earthworks",
1628
+ contractor: "Brovaska Earthworks",
1629
+ badge_id: "BDG-78103",
1630
+ crew_id: "CR-11",
1631
+ last_seen_at: "2026-07-22 06:07",
1632
+ risk_score: 45,
1633
+ current_zone_id: "ZN-004",
1634
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1635
+ induction_date: "2026-02-11"
1636
+ },
1637
+ {
1638
+ worker_id: "WK-2114",
1639
+ full_name: "Diego Barakat",
1640
+ trade: "Plant operator",
1641
+ employer: "Brovaska Earthworks",
1642
+ contractor: "Brovaska Earthworks",
1643
+ badge_id: "BDG-78104",
1644
+ crew_id: "CR-11",
1645
+ last_seen_at: "2026-07-22 06:47",
1646
+ risk_score: 51,
1647
+ current_zone_id: "ZN-004",
1648
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1649
+ induction_date: "2026-04-01"
1650
+ },
1651
+ {
1652
+ worker_id: "WK-2115",
1653
+ full_name: "Ibrahim Zubair",
1654
+ trade: "Plant operator",
1655
+ employer: "Brovaska Earthworks",
1656
+ contractor: "Brovaska Earthworks",
1657
+ badge_id: "BDG-78105",
1658
+ crew_id: "CR-11",
1659
+ last_seen_at: "2026-07-22 07:38",
1660
+ risk_score: 9,
1661
+ current_zone_id: "ZN-004",
1662
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1663
+ induction_date: "2026-04-26"
1664
+ },
1665
+ {
1666
+ worker_id: "WK-2116",
1667
+ full_name: "Sergei Al-Otaibi",
1668
+ trade: "Plant operator",
1669
+ employer: "Brovaska Earthworks",
1670
+ contractor: "Brovaska Earthworks",
1671
+ badge_id: "BDG-78106",
1672
+ crew_id: "CR-11",
1673
+ last_seen_at: "2026-07-22 06:43",
1674
+ risk_score: 13,
1675
+ current_zone_id: "ZN-004",
1676
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1677
+ induction_date: "2026-06-17"
1678
+ },
1679
+ {
1680
+ worker_id: "WK-2117",
1681
+ full_name: "Tariq Bakr",
1682
+ trade: "Foreman",
1683
+ employer: "Skarnvell Scaffolding",
1684
+ contractor: "Skarnvell Scaffolding",
1685
+ badge_id: "BDG-78107",
1686
+ crew_id: "CR-12",
1687
+ last_seen_at: "2026-07-22 07:33",
1688
+ risk_score: 12,
1689
+ current_zone_id: "ZN-009",
1690
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1691
+ induction_date: "2026-06-20"
1692
+ },
1693
+ {
1694
+ worker_id: "WK-2118",
1695
+ full_name: "Nourah Mansour",
1696
+ trade: "Scaffolder",
1697
+ employer: "Skarnvell Scaffolding",
1698
+ contractor: "Skarnvell Scaffolding",
1699
+ badge_id: "BDG-78108",
1700
+ crew_id: "CR-12",
1701
+ last_seen_at: "2026-07-22 06:14",
1702
+ risk_score: 45,
1703
+ current_zone_id: "ZN-009",
1704
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1705
+ induction_date: "2026-03-19"
1706
+ },
1707
+ {
1708
+ worker_id: "WK-2119",
1709
+ full_name: "Mariam Ndlovu",
1710
+ trade: "Scaffolder",
1711
+ employer: "Skarnvell Scaffolding",
1712
+ contractor: "Skarnvell Scaffolding",
1713
+ badge_id: "BDG-78109",
1714
+ crew_id: "CR-12",
1715
+ last_seen_at: "2026-07-21 15:33",
1716
+ risk_score: 24,
1717
+ current_zone_id: null,
1718
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1719
+ induction_date: "2026-02-09"
1720
+ },
1721
+ {
1722
+ worker_id: "WK-2120",
1723
+ full_name: "Anwar Okafor",
1724
+ trade: "Scaffolder",
1725
+ employer: "Skarnvell Scaffolding",
1726
+ contractor: "Skarnvell Scaffolding",
1727
+ badge_id: "BDG-78110",
1728
+ crew_id: "CR-12",
1729
+ last_seen_at: "2026-07-21 15:18",
1730
+ risk_score: 57,
1731
+ current_zone_id: null,
1732
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1733
+ induction_date: "2026-01-28"
1734
+ },
1735
+ {
1736
+ worker_id: "WK-2121",
1737
+ full_name: "Hafsa Serrano",
1738
+ trade: "Scaffolder",
1739
+ employer: "Skarnvell Scaffolding",
1740
+ contractor: "Skarnvell Scaffolding",
1741
+ badge_id: "BDG-78111",
1742
+ crew_id: "CR-12",
1743
+ last_seen_at: "2026-07-22 07:53",
1744
+ risk_score: 52,
1745
+ current_zone_id: "ZN-013",
1746
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1747
+ induction_date: "2026-04-15"
1748
+ },
1749
+ {
1750
+ worker_id: "WK-2122",
1751
+ full_name: "Mariam Aziz",
1752
+ trade: "Scaffolder",
1753
+ employer: "Skarnvell Scaffolding",
1754
+ contractor: "Skarnvell Scaffolding",
1755
+ badge_id: "BDG-78112",
1756
+ crew_id: "CR-12",
1757
+ last_seen_at: "2026-07-22 07:32",
1758
+ risk_score: 39,
1759
+ current_zone_id: "ZN-009",
1760
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1761
+ induction_date: "2026-04-23"
1762
+ },
1763
+ {
1764
+ worker_id: "WK-2123",
1765
+ full_name: "Leila Farouk",
1766
+ trade: "Scaffolder",
1767
+ employer: "Skarnvell Scaffolding",
1768
+ contractor: "Skarnvell Scaffolding",
1769
+ badge_id: "BDG-78113",
1770
+ crew_id: "CR-12",
1771
+ last_seen_at: "2026-07-22 06:41",
1772
+ risk_score: 48,
1773
+ current_zone_id: "ZN-009",
1774
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1775
+ induction_date: "2026-03-09"
1776
+ },
1777
+ {
1778
+ worker_id: "WK-2124",
1779
+ full_name: "Sergei Bhatt",
1780
+ trade: "Scaffolder",
1781
+ employer: "Skarnvell Scaffolding",
1782
+ contractor: "Skarnvell Scaffolding",
1783
+ badge_id: "BDG-78114",
1784
+ crew_id: "CR-12",
1785
+ last_seen_at: "2026-07-22 07:34",
1786
+ risk_score: 62,
1787
+ current_zone_id: "ZN-009",
1788
+ shift: "Day B · 06:30–17:30 (midday stand-down 12:00–15:00)",
1789
+ induction_date: "2026-02-23"
1790
+ },
1791
+ {
1792
+ worker_id: "WK-2125",
1793
+ full_name: "Suneeta Marinescu",
1794
+ trade: "Foreman",
1795
+ employer: "Okarveth Civil Works",
1796
+ contractor: "Okarveth Civil Works",
1797
+ badge_id: "BDG-78115",
1798
+ crew_id: "CR-13",
1799
+ last_seen_at: "2026-07-21 16:58",
1800
+ risk_score: 34,
1801
+ current_zone_id: null,
1802
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1803
+ induction_date: "2026-06-17"
1804
+ },
1805
+ {
1806
+ worker_id: "WK-2126",
1807
+ full_name: "Ivan Al-Farsi",
1808
+ trade: "Blocklayer",
1809
+ employer: "Okarveth Civil Works",
1810
+ contractor: "Okarveth Civil Works",
1811
+ badge_id: "BDG-78116",
1812
+ crew_id: "CR-13",
1813
+ last_seen_at: "2026-07-22 07:39",
1814
+ risk_score: 17,
1815
+ current_zone_id: "ZN-011",
1816
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1817
+ induction_date: "2026-03-19"
1818
+ },
1819
+ {
1820
+ worker_id: "WK-2127",
1821
+ full_name: "Sergei Venkat",
1822
+ trade: "Blocklayer",
1823
+ employer: "Okarveth Civil Works",
1824
+ contractor: "Okarveth Civil Works",
1825
+ badge_id: "BDG-78117",
1826
+ crew_id: "CR-13",
1827
+ last_seen_at: "2026-07-22 06:01",
1828
+ risk_score: 47,
1829
+ current_zone_id: "ZN-011",
1830
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1831
+ induction_date: "2026-01-21"
1832
+ },
1833
+ {
1834
+ worker_id: "WK-2128",
1835
+ full_name: "Ngozi Rahmani",
1836
+ trade: "Blocklayer",
1837
+ employer: "Okarveth Civil Works",
1838
+ contractor: "Okarveth Civil Works",
1839
+ badge_id: "BDG-78118",
1840
+ crew_id: "CR-13",
1841
+ last_seen_at: "2026-07-22 07:30",
1842
+ risk_score: 56,
1843
+ current_zone_id: "ZN-011",
1844
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1845
+ induction_date: "2026-01-20"
1846
+ },
1847
+ {
1848
+ worker_id: "WK-2129",
1849
+ full_name: "Ravi Farouk",
1850
+ trade: "Blocklayer",
1851
+ employer: "Okarveth Civil Works",
1852
+ contractor: "Okarveth Civil Works",
1853
+ badge_id: "BDG-78119",
1854
+ crew_id: "CR-13",
1855
+ last_seen_at: "2026-07-22 06:15",
1856
+ risk_score: 40,
1857
+ current_zone_id: "ZN-011",
1858
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1859
+ induction_date: "2026-05-05"
1860
+ },
1861
+ {
1862
+ worker_id: "WK-2130",
1863
+ full_name: "Nourah Barakat",
1864
+ trade: "Blocklayer",
1865
+ employer: "Okarveth Civil Works",
1866
+ contractor: "Okarveth Civil Works",
1867
+ badge_id: "BDG-78120",
1868
+ crew_id: "CR-13",
1869
+ last_seen_at: "2026-07-21 17:03",
1870
+ risk_score: 45,
1871
+ current_zone_id: null,
1872
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1873
+ induction_date: "2026-06-14"
1874
+ },
1875
+ {
1876
+ worker_id: "WK-2131",
1877
+ full_name: "Oleg Yildiz",
1878
+ trade: "Blocklayer",
1879
+ employer: "Okarveth Civil Works",
1880
+ contractor: "Okarveth Civil Works",
1881
+ badge_id: "BDG-78121",
1882
+ crew_id: "CR-13",
1883
+ last_seen_at: "2026-07-22 07:12",
1884
+ risk_score: 6,
1885
+ current_zone_id: "ZN-004",
1886
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1887
+ induction_date: "2026-03-03"
1888
+ },
1889
+ {
1890
+ worker_id: "WK-2132",
1891
+ full_name: "Halima Al-Farsi",
1892
+ trade: "Blocklayer",
1893
+ employer: "Okarveth Civil Works",
1894
+ contractor: "Okarveth Civil Works",
1895
+ badge_id: "BDG-78122",
1896
+ crew_id: "CR-13",
1897
+ last_seen_at: "2026-07-22 06:10",
1898
+ risk_score: 16,
1899
+ current_zone_id: "ZN-011",
1900
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1901
+ induction_date: "2026-04-15"
1902
+ },
1903
+ {
1904
+ worker_id: "WK-2133",
1905
+ full_name: "Gulzar Kamara",
1906
+ trade: "Blocklayer",
1907
+ employer: "Okarveth Civil Works",
1908
+ contractor: "Okarveth Civil Works",
1909
+ badge_id: "BDG-78123",
1910
+ crew_id: "CR-13",
1911
+ last_seen_at: "2026-07-22 07:00",
1912
+ risk_score: 20,
1913
+ current_zone_id: "ZN-011",
1914
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1915
+ induction_date: "2026-02-08"
1916
+ },
1917
+ {
1918
+ worker_id: "WK-2134",
1919
+ full_name: "Adnan Venkat",
1920
+ trade: "Foreman",
1921
+ employer: "Threnalt MEP",
1922
+ contractor: "Threnalt MEP",
1923
+ badge_id: "BDG-78124",
1924
+ crew_id: "CR-14",
1925
+ last_seen_at: "2026-07-22 06:27",
1926
+ risk_score: 20,
1927
+ current_zone_id: "ZN-012",
1928
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1929
+ induction_date: "2026-06-23"
1930
+ },
1931
+ {
1932
+ worker_id: "WK-2135",
1933
+ full_name: "Halima Zubair",
1934
+ trade: "MEP supervisor",
1935
+ employer: "Threnalt MEP",
1936
+ contractor: "Threnalt MEP",
1937
+ badge_id: "BDG-78125",
1938
+ crew_id: "CR-14",
1939
+ last_seen_at: "2026-07-22 07:02",
1940
+ risk_score: 41,
1941
+ current_zone_id: "ZN-014",
1942
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1943
+ induction_date: "2026-04-07"
1944
+ },
1945
+ {
1946
+ worker_id: "WK-2136",
1947
+ full_name: "Adnan Khoury",
1948
+ trade: "MEP supervisor",
1949
+ employer: "Threnalt MEP",
1950
+ contractor: "Threnalt MEP",
1951
+ badge_id: "BDG-78126",
1952
+ crew_id: "CR-14",
1953
+ last_seen_at: "2026-07-22 06:58",
1954
+ risk_score: 56,
1955
+ current_zone_id: "ZN-012",
1956
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1957
+ induction_date: "2026-01-23"
1958
+ },
1959
+ {
1960
+ worker_id: "WK-2137",
1961
+ full_name: "Grace Camara",
1962
+ trade: "MEP supervisor",
1963
+ employer: "Threnalt MEP",
1964
+ contractor: "Threnalt MEP",
1965
+ badge_id: "BDG-78127",
1966
+ crew_id: "CR-14",
1967
+ last_seen_at: "2026-07-22 07:41",
1968
+ risk_score: 49,
1969
+ current_zone_id: "ZN-012",
1970
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1971
+ induction_date: "2026-03-17"
1972
+ },
1973
+ {
1974
+ worker_id: "WK-2138",
1975
+ full_name: "Obinna Jibril",
1976
+ trade: "MEP supervisor",
1977
+ employer: "Threnalt MEP",
1978
+ contractor: "Threnalt MEP",
1979
+ badge_id: "BDG-78128",
1980
+ crew_id: "CR-14",
1981
+ last_seen_at: "2026-07-22 07:54",
1982
+ risk_score: 36,
1983
+ current_zone_id: "ZN-012",
1984
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1985
+ induction_date: "2026-04-09"
1986
+ },
1987
+ {
1988
+ worker_id: "WK-2139",
1989
+ full_name: "Emeka Toure",
1990
+ trade: "MEP supervisor",
1991
+ employer: "Threnalt MEP",
1992
+ contractor: "Threnalt MEP",
1993
+ badge_id: "BDG-78129",
1994
+ crew_id: "CR-14",
1995
+ last_seen_at: "2026-07-22 06:29",
1996
+ risk_score: 57,
1997
+ current_zone_id: "ZN-001",
1998
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
1999
+ induction_date: "2026-06-01"
2000
+ },
2001
+ {
2002
+ worker_id: "WK-2140",
2003
+ full_name: "Nadia Aboud",
2004
+ trade: "Safety marshal",
2005
+ employer: "Olmerith Field Services",
2006
+ contractor: "Olmerith Field Services",
2007
+ badge_id: "BDG-78130",
2008
+ crew_id: null,
2009
+ last_seen_at: "2026-07-22 07:24",
2010
+ risk_score: 6,
2011
+ current_zone_id: null,
2012
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
2013
+ induction_date: "2026-04-02"
2014
+ },
2015
+ {
2016
+ worker_id: "WK-2141",
2017
+ full_name: "Selma Fakhoury",
2018
+ trade: "Safety marshal",
2019
+ employer: "Olmerith Field Services",
2020
+ contractor: "Olmerith Field Services",
2021
+ badge_id: "BDG-78131",
2022
+ crew_id: null,
2023
+ last_seen_at: "2026-07-22 07:50",
2024
+ risk_score: 4,
2025
+ current_zone_id: "ZN-003",
2026
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
2027
+ induction_date: "2026-01-15"
2028
+ },
2029
+ {
2030
+ worker_id: "WK-2142",
2031
+ full_name: "Bashir Iyer",
2032
+ trade: "Safety marshal",
2033
+ employer: "Olmerith Field Services",
2034
+ contractor: "Olmerith Field Services",
2035
+ badge_id: "BDG-78132",
2036
+ crew_id: null,
2037
+ last_seen_at: "2026-07-22 07:23",
2038
+ risk_score: 11,
2039
+ current_zone_id: "ZN-013",
2040
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
2041
+ induction_date: "2026-02-22"
2042
+ },
2043
+ {
2044
+ worker_id: "WK-2143",
2045
+ full_name: "Mariam Diallo",
2046
+ trade: "Storeman",
2047
+ employer: "Olmerith Field Services",
2048
+ contractor: "Olmerith Field Services",
2049
+ badge_id: "BDG-78133",
2050
+ crew_id: null,
2051
+ last_seen_at: "2026-07-22 07:18",
2052
+ risk_score: 6,
2053
+ current_zone_id: null,
2054
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
2055
+ induction_date: "2026-02-27"
2056
+ },
2057
+ {
2058
+ worker_id: "WK-2144",
2059
+ full_name: "Gulzar Ivanova",
2060
+ trade: "Storeman",
2061
+ employer: "Olmerith Field Services",
2062
+ contractor: "Olmerith Field Services",
2063
+ badge_id: "BDG-78134",
2064
+ crew_id: null,
2065
+ last_seen_at: "2026-07-22 07:53",
2066
+ risk_score: 15,
2067
+ current_zone_id: "ZN-014",
2068
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
2069
+ induction_date: "2026-01-10"
2070
+ },
2071
+ {
2072
+ worker_id: "WK-2145",
2073
+ full_name: "Dmitri Duru",
2074
+ trade: "Surveyor",
2075
+ employer: "Olmerith Field Services",
2076
+ contractor: "Olmerith Field Services",
2077
+ badge_id: "BDG-78135",
2078
+ crew_id: null,
2079
+ last_seen_at: "2026-07-22 07:46",
2080
+ risk_score: 3,
2081
+ current_zone_id: "ZN-014",
2082
+ shift: "Day A · 06:00–17:00 (midday stand-down 12:00–15:00)",
2083
+ induction_date: "2026-04-21"
2084
+ }
2085
+ ];
2086
+ /** `ot_zone` instances — 14 rows, verbatim from the prototype store. */
2087
+ const WC3_ZONE_ROWS = [
2088
+ {
2089
+ zone_id: "ZN-001",
2090
+ zone_name: "Tower Core L01–L10",
2091
+ zone_kind: "Work zone",
2092
+ capacity_limit: 60,
2093
+ risk_score: 58,
2094
+ geo_location: "24.7744, 46.7385",
2095
+ site_id: "ST-FH-N",
2096
+ storey_id: null
2097
+ },
2098
+ {
2099
+ zone_id: "ZN-002",
2100
+ zone_name: "Hoist Zone A",
2101
+ zone_kind: "Restricted",
2102
+ capacity_limit: 8,
2103
+ risk_score: 74,
2104
+ geo_location: "24.7746, 46.7388",
2105
+ site_id: "ST-FH-N",
2106
+ storey_id: null
2107
+ },
2108
+ {
2109
+ zone_id: "ZN-003",
2110
+ zone_name: "North Laydown Yard",
2111
+ zone_kind: "Laydown",
2112
+ capacity_limit: 25,
2113
+ risk_score: 22,
2114
+ geo_location: "24.7749, 46.7382",
2115
+ site_id: "ST-FH-N",
2116
+ storey_id: null
2117
+ },
2118
+ {
2119
+ zone_id: "ZN-004",
2120
+ zone_name: "South Excavation Pit",
2121
+ zone_kind: "Work zone",
2122
+ capacity_limit: 35,
2123
+ risk_score: 66,
2124
+ geo_location: "24.7688, 46.7404",
2125
+ site_id: "ST-FH-S",
2126
+ storey_id: null
2127
+ },
2128
+ {
2129
+ zone_id: "ZN-005",
2130
+ zone_name: "Depot Slab Pour Area",
2131
+ zone_kind: "Work zone",
2132
+ capacity_limit: 45,
2133
+ risk_score: 41,
2134
+ geo_location: "25.0808, 55.1401",
2135
+ site_id: "ST-MD-1",
2136
+ storey_id: null
2137
+ },
2138
+ {
2139
+ zone_id: "ZN-006",
2140
+ zone_name: "Welfare Village",
2141
+ zone_kind: "Welfare",
2142
+ capacity_limit: 120,
2143
+ risk_score: 8,
2144
+ geo_location: "25.0801, 55.1410",
2145
+ site_id: "ST-MD-1",
2146
+ storey_id: null
2147
+ },
2148
+ {
2149
+ zone_id: "ZN-007",
2150
+ zone_name: "Podium Fit-out Area",
2151
+ zone_kind: "Work zone",
2152
+ capacity_limit: 40,
2153
+ risk_score: 31,
2154
+ geo_location: "24.7754, 46.7390",
2155
+ site_id: "ST-FH-N",
2156
+ storey_id: "ST-L00"
2157
+ },
2158
+ {
2159
+ zone_id: "ZN-008",
2160
+ zone_name: "Basement Plant Room",
2161
+ zone_kind: "Confined",
2162
+ capacity_limit: 12,
2163
+ risk_score: 71,
2164
+ geo_location: "24.7757, 46.7373",
2165
+ site_id: "ST-FH-N",
2166
+ storey_id: "ST-B01"
2167
+ },
2168
+ {
2169
+ zone_id: "ZN-009",
2170
+ zone_name: "Facade Access Deck",
2171
+ zone_kind: "Restricted",
2172
+ capacity_limit: 16,
2173
+ risk_score: 69,
2174
+ geo_location: "24.7756, 46.7398",
2175
+ site_id: "ST-FH-N",
2176
+ storey_id: "ST-L04"
2177
+ },
2178
+ {
2179
+ zone_id: "ZN-010",
2180
+ zone_name: "MEP Riser Shafts",
2181
+ zone_kind: "Restricted",
2182
+ capacity_limit: 10,
2183
+ risk_score: 58,
2184
+ geo_location: "24.7749, 46.7371",
2185
+ site_id: "ST-FH-N",
2186
+ storey_id: "ST-L03"
2187
+ },
2188
+ {
2189
+ zone_id: "ZN-011",
2190
+ zone_name: "Blockwork Bay L02",
2191
+ zone_kind: "Work zone",
2192
+ capacity_limit: 22,
2193
+ risk_score: 26,
2194
+ geo_location: "24.7722, 46.7380",
2195
+ site_id: "ST-FH-N",
2196
+ storey_id: "ST-L02"
2197
+ },
2198
+ {
2199
+ zone_id: "ZN-012",
2200
+ zone_name: "Roof Plant Deck",
2201
+ zone_kind: "Restricted",
2202
+ capacity_limit: 14,
2203
+ risk_score: 63,
2204
+ geo_location: "24.7752, 46.7380",
2205
+ site_id: "ST-FH-N",
2206
+ storey_id: "ST-RF"
2207
+ },
2208
+ {
2209
+ zone_id: "ZN-013",
2210
+ zone_name: "Gate 2 Logistics Yard",
2211
+ zone_kind: "Laydown",
2212
+ capacity_limit: 30,
2213
+ risk_score: 19,
2214
+ geo_location: "24.7755, 46.7367",
2215
+ site_id: "ST-FH-N",
2216
+ storey_id: null
2217
+ },
2218
+ {
2219
+ zone_id: "ZN-014",
2220
+ zone_name: "Site Welfare & Offices",
2221
+ zone_kind: "Welfare",
2222
+ capacity_limit: 150,
2223
+ risk_score: 5,
2224
+ geo_location: "24.7751, 46.7384",
2225
+ site_id: "ST-FH-N",
2226
+ storey_id: null
2227
+ }
2228
+ ];
2229
+ /** `ot_activity` instances — 85 rows, verbatim from the prototype store. */
2230
+ const WC3_ACTIVITY_ROWS = [
2231
+ {
2232
+ activity_id: "ACT-3100",
2233
+ activity_name: "Erect core rebar L11",
2234
+ wbs_code: "1.2.3",
2235
+ planned_start: "2026-07-14",
2236
+ planned_finish: "2026-07-28",
2237
+ baseline_start: "2026-07-10",
2238
+ baseline_finish: "2026-07-27",
2239
+ duration_days: 14,
2240
+ percent_complete: 65,
2241
+ critical_path: true,
2242
+ zone_id: "ZN-001",
2243
+ project_id: "PRJ-1001",
2244
+ cost_code: "03-2100",
2245
+ pred_activity_id: null,
2246
+ delay_days: 0,
2247
+ budget_sar: 2349882,
2248
+ earned_value_sar: 1527423,
2249
+ contractor: "Vorenthal Contracting"
2250
+ },
2251
+ {
2252
+ activity_id: "ACT-3101",
2253
+ activity_name: "Pour core wall L11",
2254
+ wbs_code: "1.2.4",
2255
+ planned_start: "2026-07-25",
2256
+ planned_finish: "2026-08-02",
2257
+ baseline_start: "2026-07-19",
2258
+ baseline_finish: "2026-08-01",
2259
+ duration_days: 8,
2260
+ percent_complete: 0,
2261
+ critical_path: true,
2262
+ zone_id: "ZN-001",
2263
+ project_id: "PRJ-1001",
2264
+ cost_code: "03-3100",
2265
+ pred_activity_id: "ACT-3100",
2266
+ delay_days: 0,
2267
+ budget_sar: 2842033,
2268
+ earned_value_sar: 0,
2269
+ contractor: "Vorenthal Contracting"
2270
+ },
2271
+ {
2272
+ activity_id: "ACT-3102",
2273
+ activity_name: "Install hoist mast section 4",
2274
+ wbs_code: "1.4.1",
2275
+ planned_start: "2026-07-20",
2276
+ planned_finish: "2026-07-24",
2277
+ baseline_start: "2026-07-19",
2278
+ baseline_finish: "2026-07-17",
2279
+ duration_days: 4,
2280
+ percent_complete: 40,
2281
+ critical_path: false,
2282
+ zone_id: "ZN-002",
2283
+ project_id: "PRJ-1001",
2284
+ cost_code: "14-2000",
2285
+ pred_activity_id: null,
2286
+ delay_days: 0,
2287
+ budget_sar: 1457869,
2288
+ earned_value_sar: 583148,
2289
+ contractor: "Zeltrave Lifting"
2290
+ },
2291
+ {
2292
+ activity_id: "ACT-3103",
2293
+ activity_name: "Strip formwork L09",
2294
+ wbs_code: "1.2.1",
2295
+ planned_start: "2026-07-18",
2296
+ planned_finish: "2026-07-23",
2297
+ baseline_start: "2026-07-15",
2298
+ baseline_finish: "2026-07-22",
2299
+ duration_days: 5,
2300
+ percent_complete: 88,
2301
+ critical_path: false,
2302
+ zone_id: "ZN-001",
2303
+ project_id: "PRJ-1001",
2304
+ cost_code: "03-1100",
2305
+ pred_activity_id: null,
2306
+ delay_days: 0,
2307
+ budget_sar: 2481950,
2308
+ earned_value_sar: 2184116,
2309
+ contractor: "Vorenthal Contracting"
2310
+ },
2311
+ {
2312
+ activity_id: "ACT-3104",
2313
+ activity_name: "Excavate pile caps grid D",
2314
+ wbs_code: "2.1.2",
2315
+ planned_start: "2026-07-10",
2316
+ planned_finish: "2026-07-30",
2317
+ baseline_start: "2026-07-09",
2318
+ baseline_finish: "2026-07-29",
2319
+ duration_days: 20,
2320
+ percent_complete: 52,
2321
+ critical_path: true,
2322
+ zone_id: "ZN-004",
2323
+ project_id: "PRJ-1001",
2324
+ cost_code: "31-2300",
2325
+ pred_activity_id: null,
2326
+ delay_days: 0,
2327
+ budget_sar: 1600622,
2328
+ earned_value_sar: 832323,
2329
+ contractor: "Vorenthal Contracting"
2330
+ },
2331
+ {
2332
+ activity_id: "ACT-3105",
2333
+ activity_name: "Pour depot slab bay 7",
2334
+ wbs_code: "3.2.2",
2335
+ planned_start: "2026-07-21",
2336
+ planned_finish: "2026-07-26",
2337
+ baseline_start: "2026-07-17",
2338
+ baseline_finish: "2026-07-25",
2339
+ duration_days: 5,
2340
+ percent_complete: 15,
2341
+ critical_path: true,
2342
+ zone_id: "ZN-005",
2343
+ project_id: "PRJ-1002",
2344
+ cost_code: "03-3000",
2345
+ pred_activity_id: null,
2346
+ delay_days: 0,
2347
+ budget_sar: 2174787,
2348
+ earned_value_sar: 326218,
2349
+ contractor: "Okarveth Civil Works"
2350
+ },
2351
+ {
2352
+ activity_id: "ACT-3106",
2353
+ activity_name: "Install depot drainage run C",
2354
+ wbs_code: "3.3.1",
2355
+ planned_start: "2026-07-28",
2356
+ planned_finish: "2026-08-08",
2357
+ baseline_start: "2026-07-27",
2358
+ baseline_finish: "2026-08-07",
2359
+ duration_days: 11,
2360
+ percent_complete: 0,
2361
+ critical_path: false,
2362
+ zone_id: "ZN-005",
2363
+ project_id: "PRJ-1002",
2364
+ cost_code: "33-4000",
2365
+ pred_activity_id: "ACT-3105",
2366
+ delay_days: 0,
2367
+ budget_sar: 1974116,
2368
+ earned_value_sar: 0,
2369
+ contractor: "Okarveth Civil Works"
2370
+ },
2371
+ {
2372
+ activity_id: "ACT-3107",
2373
+ activity_name: "Commission welfare village power",
2374
+ wbs_code: "3.9.1",
2375
+ planned_start: "2026-07-15",
2376
+ planned_finish: "2026-07-22",
2377
+ baseline_start: "2026-07-14",
2378
+ baseline_finish: "2026-07-21",
2379
+ duration_days: 7,
2380
+ percent_complete: 95,
2381
+ critical_path: false,
2382
+ zone_id: "ZN-006",
2383
+ project_id: "PRJ-1002",
2384
+ cost_code: "26-0500",
2385
+ pred_activity_id: null,
2386
+ delay_days: 0,
2387
+ budget_sar: 1125397,
2388
+ earned_value_sar: 1069127,
2389
+ contractor: "Okarveth Civil Works"
2390
+ },
2391
+ {
2392
+ activity_id: "A-2005",
2393
+ activity_name: "Foundations & podium",
2394
+ wbs_code: "1.3.0",
2395
+ planned_start: "2026-03-01",
2396
+ planned_finish: "2026-05-20",
2397
+ baseline_start: "2026-02-28",
2398
+ baseline_finish: "2026-05-19",
2399
+ duration_days: 80,
2400
+ percent_complete: 100,
2401
+ critical_path: false,
2402
+ zone_id: "ZN-001",
2403
+ project_id: "PRJ-1001",
2404
+ cost_code: "03-3130",
2405
+ pred_activity_id: null,
2406
+ delay_days: 0,
2407
+ budget_sar: 2178494,
2408
+ earned_value_sar: 2178494,
2409
+ contractor: "Vorenthal Contracting"
2410
+ },
2411
+ {
2412
+ activity_id: "A-2010",
2413
+ activity_name: "Structure — Level 01",
2414
+ wbs_code: "1.3.1",
2415
+ planned_start: "2026-06-01",
2416
+ planned_finish: "2026-06-20",
2417
+ baseline_start: "2026-05-31",
2418
+ baseline_finish: "2026-06-19",
2419
+ duration_days: 19,
2420
+ percent_complete: 100,
2421
+ critical_path: false,
2422
+ zone_id: "ZN-001",
2423
+ project_id: "PRJ-1001",
2424
+ cost_code: "03-3131",
2425
+ pred_activity_id: "A-2005",
2426
+ delay_days: 0,
2427
+ budget_sar: 1512997,
2428
+ earned_value_sar: 1512997,
2429
+ contractor: "Vorenthal Contracting"
2430
+ },
2431
+ {
2432
+ activity_id: "A-2020",
2433
+ activity_name: "Structure — Level 02",
2434
+ wbs_code: "1.3.2",
2435
+ planned_start: "2026-06-15",
2436
+ planned_finish: "2026-07-05",
2437
+ baseline_start: "2026-06-13",
2438
+ baseline_finish: "2026-07-04",
2439
+ duration_days: 20,
2440
+ percent_complete: 100,
2441
+ critical_path: false,
2442
+ zone_id: "ZN-001",
2443
+ project_id: "PRJ-1001",
2444
+ cost_code: "03-3132",
2445
+ pred_activity_id: "A-2010",
2446
+ delay_days: 0,
2447
+ budget_sar: 2130649,
2448
+ earned_value_sar: 2130649,
2449
+ contractor: "Vorenthal Contracting"
2450
+ },
2451
+ {
2452
+ activity_id: "A-2030",
2453
+ activity_name: "Structure — Level 03",
2454
+ wbs_code: "1.3.3",
2455
+ planned_start: "2026-07-01",
2456
+ planned_finish: "2026-07-20",
2457
+ baseline_start: "2026-06-30",
2458
+ baseline_finish: "2026-07-11",
2459
+ duration_days: 19,
2460
+ percent_complete: 78,
2461
+ critical_path: true,
2462
+ zone_id: "ZN-001",
2463
+ project_id: "PRJ-1001",
2464
+ cost_code: "03-3133",
2465
+ pred_activity_id: "A-2020",
2466
+ delay_days: 0,
2467
+ budget_sar: 2951212,
2468
+ earned_value_sar: 2301945,
2469
+ contractor: "Vorenthal Contracting"
2470
+ },
2471
+ {
2472
+ activity_id: "A-2040",
2473
+ activity_name: "Tower crane lifts — core jump L12",
2474
+ wbs_code: "1.4.2",
2475
+ planned_start: "2026-07-20",
2476
+ planned_finish: "2026-07-28",
2477
+ baseline_start: "2026-07-19",
2478
+ baseline_finish: "2026-07-27",
2479
+ duration_days: 8,
2480
+ percent_complete: 35,
2481
+ critical_path: true,
2482
+ zone_id: "ZN-002",
2483
+ project_id: "PRJ-1001",
2484
+ cost_code: "03-3142",
2485
+ pred_activity_id: "A-2030",
2486
+ delay_days: 0,
2487
+ budget_sar: 2210471,
2488
+ earned_value_sar: 773665,
2489
+ contractor: "Zeltrave Lifting"
2490
+ },
2491
+ {
2492
+ activity_id: "A-2050",
2493
+ activity_name: "Structure — Level 04",
2494
+ wbs_code: "1.3.4",
2495
+ planned_start: "2026-07-22",
2496
+ planned_finish: "2026-08-12",
2497
+ baseline_start: "2026-07-21",
2498
+ baseline_finish: "2026-08-06",
2499
+ duration_days: 21,
2500
+ percent_complete: 5,
2501
+ critical_path: true,
2502
+ zone_id: "ZN-001",
2503
+ project_id: "PRJ-1001",
2504
+ cost_code: "03-3134",
2505
+ pred_activity_id: "A-2040",
2506
+ delay_days: 0,
2507
+ budget_sar: 411052,
2508
+ earned_value_sar: 20553,
2509
+ contractor: "Vorenthal Contracting"
2510
+ },
2511
+ {
2512
+ activity_id: "A-2060",
2513
+ activity_name: "Structure — Level 05",
2514
+ wbs_code: "1.3.5",
2515
+ planned_start: "2026-08-10",
2516
+ planned_finish: "2026-09-02",
2517
+ baseline_start: "2026-08-09",
2518
+ baseline_finish: "2026-09-01",
2519
+ duration_days: 23,
2520
+ percent_complete: 0,
2521
+ critical_path: false,
2522
+ zone_id: "ZN-001",
2523
+ project_id: "PRJ-1001",
2524
+ cost_code: "03-3135",
2525
+ pred_activity_id: "A-2050",
2526
+ delay_days: 0,
2527
+ budget_sar: 2795628,
2528
+ earned_value_sar: 0,
2529
+ contractor: "Vorenthal Contracting"
2530
+ },
2531
+ {
2532
+ activity_id: "A-4001",
2533
+ activity_name: "Site mobilisation & hoarding",
2534
+ wbs_code: "1.1.1",
2535
+ planned_start: "2026-01-05",
2536
+ planned_finish: "2026-01-13",
2537
+ baseline_start: "2025-12-31",
2538
+ baseline_finish: "2026-01-12",
2539
+ duration_days: 9,
2540
+ percent_complete: 100,
2541
+ critical_path: false,
2542
+ zone_id: "ZN-013",
2543
+ project_id: "PRJ-1001",
2544
+ cost_code: "1-1-1010",
2545
+ pred_activity_id: null,
2546
+ delay_days: 0,
2547
+ budget_sar: 1851827,
2548
+ earned_value_sar: 1851827,
2549
+ contractor: "Brovaska Earthworks"
2550
+ },
2551
+ {
2552
+ activity_id: "A-4002",
2553
+ activity_name: "Temporary power & water connection",
2554
+ wbs_code: "1.1.2",
2555
+ planned_start: "2026-01-12",
2556
+ planned_finish: "2026-01-28",
2557
+ baseline_start: "2026-01-11",
2558
+ baseline_finish: "2026-01-21",
2559
+ duration_days: 17,
2560
+ percent_complete: 100,
2561
+ critical_path: false,
2562
+ zone_id: "ZN-013",
2563
+ project_id: "PRJ-1001",
2564
+ cost_code: "1-1-1020",
2565
+ pred_activity_id: "A-4001",
2566
+ delay_days: 0,
2567
+ budget_sar: 1804313,
2568
+ earned_value_sar: 1804313,
2569
+ contractor: "Brovaska Earthworks"
2570
+ },
2571
+ {
2572
+ activity_id: "A-4003",
2573
+ activity_name: "Site offices and welfare village",
2574
+ wbs_code: "1.1.3",
2575
+ planned_start: "2026-01-20",
2576
+ planned_finish: "2026-01-28",
2577
+ baseline_start: "2026-01-19",
2578
+ baseline_finish: "2026-01-19",
2579
+ duration_days: 9,
2580
+ percent_complete: 86,
2581
+ critical_path: false,
2582
+ zone_id: "ZN-013",
2583
+ project_id: "PRJ-1001",
2584
+ cost_code: "1-1-1030",
2585
+ pred_activity_id: "A-4002",
2586
+ delay_days: 0,
2587
+ budget_sar: 1520043,
2588
+ earned_value_sar: 1307237,
2589
+ contractor: "Brovaska Earthworks"
2590
+ },
2591
+ {
2592
+ activity_id: "A-4004",
2593
+ activity_name: "Access roads and gate houses",
2594
+ wbs_code: "1.1.4",
2595
+ planned_start: "2026-01-24",
2596
+ planned_finish: "2026-01-31",
2597
+ baseline_start: "2026-01-23",
2598
+ baseline_finish: "2026-01-30",
2599
+ duration_days: 8,
2600
+ percent_complete: 100,
2601
+ critical_path: false,
2602
+ zone_id: "ZN-013",
2603
+ project_id: "PRJ-1001",
2604
+ cost_code: "1-1-1040",
2605
+ pred_activity_id: "A-4003",
2606
+ delay_days: 0,
2607
+ budget_sar: 291795,
2608
+ earned_value_sar: 291795,
2609
+ contractor: "Brovaska Earthworks"
2610
+ },
2611
+ {
2612
+ activity_id: "A-4005",
2613
+ activity_name: "Setting-out & survey control network",
2614
+ wbs_code: "1.1.5",
2615
+ planned_start: "2026-01-28",
2616
+ planned_finish: "2026-02-10",
2617
+ baseline_start: "2026-01-22",
2618
+ baseline_finish: "2026-02-01",
2619
+ duration_days: 14,
2620
+ percent_complete: 100,
2621
+ critical_path: false,
2622
+ zone_id: "ZN-013",
2623
+ project_id: "PRJ-1001",
2624
+ cost_code: "1-1-1050",
2625
+ pred_activity_id: "A-4004",
2626
+ delay_days: 0,
2627
+ budget_sar: 1642831,
2628
+ earned_value_sar: 1642831,
2629
+ contractor: "Brovaska Earthworks"
2630
+ },
2631
+ {
2632
+ activity_id: "A-4006",
2633
+ activity_name: "Tower crane base TC-1",
2634
+ wbs_code: "1.1.6",
2635
+ planned_start: "2026-02-01",
2636
+ planned_finish: "2026-02-09",
2637
+ baseline_start: "2026-01-31",
2638
+ baseline_finish: "2026-02-03",
2639
+ duration_days: 9,
2640
+ percent_complete: 100,
2641
+ critical_path: false,
2642
+ zone_id: "ZN-013",
2643
+ project_id: "PRJ-1001",
2644
+ cost_code: "1-1-1060",
2645
+ pred_activity_id: "A-4005",
2646
+ delay_days: 0,
2647
+ budget_sar: 1858649,
2648
+ earned_value_sar: 1858649,
2649
+ contractor: "Brovaska Earthworks"
2650
+ },
2651
+ {
2652
+ activity_id: "A-4007",
2653
+ activity_name: "Site-wide dewatering system",
2654
+ wbs_code: "1.1.7",
2655
+ planned_start: "2026-02-09",
2656
+ planned_finish: "2026-02-16",
2657
+ baseline_start: "2026-02-08",
2658
+ baseline_finish: "2026-02-15",
2659
+ duration_days: 8,
2660
+ percent_complete: 100,
2661
+ critical_path: false,
2662
+ zone_id: "ZN-013",
2663
+ project_id: "PRJ-1001",
2664
+ cost_code: "1-1-1070",
2665
+ pred_activity_id: "A-4006",
2666
+ delay_days: 0,
2667
+ budget_sar: 1809524,
2668
+ earned_value_sar: 1809524,
2669
+ contractor: "Brovaska Earthworks"
2670
+ },
2671
+ {
2672
+ activity_id: "A-4008",
2673
+ activity_name: "Temporary fire main",
2674
+ wbs_code: "1.1.8",
2675
+ planned_start: "2026-02-12",
2676
+ planned_finish: "2026-02-22",
2677
+ baseline_start: "2026-02-11",
2678
+ baseline_finish: "2026-02-21",
2679
+ duration_days: 11,
2680
+ percent_complete: 100,
2681
+ critical_path: false,
2682
+ zone_id: "ZN-013",
2683
+ project_id: "PRJ-1001",
2684
+ cost_code: "1-1-1080",
2685
+ pred_activity_id: "A-4007",
2686
+ delay_days: 0,
2687
+ budget_sar: 833251,
2688
+ earned_value_sar: 833251,
2689
+ contractor: "Brovaska Earthworks"
2690
+ },
2691
+ {
2692
+ activity_id: "A-4009",
2693
+ activity_name: "Piling mat construction",
2694
+ wbs_code: "1.1.9",
2695
+ planned_start: "2026-02-20",
2696
+ planned_finish: "2026-03-09",
2697
+ baseline_start: "2026-02-19",
2698
+ baseline_finish: "2026-03-08",
2699
+ duration_days: 18,
2700
+ percent_complete: 100,
2701
+ critical_path: false,
2702
+ zone_id: "ZN-013",
2703
+ project_id: "PRJ-1001",
2704
+ cost_code: "1-1-1090",
2705
+ pred_activity_id: "A-4008",
2706
+ delay_days: 0,
2707
+ budget_sar: 389999,
2708
+ earned_value_sar: 389999,
2709
+ contractor: "Brovaska Earthworks"
2710
+ },
2711
+ {
2712
+ activity_id: "A-4010",
2713
+ activity_name: "Site security, CCTV and gate control",
2714
+ wbs_code: "1.1.10",
2715
+ planned_start: "2026-02-28",
2716
+ planned_finish: "2026-03-10",
2717
+ baseline_start: "2026-02-27",
2718
+ baseline_finish: "2026-03-09",
2719
+ duration_days: 11,
2720
+ percent_complete: 100,
2721
+ critical_path: false,
2722
+ zone_id: "ZN-013",
2723
+ project_id: "PRJ-1001",
2724
+ cost_code: "1-1-1100",
2725
+ pred_activity_id: "A-4009",
2726
+ delay_days: 0,
2727
+ budget_sar: 497349,
2728
+ earned_value_sar: 497349,
2729
+ contractor: "Brovaska Earthworks"
2730
+ },
2731
+ {
2732
+ activity_id: "A-4011",
2733
+ activity_name: "Concrete batching plant set-up",
2734
+ wbs_code: "1.1.11",
2735
+ planned_start: "2026-03-03",
2736
+ planned_finish: "2026-03-13",
2737
+ baseline_start: "2026-03-02",
2738
+ baseline_finish: "2026-03-12",
2739
+ duration_days: 11,
2740
+ percent_complete: 100,
2741
+ critical_path: false,
2742
+ zone_id: "ZN-013",
2743
+ project_id: "PRJ-1001",
2744
+ cost_code: "1-1-1110",
2745
+ pred_activity_id: "A-4010",
2746
+ delay_days: 0,
2747
+ budget_sar: 1242696,
2748
+ earned_value_sar: 1242696,
2749
+ contractor: "Brovaska Earthworks"
2750
+ },
2751
+ {
2752
+ activity_id: "A-4012",
2753
+ activity_name: "Environmental monitoring stations",
2754
+ wbs_code: "1.1.12",
2755
+ planned_start: "2026-03-06",
2756
+ planned_finish: "2026-03-13",
2757
+ baseline_start: "2026-03-05",
2758
+ baseline_finish: "2026-03-12",
2759
+ duration_days: 8,
2760
+ percent_complete: 100,
2761
+ critical_path: false,
2762
+ zone_id: "ZN-013",
2763
+ project_id: "PRJ-1001",
2764
+ cost_code: "1-1-1120",
2765
+ pred_activity_id: "A-4011",
2766
+ delay_days: 0,
2767
+ budget_sar: 487845,
2768
+ earned_value_sar: 487845,
2769
+ contractor: "Brovaska Earthworks"
2770
+ },
2771
+ {
2772
+ activity_id: "A-4013",
2773
+ activity_name: "Bulk excavation to formation",
2774
+ wbs_code: "1.5.1",
2775
+ planned_start: "2026-02-20",
2776
+ planned_finish: "2026-03-03",
2777
+ baseline_start: "2026-02-19",
2778
+ baseline_finish: "2026-03-02",
2779
+ duration_days: 12,
2780
+ percent_complete: 100,
2781
+ critical_path: true,
2782
+ zone_id: "ZN-004",
2783
+ project_id: "PRJ-1001",
2784
+ cost_code: "1-5-1010",
2785
+ pred_activity_id: null,
2786
+ delay_days: 0,
2787
+ budget_sar: 1545248,
2788
+ earned_value_sar: 1545248,
2789
+ contractor: "Vorenthal Contracting"
2790
+ },
2791
+ {
2792
+ activity_id: "A-4014",
2793
+ activity_name: "Blinding to pile caps",
2794
+ wbs_code: "1.5.2",
2795
+ planned_start: "2026-03-01",
2796
+ planned_finish: "2026-03-14",
2797
+ baseline_start: "2026-02-24",
2798
+ baseline_finish: "2026-03-13",
2799
+ duration_days: 14,
2800
+ percent_complete: 83,
2801
+ critical_path: false,
2802
+ zone_id: "ZN-004",
2803
+ project_id: "PRJ-1001",
2804
+ cost_code: "1-5-1020",
2805
+ pred_activity_id: "A-4013",
2806
+ delay_days: 0,
2807
+ budget_sar: 1622337,
2808
+ earned_value_sar: 1346540,
2809
+ contractor: "Vorenthal Contracting"
2810
+ },
2811
+ {
2812
+ activity_id: "A-4015",
2813
+ activity_name: "Pile cap reinforcement & pour",
2814
+ wbs_code: "1.5.3",
2815
+ planned_start: "2026-03-08",
2816
+ planned_finish: "2026-03-22",
2817
+ baseline_start: "2026-03-07",
2818
+ baseline_finish: "2026-03-18",
2819
+ duration_days: 15,
2820
+ percent_complete: 100,
2821
+ critical_path: false,
2822
+ zone_id: "ZN-004",
2823
+ project_id: "PRJ-1001",
2824
+ cost_code: "1-5-1030",
2825
+ pred_activity_id: "A-4014",
2826
+ delay_days: 0,
2827
+ budget_sar: 1567936,
2828
+ earned_value_sar: 1567936,
2829
+ contractor: "Vorenthal Contracting"
2830
+ },
2831
+ {
2832
+ activity_id: "A-4016",
2833
+ activity_name: "Ground beams grid A–D",
2834
+ wbs_code: "1.5.4",
2835
+ planned_start: "2026-03-16",
2836
+ planned_finish: "2026-03-27",
2837
+ baseline_start: "2026-03-15",
2838
+ baseline_finish: "2026-03-26",
2839
+ duration_days: 12,
2840
+ percent_complete: 78,
2841
+ critical_path: true,
2842
+ zone_id: "ZN-004",
2843
+ project_id: "PRJ-1001",
2844
+ cost_code: "1-5-1040",
2845
+ pred_activity_id: "A-4015",
2846
+ delay_days: 0,
2847
+ budget_sar: 761602,
2848
+ earned_value_sar: 594050,
2849
+ contractor: "Vorenthal Contracting"
2850
+ },
2851
+ {
2852
+ activity_id: "A-4017",
2853
+ activity_name: "Basement retaining wall lift 1",
2854
+ wbs_code: "1.5.5",
2855
+ planned_start: "2026-03-21",
2856
+ planned_finish: "2026-04-04",
2857
+ baseline_start: "2026-03-15",
2858
+ baseline_finish: "2026-04-03",
2859
+ duration_days: 15,
2860
+ percent_complete: 83,
2861
+ critical_path: false,
2862
+ zone_id: "ZN-004",
2863
+ project_id: "PRJ-1001",
2864
+ cost_code: "1-5-1050",
2865
+ pred_activity_id: "A-4016",
2866
+ delay_days: 0,
2867
+ budget_sar: 1196041,
2868
+ earned_value_sar: 992714,
2869
+ contractor: "Vorenthal Contracting"
2870
+ },
2871
+ {
2872
+ activity_id: "A-4018",
2873
+ activity_name: "Basement retaining wall lift 2",
2874
+ wbs_code: "1.5.6",
2875
+ planned_start: "2026-03-30",
2876
+ planned_finish: "2026-04-10",
2877
+ baseline_start: "2026-03-29",
2878
+ baseline_finish: "2026-04-09",
2879
+ duration_days: 12,
2880
+ percent_complete: 100,
2881
+ critical_path: false,
2882
+ zone_id: "ZN-004",
2883
+ project_id: "PRJ-1001",
2884
+ cost_code: "1-5-1060",
2885
+ pred_activity_id: "A-4017",
2886
+ delay_days: 0,
2887
+ budget_sar: 1360723,
2888
+ earned_value_sar: 1360723,
2889
+ contractor: "Vorenthal Contracting"
2890
+ },
2891
+ {
2892
+ activity_id: "A-4019",
2893
+ activity_name: "Tanking & waterproofing to B01",
2894
+ wbs_code: "1.5.7",
2895
+ planned_start: "2026-04-05",
2896
+ planned_finish: "2026-04-18",
2897
+ baseline_start: "2026-04-04",
2898
+ baseline_finish: "2026-04-17",
2899
+ duration_days: 14,
2900
+ percent_complete: 100,
2901
+ critical_path: true,
2902
+ zone_id: "ZN-004",
2903
+ project_id: "PRJ-1001",
2904
+ cost_code: "1-5-1070",
2905
+ pred_activity_id: "A-4018",
2906
+ delay_days: 0,
2907
+ budget_sar: 2283906,
2908
+ earned_value_sar: 2283906,
2909
+ contractor: "Vorenthal Contracting"
2910
+ },
2911
+ {
2912
+ activity_id: "A-4020",
2913
+ activity_name: "Lift pit and sump construction",
2914
+ wbs_code: "1.5.8",
2915
+ planned_start: "2026-04-10",
2916
+ planned_finish: "2026-04-25",
2917
+ baseline_start: "2026-04-09",
2918
+ baseline_finish: "2026-04-16",
2919
+ duration_days: 16,
2920
+ percent_complete: 100,
2921
+ critical_path: false,
2922
+ zone_id: "ZN-004",
2923
+ project_id: "PRJ-1001",
2924
+ cost_code: "1-5-1080",
2925
+ pred_activity_id: "A-4019",
2926
+ delay_days: 0,
2927
+ budget_sar: 1097256,
2928
+ earned_value_sar: 1097256,
2929
+ contractor: "Vorenthal Contracting"
2930
+ },
2931
+ {
2932
+ activity_id: "A-4021",
2933
+ activity_name: "Basement raft slab pour",
2934
+ wbs_code: "1.5.9",
2935
+ planned_start: "2026-04-19",
2936
+ planned_finish: "2026-05-08",
2937
+ baseline_start: "2026-04-14",
2938
+ baseline_finish: "2026-05-07",
2939
+ duration_days: 20,
2940
+ percent_complete: 100,
2941
+ critical_path: false,
2942
+ zone_id: "ZN-004",
2943
+ project_id: "PRJ-1001",
2944
+ cost_code: "1-5-1090",
2945
+ pred_activity_id: "A-4020",
2946
+ delay_days: 0,
2947
+ budget_sar: 1683376,
2948
+ earned_value_sar: 1683376,
2949
+ contractor: "Vorenthal Contracting"
2950
+ },
2951
+ {
2952
+ activity_id: "A-4022",
2953
+ activity_name: "Backfill and compaction",
2954
+ wbs_code: "1.5.10",
2955
+ planned_start: "2026-04-26",
2956
+ planned_finish: "2026-05-12",
2957
+ baseline_start: "2026-04-25",
2958
+ baseline_finish: "2026-05-11",
2959
+ duration_days: 17,
2960
+ percent_complete: 100,
2961
+ critical_path: true,
2962
+ zone_id: "ZN-004",
2963
+ project_id: "PRJ-1001",
2964
+ cost_code: "1-5-1100",
2965
+ pred_activity_id: "A-4021",
2966
+ delay_days: 0,
2967
+ budget_sar: 1263273,
2968
+ earned_value_sar: 1263273,
2969
+ contractor: "Vorenthal Contracting"
2970
+ },
2971
+ {
2972
+ activity_id: "A-4023",
2973
+ activity_name: "Facade visual mock-up sign-off",
2974
+ wbs_code: "1.6.1",
2975
+ planned_start: "2026-08-01",
2976
+ planned_finish: "2026-08-13",
2977
+ baseline_start: "2026-07-31",
2978
+ baseline_finish: "2026-08-12",
2979
+ duration_days: 13,
2980
+ percent_complete: 0,
2981
+ critical_path: true,
2982
+ zone_id: "ZN-009",
2983
+ project_id: "PRJ-1001",
2984
+ cost_code: "1-6-1010",
2985
+ pred_activity_id: null,
2986
+ delay_days: 0,
2987
+ budget_sar: 1497005,
2988
+ earned_value_sar: 0,
2989
+ contractor: "Halvenor Facades"
2990
+ },
2991
+ {
2992
+ activity_id: "A-4024",
2993
+ activity_name: "Unitised panel delivery batch 1",
2994
+ wbs_code: "1.6.2",
2995
+ planned_start: "2026-08-12",
2996
+ planned_finish: "2026-08-28",
2997
+ baseline_start: "2026-08-11",
2998
+ baseline_finish: "2026-08-24",
2999
+ duration_days: 17,
3000
+ percent_complete: 0,
3001
+ critical_path: false,
3002
+ zone_id: "ZN-009",
3003
+ project_id: "PRJ-1001",
3004
+ cost_code: "1-6-1020",
3005
+ pred_activity_id: "A-4023",
3006
+ delay_days: 0,
3007
+ budget_sar: 850729,
3008
+ earned_value_sar: 0,
3009
+ contractor: "Halvenor Facades"
3010
+ },
3011
+ {
3012
+ activity_id: "A-4025",
3013
+ activity_name: "Curtain wall install L01",
3014
+ wbs_code: "1.6.3",
3015
+ planned_start: "2026-08-19",
3016
+ planned_finish: "2026-09-03",
3017
+ baseline_start: "2026-08-18",
3018
+ baseline_finish: "2026-09-02",
3019
+ duration_days: 16,
3020
+ percent_complete: 0,
3021
+ critical_path: false,
3022
+ zone_id: "ZN-009",
3023
+ project_id: "PRJ-1001",
3024
+ cost_code: "1-6-1030",
3025
+ pred_activity_id: "A-4024",
3026
+ delay_days: 0,
3027
+ budget_sar: 1816073,
3028
+ earned_value_sar: 0,
3029
+ contractor: "Halvenor Facades"
3030
+ },
3031
+ {
3032
+ activity_id: "A-4026",
3033
+ activity_name: "Curtain wall install L02",
3034
+ wbs_code: "1.6.4",
3035
+ planned_start: "2026-08-30",
3036
+ planned_finish: "2026-09-17",
3037
+ baseline_start: "2026-08-29",
3038
+ baseline_finish: "2026-09-12",
3039
+ duration_days: 19,
3040
+ percent_complete: 0,
3041
+ critical_path: true,
3042
+ zone_id: "ZN-009",
3043
+ project_id: "PRJ-1001",
3044
+ cost_code: "1-6-1040",
3045
+ pred_activity_id: "A-4025",
3046
+ delay_days: 0,
3047
+ budget_sar: 1870592,
3048
+ earned_value_sar: 0,
3049
+ contractor: "Halvenor Facades"
3050
+ },
3051
+ {
3052
+ activity_id: "A-4027",
3053
+ activity_name: "Curtain wall install L03",
3054
+ wbs_code: "1.6.5",
3055
+ planned_start: "2026-09-05",
3056
+ planned_finish: "2026-09-18",
3057
+ baseline_start: "2026-09-01",
3058
+ baseline_finish: "2026-09-17",
3059
+ duration_days: 14,
3060
+ percent_complete: 0,
3061
+ critical_path: false,
3062
+ zone_id: "ZN-009",
3063
+ project_id: "PRJ-1001",
3064
+ cost_code: "1-6-1050",
3065
+ pred_activity_id: "A-4026",
3066
+ delay_days: 0,
3067
+ budget_sar: 1717553,
3068
+ earned_value_sar: 0,
3069
+ contractor: "Halvenor Facades"
3070
+ },
3071
+ {
3072
+ activity_id: "A-4028",
3073
+ activity_name: "Curtain wall install L04",
3074
+ wbs_code: "1.6.6",
3075
+ planned_start: "2026-09-11",
3076
+ planned_finish: "2026-09-30",
3077
+ baseline_start: "2026-09-10",
3078
+ baseline_finish: "2026-09-29",
3079
+ duration_days: 20,
3080
+ percent_complete: 0,
3081
+ critical_path: false,
3082
+ zone_id: "ZN-009",
3083
+ project_id: "PRJ-1001",
3084
+ cost_code: "1-6-1060",
3085
+ pred_activity_id: "A-4027",
3086
+ delay_days: 0,
3087
+ budget_sar: 1234013,
3088
+ earned_value_sar: 0,
3089
+ contractor: "Halvenor Facades"
3090
+ },
3091
+ {
3092
+ activity_id: "A-4029",
3093
+ activity_name: "Curtain wall install L05",
3094
+ wbs_code: "1.6.7",
3095
+ planned_start: "2026-09-20",
3096
+ planned_finish: "2026-10-08",
3097
+ baseline_start: "2026-09-19",
3098
+ baseline_finish: "2026-10-07",
3099
+ duration_days: 19,
3100
+ percent_complete: 0,
3101
+ critical_path: true,
3102
+ zone_id: "ZN-009",
3103
+ project_id: "PRJ-1001",
3104
+ cost_code: "1-6-1070",
3105
+ pred_activity_id: "A-4028",
3106
+ delay_days: 0,
3107
+ budget_sar: 1236540,
3108
+ earned_value_sar: 0,
3109
+ contractor: "Halvenor Facades"
3110
+ },
3111
+ {
3112
+ activity_id: "A-4030",
3113
+ activity_name: "Roof parapet capping",
3114
+ wbs_code: "1.6.8",
3115
+ planned_start: "2026-09-28",
3116
+ planned_finish: "2026-10-09",
3117
+ baseline_start: "2026-09-27",
3118
+ baseline_finish: "2026-10-08",
3119
+ duration_days: 12,
3120
+ percent_complete: 0,
3121
+ critical_path: false,
3122
+ zone_id: "ZN-009",
3123
+ project_id: "PRJ-1001",
3124
+ cost_code: "1-6-1080",
3125
+ pred_activity_id: "A-4029",
3126
+ delay_days: 0,
3127
+ budget_sar: 493160,
3128
+ earned_value_sar: 0,
3129
+ contractor: "Halvenor Facades"
3130
+ },
3131
+ {
3132
+ activity_id: "A-4031",
3133
+ activity_name: "Louvre installation to plant deck",
3134
+ wbs_code: "1.6.9",
3135
+ planned_start: "2026-10-05",
3136
+ planned_finish: "2026-10-20",
3137
+ baseline_start: "2026-10-04",
3138
+ baseline_finish: "2026-10-19",
3139
+ duration_days: 16,
3140
+ percent_complete: 0,
3141
+ critical_path: false,
3142
+ zone_id: "ZN-009",
3143
+ project_id: "PRJ-1001",
3144
+ cost_code: "1-6-1090",
3145
+ pred_activity_id: "A-4030",
3146
+ delay_days: 0,
3147
+ budget_sar: 390972,
3148
+ earned_value_sar: 0,
3149
+ contractor: "Halvenor Facades"
3150
+ },
3151
+ {
3152
+ activity_id: "A-4032",
3153
+ activity_name: "Perimeter sealant and gaskets",
3154
+ wbs_code: "1.6.10",
3155
+ planned_start: "2026-10-13",
3156
+ planned_finish: "2026-11-03",
3157
+ baseline_start: "2026-10-12",
3158
+ baseline_finish: "2026-11-02",
3159
+ duration_days: 22,
3160
+ percent_complete: 0,
3161
+ critical_path: true,
3162
+ zone_id: "ZN-009",
3163
+ project_id: "PRJ-1001",
3164
+ cost_code: "1-6-1100",
3165
+ pred_activity_id: "A-4031",
3166
+ delay_days: 0,
3167
+ budget_sar: 730499,
3168
+ earned_value_sar: 0,
3169
+ contractor: "Halvenor Facades"
3170
+ },
3171
+ {
3172
+ activity_id: "A-4033",
3173
+ activity_name: "Facade water penetration test",
3174
+ wbs_code: "1.6.11",
3175
+ planned_start: "2026-10-22",
3176
+ planned_finish: "2026-11-11",
3177
+ baseline_start: "2026-10-21",
3178
+ baseline_finish: "2026-11-09",
3179
+ duration_days: 21,
3180
+ percent_complete: 0,
3181
+ critical_path: false,
3182
+ zone_id: "ZN-009",
3183
+ project_id: "PRJ-1001",
3184
+ cost_code: "1-6-1110",
3185
+ pred_activity_id: "A-4032",
3186
+ delay_days: 0,
3187
+ budget_sar: 1981469,
3188
+ earned_value_sar: 0,
3189
+ contractor: "Halvenor Facades"
3190
+ },
3191
+ {
3192
+ activity_id: "A-4034",
3193
+ activity_name: "Facade access system commissioning",
3194
+ wbs_code: "1.6.12",
3195
+ planned_start: "2026-11-02",
3196
+ planned_finish: "2026-11-21",
3197
+ baseline_start: "2026-11-01",
3198
+ baseline_finish: "2026-11-20",
3199
+ duration_days: 20,
3200
+ percent_complete: 0,
3201
+ critical_path: false,
3202
+ zone_id: "ZN-009",
3203
+ project_id: "PRJ-1001",
3204
+ cost_code: "1-6-1120",
3205
+ pred_activity_id: "A-4033",
3206
+ delay_days: 0,
3207
+ budget_sar: 1309815,
3208
+ earned_value_sar: 0,
3209
+ contractor: "Halvenor Facades"
3210
+ },
3211
+ {
3212
+ activity_id: "A-4035",
3213
+ activity_name: "Riser containment L01–L03",
3214
+ wbs_code: "1.7.1",
3215
+ planned_start: "2026-07-05",
3216
+ planned_finish: "2026-07-17",
3217
+ baseline_start: "2026-07-04",
3218
+ baseline_finish: "2026-07-16",
3219
+ duration_days: 13,
3220
+ percent_complete: 100,
3221
+ critical_path: false,
3222
+ zone_id: "ZN-010",
3223
+ project_id: "PRJ-1001",
3224
+ cost_code: "1-7-1010",
3225
+ pred_activity_id: null,
3226
+ delay_days: 0,
3227
+ budget_sar: 698601,
3228
+ earned_value_sar: 698601,
3229
+ contractor: "Threnalt MEP"
3230
+ },
3231
+ {
3232
+ activity_id: "A-4036",
3233
+ activity_name: "Riser containment L04–L05",
3234
+ wbs_code: "1.7.2",
3235
+ planned_start: "2026-07-13",
3236
+ planned_finish: "2026-07-24",
3237
+ baseline_start: "2026-07-12",
3238
+ baseline_finish: "2026-07-20",
3239
+ duration_days: 12,
3240
+ percent_complete: 96,
3241
+ critical_path: false,
3242
+ zone_id: "ZN-010",
3243
+ project_id: "PRJ-1001",
3244
+ cost_code: "1-7-1020",
3245
+ pred_activity_id: "A-4035",
3246
+ delay_days: 0,
3247
+ budget_sar: 772593,
3248
+ earned_value_sar: 741689,
3249
+ contractor: "Threnalt MEP"
3250
+ },
3251
+ {
3252
+ activity_id: "A-4037",
3253
+ activity_name: "Duct mains L01",
3254
+ wbs_code: "1.7.3",
3255
+ planned_start: "2026-07-18",
3256
+ planned_finish: "2026-07-29",
3257
+ baseline_start: "2026-07-17",
3258
+ baseline_finish: "2026-07-28",
3259
+ duration_days: 12,
3260
+ percent_complete: 34,
3261
+ critical_path: false,
3262
+ zone_id: "ZN-010",
3263
+ project_id: "PRJ-1001",
3264
+ cost_code: "1-7-1030",
3265
+ pred_activity_id: "A-4036",
3266
+ delay_days: 0,
3267
+ budget_sar: 783249,
3268
+ earned_value_sar: 266305,
3269
+ contractor: "Threnalt MEP"
3270
+ },
3271
+ {
3272
+ activity_id: "A-4038",
3273
+ activity_name: "Duct mains L02",
3274
+ wbs_code: "1.7.4",
3275
+ planned_start: "2026-07-28",
3276
+ planned_finish: "2026-08-13",
3277
+ baseline_start: "2026-07-27",
3278
+ baseline_finish: "2026-08-12",
3279
+ duration_days: 17,
3280
+ percent_complete: 0,
3281
+ critical_path: false,
3282
+ zone_id: "ZN-010",
3283
+ project_id: "PRJ-1001",
3284
+ cost_code: "1-7-1040",
3285
+ pred_activity_id: "A-4037",
3286
+ delay_days: 0,
3287
+ budget_sar: 1140331,
3288
+ earned_value_sar: 0,
3289
+ contractor: "Threnalt MEP"
3290
+ },
3291
+ {
3292
+ activity_id: "A-4039",
3293
+ activity_name: "Duct mains L03",
3294
+ wbs_code: "1.7.5",
3295
+ planned_start: "2026-08-01",
3296
+ planned_finish: "2026-08-20",
3297
+ baseline_start: "2026-07-25",
3298
+ baseline_finish: "2026-08-19",
3299
+ duration_days: 20,
3300
+ percent_complete: 0,
3301
+ critical_path: false,
3302
+ zone_id: "ZN-010",
3303
+ project_id: "PRJ-1001",
3304
+ cost_code: "1-7-1050",
3305
+ pred_activity_id: "A-4038",
3306
+ delay_days: 0,
3307
+ budget_sar: 1364105,
3308
+ earned_value_sar: 0,
3309
+ contractor: "Threnalt MEP"
3310
+ },
3311
+ {
3312
+ activity_id: "A-4040",
3313
+ activity_name: "Sprinkler mains L01–L02",
3314
+ wbs_code: "1.7.6",
3315
+ planned_start: "2026-08-09",
3316
+ planned_finish: "2026-08-23",
3317
+ baseline_start: "2026-08-03",
3318
+ baseline_finish: "2026-08-22",
3319
+ duration_days: 15,
3320
+ percent_complete: 0,
3321
+ critical_path: false,
3322
+ zone_id: "ZN-010",
3323
+ project_id: "PRJ-1001",
3324
+ cost_code: "1-7-1060",
3325
+ pred_activity_id: "A-4039",
3326
+ delay_days: 0,
3327
+ budget_sar: 1400944,
3328
+ earned_value_sar: 0,
3329
+ contractor: "Threnalt MEP"
3330
+ },
3331
+ {
3332
+ activity_id: "A-4041",
3333
+ activity_name: "Sprinkler mains L03–L05",
3334
+ wbs_code: "1.7.7",
3335
+ planned_start: "2026-08-14",
3336
+ planned_finish: "2026-08-28",
3337
+ baseline_start: "2026-08-13",
3338
+ baseline_finish: "2026-08-27",
3339
+ duration_days: 15,
3340
+ percent_complete: 0,
3341
+ critical_path: false,
3342
+ zone_id: "ZN-010",
3343
+ project_id: "PRJ-1001",
3344
+ cost_code: "1-7-1070",
3345
+ pred_activity_id: "A-4040",
3346
+ delay_days: 0,
3347
+ budget_sar: 354920,
3348
+ earned_value_sar: 0,
3349
+ contractor: "Threnalt MEP"
3350
+ },
3351
+ {
3352
+ activity_id: "A-4042",
3353
+ activity_name: "Chilled water pipework risers",
3354
+ wbs_code: "1.7.8",
3355
+ planned_start: "2026-08-22",
3356
+ planned_finish: "2026-09-05",
3357
+ baseline_start: "2026-08-18",
3358
+ baseline_finish: "2026-09-04",
3359
+ duration_days: 15,
3360
+ percent_complete: 0,
3361
+ critical_path: false,
3362
+ zone_id: "ZN-010",
3363
+ project_id: "PRJ-1001",
3364
+ cost_code: "1-7-1080",
3365
+ pred_activity_id: "A-4041",
3366
+ delay_days: 0,
3367
+ budget_sar: 2233089,
3368
+ earned_value_sar: 0,
3369
+ contractor: "Threnalt MEP"
3370
+ },
3371
+ {
3372
+ activity_id: "A-4043",
3373
+ activity_name: "Distribution boards L01–L03",
3374
+ wbs_code: "1.7.9",
3375
+ planned_start: "2026-09-01",
3376
+ planned_finish: "2026-09-11",
3377
+ baseline_start: "2026-08-31",
3378
+ baseline_finish: "2026-09-10",
3379
+ duration_days: 11,
3380
+ percent_complete: 0,
3381
+ critical_path: false,
3382
+ zone_id: "ZN-010",
3383
+ project_id: "PRJ-1001",
3384
+ cost_code: "1-7-1090",
3385
+ pred_activity_id: "A-4042",
3386
+ delay_days: 0,
3387
+ budget_sar: 164801,
3388
+ earned_value_sar: 0,
3389
+ contractor: "Threnalt MEP"
3390
+ },
3391
+ {
3392
+ activity_id: "A-4044",
3393
+ activity_name: "Cable pulling — small power",
3394
+ wbs_code: "1.7.10",
3395
+ planned_start: "2026-09-11",
3396
+ planned_finish: "2026-09-24",
3397
+ baseline_start: "2026-09-10",
3398
+ baseline_finish: "2026-09-23",
3399
+ duration_days: 14,
3400
+ percent_complete: 0,
3401
+ critical_path: false,
3402
+ zone_id: "ZN-010",
3403
+ project_id: "PRJ-1001",
3404
+ cost_code: "1-7-1100",
3405
+ pred_activity_id: "A-4043",
3406
+ delay_days: 0,
3407
+ budget_sar: 449752,
3408
+ earned_value_sar: 0,
3409
+ contractor: "Threnalt MEP"
3410
+ },
3411
+ {
3412
+ activity_id: "A-4045",
3413
+ activity_name: "Cable pulling — lighting",
3414
+ wbs_code: "1.7.11",
3415
+ planned_start: "2026-09-20",
3416
+ planned_finish: "2026-10-03",
3417
+ baseline_start: "2026-09-19",
3418
+ baseline_finish: "2026-10-02",
3419
+ duration_days: 14,
3420
+ percent_complete: 0,
3421
+ critical_path: false,
3422
+ zone_id: "ZN-010",
3423
+ project_id: "PRJ-1001",
3424
+ cost_code: "1-7-1110",
3425
+ pred_activity_id: "A-4044",
3426
+ delay_days: 0,
3427
+ budget_sar: 1903325,
3428
+ earned_value_sar: 0,
3429
+ contractor: "Threnalt MEP"
3430
+ },
3431
+ {
3432
+ activity_id: "A-4046",
3433
+ activity_name: "Fire alarm containment",
3434
+ wbs_code: "1.7.12",
3435
+ planned_start: "2026-09-27",
3436
+ planned_finish: "2026-10-09",
3437
+ baseline_start: "2026-09-26",
3438
+ baseline_finish: "2026-10-07",
3439
+ duration_days: 13,
3440
+ percent_complete: 0,
3441
+ critical_path: false,
3442
+ zone_id: "ZN-010",
3443
+ project_id: "PRJ-1001",
3444
+ cost_code: "1-7-1120",
3445
+ pred_activity_id: "A-4045",
3446
+ delay_days: 0,
3447
+ budget_sar: 1550513,
3448
+ earned_value_sar: 0,
3449
+ contractor: "Threnalt MEP"
3450
+ },
3451
+ {
3452
+ activity_id: "A-4047",
3453
+ activity_name: "Basement plant room pipework",
3454
+ wbs_code: "1.7.13",
3455
+ planned_start: "2026-10-07",
3456
+ planned_finish: "2026-10-21",
3457
+ baseline_start: "2026-10-06",
3458
+ baseline_finish: "2026-10-20",
3459
+ duration_days: 15,
3460
+ percent_complete: 0,
3461
+ critical_path: false,
3462
+ zone_id: "ZN-010",
3463
+ project_id: "PRJ-1001",
3464
+ cost_code: "1-7-1130",
3465
+ pred_activity_id: "A-4046",
3466
+ delay_days: 0,
3467
+ budget_sar: 2045183,
3468
+ earned_value_sar: 0,
3469
+ contractor: "Threnalt MEP"
3470
+ },
3471
+ {
3472
+ activity_id: "A-4048",
3473
+ activity_name: "Drainage stacks and vents",
3474
+ wbs_code: "1.7.14",
3475
+ planned_start: "2026-10-11",
3476
+ planned_finish: "2026-10-21",
3477
+ baseline_start: "2026-10-10",
3478
+ baseline_finish: "2026-10-20",
3479
+ duration_days: 11,
3480
+ percent_complete: 0,
3481
+ critical_path: false,
3482
+ zone_id: "ZN-010",
3483
+ project_id: "PRJ-1001",
3484
+ cost_code: "1-7-1140",
3485
+ pred_activity_id: "A-4047",
3486
+ delay_days: 0,
3487
+ budget_sar: 1557585,
3488
+ earned_value_sar: 0,
3489
+ contractor: "Threnalt MEP"
3490
+ },
3491
+ {
3492
+ activity_id: "A-4049",
3493
+ activity_name: "Blockwork partitions L01",
3494
+ wbs_code: "1.8.1",
3495
+ planned_start: "2026-10-05",
3496
+ planned_finish: "2026-10-14",
3497
+ baseline_start: "2026-10-04",
3498
+ baseline_finish: "2026-10-12",
3499
+ duration_days: 10,
3500
+ percent_complete: 0,
3501
+ critical_path: false,
3502
+ zone_id: "ZN-007",
3503
+ project_id: "PRJ-1001",
3504
+ cost_code: "1-8-1010",
3505
+ pred_activity_id: null,
3506
+ delay_days: 0,
3507
+ budget_sar: 1647940,
3508
+ earned_value_sar: 0,
3509
+ contractor: "Ilmadrin Interiors"
3510
+ },
3511
+ {
3512
+ activity_id: "A-4050",
3513
+ activity_name: "Blockwork partitions L02",
3514
+ wbs_code: "1.8.2",
3515
+ planned_start: "2026-10-13",
3516
+ planned_finish: "2026-10-30",
3517
+ baseline_start: "2026-10-12",
3518
+ baseline_finish: "2026-10-29",
3519
+ duration_days: 18,
3520
+ percent_complete: 0,
3521
+ critical_path: false,
3522
+ zone_id: "ZN-007",
3523
+ project_id: "PRJ-1001",
3524
+ cost_code: "1-8-1020",
3525
+ pred_activity_id: "A-4049",
3526
+ delay_days: 0,
3527
+ budget_sar: 1906169,
3528
+ earned_value_sar: 0,
3529
+ contractor: "Ilmadrin Interiors"
3530
+ },
3531
+ {
3532
+ activity_id: "A-4051",
3533
+ activity_name: "Metal stud partitions L03",
3534
+ wbs_code: "1.8.3",
3535
+ planned_start: "2026-10-23",
3536
+ planned_finish: "2026-11-03",
3537
+ baseline_start: "2026-10-22",
3538
+ baseline_finish: "2026-11-02",
3539
+ duration_days: 12,
3540
+ percent_complete: 0,
3541
+ critical_path: false,
3542
+ zone_id: "ZN-007",
3543
+ project_id: "PRJ-1001",
3544
+ cost_code: "1-8-1030",
3545
+ pred_activity_id: "A-4050",
3546
+ delay_days: 0,
3547
+ budget_sar: 2255738,
3548
+ earned_value_sar: 0,
3549
+ contractor: "Ilmadrin Interiors"
3550
+ },
3551
+ {
3552
+ activity_id: "A-4052",
3553
+ activity_name: "Metal stud partitions L04",
3554
+ wbs_code: "1.8.4",
3555
+ planned_start: "2026-11-02",
3556
+ planned_finish: "2026-11-20",
3557
+ baseline_start: "2026-11-01",
3558
+ baseline_finish: "2026-11-19",
3559
+ duration_days: 19,
3560
+ percent_complete: 0,
3561
+ critical_path: false,
3562
+ zone_id: "ZN-007",
3563
+ project_id: "PRJ-1001",
3564
+ cost_code: "1-8-1040",
3565
+ pred_activity_id: "A-4051",
3566
+ delay_days: 0,
3567
+ budget_sar: 732605,
3568
+ earned_value_sar: 0,
3569
+ contractor: "Ilmadrin Interiors"
3570
+ },
3571
+ {
3572
+ activity_id: "A-4053",
3573
+ activity_name: "Suspended ceiling grid L01–L02",
3574
+ wbs_code: "1.8.5",
3575
+ planned_start: "2026-11-06",
3576
+ planned_finish: "2026-11-21",
3577
+ baseline_start: "2026-11-05",
3578
+ baseline_finish: "2026-11-20",
3579
+ duration_days: 16,
3580
+ percent_complete: 0,
3581
+ critical_path: false,
3582
+ zone_id: "ZN-007",
3583
+ project_id: "PRJ-1001",
3584
+ cost_code: "1-8-1050",
3585
+ pred_activity_id: "A-4052",
3586
+ delay_days: 0,
3587
+ budget_sar: 933389,
3588
+ earned_value_sar: 0,
3589
+ contractor: "Ilmadrin Interiors"
3590
+ },
3591
+ {
3592
+ activity_id: "A-4054",
3593
+ activity_name: "Suspended ceiling grid L03–L05",
3594
+ wbs_code: "1.8.6",
3595
+ planned_start: "2026-11-14",
3596
+ planned_finish: "2026-11-30",
3597
+ baseline_start: "2026-11-13",
3598
+ baseline_finish: "2026-11-25",
3599
+ duration_days: 17,
3600
+ percent_complete: 0,
3601
+ critical_path: false,
3602
+ zone_id: "ZN-007",
3603
+ project_id: "PRJ-1001",
3604
+ cost_code: "1-8-1060",
3605
+ pred_activity_id: "A-4053",
3606
+ delay_days: 0,
3607
+ budget_sar: 429392,
3608
+ earned_value_sar: 0,
3609
+ contractor: "Ilmadrin Interiors"
3610
+ },
3611
+ {
3612
+ activity_id: "A-4055",
3613
+ activity_name: "Doorsets and ironmongery",
3614
+ wbs_code: "1.8.7",
3615
+ planned_start: "2026-11-20",
3616
+ planned_finish: "2026-12-01",
3617
+ baseline_start: "2026-11-19",
3618
+ baseline_finish: "2026-11-30",
3619
+ duration_days: 12,
3620
+ percent_complete: 0,
3621
+ critical_path: false,
3622
+ zone_id: "ZN-007",
3623
+ project_id: "PRJ-1001",
3624
+ cost_code: "1-8-1070",
3625
+ pred_activity_id: "A-4054",
3626
+ delay_days: 0,
3627
+ budget_sar: 1365227,
3628
+ earned_value_sar: 0,
3629
+ contractor: "Ilmadrin Interiors"
3630
+ },
3631
+ {
3632
+ activity_id: "A-4056",
3633
+ activity_name: "Floor screeds and finishes",
3634
+ wbs_code: "1.8.8",
3635
+ planned_start: "2026-11-24",
3636
+ planned_finish: "2026-12-04",
3637
+ baseline_start: "2026-11-23",
3638
+ baseline_finish: "2026-12-03",
3639
+ duration_days: 11,
3640
+ percent_complete: 0,
3641
+ critical_path: false,
3642
+ zone_id: "ZN-007",
3643
+ project_id: "PRJ-1001",
3644
+ cost_code: "1-8-1080",
3645
+ pred_activity_id: "A-4055",
3646
+ delay_days: 0,
3647
+ budget_sar: 650140,
3648
+ earned_value_sar: 0,
3649
+ contractor: "Ilmadrin Interiors"
3650
+ },
3651
+ {
3652
+ activity_id: "A-4057",
3653
+ activity_name: "Wall finishes and painting",
3654
+ wbs_code: "1.8.9",
3655
+ planned_start: "2026-12-04",
3656
+ planned_finish: "2026-12-17",
3657
+ baseline_start: "2026-12-03",
3658
+ baseline_finish: "2026-12-16",
3659
+ duration_days: 14,
3660
+ percent_complete: 0,
3661
+ critical_path: false,
3662
+ zone_id: "ZN-007",
3663
+ project_id: "PRJ-1001",
3664
+ cost_code: "1-8-1090",
3665
+ pred_activity_id: "A-4056",
3666
+ delay_days: 0,
3667
+ budget_sar: 2268815,
3668
+ earned_value_sar: 0,
3669
+ contractor: "Ilmadrin Interiors"
3670
+ },
3671
+ {
3672
+ activity_id: "A-4058",
3673
+ activity_name: "Sanitaryware installation",
3674
+ wbs_code: "1.8.10",
3675
+ planned_start: "2026-12-08",
3676
+ planned_finish: "2026-12-21",
3677
+ baseline_start: "2026-12-07",
3678
+ baseline_finish: "2026-12-15",
3679
+ duration_days: 14,
3680
+ percent_complete: 0,
3681
+ critical_path: false,
3682
+ zone_id: "ZN-007",
3683
+ project_id: "PRJ-1001",
3684
+ cost_code: "1-8-1100",
3685
+ pred_activity_id: "A-4057",
3686
+ delay_days: 0,
3687
+ budget_sar: 1037584,
3688
+ earned_value_sar: 0,
3689
+ contractor: "Ilmadrin Interiors"
3690
+ },
3691
+ {
3692
+ activity_id: "A-4059",
3693
+ activity_name: "Joinery — reception and lobbies",
3694
+ wbs_code: "1.8.11",
3695
+ planned_start: "2026-12-18",
3696
+ planned_finish: "2026-12-30",
3697
+ baseline_start: "2026-12-17",
3698
+ baseline_finish: "2026-12-29",
3699
+ duration_days: 13,
3700
+ percent_complete: 0,
3701
+ critical_path: false,
3702
+ zone_id: "ZN-007",
3703
+ project_id: "PRJ-1001",
3704
+ cost_code: "1-8-1110",
3705
+ pred_activity_id: "A-4058",
3706
+ delay_days: 0,
3707
+ budget_sar: 1848595,
3708
+ earned_value_sar: 0,
3709
+ contractor: "Ilmadrin Interiors"
3710
+ },
3711
+ {
3712
+ activity_id: "A-4060",
3713
+ activity_name: "Final clean and snagging",
3714
+ wbs_code: "1.8.12",
3715
+ planned_start: "2026-12-22",
3716
+ planned_finish: "2027-01-08",
3717
+ baseline_start: "2026-12-21",
3718
+ baseline_finish: "2027-01-07",
3719
+ duration_days: 18,
3720
+ percent_complete: 0,
3721
+ critical_path: false,
3722
+ zone_id: "ZN-007",
3723
+ project_id: "PRJ-1001",
3724
+ cost_code: "1-8-1120",
3725
+ pred_activity_id: "A-4059",
3726
+ delay_days: 0,
3727
+ budget_sar: 472377,
3728
+ earned_value_sar: 0,
3729
+ contractor: "Ilmadrin Interiors"
3730
+ },
3731
+ {
3732
+ activity_id: "A-4061",
3733
+ activity_name: "AHU static and dynamic commissioning",
3734
+ wbs_code: "1.9.1",
3735
+ planned_start: "2027-01-04",
3736
+ planned_finish: "2027-01-17",
3737
+ baseline_start: "2026-12-28",
3738
+ baseline_finish: "2027-01-16",
3739
+ duration_days: 14,
3740
+ percent_complete: 0,
3741
+ critical_path: true,
3742
+ zone_id: "ZN-012",
3743
+ project_id: "PRJ-1001",
3744
+ cost_code: "1-9-1010",
3745
+ pred_activity_id: null,
3746
+ delay_days: 0,
3747
+ budget_sar: 746998,
3748
+ earned_value_sar: 0,
3749
+ contractor: "Threnalt MEP"
3750
+ },
3751
+ {
3752
+ activity_id: "A-4062",
3753
+ activity_name: "Air balancing to all floors",
3754
+ wbs_code: "1.9.2",
3755
+ planned_start: "2027-01-12",
3756
+ planned_finish: "2027-01-20",
3757
+ baseline_start: "2027-01-11",
3758
+ baseline_finish: "2027-01-13",
3759
+ duration_days: 9,
3760
+ percent_complete: 0,
3761
+ critical_path: false,
3762
+ zone_id: "ZN-012",
3763
+ project_id: "PRJ-1001",
3764
+ cost_code: "1-9-1020",
3765
+ pred_activity_id: "A-4061",
3766
+ delay_days: 0,
3767
+ budget_sar: 1003481,
3768
+ earned_value_sar: 0,
3769
+ contractor: "Threnalt MEP"
3770
+ },
3771
+ {
3772
+ activity_id: "A-4063",
3773
+ activity_name: "Water balancing — chilled water",
3774
+ wbs_code: "1.9.3",
3775
+ planned_start: "2027-01-17",
3776
+ planned_finish: "2027-01-25",
3777
+ baseline_start: "2027-01-16",
3778
+ baseline_finish: "2027-01-24",
3779
+ duration_days: 9,
3780
+ percent_complete: 0,
3781
+ critical_path: false,
3782
+ zone_id: "ZN-012",
3783
+ project_id: "PRJ-1001",
3784
+ cost_code: "1-9-1030",
3785
+ pred_activity_id: "A-4062",
3786
+ delay_days: 0,
3787
+ budget_sar: 2274649,
3788
+ earned_value_sar: 0,
3789
+ contractor: "Threnalt MEP"
3790
+ },
3791
+ {
3792
+ activity_id: "A-4064",
3793
+ activity_name: "Sprinkler hydrostatic test",
3794
+ wbs_code: "1.9.4",
3795
+ planned_start: "2027-01-25",
3796
+ planned_finish: "2027-02-02",
3797
+ baseline_start: "2027-01-24",
3798
+ baseline_finish: "2027-02-01",
3799
+ duration_days: 9,
3800
+ percent_complete: 0,
3801
+ critical_path: true,
3802
+ zone_id: "ZN-012",
3803
+ project_id: "PRJ-1001",
3804
+ cost_code: "1-9-1040",
3805
+ pred_activity_id: "A-4063",
3806
+ delay_days: 0,
3807
+ budget_sar: 1637233,
3808
+ earned_value_sar: 0,
3809
+ contractor: "Threnalt MEP"
3810
+ },
3811
+ {
3812
+ activity_id: "A-4065",
3813
+ activity_name: "Fire alarm cause & effect test",
3814
+ wbs_code: "1.9.5",
3815
+ planned_start: "2027-01-30",
3816
+ planned_finish: "2027-02-06",
3817
+ baseline_start: "2027-01-29",
3818
+ baseline_finish: "2027-02-05",
3819
+ duration_days: 8,
3820
+ percent_complete: 0,
3821
+ critical_path: false,
3822
+ zone_id: "ZN-012",
3823
+ project_id: "PRJ-1001",
3824
+ cost_code: "1-9-1050",
3825
+ pred_activity_id: "A-4064",
3826
+ delay_days: 0,
3827
+ budget_sar: 1426302,
3828
+ earned_value_sar: 0,
3829
+ contractor: "Threnalt MEP"
3830
+ },
3831
+ {
3832
+ activity_id: "A-4066",
3833
+ activity_name: "Lift installation and commissioning",
3834
+ wbs_code: "1.9.6",
3835
+ planned_start: "2027-02-03",
3836
+ planned_finish: "2027-02-16",
3837
+ baseline_start: "2027-01-27",
3838
+ baseline_finish: "2027-02-15",
3839
+ duration_days: 14,
3840
+ percent_complete: 0,
3841
+ critical_path: false,
3842
+ zone_id: "ZN-012",
3843
+ project_id: "PRJ-1001",
3844
+ cost_code: "1-9-1060",
3845
+ pred_activity_id: "A-4065",
3846
+ delay_days: 0,
3847
+ budget_sar: 2018720,
3848
+ earned_value_sar: 0,
3849
+ contractor: "Threnalt MEP"
3850
+ },
3851
+ {
3852
+ activity_id: "A-4067",
3853
+ activity_name: "BMS point-to-point verification",
3854
+ wbs_code: "1.9.7",
3855
+ planned_start: "2027-02-11",
3856
+ planned_finish: "2027-02-25",
3857
+ baseline_start: "2027-02-10",
3858
+ baseline_finish: "2027-02-24",
3859
+ duration_days: 15,
3860
+ percent_complete: 0,
3861
+ critical_path: true,
3862
+ zone_id: "ZN-012",
3863
+ project_id: "PRJ-1001",
3864
+ cost_code: "1-9-1070",
3865
+ pred_activity_id: "A-4066",
3866
+ delay_days: 0,
3867
+ budget_sar: 1087526,
3868
+ earned_value_sar: 0,
3869
+ contractor: "Threnalt MEP"
3870
+ },
3871
+ {
3872
+ activity_id: "A-4068",
3873
+ activity_name: "Integrated systems test (IST)",
3874
+ wbs_code: "1.9.8",
3875
+ planned_start: "2027-02-15",
3876
+ planned_finish: "2027-02-22",
3877
+ baseline_start: "2027-02-14",
3878
+ baseline_finish: "2027-02-16",
3879
+ duration_days: 8,
3880
+ percent_complete: 0,
3881
+ critical_path: false,
3882
+ zone_id: "ZN-012",
3883
+ project_id: "PRJ-1001",
3884
+ cost_code: "1-9-1080",
3885
+ pred_activity_id: "A-4067",
3886
+ delay_days: 0,
3887
+ budget_sar: 1488951,
3888
+ earned_value_sar: 0,
3889
+ contractor: "Threnalt MEP"
3890
+ },
3891
+ {
3892
+ activity_id: "A-4069",
3893
+ activity_name: "Authority inspections",
3894
+ wbs_code: "1.9.9",
3895
+ planned_start: "2027-02-24",
3896
+ planned_finish: "2027-03-10",
3897
+ baseline_start: "2027-02-23",
3898
+ baseline_finish: "2027-03-06",
3899
+ duration_days: 15,
3900
+ percent_complete: 0,
3901
+ critical_path: false,
3902
+ zone_id: "ZN-012",
3903
+ project_id: "PRJ-1001",
3904
+ cost_code: "1-9-1090",
3905
+ pred_activity_id: "A-4068",
3906
+ delay_days: 0,
3907
+ budget_sar: 907819,
3908
+ earned_value_sar: 0,
3909
+ contractor: "Threnalt MEP"
3910
+ },
3911
+ {
3912
+ activity_id: "A-4070",
3913
+ activity_name: "Handover documentation & O&M",
3914
+ wbs_code: "1.9.10",
3915
+ planned_start: "2027-02-27",
3916
+ planned_finish: "2027-03-11",
3917
+ baseline_start: "2027-02-26",
3918
+ baseline_finish: "2027-03-10",
3919
+ duration_days: 13,
3920
+ percent_complete: 0,
3921
+ critical_path: true,
3922
+ zone_id: "ZN-012",
3923
+ project_id: "PRJ-1001",
3924
+ cost_code: "1-9-1100",
3925
+ pred_activity_id: "A-4069",
3926
+ delay_days: 0,
3927
+ budget_sar: 1034130,
3928
+ earned_value_sar: 0,
3929
+ contractor: "Threnalt MEP"
3930
+ }
3931
+ ];
3932
+ /** The catalogue datasets the Source stage offers, in the prototype's order. */
3933
+ const WC3_ANALYSIS_SOURCE_DATASET_IDS = [
3934
+ "ds_observations",
3935
+ "ds_workers",
3936
+ "ds_activities",
3937
+ "ds_badge_import"
3938
+ ];
3939
+ /** The observation rows, typed — the object-mode source set. Reused, never re-declared. */
3940
+ const WC3_OBSERVATION_ROWS = WC3_PROCESS_INSTANCES.ot_observation;
3941
+ const WORKER_BY_ID = new Map(WC3_WORKER_ROWS.map((w) => [w.worker_id, w]));
3942
+ /** The worker behind a foreign key, or null when the key does not resolve. */
3943
+ const analysisWorker = (workerId) => (workerId ? WORKER_BY_ID.get(workerId) : void 0) ?? null;
3944
+ /**
3945
+ * Rows behind a catalogue dataset. A dataset declared in the catalogue but not materialised
3946
+ * in this fixture returns an empty array — that emptiness is the honest answer, not a gap.
3947
+ */
3948
+ function analysisDatasetRows(dsId) {
3949
+ if (dsId === "ds_observations") return WC3_OBSERVATION_ROWS;
3950
+ if (dsId === "ds_workers") return WC3_WORKER_ROWS;
3951
+ if (dsId === "ds_zones") return WC3_ZONE_ROWS;
3952
+ if (dsId === "ds_activities") return WC3_ACTIVITY_ROWS;
3953
+ return [];
3954
+ }
3955
+ /** The catalogue entry for a dataset id. */
3956
+ const analysisDataset = (dsId) => WC3_DATASOURCE_CATALOG.find((c) => c.id === dsId);
3957
+ /** Display name for a dataset id, falling back to the id when it is not in the catalogue. */
3958
+ const analysisDatasetName = (dsId) => analysisDataset(dsId)?.name ?? dsId;
3959
+ /** True when the dataset holds materialised rows in this fixture. */
3960
+ const analysisDatasetMaterialised = (dsId) => analysisDatasetRows(dsId).length > 0;
3961
+ const HOUR_MS = 36e5;
3962
+ const parseStamp = (s) => Date.parse(s.replace(" ", "T"));
3963
+ /**
3964
+ * Metric catalogue, verbatim from the prototype's `AN_METRICS`. `compute` is null exactly
3965
+ * when `needs` names a dataset with no materialised rows — the metric is then unsupported
3966
+ * and the page must name the missing input rather than show a value.
3967
+ */
3968
+ const WC3_ANALYSIS_METRICS = [
3969
+ {
3970
+ id: "obs_count",
3971
+ label: "Observation count",
3972
+ needs: null,
3973
+ compute: (rows) => rows.length
3974
+ },
3975
+ {
3976
+ id: "distinct_w",
3977
+ label: "Distinct workers",
3978
+ needs: null,
3979
+ compute: (rows) => new Set(rows.map((r) => r.__worker?.worker_id).filter(Boolean)).size
3980
+ },
3981
+ {
3982
+ id: "critical",
3983
+ label: "Critical + High",
3984
+ needs: null,
3985
+ compute: (rows) => rows.filter((r) => r.severity_level === "Critical" || r.severity_level === "High").length
3986
+ },
3987
+ {
3988
+ id: "median_close",
3989
+ label: "Median hours to close",
3990
+ needs: null,
3991
+ compute: (rows) => {
3992
+ const hours = rows.filter((r) => typeof r.closed_at === "string" && typeof r.observed_at === "string").map((r) => (parseStamp(r.closed_at) - parseStamp(r.observed_at)) / HOUR_MS).sort((a, b) => a - b);
3993
+ const median = hours[Math.floor(hours.length / 2)];
3994
+ return median === void 0 ? null : Math.round(median);
3995
+ }
3996
+ },
3997
+ {
3998
+ id: "exposure_h",
3999
+ label: "Exposure hours",
4000
+ needs: "ds_badge_import",
4001
+ compute: null
4002
+ },
4003
+ {
4004
+ id: "incident_rate",
4005
+ label: "Incident rate / 1k h",
4006
+ needs: "ds_badge_import",
4007
+ compute: null
4008
+ }
4009
+ ];
4010
+ /** The metric definition for an id. */
4011
+ const analysisMetric = (id) => WC3_ANALYSIS_METRICS.find((m) => m.id === id);
4012
+ /** The dataset a metric needs but that holds no rows, or null when the metric is computable. */
4013
+ const analysisMetricMissingInput = (m) => m.needs && !analysisDatasetMaterialised(m.needs) ? m.needs : null;
4014
+ /** The default spec each mode opens on, verbatim from the prototype's `anDefaultSpec`. */
4015
+ function wc3AnalysisDefaultSpec(mode) {
4016
+ return mode === "object" ? {
4017
+ mode: "object",
4018
+ sourceType: "ot_observation",
4019
+ filters: [],
4020
+ traverse: "reported_by",
4021
+ metrics: [
4022
+ "obs_count",
4023
+ "distinct_w",
4024
+ "median_close"
4025
+ ],
4026
+ groupBy: "contractor",
4027
+ grain: "month",
4028
+ window: 56,
4029
+ viz: "bar",
4030
+ name: "Monthly Subcontractor Safety"
4031
+ } : {
4032
+ mode: "data",
4033
+ sourceDs: "ds_observations",
4034
+ filters: [],
4035
+ joinDs: "ds_workers",
4036
+ metrics: ["obs_count", "distinct_w"],
4037
+ groupBy: "contractor",
4038
+ grain: "month",
4039
+ window: 56,
4040
+ viz: "table",
4041
+ name: "Observation history by subcontractor"
4042
+ };
4043
+ }
4044
+ /** Severity values the Filter stage offers, in severity order. */
4045
+ const WC3_ANALYSIS_SEVERITIES = [
4046
+ "Critical",
4047
+ "High",
4048
+ "Medium",
4049
+ "Low"
4050
+ ];
4051
+ /** Time windows the Filter stage offers, in weeks back from the fixture clock. */
4052
+ const WC3_ANALYSIS_WINDOWS = [
4053
+ 8,
4054
+ 26,
4055
+ 56
4056
+ ];
4057
+ /** Grouping dimensions the Group stage offers. */
4058
+ const WC3_ANALYSIS_GROUP_BYS = [
4059
+ "contractor",
4060
+ "severity",
4061
+ "zone"
4062
+ ];
4063
+ /**
4064
+ * The prototype's store opens with NO saved analyses and NO materialisations —
4065
+ * `S.analyses` and `S.materializations` are both `[]`. Saving is a runtime action on this
4066
+ * page; there is no seeded history, and none is invented here.
4067
+ */
4068
+ const WC3_SAVED_ANALYSES_SEED = [];
4069
+ /** The prototype's store opens with no materialisations. */
4070
+ const WC3_MATERIALISATIONS_SEED = [];
4071
+ //#endregion
4072
+ export { WC3_ACTIVITY_ROWS, WC3_ANALYSIS_GROUP_BYS, WC3_ANALYSIS_METRICS, WC3_ANALYSIS_SEVERITIES, WC3_ANALYSIS_SOURCE_DATASET_IDS, WC3_ANALYSIS_STAGES, WC3_ANALYSIS_WINDOWS, WC3_MATERIALISATIONS_SEED, WC3_OBSERVATION_ROWS, WC3_SAVED_ANALYSES_SEED, WC3_WORKER_ROWS, WC3_ZONE_ROWS, analysisDataset, analysisDatasetMaterialised, analysisDatasetName, analysisDatasetRows, analysisMetric, analysisMetricMissingInput, analysisWorker, wc3AnalysisDefaultSpec };
4073
+
4074
+ //# sourceMappingURL=wc3-analysis-data.mjs.map